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;