1 /* Generated by re2c */ 2 #line 1 "push_fs.re" 3 // re2c $INPUT -o $OUTPUT -fs push()4uint32_t push() 5 { 6 // The scanner starts here 7 #define YYLIMIT limit 8 #define YYCURSOR cursor 9 #define YYMARKER marker 10 #define YYCTYPE uint8_t 11 12 #define SKIP(x) { start = cursor; goto yy0; } 13 #define SEND(x) { send(x); SKIP(); } 14 #define YYFILL(n) { goto fill; } 15 16 #define YYGETSTATE() state 17 #define YYSETSTATE(x) { state = (x); } 18 19 start: 20 21 22 #line 23 "push_fs.c" 23 24 switch (YYGETSTATE()) { 25 default: 26 goto yy0; 27 case 0: 28 goto yyFillLabel0; 29 case 1: 30 goto yyFillLabel1; 31 case 2: 32 goto yyFillLabel2; 33 } 34 yy0: 35 YYSETSTATE(0); 36 if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7); 37 yyFillLabel0: 38 yych = *YYCURSOR; 39 if (yych <= '=') { 40 if (yych <= '(') { 41 if (yych <= '\n') { 42 if (yych <= 0x00) goto yy3; 43 if (yych <= 0x08) goto yy5; 44 if (yych <= '\t') goto yy7; 45 goto yy9; 46 } else { 47 if (yych <= 0x1F) { 48 if (yych <= '\r') goto yy7; 49 goto yy5; 50 } else { 51 if (yych <= ' ') goto yy7; 52 if (yych <= '\'') goto yy5; 53 goto yy11; 54 } 55 } 56 } else { 57 if (yych <= '-') { 58 if (yych <= '*') { 59 if (yych <= ')') goto yy13; 60 goto yy15; 61 } else { 62 if (yych <= '+') goto yy17; 63 if (yych <= ',') goto yy5; 64 goto yy19; 65 } 66 } else { 67 if (yych <= '/') { 68 if (yych <= '.') goto yy5; 69 goto yy21; 70 } else { 71 if (yych <= '9') goto yy23; 72 if (yych <= '<') goto yy5; 73 goto yy26; 74 } 75 } 76 } 77 } else { 78 if (yych <= 'e') { 79 if (yych <= '_') { 80 if (yych <= '@') goto yy5; 81 if (yych <= 'Z') goto yy28; 82 if (yych <= '^') goto yy5; 83 goto yy28; 84 } else { 85 if (yych <= 'a') { 86 if (yych <= '`') goto yy5; 87 goto yy28; 88 } else { 89 if (yych <= 'b') goto yy31; 90 if (yych <= 'd') goto yy28; 91 goto yy32; 92 } 93 } 94 } else { 95 if (yych <= 'q') { 96 if (yych <= 'g') { 97 if (yych <= 'f') goto yy33; 98 goto yy34; 99 } else { 100 if (yych == 'i') goto yy35; 101 goto yy28; 102 } 103 } else { 104 if (yych <= 'v') { 105 if (yych <= 'r') goto yy36; 106 goto yy28; 107 } else { 108 if (yych <= 'w') goto yy37; 109 if (yych <= 'z') goto yy28; 110 goto yy5; 111 } 112 } 113 } 114 } 115 yy3: 116 ++YYCURSOR; 117 #line 49 "push_fs.re" 118 { send(kEOF); return 1; } 119 #line 120 "push_fs.c" 120 yy5: 121 ++YYCURSOR; 122 #line 50 "push_fs.re" 123 { SEND(kUnknown); } 124 #line 125 "push_fs.c" 125 yy7: 126 ++YYCURSOR; 127 #line 48 "push_fs.re" 128 { SKIP(); } 129 #line 130 "push_fs.c" 130 yy9: 131 ++YYCURSOR; 132 #line 47 "push_fs.re" 133 { SKIP(); } 134 #line 135 "push_fs.c" 135 yy11: 136 ++YYCURSOR; 137 #line 40 "push_fs.re" 138 { SEND(kLeftParen); } 139 #line 140 "push_fs.c" 140 yy13: 141 ++YYCURSOR; 142 #line 41 "push_fs.re" 143 { SEND(kRightParen); } 144 #line 145 "push_fs.c" 145 yy15: 146 ++YYCURSOR; 147 #line 44 "push_fs.re" 148 { SEND(kStar); } 149 #line 150 "push_fs.c" 150 yy17: 151 ++YYCURSOR; 152 #line 43 "push_fs.re" 153 { SEND(kPlus); } 154 #line 155 "push_fs.c" 155 yy19: 156 ++YYCURSOR; 157 #line 42 "push_fs.re" 158 { SEND(kMinus); } 159 #line 160 "push_fs.c" 160 yy21: 161 ++YYCURSOR; 162 #line 45 "push_fs.re" 163 { SEND(kSlash); } 164 #line 165 "push_fs.c" 165 yy23: 166 ++YYCURSOR; 167 YYSETSTATE(1); 168 if (YYLIMIT <= YYCURSOR) YYFILL(1); 169 yyFillLabel1: 170 yych = *YYCURSOR; 171 if (yych <= '/') goto yy25; 172 if (yych <= '9') goto yy23; 173 yy25: 174 #line 37 "push_fs.re" 175 { SEND(kDecimalConstant);} 176 #line 177 "push_fs.c" 177 yy26: 178 ++YYCURSOR; 179 #line 39 "push_fs.re" 180 { SEND(kEqual); } 181 #line 182 "push_fs.c" 182 yy28: 183 ++YYCURSOR; 184 YYSETSTATE(2); 185 if (YYLIMIT <= YYCURSOR) YYFILL(1); 186 yyFillLabel2: 187 yych = *YYCURSOR; 188 yy29: 189 if (yych <= 'Z') { 190 if (yych <= '/') goto yy30; 191 if (yych <= '9') goto yy28; 192 if (yych >= 'A') goto yy28; 193 } else { 194 if (yych <= '_') { 195 if (yych >= '_') goto yy28; 196 } else { 197 if (yych <= '`') goto yy30; 198 if (yych <= 'z') goto yy28; 199 } 200 } 201 yy30: 202 #line 36 "push_fs.re" 203 { SEND(kIdentifier); } 204 #line 205 "push_fs.c" 205 yy31: 206 yych = *++YYCURSOR; 207 if (yych == 'r') goto yy38; 208 goto yy29; 209 yy32: 210 yych = *++YYCURSOR; 211 if (yych == 'l') goto yy39; 212 goto yy29; 213 yy33: 214 yych = *++YYCURSOR; 215 if (yych == 'o') goto yy40; 216 goto yy29; 217 yy34: 218 yych = *++YYCURSOR; 219 if (yych == 'o') goto yy41; 220 goto yy29; 221 yy35: 222 yych = *++YYCURSOR; 223 if (yych == 'f') goto yy42; 224 goto yy29; 225 yy36: 226 yych = *++YYCURSOR; 227 if (yych == 'e') goto yy44; 228 goto yy29; 229 yy37: 230 yych = *++YYCURSOR; 231 if (yych == 'h') goto yy45; 232 goto yy29; 233 yy38: 234 yych = *++YYCURSOR; 235 if (yych == 'e') goto yy46; 236 goto yy29; 237 yy39: 238 yych = *++YYCURSOR; 239 if (yych == 's') goto yy47; 240 goto yy29; 241 yy40: 242 yych = *++YYCURSOR; 243 if (yych == 'r') goto yy48; 244 goto yy29; 245 yy41: 246 yych = *++YYCURSOR; 247 if (yych == 't') goto yy50; 248 goto yy29; 249 yy42: 250 yych = *++YYCURSOR; 251 if (yych <= 'Z') { 252 if (yych <= '/') goto yy43; 253 if (yych <= '9') goto yy28; 254 if (yych >= 'A') goto yy28; 255 } else { 256 if (yych <= '_') { 257 if (yych >= '_') goto yy28; 258 } else { 259 if (yych <= '`') goto yy43; 260 if (yych <= 'z') goto yy28; 261 } 262 } 263 yy43: 264 #line 29 "push_fs.re" 265 { SEND(kIf); } 266 #line 267 "push_fs.c" 267 yy44: 268 yych = *++YYCURSOR; 269 if (yych == 't') goto yy51; 270 goto yy29; 271 yy45: 272 yych = *++YYCURSOR; 273 if (yych == 'i') goto yy52; 274 goto yy29; 275 yy46: 276 yych = *++YYCURSOR; 277 if (yych == 'a') goto yy53; 278 goto yy29; 279 yy47: 280 yych = *++YYCURSOR; 281 if (yych == 'e') goto yy54; 282 goto yy29; 283 yy48: 284 yych = *++YYCURSOR; 285 if (yych <= 'Z') { 286 if (yych <= '/') goto yy49; 287 if (yych <= '9') goto yy28; 288 if (yych >= 'A') goto yy28; 289 } else { 290 if (yych <= '_') { 291 if (yych >= '_') goto yy28; 292 } else { 293 if (yych <= '`') goto yy49; 294 if (yych <= 'z') goto yy28; 295 } 296 } 297 yy49: 298 #line 30 "push_fs.re" 299 { SEND(kFor); } 300 #line 301 "push_fs.c" 301 yy50: 302 yych = *++YYCURSOR; 303 if (yych == 'o') goto yy56; 304 goto yy29; 305 yy51: 306 yych = *++YYCURSOR; 307 if (yych == 'u') goto yy58; 308 goto yy29; 309 yy52: 310 yych = *++YYCURSOR; 311 if (yych == 'l') goto yy59; 312 goto yy29; 313 yy53: 314 yych = *++YYCURSOR; 315 if (yych == 'k') goto yy60; 316 goto yy29; 317 yy54: 318 yych = *++YYCURSOR; 319 if (yych <= 'Z') { 320 if (yych <= '/') goto yy55; 321 if (yych <= '9') goto yy28; 322 if (yych >= 'A') goto yy28; 323 } else { 324 if (yych <= '_') { 325 if (yych >= '_') goto yy28; 326 } else { 327 if (yych <= '`') goto yy55; 328 if (yych <= 'z') goto yy28; 329 } 330 } 331 yy55: 332 #line 31 "push_fs.re" 333 { SEND(kElse); } 334 #line 335 "push_fs.c" 335 yy56: 336 yych = *++YYCURSOR; 337 if (yych <= 'Z') { 338 if (yych <= '/') goto yy57; 339 if (yych <= '9') goto yy28; 340 if (yych >= 'A') goto yy28; 341 } else { 342 if (yych <= '_') { 343 if (yych >= '_') goto yy28; 344 } else { 345 if (yych <= '`') goto yy57; 346 if (yych <= 'z') goto yy28; 347 } 348 } 349 yy57: 350 #line 32 "push_fs.re" 351 { SEND(kGoto); } 352 #line 353 "push_fs.c" 353 yy58: 354 yych = *++YYCURSOR; 355 if (yych == 'r') goto yy62; 356 goto yy29; 357 yy59: 358 yych = *++YYCURSOR; 359 if (yych == 'e') goto yy63; 360 goto yy29; 361 yy60: 362 yych = *++YYCURSOR; 363 if (yych <= 'Z') { 364 if (yych <= '/') goto yy61; 365 if (yych <= '9') goto yy28; 366 if (yych >= 'A') goto yy28; 367 } else { 368 if (yych <= '_') { 369 if (yych >= '_') goto yy28; 370 } else { 371 if (yych <= '`') goto yy61; 372 if (yych <= 'z') goto yy28; 373 } 374 } 375 yy61: 376 #line 33 "push_fs.re" 377 { SEND(kBreak); } 378 #line 379 "push_fs.c" 379 yy62: 380 yych = *++YYCURSOR; 381 if (yych == 'n') goto yy65; 382 goto yy29; 383 yy63: 384 yych = *++YYCURSOR; 385 if (yych <= 'Z') { 386 if (yych <= '/') goto yy64; 387 if (yych <= '9') goto yy28; 388 if (yych >= 'A') goto yy28; 389 } else { 390 if (yych <= '_') { 391 if (yych >= '_') goto yy28; 392 } else { 393 if (yych <= '`') goto yy64; 394 if (yych <= 'z') goto yy28; 395 } 396 } 397 yy64: 398 #line 34 "push_fs.re" 399 { SEND(kWhile); } 400 #line 401 "push_fs.c" 401 yy65: 402 yych = *++YYCURSOR; 403 if (yych <= 'Z') { 404 if (yych <= '/') goto yy66; 405 if (yych <= '9') goto yy28; 406 if (yych >= 'A') goto yy28; 407 } else { 408 if (yych <= '_') { 409 if (yych >= '_') goto yy28; 410 } else { 411 if (yych <= '`') goto yy66; 412 if (yych <= 'z') goto yy28; 413 } 414 } 415 yy66: 416 #line 35 "push_fs.re" 417 { SEND(kReturn); } 418 #line 419 "push_fs.c" 419 #line 51 "push_fs.re" 420 421 422 fill: 423 return 0; 424 } 425 push_fs.re:27:18: warning: escape has no effect: '\h' [-Wuseless-escape] 426