aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/src/c_lexer.flex
diff options
context:
space:
mode:
Diffstat (limited to 'c_compiler/src/c_lexer.flex')
-rw-r--r--c_compiler/src/c_lexer.flex14
1 files changed, 11 insertions, 3 deletions
diff --git a/c_compiler/src/c_lexer.flex b/c_compiler/src/c_lexer.flex
index 38ee946..7690d71 100644
--- a/c_compiler/src/c_lexer.flex
+++ b/c_compiler/src/c_lexer.flex
@@ -30,9 +30,17 @@ ALL .
%%
-typedef|extern|static|auto|register { return T_STRG_SPEC; }
-void|char|short|int|long|float|double|signed|unsigned { return T_TYPE_SPEC; }
-const|volatile { return T_TYPE_QUAL; }
+(void) { return T_VOID; }
+(char) { return T_CHAR; }
+(signed[ ]char) { return T_SCHAR; }
+(unsigned[ ]char) { return T_UCHAR; }
+((short[ ]int)|(signed[ ]short[ ]int)|short|(signed[ ]short)) { return T_SSINT; }
+((unsigned[ ]short[ ]int)|(unsigned[ ]short)) { return T_USINT; }
+((signed[ ]long[ ]int)|(signed[ ]long)|(long[ ]int)|long) { return T_LINT; }
+((unsigned[ ]long[ ]int)|(unsigned[ ]long)) { return T_ULINT; }
+((unsigned[ ]int)|unsigned) { return T_UINT; }
+((signed[ ]int)|int|signed) { return T_SINT; }
+
[;] { return T_SC; }
[,] { return T_CMA; }