|
|
|
@ -1,17 +1,17 @@ |
|
|
|
|
|
|
|
|
|
#line 1 "lel_parser.rl" |
|
|
|
|
#include "lel.hpp" |
|
|
|
|
#line 1 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
#include "guecs/lel.hpp" |
|
|
|
|
#include <fmt/core.h> |
|
|
|
|
#include <iostream> |
|
|
|
|
|
|
|
|
|
namespace lel { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 41 "lel_parser.rl" |
|
|
|
|
#line 41 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 10 "lel_parser.cpp" |
|
|
|
|
#line 10 ".\\src\\guecs\\lel_parser.cpp" |
|
|
|
|
static const char _Parser_actions[] = { |
|
|
|
|
0, 1, 1, 1, 2, 1, 3, 1,
|
|
|
|
|
4, 1, 5, 1, 6, 1, 9, 1,
|
|
|
|
@ -84,7 +84,7 @@ static const int Parser_error = 0; |
|
|
|
|
static const int Parser_en_main = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 44 "lel_parser.rl" |
|
|
|
|
#line 44 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
|
|
|
|
|
bool Parser::parse(std::string input) { |
|
|
|
|
reset(); |
|
|
|
@ -96,14 +96,14 @@ bool Parser::parse(std::string input) { |
|
|
|
|
std::string tk; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 91 "lel_parser.cpp" |
|
|
|
|
#line 91 ".\\src\\guecs\\lel_parser.cpp" |
|
|
|
|
{ |
|
|
|
|
cs = Parser_start; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line 55 "lel_parser.rl" |
|
|
|
|
#line 55 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
|
|
|
|
|
#line 94 "lel_parser.cpp" |
|
|
|
|
#line 94 ".\\src\\guecs\\lel_parser.cpp" |
|
|
|
|
{ |
|
|
|
|
int _klen; |
|
|
|
|
unsigned int _trans; |
|
|
|
@ -178,62 +178,62 @@ _match: |
|
|
|
|
switch ( *_acts++ ) |
|
|
|
|
{ |
|
|
|
|
case 0: |
|
|
|
|
#line 11 "lel_parser.rl" |
|
|
|
|
#line 11 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{tk = input.substr(start - begin, p - start); } |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
#line 13 "lel_parser.rl" |
|
|
|
|
#line 13 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{} |
|
|
|
|
break; |
|
|
|
|
case 2: |
|
|
|
|
#line 14 "lel_parser.rl" |
|
|
|
|
#line 14 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ grid.push_back(Row()); } |
|
|
|
|
break; |
|
|
|
|
case 3: |
|
|
|
|
#line 15 "lel_parser.rl" |
|
|
|
|
#line 15 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.bottom = (*p) == '.'; } |
|
|
|
|
break; |
|
|
|
|
case 4: |
|
|
|
|
#line 16 "lel_parser.rl" |
|
|
|
|
#line 16 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ id(input.substr(start - begin, p - start)); } |
|
|
|
|
break; |
|
|
|
|
case 5: |
|
|
|
|
#line 17 "lel_parser.rl" |
|
|
|
|
#line 17 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.col = 0; cur.row++; } |
|
|
|
|
break; |
|
|
|
|
case 6: |
|
|
|
|
#line 18 "lel_parser.rl" |
|
|
|
|
#line 18 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.right = (*p) == '>'; } |
|
|
|
|
break; |
|
|
|
|
case 7: |
|
|
|
|
#line 19 "lel_parser.rl" |
|
|
|
|
#line 19 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{cur.max_w = std::stoi(tk); } |
|
|
|
|
break; |
|
|
|
|
case 8: |
|
|
|
|
#line 20 "lel_parser.rl" |
|
|
|
|
#line 20 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.max_h = std::stoi(tk); } |
|
|
|
|
break; |
|
|
|
|
case 9: |
|
|
|
|
#line 21 "lel_parser.rl" |
|
|
|
|
#line 21 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.expand = true; } |
|
|
|
|
break; |
|
|
|
|
case 10: |
|
|
|
|
#line 22 "lel_parser.rl" |
|
|
|
|
#line 22 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.center = true; } |
|
|
|
|
break; |
|
|
|
|
case 11: |
|
|
|
|
#line 23 "lel_parser.rl" |
|
|
|
|
#line 23 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ cur.percent = true; } |
|
|
|
|
break; |
|
|
|
|
case 12: |
|
|
|
|
#line 33 "lel_parser.rl" |
|
|
|
|
#line 33 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{ start = p; } |
|
|
|
|
break; |
|
|
|
|
case 13: |
|
|
|
|
#line 36 "lel_parser.rl" |
|
|
|
|
#line 36 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
{start = p;} |
|
|
|
|
break; |
|
|
|
|
#line 209 "lel_parser.cpp" |
|
|
|
|
#line 209 ".\\src\\guecs\\lel_parser.cpp" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -246,7 +246,7 @@ _again: |
|
|
|
|
_out: {} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#line 56 "lel_parser.rl" |
|
|
|
|
#line 56 ".\\src\\guecs\\lel_parser.rl" |
|
|
|
|
|
|
|
|
|
bool good = pe - p == 0; |
|
|
|
|
if(good) { |