diff options
Diffstat (limited to 'src/format/mangling/itanium_tok.l')
-rw-r--r-- | src/format/mangling/itanium_tok.l | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/format/mangling/itanium_tok.l b/src/format/mangling/itanium_tok.l index bc5f5f1..e8fb7f1 100644 --- a/src/format/mangling/itanium_tok.l +++ b/src/format/mangling/itanium_tok.l @@ -29,6 +29,8 @@ _Z { return ITANIUM_SIGNATURE; } E { return EE; } N { return NN; } I { return II; } +F { return FF; } +L { return LL; } C1 { return C1; } C2 { return C2; } @@ -133,13 +135,21 @@ cl { return OPER_CLASS; } ix { return OPER_INDEX; } +S_ { return SUBSTI_FIRST; } +S[0-9a-z]_ { yylval.val = atoi(yytext + 1); return SUBSTI_N; } + +T_ { return TPARAM_FIRST; } +T[0-9]*_ { yylval.val = atoi(yytext + 1); return TPARAM_N; } + + [0-9]+ { yylval.val = atoi(yytext); return NUMBER; } <identifier>. { if (--itanium_txt_length == 0) BEGIN(INITIAL); yylval.car = *yytext; return CHAR; } -<*>. { printf("error : '%s'\n", yytext); } +<*>[ ] +<*>. { printf("error : '%s'\n", yytext); } %% |