summaryrefslogtreecommitdiff
path: root/c89.l
blob: 3f16b44c510976539981862db4c9fd65edc4022f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
%{

%}

DIGIT [0-9]
UPPER [A-Z]
LOWER [a-z]
NONDIGIT [_a-zA-Z]

%%
 /* keywords */
"auto"		{ return AUTO; }
"break"		{ return BREAK; }
"case"		{ return CASE; }
"char"		{ return CHAR; }
"const"		{ return CONST; }
"continue"	{ return CONTINUE; }
"default"	{ return DEFAULT; }
"do"		{ return DO; }
"double"	{ return DOUBLE; }
"else"		{ return ELSE; }
"enum"		{ return ENUM; }
"extern"	{ return EXTERN; }
"float"		{ return FLOAT; }
"for"		{ return FOR; }
"goto"		{ return GOTO; }
"if"		{ return IF; }
"int"		{ return INT; }
"long"		{ return LONG; }
"register"	{ return REGISTER; }
"return"	{ return RETURN; }
"short"		{ return SHORT; }
"signed"	{ return SIGNED; }
"sizeof"	{ return SIZEOF; }
"static"	{ return STATIC; }
"struct"	{ return STRUCT; }
"switch"	{ return SWITCH; }
"typedef"	{ return TYPEDEF; }
"union"		{ return UNION; }
"unsigned"	{ return UNSIGNED; }
"void"		{ return VOID; }
"volatile"	{ return VOLATILE; }
"while"		{ return WHILE; }

 /* operators */
"["		{ return LBRACKET; }
"]"		{ return RBRACKET; }
"("		{ return LPAREN; }
")"		{ return RPAREN; }
"."		{ return DOT; }
"->"		{ return ARROW; }
"++"		{ return INCREMENT; }
"--"		{ return DECREMENT; }
"&"		{ return AMPERSAND; }
"*"		{ return STAR; }
"+"		{ return PLUS; }
"-"		{ return MINUS; }
"~"		{ return TILDE; }
"!"		{ return BANG; }
"/"		{ return SLASH; }
"%"		{ return PERCENT; }
"<<"		{ return LSHIFT; }
">>"		{ return RSHIFT; }
"<"		{ return LESSTHAN; }
">"		{ return GREATERTHAN; }
"<="		{ return LESSEQUAL; }
">="		{ return GREATEREQUAL; }
"=="		{ return ISEQUAL; }
"!="		{ return NOTEQUAL; }
"^"		{ return CARET; }
"|"		{ return PIPE; }
"&&"		{ return ANDAND; }
"||"		{ return OROR; }
"?"		{ return QUESTION; }
":"		{ return COLON; }
"="		{ return EQUALS; }
"*="		{ return STAREQUALS; }
"/="		{ return SLASHEQUALS; }
"%="		{ return PERCENTEQUALS; }
"+="		{ return PLUSEQUALS; }
"-="		{ return MINUSEQUALS; }
"<<="		{ return LSHIFTEQUALS; }
">>="		{ return RSHIFTEQUALS; }
"&="		{ return ANDEQUALS; }
"^="		{ return CARETEQUALS; }
"|="		{ return PIPEEQUALS; }
","		{ return COMMA; }
"#"		{ return HASH; }
"##"		{ return HASHHASH; }

 /* additional punctuators */
"{"		{ return LBRACE; }
"}"		{ return RBRACE; }
";"		{ return SEMICOLON; }
"..."		{ return DOTDOTDOT; }