mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-07-23 18:06:18 +00:00
assembler: Add location support
Let's generate location information about the tokens we are parsing. This can be used to give accurate location when reporting errors and warnings. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
parent
574a249142
commit
d94e8a6cf0
@ -276,6 +276,7 @@ static void resolve_subnr(struct brw_reg *reg)
|
||||
|
||||
|
||||
%}
|
||||
%locations
|
||||
|
||||
%start ROOT
|
||||
|
||||
|
@ -9,6 +9,15 @@
|
||||
int saved_state = 0;
|
||||
extern char *input_filename;
|
||||
|
||||
/* Locations */
|
||||
int yycolumn = 1;
|
||||
|
||||
#define YY_USER_ACTION \
|
||||
yylloc.first_line = yylloc.last_line = yylineno; \
|
||||
yylloc.first_column = yycolumn; \
|
||||
yylloc.last_column = yycolumn+yyleng-1; \
|
||||
yycolumn += yyleng;
|
||||
|
||||
%}
|
||||
%x BLOCK_COMMENT
|
||||
%x CHANNEL
|
||||
@ -16,11 +25,11 @@ extern char *input_filename;
|
||||
%x FILENAME
|
||||
|
||||
%%
|
||||
\/\/.*[\r\n] { } /* eat up single-line comments */
|
||||
"\.kernel".*[\r\n] { }
|
||||
"\.end_kernel".*[\r\n] { }
|
||||
"\.code".*[\r\n] { }
|
||||
"\.end_code".*[\r\n] { }
|
||||
\/\/.*[\r\n] { yycolumn = 1; } /* eat up single-line comments */
|
||||
"\.kernel".*[\r\n] { yycolumn = 1; }
|
||||
"\.end_kernel".*[\r\n] { yycolumn = 1; }
|
||||
"\.code".*[\r\n] { yycolumn = 1; }
|
||||
"\.end_code".*[\r\n] { yycolumn = 1; }
|
||||
|
||||
/* eat up multi-line comments, non-nesting. */
|
||||
\/\* {
|
||||
@ -33,6 +42,7 @@ extern char *input_filename;
|
||||
<BLOCK_COMMENT>. { }
|
||||
<BLOCK_COMMENT>[\r\n] { }
|
||||
"#line"" "* {
|
||||
yycolumn = 1;
|
||||
saved_state = YYSTATE;
|
||||
BEGIN(LINENUMBER);
|
||||
}
|
||||
@ -407,7 +417,9 @@ yylval.integer = BRW_CHANNEL_W;
|
||||
return NUMBER;
|
||||
}
|
||||
|
||||
[ \t\n]+ { } /* eat up whitespace */
|
||||
[ \t]+ { } /* eat up whitespace */
|
||||
|
||||
\n { yycolumn = 1; }
|
||||
|
||||
. {
|
||||
fprintf(stderr, "%s: %d: %s at \"%s\"\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user