Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/parser/Scanner.java @ 12752:71991b7a0f14
SL: Enhanced SimpleLanguage with support for if statements, function calls, function caching + inlining and builtins.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 11 Nov 2013 21:34:44 +0100 |
parents | d7f8dd4fe876 |
children | 7311354f5bf8 |
comparison
equal
deleted
inserted
replaced
12712:882a0aadfed6 | 12752:71991b7a0f14 |
---|---|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 */ | 22 */ |
23 | 23 |
24 // The content of this file is automatically generated. DO NOT EDIT. | 24 // The content of this file is automatically generated. DO NOT EDIT. |
25 | |
25 | 26 |
26 package com.oracle.truffle.sl.parser; | 27 package com.oracle.truffle.sl.parser; |
27 | 28 |
28 import java.io.InputStream; | 29 import java.io.InputStream; |
29 import java.io.IOException; | 30 import java.io.IOException; |
309 @SuppressWarnings({"rawtypes", "unchecked"}) | 310 @SuppressWarnings({"rawtypes", "unchecked"}) |
310 public class Scanner { | 311 public class Scanner { |
311 | 312 |
312 static final char EOL = '\n'; | 313 static final char EOL = '\n'; |
313 static final int eofSym = 0; | 314 static final int eofSym = 0; |
314 static final int maxT = 28; | 315 static final int maxT = 29; |
315 static final int noSym = 28; | 316 static final int noSym = 29; |
316 | 317 |
317 | 318 |
318 public Buffer buffer; // scanner buffer | 319 public Buffer buffer; // scanner buffer |
319 | 320 |
320 Token t; // current token | 321 Token t; // current token |
339 for (int i = 65; i <= 90; ++i) start.set(i, 1); | 340 for (int i = 65; i <= 90; ++i) start.set(i, 1); |
340 for (int i = 97; i <= 122; ++i) start.set(i, 1); | 341 for (int i = 97; i <= 122; ++i) start.set(i, 1); |
341 for (int i = 49; i <= 57; ++i) start.set(i, 4); | 342 for (int i = 49; i <= 57; ++i) start.set(i, 4); |
342 start.set(34, 2); | 343 start.set(34, 2); |
343 start.set(48, 5); | 344 start.set(48, 5); |
344 start.set(123, 6); | 345 start.set(40, 6); |
345 start.set(125, 7); | 346 start.set(44, 7); |
346 start.set(40, 8); | 347 start.set(41, 8); |
347 start.set(41, 9); | 348 start.set(123, 9); |
348 start.set(61, 23); | 349 start.set(125, 10); |
349 start.set(59, 10); | 350 start.set(59, 11); |
350 start.set(60, 24); | 351 start.set(60, 24); |
351 start.set(62, 25); | 352 start.set(62, 25); |
352 start.set(33, 14); | 353 start.set(61, 26); |
353 start.set(43, 16); | 354 start.set(33, 15); |
354 start.set(45, 17); | 355 start.set(43, 17); |
355 start.set(42, 18); | 356 start.set(45, 18); |
356 start.set(47, 19); | 357 start.set(42, 19); |
357 start.set(35, 20); | 358 start.set(47, 20); |
358 start.set(63, 21); | 359 start.set(35, 21); |
359 start.set(58, 22); | 360 start.set(63, 22); |
361 start.set(58, 23); | |
360 start.set(Buffer.EOF, -1); | 362 start.set(Buffer.EOF, -1); |
361 literals.put("function", new Integer(4)); | 363 literals.put("function", new Integer(4)); |
362 literals.put("while", new Integer(7)); | 364 literals.put("if", new Integer(11)); |
363 literals.put("print", new Integer(12)); | 365 literals.put("else", new Integer(12)); |
364 literals.put("return", new Integer(13)); | 366 literals.put("while", new Integer(13)); |
365 literals.put("time", new Integer(27)); | 367 literals.put("return", new Integer(14)); |
366 | 368 |
367 } | 369 } |
368 | 370 |
369 public Scanner(String fileName) { | 371 public Scanner(String fileName) { |
370 buffer = new Buffer(fileName); | 372 buffer = new Buffer(fileName); |
535 case 6: | 537 case 6: |
536 {t.kind = 5; break loop;} | 538 {t.kind = 5; break loop;} |
537 case 7: | 539 case 7: |
538 {t.kind = 6; break loop;} | 540 {t.kind = 6; break loop;} |
539 case 8: | 541 case 8: |
542 {t.kind = 7; break loop;} | |
543 case 9: | |
540 {t.kind = 8; break loop;} | 544 {t.kind = 8; break loop;} |
541 case 9: | 545 case 10: |
542 {t.kind = 9; break loop;} | 546 {t.kind = 9; break loop;} |
543 case 10: | |
544 {t.kind = 11; break loop;} | |
545 case 11: | 547 case 11: |
546 {t.kind = 16; break loop;} | 548 {t.kind = 10; break loop;} |
547 case 12: | 549 case 12: |
548 {t.kind = 17; break loop;} | 550 {t.kind = 17; break loop;} |
549 case 13: | 551 case 13: |
550 {t.kind = 18; break loop;} | 552 {t.kind = 18; break loop;} |
551 case 14: | 553 case 14: |
552 if (ch == '=') {AddCh(); state = 15; break;} | 554 {t.kind = 19; break loop;} |
555 case 15: | |
556 if (ch == '=') {AddCh(); state = 16; break;} | |
553 else {state = 0; break;} | 557 else {state = 0; break;} |
554 case 15: | |
555 {t.kind = 19; break loop;} | |
556 case 16: | 558 case 16: |
557 {t.kind = 20; break loop;} | 559 {t.kind = 20; break loop;} |
558 case 17: | 560 case 17: |
559 {t.kind = 21; break loop;} | 561 {t.kind = 21; break loop;} |
560 case 18: | 562 case 18: |
566 case 21: | 568 case 21: |
567 {t.kind = 25; break loop;} | 569 {t.kind = 25; break loop;} |
568 case 22: | 570 case 22: |
569 {t.kind = 26; break loop;} | 571 {t.kind = 26; break loop;} |
570 case 23: | 572 case 23: |
571 recEnd = pos; recKind = 10; | 573 {t.kind = 27; break loop;} |
572 if (ch == '=') {AddCh(); state = 13; break;} | |
573 else {t.kind = 10; break loop;} | |
574 case 24: | 574 case 24: |
575 recEnd = pos; recKind = 14; | |
576 if (ch == '=') {AddCh(); state = 11; break;} | |
577 else {t.kind = 14; break loop;} | |
578 case 25: | |
579 recEnd = pos; recKind = 15; | 575 recEnd = pos; recKind = 15; |
580 if (ch == '=') {AddCh(); state = 12; break;} | 576 if (ch == '=') {AddCh(); state = 12; break;} |
581 else {t.kind = 15; break loop;} | 577 else {t.kind = 15; break loop;} |
578 case 25: | |
579 recEnd = pos; recKind = 16; | |
580 if (ch == '=') {AddCh(); state = 13; break;} | |
581 else {t.kind = 16; break loop;} | |
582 case 26: | |
583 recEnd = pos; recKind = 28; | |
584 if (ch == '=') {AddCh(); state = 14; break;} | |
585 else {t.kind = 28; break loop;} | |
582 | 586 |
583 } | 587 } |
584 } | 588 } |
585 t.val = new String(tval, 0, tlen); | 589 t.val = new String(tval, 0, tlen); |
586 return t; | 590 return t; |