summaryrefslogtreecommitdiff
path: root/src/format/mangling/itanium_tok.l
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/mangling/itanium_tok.l')
-rw-r--r--src/format/mangling/itanium_tok.l12
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); }
%%