67 |
/* inclusive scanner conditions */ |
/* inclusive scanner conditions */ |
68 |
%s PREPROC_BODY_USE |
%s PREPROC_BODY_USE |
69 |
/* exclusive scanner conditions */ |
/* exclusive scanner conditions */ |
70 |
%x PREPROC_SET_COND PREPROC_RESET_COND PREPROC_IF PREPROC_IF_NOT PREPROC_BODY_EAT PREPROC_PRE_BODY_USE PREPROC_PRE_BODY_EAT PREPROC_EVENT_NAME PREPROC_END_NAME |
%x PREPROC_SET_COND PREPROC_RESET_COND PREPROC_IF PREPROC_IF_NOT PREPROC_BODY_EAT PREPROC_PRE_BODY_USE PREPROC_PRE_BODY_EAT PREPROC_EVENT_NAME PREPROC_END_NAME METRIC UNIT |
71 |
|
|
72 |
DIGIT [0-9] |
DIGIT [0-9] |
73 |
ID [a-zA-Z][a-zA-Z0-9_]* |
ID [a-zA-Z][a-zA-Z0-9_]* |
74 |
METRIC (k|h|(da)|d|c|m|u) |
METRIC (k|h|da|d|c|m|u) |
75 |
UNIT (s|(Hz)|B) |
UNIT (s|Hz|B) |
76 |
END_ID on|while|if|select|function|synchronized |
END_ID on|while|if|select|function|synchronized |
77 |
|
|
78 |
%% |
%% |
87 |
return yyextra->token.baseType; |
return yyextra->token.baseType; |
88 |
} |
} |
89 |
|
|
90 |
{DIGIT}+({METRIC}{1,2}|({METRIC}{0,2}{UNIT}?)) { |
{DIGIT}+/{METRIC}{1,2} { |
91 |
|
yy_push_state(METRIC, yyscanner); |
92 |
yyextra->token = NumberLiteralToken(yytext); |
yyextra->token = NumberLiteralToken(yytext); |
93 |
return yyextra->token.baseType; |
return yyextra->token.baseType; |
94 |
} |
} |
95 |
|
|
96 |
|
{DIGIT}+/{UNIT} { |
97 |
|
yy_push_state(UNIT, yyscanner); |
98 |
|
yyextra->token = NumberLiteralToken(yytext); |
99 |
|
return yyextra->token.baseType; |
100 |
|
} |
101 |
|
|
102 |
|
<METRIC>{METRIC}{1,2} { |
103 |
|
yyextra->token = MetrixPrefixToken(yytext); |
104 |
|
yy_pop_state(yyscanner); |
105 |
|
return yyextra->token.baseType; |
106 |
|
} |
107 |
|
|
108 |
|
<METRIC>{METRIC}{1,2}/{UNIT} { |
109 |
|
yyextra->token = MetrixPrefixToken(yytext); |
110 |
|
yy_pop_state(yyscanner); |
111 |
|
yy_push_state(UNIT, yyscanner); |
112 |
|
return yyextra->token.baseType; |
113 |
|
} |
114 |
|
|
115 |
|
<UNIT>{UNIT} { |
116 |
|
yyextra->token = StdUnitToken(yytext); |
117 |
|
yy_pop_state(yyscanner); |
118 |
|
return yyextra->token.baseType; |
119 |
|
} |
120 |
|
|
121 |
/* there is currently no support for floating point numbers in NKSP yet */ |
/* there is currently no support for floating point numbers in NKSP yet */ |
122 |
/*{DIGIT}+"."{DIGIT}* { |
/*{DIGIT}+"."{DIGIT}* { |
123 |
yyextra->token = NumberLiteralToken(yytext); |
yyextra->token = NumberLiteralToken(yytext); |