mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-07-24 18:35:58 +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
|
%start ROOT
|
||||||
|
|
||||||
|
@ -9,6 +9,15 @@
|
|||||||
int saved_state = 0;
|
int saved_state = 0;
|
||||||
extern char *input_filename;
|
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 BLOCK_COMMENT
|
||||||
%x CHANNEL
|
%x CHANNEL
|
||||||
@ -16,11 +25,11 @@ extern char *input_filename;
|
|||||||
%x FILENAME
|
%x FILENAME
|
||||||
|
|
||||||
%%
|
%%
|
||||||
\/\/.*[\r\n] { } /* eat up single-line comments */
|
\/\/.*[\r\n] { yycolumn = 1; } /* eat up single-line comments */
|
||||||
"\.kernel".*[\r\n] { }
|
"\.kernel".*[\r\n] { yycolumn = 1; }
|
||||||
"\.end_kernel".*[\r\n] { }
|
"\.end_kernel".*[\r\n] { yycolumn = 1; }
|
||||||
"\.code".*[\r\n] { }
|
"\.code".*[\r\n] { yycolumn = 1; }
|
||||||
"\.end_code".*[\r\n] { }
|
"\.end_code".*[\r\n] { yycolumn = 1; }
|
||||||
|
|
||||||
/* eat up multi-line comments, non-nesting. */
|
/* eat up multi-line comments, non-nesting. */
|
||||||
\/\* {
|
\/\* {
|
||||||
@ -33,6 +42,7 @@ extern char *input_filename;
|
|||||||
<BLOCK_COMMENT>. { }
|
<BLOCK_COMMENT>. { }
|
||||||
<BLOCK_COMMENT>[\r\n] { }
|
<BLOCK_COMMENT>[\r\n] { }
|
||||||
"#line"" "* {
|
"#line"" "* {
|
||||||
|
yycolumn = 1;
|
||||||
saved_state = YYSTATE;
|
saved_state = YYSTATE;
|
||||||
BEGIN(LINENUMBER);
|
BEGIN(LINENUMBER);
|
||||||
}
|
}
|
||||||
@ -407,7 +417,9 @@ yylval.integer = BRW_CHANNEL_W;
|
|||||||
return NUMBER;
|
return NUMBER;
|
||||||
}
|
}
|
||||||
|
|
||||||
[ \t\n]+ { } /* eat up whitespace */
|
[ \t]+ { } /* eat up whitespace */
|
||||||
|
|
||||||
|
\n { yycolumn = 1; }
|
||||||
|
|
||||||
. {
|
. {
|
||||||
fprintf(stderr, "%s: %d: %s at \"%s\"\n",
|
fprintf(stderr, "%s: %d: %s at \"%s\"\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user