diff options
Spasm can assemble programs on with the new instruction set (#47)
* Use checkout as-is, commit as-is
* Spasm can assemble programs based on the new instruction set
1 files changed, 530 insertions, 191 deletions
| -rw-r--r-- | spasm/src/asm/lexer.cpp | 721 |
diff --git a/spasm/src/asm/lexer.cpp b/spasm/src/asm/lexer.cpp index 86384b3..a012650 100644 --- a/spasm/src/asm/lexer.cpp +++ b/spasm/src/asm/lexer.cpp @@ -1,5 +1,5 @@ -/* Generated by re2c 1.1.1 on Mon Nov 12 23:00:12 2018 */ -#line 1 "spasm/src/asm/lexer.re" +/* Generated by re2c 1.1.1 on Wed Nov 14 19:46:01 2018 */ +#line 1 "lexer.re" #include <iostream> #include "lexer.hpp" @@ -27,11 +27,11 @@ Lexer::~Lexer() bool Lexer::tokenize(TokenStream& ts) { -#line 43 "spasm/src/asm/lexer.re" +#line 43 "lexer.re" while (1) { -#line 41 "spasm/src/asm/lexer.cpp" +#line 41 "lexer.cpp" { char yych; if ((limit - cursor) < 6) @@ -128,21 +128,21 @@ bool Lexer::tokenize(TokenStream& ts) } yy2: ++cursor; -#line 220 "spasm/src/asm/lexer.re" +#line 237 "lexer.re" { - ts.push_token(Token(Token::endinput, lineno)); + ts.push_token(Token(Token::EndInput, lineno)); break; } -#line 125 "spasm/src/asm/lexer.cpp" +#line 125 "lexer.cpp" yy4: ++cursor; yy5: -#line 226 "spasm/src/asm/lexer.re" +#line 243 "lexer.re" { return false; } -#line 133 "spasm/src/asm/lexer.cpp" +#line 133 "lexer.cpp" yy6: ++cursor; if (limit <= cursor) @@ -157,23 +157,24 @@ bool Lexer::tokenize(TokenStream& ts) goto yy8; } yy8: -#line 207 "spasm/src/asm/lexer.re" +#line 224 "lexer.re" { token_start = cursor; continue; } -#line 150 "spasm/src/asm/lexer.cpp" +#line 150 "lexer.cpp" yy9: ++cursor; -#line 213 "spasm/src/asm/lexer.re" +#line 230 "lexer.re" { ++lineno; + token_start = cursor; continue; } -#line 160 "spasm/src/asm/lexer.cpp" +#line 160 "lexer.cpp" yy11: yych = *++cursor; switch (yych) @@ -194,14 +195,17 @@ bool Lexer::tokenize(TokenStream& ts) goto yy13; } yy13: -#line 58 "spasm/src/asm/lexer.re" +#line 58 "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; } -#line 183 "spasm/src/asm/lexer.cpp" +#line 183 "lexer.cpp" yy14: ++cursor; if (limit <= cursor) @@ -299,20 +303,25 @@ bool Lexer::tokenize(TokenStream& ts) goto yy18; } yy18: -#line 199 "spasm/src/asm/lexer.re" +#line 216 "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; } -#line 281 "spasm/src/asm/lexer.cpp" +#line 281 "lexer.cpp" yy19: yych = *++cursor; switch (yych) { case 'd': goto yy31; + case 'l': + goto yy32; default: goto yy17; } @@ -321,7 +330,9 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'a': - goto yy32; + goto yy33; + case 'o': + goto yy34; default: goto yy17; } @@ -330,9 +341,9 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'i': - goto yy33; + goto yy35; case 'u': - goto yy34; + goto yy36; default: goto yy17; } @@ -341,7 +352,7 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'm': - goto yy35; + goto yy37; default: goto yy17; } @@ -350,9 +361,9 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'a': - goto yy36; + goto yy38; case 'e': - goto yy37; + goto yy39; default: goto yy17; } @@ -361,9 +372,9 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'o': - goto yy38; + goto yy40; case 'u': - goto yy39; + goto yy41; default: goto yy17; } @@ -372,11 +383,11 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'o': - goto yy40; + goto yy42; case 'r': - goto yy41; + goto yy43; case 'u': - goto yy42; + goto yy44; default: goto yy17; } @@ -385,7 +396,7 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'e': - goto yy43; + goto yy45; default: goto yy17; } @@ -394,7 +405,7 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'u': - goto yy44; + goto yy46; default: goto yy17; } @@ -427,7 +438,7 @@ bool Lexer::tokenize(TokenStream& ts) case 'd': case 'e': case 'f': - goto yy45; + goto yy47; default: goto yy30; } @@ -439,7 +450,7 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'd': - goto yy48; + goto yy50; default: goto yy17; } @@ -448,7 +459,7 @@ bool Lexer::tokenize(TokenStream& ts) switch (yych) { case 'l': - goto yy50; + goto yy52; default: goto yy17; } @@ -456,8 +467,8 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'v': - goto yy51; + case 'l': + goto yy53; default: goto yy17; } @@ -465,8 +476,8 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'p': - goto yy53; + case 'n': + goto yy54; default: goto yy17; } @@ -474,7 +485,7 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'p': + case 'v': goto yy55; default: goto yy17; @@ -483,7 +494,7 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'b': + case 'p': goto yy57; default: goto yy17; @@ -492,10 +503,8 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'q': - goto yy58; - case 's': - goto yy60; + case 'p': + goto yy59; default: goto yy17; } @@ -503,7 +512,7 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'd': + case 'b': goto yy61; default: goto yy17; @@ -512,8 +521,10 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'l': - goto yy63; + case 'q': + goto yy62; + case 's': + goto yy64; default: goto yy17; } @@ -521,7 +532,7 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'p': + case 'd': goto yy65; default: goto yy17; @@ -530,7 +541,7 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'i': + case 'l': goto yy67; default: goto yy17; @@ -539,8 +550,8 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 's': - goto yy68; + case 'p': + goto yy69; default: goto yy17; } @@ -548,10 +559,8 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'a': - goto yy69; - case 't': - goto yy70; + case 'i': + goto yy71; default: goto yy17; } @@ -559,12 +568,32 @@ bool Lexer::tokenize(TokenStream& ts) yych = *++cursor; switch (yych) { - case 'b': + case 's': goto yy72; default: goto yy17; } yy45: + yych = *++cursor; + switch (yych) + { + case 'a': + goto yy73; + case 't': + goto yy74; + default: + goto yy17; + } + yy46: + yych = *++cursor; + switch (yych) + { + case 'b': + goto yy76; + default: + goto yy17; + } + yy47: ++cursor; if (limit <= cursor) return true; @@ -593,20 +622,23 @@ bool Lexer::tokenize(TokenStream& ts) case 'd': case 'e': case 'f': - goto yy45; - default: goto yy47; + default: + goto yy49; } - yy47: -#line 66 "spasm/src/asm/lexer.re" + yy49: +#line 66 "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 498 "spasm/src/asm/lexer.cpp" - yy48: +#line 512 "lexer.cpp" + yy50: yych = *++cursor; switch (yych) { @@ -675,27 +707,46 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy49; + goto yy51; } - yy49: -#line 109 "spasm/src/asm/lexer.re" + yy51: +#line 120 "lexer.re" { - ts.push_token(Token(Token::plus, lineno)); + ts.push_token(Token(Token::Add, lineno)); + token_start = cursor; continue; } -#line 575 "spasm/src/asm/lexer.cpp" - yy50: +#line 589 "lexer.cpp" + yy52: + yych = *++cursor; + switch (yych) + { + case 'o': + goto yy78; + default: + goto yy17; + } + yy53: yych = *++cursor; switch (yych) { case 'l': - goto yy74; + goto yy79; default: goto yy17; } - yy51: + yy54: + yych = *++cursor; + switch (yych) + { + case 's': + goto yy81; + default: + goto yy17; + } + yy55: yych = *++cursor; switch (yych) { @@ -764,18 +815,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy52; + goto yy56; } - yy52: -#line 130 "spasm/src/asm/lexer.re" + yy56: +#line 141 "lexer.re" { - ts.push_token(Token(Token::divide, lineno)); + ts.push_token(Token(Token::Div, lineno)); + token_start = cursor; continue; } -#line 658 "spasm/src/asm/lexer.cpp" - yy53: +#line 684 "lexer.cpp" + yy57: yych = *++cursor; switch (yych) { @@ -844,18 +896,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy54; + goto yy58; } - yy54: -#line 88 "spasm/src/asm/lexer.re" + yy58: +#line 99 "lexer.re" { - ts.push_token(Token(Token::dup, lineno)); + ts.push_token(Token(Token::Dup, lineno)); + token_start = cursor; continue; } -#line 735 "spasm/src/asm/lexer.cpp" - yy55: +#line 761 "lexer.cpp" + yy59: yych = *++cursor; switch (yych) { @@ -922,31 +975,32 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; case 'f': - goto yy76; + goto yy82; case 't': - goto yy78; + goto yy84; default: - goto yy56; + goto yy60; } - yy56: -#line 158 "spasm/src/asm/lexer.re" + yy60: +#line 169 "lexer.re" { - ts.push_token(Token(Token::jmp, lineno)); + ts.push_token(Token(Token::Jump, lineno)); + token_start = cursor; continue; } -#line 812 "spasm/src/asm/lexer.cpp" - yy57: +#line 838 "lexer.cpp" + yy61: yych = *++cursor; switch (yych) { case 'e': - goto yy80; + goto yy86; default: goto yy17; } - yy58: + yy62: yych = *++cursor; switch (yych) { @@ -1015,27 +1069,28 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy59; + goto yy63; } - yy59: -#line 179 "spasm/src/asm/lexer.re" + yy63: +#line 196 "lexer.re" { - ts.push_token(Token(Token::lesseq, lineno)); + ts.push_token(Token(Token::LessEq, lineno)); + token_start = cursor; continue; } -#line 895 "spasm/src/asm/lexer.cpp" - yy60: +#line 921 "lexer.cpp" + yy64: yych = *++cursor; switch (yych) { case 's': - goto yy81; + goto yy87; default: goto yy17; } - yy61: + yy65: yych = *++cursor; switch (yych) { @@ -1104,18 +1159,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy62; + goto yy66; } - yy62: -#line 137 "spasm/src/asm/lexer.re" + yy66: +#line 148 "lexer.re" { - ts.push_token(Token(Token::modulus, lineno)); + ts.push_token(Token(Token::Mod, lineno)); + token_start = cursor; continue; } -#line 978 "spasm/src/asm/lexer.cpp" - yy63: +#line 1004 "lexer.cpp" + yy67: yych = *++cursor; switch (yych) { @@ -1184,18 +1240,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy64; + goto yy68; } - yy64: -#line 123 "spasm/src/asm/lexer.re" + yy68: +#line 134 "lexer.re" { - ts.push_token(Token(Token::multiply, lineno)); + ts.push_token(Token(Token::Mul, lineno)); + token_start = cursor; continue; } -#line 1055 "spasm/src/asm/lexer.cpp" - yy65: +#line 1081 "lexer.cpp" + yy69: yych = *++cursor; switch (yych) { @@ -1255,7 +1312,6 @@ bool Lexer::tokenize(TokenStream& ts) case 'q': case 'r': case 's': - case 't': case 'u': case 'v': case 'w': @@ -1263,46 +1319,49 @@ bool Lexer::tokenize(TokenStream& ts) case 'y': case 'z': goto yy16; + case 't': + goto yy89; default: - goto yy66; + goto yy70; } - yy66: -#line 81 "spasm/src/asm/lexer.re" + yy70: +#line 86 "lexer.re" { - ts.push_token(Token(Token::pop, lineno)); + ts.push_token(Token(Token::Pop, lineno)); + token_start = cursor; continue; } -#line 1132 "spasm/src/asm/lexer.cpp" - yy67: +#line 1158 "lexer.cpp" + yy71: yych = *++cursor; switch (yych) { case 'n': - goto yy83; + goto yy90; default: goto yy17; } - yy68: + yy72: yych = *++cursor; switch (yych) { case 'h': - goto yy84; + goto yy91; default: goto yy17; } - yy69: + yy73: yych = *++cursor; switch (yych) { case 'd': - goto yy86; + goto yy93; default: goto yy17; } - yy70: + yy74: yych = *++cursor; switch (yych) { @@ -1371,18 +1430,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy71; + goto yy75; } - yy71: -#line 172 "spasm/src/asm/lexer.re" + yy75: +#line 189 "lexer.re" { - ts.push_token(Token(Token::ret, lineno)); + ts.push_token(Token(Token::Ret, lineno)); + token_start = cursor; continue; } -#line 1227 "spasm/src/asm/lexer.cpp" - yy72: +#line 1253 "lexer.cpp" + yy76: yych = *++cursor; switch (yych) { @@ -1451,18 +1511,28 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy73; + goto yy77; } - yy73: -#line 116 "spasm/src/asm/lexer.re" + yy77: +#line 127 "lexer.re" { - ts.push_token(Token(Token::minus, lineno)); + ts.push_token(Token(Token::Sub, lineno)); + token_start = cursor; continue; } -#line 1304 "spasm/src/asm/lexer.cpp" - yy74: +#line 1330 "lexer.cpp" + yy78: + yych = *++cursor; + switch (yych) + { + case 'c': + goto yy95; + default: + goto yy17; + } + yy79: yych = *++cursor; switch (yych) { @@ -1531,18 +1601,28 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy75; + goto yy80; } - yy75: -#line 165 "spasm/src/asm/lexer.re" + yy80: +#line 182 "lexer.re" { - ts.push_token(Token(Token::call, lineno)); + ts.push_token(Token(Token::Call, lineno)); + token_start = cursor; continue; } -#line 1381 "spasm/src/asm/lexer.cpp" - yy76: +#line 1413 "lexer.cpp" + yy81: + yych = *++cursor; + switch (yych) + { + case 't': + goto yy97; + default: + goto yy17; + } + yy82: yych = *++cursor; switch (yych) { @@ -1611,18 +1691,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy77; + goto yy83; } - yy77: -#line 151 "spasm/src/asm/lexer.re" + yy83: +#line 162 "lexer.re" { - ts.push_token(Token(Token::jmpf, lineno)); + ts.push_token(Token(Token::JumpF, lineno)); + token_start = cursor; continue; } -#line 1458 "spasm/src/asm/lexer.cpp" - yy78: +#line 1496 "lexer.cpp" + yy84: yych = *++cursor; switch (yych) { @@ -1691,27 +1772,28 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy79; + goto yy85; } - yy79: -#line 144 "spasm/src/asm/lexer.re" + yy85: +#line 155 "lexer.re" { - ts.push_token(Token(Token::jmpt, lineno)); + ts.push_token(Token(Token::JumpT, lineno)); + token_start = cursor; continue; } -#line 1535 "spasm/src/asm/lexer.cpp" - yy80: +#line 1573 "lexer.cpp" + yy86: yych = *++cursor; switch (yych) { case 'l': - goto yy88; + goto yy99; default: goto yy17; } - yy81: + yy87: yych = *++cursor; switch (yych) { @@ -1780,27 +1862,37 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy82; + goto yy88; } - yy82: -#line 185 "spasm/src/asm/lexer.re" + yy88: +#line 202 "lexer.re" { - ts.push_token(Token(Token::less, lineno)); + ts.push_token(Token(Token::Less, lineno)); + token_start = cursor; continue; } -#line 1618 "spasm/src/asm/lexer.cpp" - yy83: +#line 1656 "lexer.cpp" + yy89: + yych = *++cursor; + switch (yych) + { + case 'o': + goto yy101; + default: + goto yy17; + } + yy90: yych = *++cursor; switch (yych) { case 't': - goto yy90; + goto yy103; default: goto yy17; } - yy84: + yy91: yych = *++cursor; switch (yych) { @@ -1869,18 +1961,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy85; + goto yy92; } - yy85: -#line 74 "spasm/src/asm/lexer.re" + yy92: +#line 74 "lexer.re" { - ts.push_token(Token(Token::push, lineno)); + ts.push_token(Token(Token::Push, lineno)); + token_start = cursor; continue; } -#line 1701 "spasm/src/asm/lexer.cpp" - yy86: +#line 1745 "lexer.cpp" + yy93: yych = *++cursor; switch (yych) { @@ -1949,18 +2042,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy87; + goto yy94; } - yy87: -#line 95 "spasm/src/asm/lexer.re" + yy94: +#line 106 "lexer.re" { - ts.push_token(Token(Token::read, lineno)); + ts.push_token(Token(Token::Read, lineno)); + token_start = cursor; continue; } -#line 1778 "spasm/src/asm/lexer.cpp" - yy88: +#line 1822 "lexer.cpp" + yy95: yych = *++cursor; switch (yych) { @@ -2029,18 +2123,19 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy89; + goto yy96; } - yy89: -#line 192 "spasm/src/asm/lexer.re" + yy96: +#line 80 "lexer.re" { - ts.push_token(Token(Token::label, lineno)); + ts.push_token(Token(Token::Alloc, lineno)); + token_start = cursor; continue; } -#line 1855 "spasm/src/asm/lexer.cpp" - yy90: +#line 1899 "lexer.cpp" + yy97: yych = *++cursor; switch (yych) { @@ -2109,19 +2204,263 @@ bool Lexer::tokenize(TokenStream& ts) case 'z': goto yy16; default: - goto yy91; + goto yy98; } - yy91: -#line 102 "spasm/src/asm/lexer.re" + yy98: +#line 175 "lexer.re" + { + ts.push_token(Token(Token::Const, lineno)); + + token_start = cursor; + + continue; + } +#line 1976 "lexer.cpp" + yy99: + 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': + 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 yy100; + } + yy100: +#line 209 "lexer.re" + { + ts.push_token(Token(Token::Label, lineno)); + + token_start = cursor; + + continue; + } +#line 2053 "lexer.cpp" + yy101: + 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': + 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 yy102; + } + yy102: +#line 92 "lexer.re" { - ts.push_token(Token(Token::print, lineno)); + ts.push_token(Token(Token::PopTo, lineno)); + + token_start = cursor; + + continue; + } +#line 2130 "lexer.cpp" + yy103: + 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': + 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 yy104; + } + yy104: +#line 113 "lexer.re" + { + ts.push_token(Token(Token::Print, lineno)); + token_start = cursor; continue; } -#line 1932 "spasm/src/asm/lexer.cpp" +#line 2207 "lexer.cpp" } -#line 230 "spasm/src/asm/lexer.re" +#line 247 "lexer.re" } return true; } |
