Website Summary Files Commits Branches @commit @diff @stats
path: root / spasm / src / asm / lexer.cpp
diff options
context:
space:
mode:
Commitd7b2e339ff06c64bcb1322eec396d4995da6b17a (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-15 10:11:01 +0200
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-15 10:16:21 +0200
Filesace7bdc0df3791b6db8878d52ba98cb368e180b8 /spasm/src/asm/lexer.cpp
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.tar
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.tar.gz
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.zip
Parentfb7e4dbb3ec65de00987f2ccfc6d29ebfcec12c7 (diff)
Implemented push and pop with numbers
1 files changed, 538 insertions, 270 deletions
-rw-r--r--spasm/src/asm/lexer.cpp808
diff --git a/spasm/src/asm/lexer.cpp b/spasm/src/asm/lexer.cpp
index a012650..3af83c7 100644
--- a/spasm/src/asm/lexer.cpp
+++ b/spasm/src/asm/lexer.cpp
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.1.1 on Wed Nov 14 19:46:01 2018 */
+/* Generated by re2c 1.1.1 on Thu Nov 15 10:01:26 2018 */
#line 1 "lexer.re"
#include <iostream>
@@ -128,7 +128,7 @@ bool Lexer::tokenize(TokenStream& ts)
}
yy2:
++cursor;
-#line 237 "lexer.re"
+#line 254 "lexer.re"
{
ts.push_token(Token(Token::EndInput, lineno));
@@ -138,7 +138,7 @@ bool Lexer::tokenize(TokenStream& ts)
yy4:
++cursor;
yy5:
-#line 243 "lexer.re"
+#line 260 "lexer.re"
{
return false;
}
@@ -157,7 +157,7 @@ bool Lexer::tokenize(TokenStream& ts)
goto yy8;
}
yy8:
-#line 224 "lexer.re"
+#line 241 "lexer.re"
{
token_start = cursor;
@@ -166,10 +166,9 @@ bool Lexer::tokenize(TokenStream& ts)
#line 150 "lexer.cpp"
yy9:
++cursor;
-#line 230 "lexer.re"
+#line 247 "lexer.re"
{
++lineno;
-
token_start = cursor;
continue;
@@ -195,12 +194,9 @@ bool Lexer::tokenize(TokenStream& ts)
goto yy13;
}
yy13:
-#line 58 "lexer.re"
+#line 59 "lexer.re"
{
- ts.push_token(Token(Token::Integer, lineno,
-
- token_start, cursor));
-
+ ts.push_token(Token(Token::Integer, lineno, token_start, cursor));
token_start = cursor;
continue;
@@ -303,12 +299,9 @@ bool Lexer::tokenize(TokenStream& ts)
goto yy18;
}
yy18:
-#line 216 "lexer.re"
+#line 233 "lexer.re"
{
- ts.push_token(Token(Token::Ident, lineno, token_start,
-
- cursor));
-
+ ts.push_token(Token(Token::Ident, lineno, token_start, cursor));
token_start = cursor;
continue;
@@ -318,10 +311,20 @@ bool Lexer::tokenize(TokenStream& ts)
yych = *++cursor;
switch (yych)
{
- case 'd':
+ case '0':
goto yy31;
- case 'l':
- goto yy32;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ goto yy33;
+ case 'd':
+ goto yy35;
default:
goto yy17;
}
@@ -330,9 +333,9 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'a':
- goto yy33;
+ goto yy36;
case 'o':
- goto yy34;
+ goto yy37;
default:
goto yy17;
}
@@ -341,9 +344,9 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'i':
- goto yy35;
+ goto yy38;
case 'u':
- goto yy36;
+ goto yy39;
default:
goto yy17;
}
@@ -352,7 +355,7 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'm':
- goto yy37;
+ goto yy40;
default:
goto yy17;
}
@@ -361,9 +364,9 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'a':
- goto yy38;
+ goto yy41;
case 'e':
- goto yy39;
+ goto yy42;
default:
goto yy17;
}
@@ -372,9 +375,9 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'o':
- goto yy40;
+ goto yy43;
case 'u':
- goto yy41;
+ goto yy44;
default:
goto yy17;
}
@@ -383,11 +386,11 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'o':
- goto yy42;
+ goto yy45;
case 'r':
- goto yy43;
+ goto yy46;
case 'u':
- goto yy44;
+ goto yy47;
default:
goto yy17;
}
@@ -395,8 +398,20 @@ bool Lexer::tokenize(TokenStream& ts)
yych = *++cursor;
switch (yych)
{
+ case '0':
+ goto yy48;
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ goto yy50;
case 'e':
- goto yy45;
+ goto yy52;
default:
goto yy17;
}
@@ -405,7 +420,7 @@ bool Lexer::tokenize(TokenStream& ts)
switch (yych)
{
case 'u':
- goto yy46;
+ goto yy53;
default:
goto yy17;
}
@@ -438,7 +453,7 @@ bool Lexer::tokenize(TokenStream& ts)
case 'd':
case 'e':
case 'f':
- goto yy47;
+ goto yy54;
default:
goto yy30;
}
@@ -449,151 +464,454 @@ bool Lexer::tokenize(TokenStream& ts)
yych = *++cursor;
switch (yych)
{
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '_':
+ case 'a':
+ case 'b':
+ case 'c':
case 'd':
- goto yy50;
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z':
+ goto yy16;
default:
- goto yy17;
+ goto yy32;
}
yy32:
- yych = *++cursor;
+#line 74 "lexer.re"
+ {
+ Token t(Token::Integer, lineno, token_start + 1, cursor);
+ t.set_int(-t.value_int());
+ ts.push_token(t);
+ token_start = cursor;
+ continue;
+ }
+#line 473 "lexer.cpp"
+ yy33:
+ ++cursor;
+ if (limit <= cursor)
+ return true;
+ yych = *cursor;
switch (yych)
{
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ goto yy33;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '_':
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
case 'l':
- goto yy52;
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z':
+ goto yy16;
+ default:
+ goto yy32;
+ }
+ yy35:
+ yych = *++cursor;
+ switch (yych)
+ {
+ case 'd':
+ goto yy57;
default:
goto yy17;
}
- yy33:
+ yy36:
yych = *++cursor;
switch (yych)
{
case 'l':
- goto yy53;
+ goto yy59;
default:
goto yy17;
}
- yy34:
+ yy37:
yych = *++cursor;
switch (yych)
{
case 'n':
- goto yy54;
+ goto yy60;
default:
goto yy17;
}
- yy35:
+ yy38:
yych = *++cursor;
switch (yych)
{
case 'v':
- goto yy55;
+ goto yy61;
default:
goto yy17;
}
- yy36:
+ yy39:
yych = *++cursor;
switch (yych)
{
case 'p':
- goto yy57;
+ goto yy63;
default:
goto yy17;
}
- yy37:
+ yy40:
yych = *++cursor;
switch (yych)
{
case 'p':
- goto yy59;
+ goto yy65;
default:
goto yy17;
}
- yy38:
+ yy41:
yych = *++cursor;
switch (yych)
{
case 'b':
- goto yy61;
+ goto yy67;
default:
goto yy17;
}
- yy39:
+ yy42:
yych = *++cursor;
switch (yych)
{
case 'q':
- goto yy62;
+ goto yy68;
case 's':
- goto yy64;
+ goto yy70;
default:
goto yy17;
}
- yy40:
+ yy43:
yych = *++cursor;
switch (yych)
{
case 'd':
- goto yy65;
+ goto yy71;
default:
goto yy17;
}
- yy41:
+ yy44:
yych = *++cursor;
switch (yych)
{
case 'l':
- goto yy67;
+ goto yy73;
default:
goto yy17;
}
- yy42:
+ yy45:
yych = *++cursor;
switch (yych)
{
case 'p':
- goto yy69;
+ goto yy75;
default:
goto yy17;
}
- yy43:
+ yy46:
yych = *++cursor;
switch (yych)
{
case 'i':
- goto yy71;
+ goto yy77;
default:
goto yy17;
}
- yy44:
+ yy47:
yych = *++cursor;
switch (yych)
{
case 's':
- goto yy72;
+ goto yy78;
default:
goto yy17;
}
- yy45:
+ yy48:
yych = *++cursor;
switch (yych)
{
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '_':
case 'a':
- goto yy73;
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
case 't':
- goto yy74;
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z':
+ goto yy16;
+ default:
+ goto yy49;
+ }
+ yy49:
+#line 67 "lexer.re"
+ {
+ ts.push_token(
+ Token(Token::Integer, lineno, token_start + 1, cursor));
+ token_start = cursor;
+
+ continue;
+ }
+#line 700 "lexer.cpp"
+ yy50:
+ ++cursor;
+ if (limit <= cursor)
+ return true;
+ yych = *cursor;
+ switch (yych)
+ {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ goto yy50;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ case '_':
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z':
+ goto yy16;
+ default:
+ goto yy49;
+ }
+ yy52:
+ yych = *++cursor;
+ switch (yych)
+ {
+ case 'a':
+ goto yy79;
+ case 't':
+ goto yy80;
default:
goto yy17;
}
- yy46:
+ yy53:
yych = *++cursor;
switch (yych)
{
case 'b':
- goto yy76;
+ goto yy82;
default:
goto yy17;
}
- yy47:
+ yy54:
++cursor;
if (limit <= cursor)
return true;
@@ -622,23 +940,20 @@ bool Lexer::tokenize(TokenStream& ts)
case 'd':
case 'e':
case 'f':
- goto yy47;
+ goto yy54;
default:
- goto yy49;
+ goto yy56;
}
- yy49:
-#line 66 "lexer.re"
+ yy56:
+#line 83 "lexer.re"
{
- ts.push_token(Token(Token::XInteger, lineno,
-
- token_start, cursor));
-
+ ts.push_token(Token(Token::XInteger, lineno, token_start, cursor));
token_start = cursor;
continue;
}
-#line 512 "lexer.cpp"
- yy50:
+#line 822 "lexer.cpp"
+ yy57:
yych = *++cursor;
switch (yych)
{
@@ -707,46 +1022,36 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy51;
+ goto yy58;
}
- yy51:
-#line 120 "lexer.re"
+ yy58:
+#line 137 "lexer.re"
{
ts.push_token(Token(Token::Add, lineno));
-
token_start = cursor;
continue;
}
-#line 589 "lexer.cpp"
- yy52:
- yych = *++cursor;
- switch (yych)
- {
- case 'o':
- goto yy78;
- default:
- goto yy17;
- }
- yy53:
+#line 899 "lexer.cpp"
+ yy59:
yych = *++cursor;
switch (yych)
{
case 'l':
- goto yy79;
+ goto yy84;
default:
goto yy17;
}
- yy54:
+ yy60:
yych = *++cursor;
switch (yych)
{
case 's':
- goto yy81;
+ goto yy86;
default:
goto yy17;
}
- yy55:
+ yy61:
yych = *++cursor;
switch (yych)
{
@@ -815,19 +1120,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy56;
+ goto yy62;
}
- yy56:
-#line 141 "lexer.re"
+ yy62:
+#line 158 "lexer.re"
{
ts.push_token(Token(Token::Div, lineno));
-
token_start = cursor;
continue;
}
-#line 684 "lexer.cpp"
- yy57:
+#line 988 "lexer.cpp"
+ yy63:
yych = *++cursor;
switch (yych)
{
@@ -896,19 +1200,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy58;
+ goto yy64;
}
- yy58:
-#line 99 "lexer.re"
+ yy64:
+#line 116 "lexer.re"
{
ts.push_token(Token(Token::Dup, lineno));
-
token_start = cursor;
continue;
}
-#line 761 "lexer.cpp"
- yy59:
+#line 1065 "lexer.cpp"
+ yy65:
yych = *++cursor;
switch (yych)
{
@@ -975,32 +1278,31 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
case 'f':
- goto yy82;
+ goto yy87;
case 't':
- goto yy84;
+ goto yy89;
default:
- goto yy60;
+ goto yy66;
}
- yy60:
-#line 169 "lexer.re"
+ yy66:
+#line 186 "lexer.re"
{
ts.push_token(Token(Token::Jump, lineno));
-
token_start = cursor;
continue;
}
-#line 838 "lexer.cpp"
- yy61:
+#line 1142 "lexer.cpp"
+ yy67:
yych = *++cursor;
switch (yych)
{
case 'e':
- goto yy86;
+ goto yy91;
default:
goto yy17;
}
- yy62:
+ yy68:
yych = *++cursor;
switch (yych)
{
@@ -1069,28 +1371,27 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy63;
+ goto yy69;
}
- yy63:
-#line 196 "lexer.re"
+ yy69:
+#line 213 "lexer.re"
{
ts.push_token(Token(Token::LessEq, lineno));
-
token_start = cursor;
continue;
}
-#line 921 "lexer.cpp"
- yy64:
+#line 1225 "lexer.cpp"
+ yy70:
yych = *++cursor;
switch (yych)
{
case 's':
- goto yy87;
+ goto yy92;
default:
goto yy17;
}
- yy65:
+ yy71:
yych = *++cursor;
switch (yych)
{
@@ -1159,19 +1460,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy66;
+ goto yy72;
}
- yy66:
-#line 148 "lexer.re"
+ yy72:
+#line 165 "lexer.re"
{
ts.push_token(Token(Token::Mod, lineno));
-
token_start = cursor;
continue;
}
-#line 1004 "lexer.cpp"
- yy67:
+#line 1308 "lexer.cpp"
+ yy73:
yych = *++cursor;
switch (yych)
{
@@ -1240,19 +1540,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy68;
+ goto yy74;
}
- yy68:
-#line 134 "lexer.re"
+ yy74:
+#line 151 "lexer.re"
{
ts.push_token(Token(Token::Mul, lineno));
-
token_start = cursor;
continue;
}
-#line 1081 "lexer.cpp"
- yy69:
+#line 1385 "lexer.cpp"
+ yy75:
yych = *++cursor;
switch (yych)
{
@@ -1310,8 +1609,8 @@ bool Lexer::tokenize(TokenStream& ts)
case 'o':
case 'p':
case 'q':
- case 'r':
case 's':
+ case 't':
case 'u':
case 'v':
case 'w':
@@ -1319,49 +1618,48 @@ bool Lexer::tokenize(TokenStream& ts)
case 'y':
case 'z':
goto yy16;
- case 't':
- goto yy89;
+ case 'r':
+ goto yy94;
default:
- goto yy70;
+ goto yy76;
}
- yy70:
-#line 86 "lexer.re"
+ yy76:
+#line 103 "lexer.re"
{
ts.push_token(Token(Token::Pop, lineno));
-
token_start = cursor;
continue;
}
-#line 1158 "lexer.cpp"
- yy71:
+#line 1462 "lexer.cpp"
+ yy77:
yych = *++cursor;
switch (yych)
{
case 'n':
- goto yy90;
+ goto yy96;
default:
goto yy17;
}
- yy72:
+ yy78:
yych = *++cursor;
switch (yych)
{
case 'h':
- goto yy91;
+ goto yy97;
default:
goto yy17;
}
- yy73:
+ yy79:
yych = *++cursor;
switch (yych)
{
case 'd':
- goto yy93;
+ goto yy99;
default:
goto yy17;
}
- yy74:
+ yy80:
yych = *++cursor;
switch (yych)
{
@@ -1430,19 +1728,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy75;
+ goto yy81;
}
- yy75:
-#line 189 "lexer.re"
+ yy81:
+#line 206 "lexer.re"
{
ts.push_token(Token(Token::Ret, lineno));
-
token_start = cursor;
continue;
}
-#line 1253 "lexer.cpp"
- yy76:
+#line 1557 "lexer.cpp"
+ yy82:
yych = *++cursor;
switch (yych)
{
@@ -1511,28 +1808,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy77;
+ goto yy83;
}
- yy77:
-#line 127 "lexer.re"
+ yy83:
+#line 144 "lexer.re"
{
ts.push_token(Token(Token::Sub, lineno));
-
token_start = cursor;
continue;
}
-#line 1330 "lexer.cpp"
- yy78:
- yych = *++cursor;
- switch (yych)
- {
- case 'c':
- goto yy95;
- default:
- goto yy17;
- }
- yy79:
+#line 1634 "lexer.cpp"
+ yy84:
yych = *++cursor;
switch (yych)
{
@@ -1601,28 +1888,27 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy80;
+ goto yy85;
}
- yy80:
-#line 182 "lexer.re"
+ yy85:
+#line 199 "lexer.re"
{
ts.push_token(Token(Token::Call, lineno));
-
token_start = cursor;
continue;
}
-#line 1413 "lexer.cpp"
- yy81:
+#line 1711 "lexer.cpp"
+ yy86:
yych = *++cursor;
switch (yych)
{
case 't':
- goto yy97;
+ goto yy101;
default:
goto yy17;
}
- yy82:
+ yy87:
yych = *++cursor;
switch (yych)
{
@@ -1691,19 +1977,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy83;
+ goto yy88;
}
- yy83:
-#line 162 "lexer.re"
+ yy88:
+#line 179 "lexer.re"
{
ts.push_token(Token(Token::JumpF, lineno));
-
token_start = cursor;
continue;
}
-#line 1496 "lexer.cpp"
- yy84:
+#line 1794 "lexer.cpp"
+ yy89:
yych = *++cursor;
switch (yych)
{
@@ -1772,28 +2057,27 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy85;
+ goto yy90;
}
- yy85:
-#line 155 "lexer.re"
+ yy90:
+#line 172 "lexer.re"
{
ts.push_token(Token(Token::JumpT, lineno));
-
token_start = cursor;
continue;
}
-#line 1573 "lexer.cpp"
- yy86:
+#line 1871 "lexer.cpp"
+ yy91:
yych = *++cursor;
switch (yych)
{
case 'l':
- goto yy99;
+ goto yy103;
default:
goto yy17;
}
- yy87:
+ yy92:
yych = *++cursor;
switch (yych)
{
@@ -1862,37 +2146,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy88;
+ goto yy93;
}
- yy88:
-#line 202 "lexer.re"
+ yy93:
+#line 219 "lexer.re"
{
ts.push_token(Token(Token::Less, lineno));
-
token_start = cursor;
continue;
}
-#line 1656 "lexer.cpp"
- yy89:
- yych = *++cursor;
- switch (yych)
- {
- case 'o':
- goto yy101;
- default:
- goto yy17;
- }
- yy90:
- yych = *++cursor;
- switch (yych)
- {
- case 't':
- goto yy103;
- default:
- goto yy17;
- }
- yy91:
+#line 1954 "lexer.cpp"
+ yy94:
yych = *++cursor;
switch (yych)
{
@@ -1961,19 +2226,27 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy92;
+ goto yy95;
}
- yy92:
-#line 74 "lexer.re"
+ yy95:
+#line 109 "lexer.re"
{
- ts.push_token(Token(Token::Push, lineno));
-
+ ts.push_token(Token(Token::PopTo, lineno));
token_start = cursor;
continue;
}
-#line 1745 "lexer.cpp"
- yy93:
+#line 2031 "lexer.cpp"
+ yy96:
+ yych = *++cursor;
+ switch (yych)
+ {
+ case 't':
+ goto yy105;
+ default:
+ goto yy17;
+ }
+ yy97:
yych = *++cursor;
switch (yych)
{
@@ -2031,7 +2304,6 @@ bool Lexer::tokenize(TokenStream& ts)
case 'o':
case 'p':
case 'q':
- case 'r':
case 's':
case 't':
case 'u':
@@ -2041,20 +2313,21 @@ bool Lexer::tokenize(TokenStream& ts)
case 'y':
case 'z':
goto yy16;
+ case 'r':
+ goto yy107;
default:
- goto yy94;
+ goto yy98;
}
- yy94:
-#line 106 "lexer.re"
+ yy98:
+#line 97 "lexer.re"
{
- ts.push_token(Token(Token::Read, lineno));
-
+ ts.push_token(Token(Token::Push, lineno));
token_start = cursor;
continue;
}
-#line 1822 "lexer.cpp"
- yy95:
+#line 2114 "lexer.cpp"
+ yy99:
yych = *++cursor;
switch (yych)
{
@@ -2123,19 +2396,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy96;
+ goto yy100;
}
- yy96:
-#line 80 "lexer.re"
+ yy100:
+#line 123 "lexer.re"
{
- ts.push_token(Token(Token::Alloc, lineno));
-
+ ts.push_token(Token(Token::Read, lineno));
token_start = cursor;
continue;
}
-#line 1899 "lexer.cpp"
- yy97:
+#line 2191 "lexer.cpp"
+ yy101:
yych = *++cursor;
switch (yych)
{
@@ -2204,19 +2476,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy98;
+ goto yy102;
}
- yy98:
-#line 175 "lexer.re"
+ yy102:
+#line 192 "lexer.re"
{
ts.push_token(Token(Token::Const, lineno));
-
token_start = cursor;
continue;
}
-#line 1976 "lexer.cpp"
- yy99:
+#line 2268 "lexer.cpp"
+ yy103:
yych = *++cursor;
switch (yych)
{
@@ -2285,19 +2556,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy100;
+ goto yy104;
}
- yy100:
-#line 209 "lexer.re"
+ yy104:
+#line 226 "lexer.re"
{
ts.push_token(Token(Token::Label, lineno));
-
token_start = cursor;
continue;
}
-#line 2053 "lexer.cpp"
- yy101:
+#line 2345 "lexer.cpp"
+ yy105:
yych = *++cursor;
switch (yych)
{
@@ -2366,19 +2636,18 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy102;
+ goto yy106;
}
- yy102:
-#line 92 "lexer.re"
+ yy106:
+#line 130 "lexer.re"
{
- ts.push_token(Token(Token::PopTo, lineno));
-
+ ts.push_token(Token(Token::Print, lineno));
token_start = cursor;
continue;
}
-#line 2130 "lexer.cpp"
- yy103:
+#line 2422 "lexer.cpp"
+ yy107:
yych = *++cursor;
switch (yych)
{
@@ -2447,20 +2716,19 @@ bool Lexer::tokenize(TokenStream& ts)
case 'z':
goto yy16;
default:
- goto yy104;
+ goto yy108;
}
- yy104:
-#line 113 "lexer.re"
+ yy108:
+#line 91 "lexer.re"
{
- ts.push_token(Token(Token::Print, lineno));
-
+ ts.push_token(Token(Token::PushFrom, lineno));
token_start = cursor;
continue;
}
-#line 2207 "lexer.cpp"
+#line 2499 "lexer.cpp"
}
-#line 247 "lexer.re"
+#line 264 "lexer.re"
}
return true;
}