HyperDbg/hyperdbg/script-engine/parse-table.c
2021-06-10 17:33:05 +04:30

1234 lines
88 KiB
C

#include "pch.h"
const struct _TOKEN Lhs[RULES_COUNT] =
{
{NON_TERMINAL, "S"},
{NON_TERMINAL, "S"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "STATEMENT"},
{NON_TERMINAL, "ASSIGN_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "CALL_FUNC_STATEMENT"},
{NON_TERMINAL, "VA"},
{NON_TERMINAL, "VA"},
{NON_TERMINAL, "IF_STATEMENT"},
{NON_TERMINAL, "ELSIF_STATEMENT"},
{NON_TERMINAL, "ELSIF_STATEMENT"},
{NON_TERMINAL, "ELSIF_STATEMENT'"},
{NON_TERMINAL, "ELSE_STATEMENT"},
{NON_TERMINAL, "ELSE_STATEMENT"},
{NON_TERMINAL, "END_OF_IF"},
{NON_TERMINAL, "WHILE_STATEMENT"},
{NON_TERMINAL, "DO_WHILE_STATEMENT"},
{NON_TERMINAL, "FOR_STATEMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT"},
{NON_TERMINAL, "SIMPLE_ASSIGNMENT'"},
{NON_TERMINAL, "INC_DEC"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "INC'"},
{NON_TERMINAL, "DEC'"},
{NON_TERMINAL, "INC_DEC'"},
{NON_TERMINAL, "BOOLEAN_EXPRESSION"},
{NON_TERMINAL, "EXPRESSION"},
{NON_TERMINAL, "E0'"},
{NON_TERMINAL, "E0'"},
{NON_TERMINAL, "E1"},
{NON_TERMINAL, "E1'"},
{NON_TERMINAL, "E1'"},
{NON_TERMINAL, "E2"},
{NON_TERMINAL, "E2'"},
{NON_TERMINAL, "E2'"},
{NON_TERMINAL, "E3"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E4"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E6"},
{NON_TERMINAL, "E6'"},
{NON_TERMINAL, "E6'"},
{NON_TERMINAL, "E7"},
{NON_TERMINAL, "E7'"},
{NON_TERMINAL, "E7'"},
{NON_TERMINAL, "E8"},
{NON_TERMINAL, "E8'"},
{NON_TERMINAL, "E8'"},
{NON_TERMINAL, "E9"},
{NON_TERMINAL, "E9'"},
{NON_TERMINAL, "E9'"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E13"},
{NON_TERMINAL, "STRING"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "L_VALUE"},
{NON_TERMINAL, "NULL"}};
const struct _TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN] =
{
{{NON_TERMINAL, "STATEMENT"}, {NON_TERMINAL, "S"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "IF_STATEMENT"}},
{{NON_TERMINAL, "WHILE_STATEMENT"}},
{{NON_TERMINAL, "DO_WHILE_STATEMENT"}},
{{NON_TERMINAL, "FOR_STATEMENT"}},
{{NON_TERMINAL, "ASSIGN_STATEMENT"}, {SPECIAL_TOKEN, ";"}},
{{NON_TERMINAL, "CALL_FUNC_STATEMENT"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "break"}, {SEMANTIC_RULE, "@BREAK"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "continue"}, {SEMANTIC_RULE, "@CONTINUE"}, {SPECIAL_TOKEN, ";"}},
{{NON_TERMINAL, "L_VALUE"}, {SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {NON_TERMINAL, "NULL"}},
{{KEYWORD, "print"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@PRINT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "formats"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@FORMATS"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "disableevent"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DISABLEEVENT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "enableevent"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@ENABLEEVENT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "printf"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "STRING"}, {SEMANTIC_RULE, "@VARGSTART"}, {NON_TERMINAL, "VA"}, {SEMANTIC_RULE, "@PRINTF"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "pause"}, {SPECIAL_TOKEN, "("}, {SEMANTIC_RULE, "@PAUSE"}, {SPECIAL_TOKEN, ")"}},
{{SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {NON_TERMINAL, "VA"}},
{{EPSILON, "eps"}},
{{KEYWORD, "if"}, {SEMANTIC_RULE, "@START_OF_IF"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@JZ"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S"}, {SPECIAL_TOKEN, "}"}, {NON_TERMINAL, "ELSIF_STATEMENT"}, {NON_TERMINAL, "ELSE_STATEMENT"}, {SEMANTIC_RULE, "@END_OF_IF"}, {NON_TERMINAL, "END_OF_IF"}},
{{KEYWORD, "elsif"}, {SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@JZ"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S"}, {SPECIAL_TOKEN, "}"}, {NON_TERMINAL, "ELSIF_STATEMENT"}},
{{SEMANTIC_RULE, "@JMP_TO_END_AND_JZCOMPLETED"}, {NON_TERMINAL, "ELSIF_STATEMENT'"}},
{{EPSILON, "eps"}},
{{KEYWORD, "else"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S"}, {SPECIAL_TOKEN, "}"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{KEYWORD, "while"}, {SEMANTIC_RULE, "@START_OF_WHILE"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@START_OF_WHILE_COMMANDS"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S"}, {SEMANTIC_RULE, "@END_OF_WHILE"}, {SPECIAL_TOKEN, "}"}},
{{KEYWORD, "do"}, {SEMANTIC_RULE, "@START_OF_DO_WHILE"}, {SPECIAL_TOKEN, "{"}, {NON_TERMINAL, "S"}, {SPECIAL_TOKEN, "}"}, {KEYWORD, "while"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@END_OF_DO_WHILE"}, {SPECIAL_TOKEN, ";"}},
{{KEYWORD, "for"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "SIMPLE_ASSIGNMENT"}, {SPECIAL_TOKEN, ";"}, {SEMANTIC_RULE, "@START_OF_FOR"}, {NON_TERMINAL, "BOOLEAN_EXPRESSION"}, {SPECIAL_TOKEN, ";"}, {SEMANTIC_RULE, "@FOR_INC_DEC"}, {NON_TERMINAL, "INC_DEC"}, {SPECIAL_TOKEN, ")"}, {SPECIAL_TOKEN, "{"}, {SEMANTIC_RULE, "@START_OF_FOR_COMMANDS"}, {NON_TERMINAL, "S"}, {SEMANTIC_RULE, "@END_OF_FOR"}, {SPECIAL_TOKEN, "}"}},
{{NON_TERMINAL, "L_VALUE"}, {SPECIAL_TOKEN, "="}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@MOV"}, {NON_TERMINAL, "SIMPLE_ASSIGNMENT'"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "L_VALUE"}, {NON_TERMINAL, "INC_DEC'"}},
{{SPECIAL_TOKEN, "++"}, {SEMANTIC_RULE, "@INC"}, {NON_TERMINAL, "INC'"}},
{{SPECIAL_TOKEN, "--"}, {SEMANTIC_RULE, "@DEC"}, {NON_TERMINAL, "DEC'"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E1"}, {NON_TERMINAL, "E0'"}},
{{SPECIAL_TOKEN, "|"}, {NON_TERMINAL, "E1"}, {SEMANTIC_RULE, "@OR"}, {NON_TERMINAL, "E0'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E2"}, {NON_TERMINAL, "E1'"}},
{{SPECIAL_TOKEN, "^"}, {NON_TERMINAL, "E2"}, {SEMANTIC_RULE, "@XOR"}, {NON_TERMINAL, "E1'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E3"}, {NON_TERMINAL, "E2'"}},
{{SPECIAL_TOKEN, "&"}, {NON_TERMINAL, "E3"}, {SEMANTIC_RULE, "@AND"}, {NON_TERMINAL, "E2'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E4"}, {NON_TERMINAL, "E3'"}},
{{SPECIAL_TOKEN, ">>"}, {NON_TERMINAL, "E4"}, {SEMANTIC_RULE, "@ASR"}, {NON_TERMINAL, "E3'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E5"}, {NON_TERMINAL, "E4'"}},
{{SPECIAL_TOKEN, "<<"}, {NON_TERMINAL, "E5"}, {SEMANTIC_RULE, "@ASL"}, {NON_TERMINAL, "E4'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E6"}, {NON_TERMINAL, "E5'"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E6"}, {SEMANTIC_RULE, "@ADD"}, {NON_TERMINAL, "E5'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E7"}, {NON_TERMINAL, "E6'"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E7"}, {SEMANTIC_RULE, "@SUB"}, {NON_TERMINAL, "E6'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E8"}, {NON_TERMINAL, "E7'"}},
{{SPECIAL_TOKEN, "*"}, {NON_TERMINAL, "E8"}, {SEMANTIC_RULE, "@MUL"}, {NON_TERMINAL, "E7'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E9"}, {NON_TERMINAL, "E8'"}},
{{SPECIAL_TOKEN, "/"}, {NON_TERMINAL, "E9"}, {SEMANTIC_RULE, "@DIV"}, {NON_TERMINAL, "E8'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E10"}, {NON_TERMINAL, "E9'"}},
{{SPECIAL_TOKEN, "%"}, {NON_TERMINAL, "E10"}, {SEMANTIC_RULE, "@MOD"}, {NON_TERMINAL, "E9'"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E12"}},
{{KEYWORD, "poi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@POI"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "db"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DB"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "dd"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DD"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "dw"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DW"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "dq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@DQ"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "neg"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@NEG"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "hi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@HI"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "low"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@LOW"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "not"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SEMANTIC_RULE, "@NOT"}, {SPECIAL_TOKEN, ")"}},
{{KEYWORD, "memset"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ","}, {SEMANTIC_RULE, "@MEMSET"}, {SPECIAL_TOKEN, ")"}},
{{SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXPRESSION"}, {SPECIAL_TOKEN, ")"}},
{{SEMANTIC_RULE, "@PUSH"}, {REGISTER, "_register"}},
{{SEMANTIC_RULE, "@PUSH"}, {ID, "_id"}},
{{SEMANTIC_RULE, "@PUSH"}, {HEX, "_hex"}},
{{SEMANTIC_RULE, "@PUSH"}, {DECIMAL, "_decimal"}},
{{SEMANTIC_RULE, "@PUSH"}, {OCTAL, "_octal"}},
{{SEMANTIC_RULE, "@PUSH"}, {BINARY, "_binary"}},
{{SEMANTIC_RULE, "@PUSH"}, {PSEUDO_REGISTER, "_pseudo_register"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NEG"}, {NON_TERMINAL, "E13"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E12"}, {NON_TERMINAL, "E13"}},
{{KEYWORD, "~"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NOT"}, {NON_TERMINAL, "E13"}},
{{EPSILON, "eps"}},
{{SEMANTIC_RULE, "@PUSH"}, {STRING, "_string"}},
{{SEMANTIC_RULE, "@PUSH"}, {ID, "_id"}},
{{SEMANTIC_RULE, "@PUSH"}, {REGISTER, "_register"}},
{{EPSILON, "eps"}}};
const unsigned int RhsSize[RULES_COUNT] =
{
2,
1,
1,
1,
1,
1,
2,
2,
3,
3,
5,
5,
5,
5,
5,
7,
4,
3,
1,
13,
10,
2,
1,
4,
1,
1,
10,
11,
15,
5,
1,
1,
2,
3,
3,
1,
1,
1,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
1,
5,
5,
5,
5,
5,
5,
5,
5,
5,
10,
3,
2,
2,
2,
2,
2,
2,
2,
4,
3,
4,
1,
2,
2,
2,
1};
const char * NoneTerminalMap[NONETERMINAL_COUNT] =
{
"E3",
"E0'",
"VA",
"ELSE_STATEMENT",
"INC_DEC",
"STRING",
"ELSIF_STATEMENT",
"DO_WHILE_STATEMENT",
"E9'",
"E13",
"E7",
"FOR_STATEMENT",
"E6'",
"E2",
"E1",
"SIMPLE_ASSIGNMENT'",
"NULL",
"E5'",
"EXPRESSION",
"ASSIGN_STATEMENT",
"E1'",
"E12",
"L_VALUE",
"E4",
"E8",
"WHILE_STATEMENT",
"INC_DEC'",
"E7'",
"INC'",
"STATEMENT",
"E8'",
"E9",
"E2'",
"SIMPLE_ASSIGNMENT",
"DEC'",
"S",
"E10",
"ELSIF_STATEMENT'",
"END_OF_IF",
"E6",
"CALL_FUNC_STATEMENT",
"E5",
"IF_STATEMENT",
"E3'",
"E4'",
"BOOLEAN_EXPRESSION"};
const char * TerminalMap[TERMINAL_COUNT] =
{
"_binary",
"_decimal",
"$",
"hi",
"if",
")",
"_register",
"poi",
"(",
"continue",
"pause",
"_id",
",",
"-",
"++",
"^",
"db",
"elsif",
"do",
"~",
"--",
"else",
"memset",
"dw",
"|",
"/",
"}",
"%",
"<<",
"dq",
"printf",
"{",
"low",
"+",
"_pseudo_register",
"not",
"_string",
"&",
"_octal",
"print",
"*",
"disableevent",
"while",
"neg",
"=",
"_hex",
"for",
">>",
";",
"enableevent",
"dd",
"formats",
"break"};
const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT] =
{
{48, 48, -99, 48, -99, -99, 48, 48, 48, -99, -99, 48, -99, 48, -99, -99, 48, -99, -99, 48, -99, -99, 48, 48, -99, -99, -99, -99, -99, 48, -99, -99, 48, 48, 48, 48, -99, -99, 48, -99, -99, -99, -99, 48, -99, 48, -99, -99, -99, -99, 48, -99, -99},
{-99, -99, -99, -99, -99, 41, -99, -99, -99, -99, -99, -99, 41, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 40, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 41, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 18, -99, -99, -99, -99, -99, -99, 17, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, 24, -99, 24, -99, 24, -99, -99, 24, 24, 24, -99, -99, -99, -99, -99, -99, 24, -99, -99, 23, -99, -99, -99, -99, 24, -99, -99, -99, 24, -99, -99, -99, -99, -99, -99, -99, -99, 24, -99, 24, 24, -99, -99, -99, 24, -99, -99, 24, -99, 24, 24},
{-99, -99, -99, -99, -99, -99, 32, -99, -99, -99, -99, 32, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 92, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, 21, -99, 21, -99, 21, -99, -99, 21, 21, 21, -99, -99, -99, -99, -99, 20, 21, -99, -99, 21, -99, -99, -99, -99, 21, -99, -99, -99, 21, -99, -99, -99, -99, -99, -99, -99, -99, 21, -99, 21, 21, -99, -99, -99, 21, -99, -99, 21, -99, 21, 21},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 27, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 68, -99, -99, -99, -99, -99, -99, 68, 68, -99, 68, -99, -99, -99, -99, -99, -99, -99, -99, 68, 68, -99, 67, 68, -99, -99, -99, -99, 68, -99, -99, -99, 68, -99, -99, 68, -99, -99, -99, -99, -99, -99, 68, 68, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 91, -99, -99, -99, -99, -99, -99, 91, 91, -99, 91, -99, -99, -99, -99, -99, -99, -99, -99, 91, 91, -99, 91, 91, -99, -99, -99, -99, 91, -99, -99, -99, 91, -99, -99, 91, -99, -99, -99, -99, -99, -99, 91, 91, -99, -99, -99, -99},
{60, 60, -99, 60, -99, -99, 60, 60, 60, -99, -99, 60, -99, 60, -99, -99, 60, -99, -99, 60, -99, -99, 60, 60, -99, -99, -99, -99, -99, 60, -99, -99, 60, 60, 60, 60, -99, -99, 60, -99, -99, -99, -99, 60, -99, 60, -99, -99, -99, -99, 60, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 28, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 59, -99, -99, -99, -99, -99, -99, 59, 58, -99, 59, -99, -99, -99, -99, -99, -99, -99, -99, 59, -99, -99, -99, 59, -99, -99, -99, -99, 59, -99, -99, -99, 59, -99, -99, -99, -99, -99, -99, -99, -99, -99, 59, 59, -99, -99, -99, -99},
{45, 45, -99, 45, -99, -99, 45, 45, 45, -99, -99, 45, -99, 45, -99, -99, 45, -99, -99, 45, -99, -99, 45, 45, -99, -99, -99, -99, -99, 45, -99, -99, 45, 45, 45, 45, -99, -99, 45, -99, -99, -99, -99, 45, -99, 45, -99, -99, -99, -99, 45, -99, -99},
{42, 42, -99, 42, -99, -99, 42, 42, 42, -99, -99, 42, -99, 42, -99, -99, 42, -99, -99, 42, -99, -99, 42, 42, -99, -99, -99, -99, -99, 42, -99, -99, 42, 42, 42, 42, -99, -99, 42, -99, -99, -99, -99, 42, -99, 42, -99, -99, -99, -99, 42, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 31, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 95, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 56, -99, -99, -99, -99, -99, -99, 56, -99, -99, 56, -99, -99, -99, -99, -99, -99, -99, -99, 56, -99, -99, -99, 56, -99, -99, -99, -99, 55, -99, -99, -99, 56, -99, -99, -99, -99, -99, -99, -99, -99, -99, 56, 56, -99, -99, -99, -99},
{39, 39, -99, 39, -99, -99, 39, 39, 39, -99, -99, 39, -99, 39, -99, -99, 39, -99, -99, 39, -99, -99, 39, 39, -99, -99, -99, -99, -99, 39, -99, -99, 39, 39, 39, 39, -99, -99, 39, -99, -99, -99, -99, 39, -99, 39, -99, -99, -99, -99, 39, -99, -99},
{-99, -99, -99, -99, -99, -99, 10, -99, -99, -99, -99, 10, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 44, -99, -99, -99, -99, -99, -99, 44, -99, -99, 43, -99, -99, -99, -99, -99, -99, -99, -99, 44, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 44, -99, -99, -99, -99},
{86, 84, -99, 76, -99, -99, 81, 70, 80, -99, -99, 82, -99, 88, -99, -99, 71, -99, -99, 90, -99, -99, 79, 73, -99, -99, -99, -99, -99, 74, -99, -99, 77, 89, 87, 78, -99, -99, 85, -99, -99, -99, -99, 75, -99, 83, -99, -99, -99, -99, 72, -99, -99},
{-99, -99, -99, -99, -99, -99, 94, -99, -99, -99, -99, 93, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{51, 51, -99, 51, -99, -99, 51, 51, 51, -99, -99, 51, -99, 51, -99, -99, 51, -99, -99, 51, -99, -99, 51, 51, -99, -99, -99, -99, -99, 51, -99, -99, 51, 51, 51, 51, -99, -99, 51, -99, -99, -99, -99, 51, -99, 51, -99, -99, -99, -99, 51, -99, -99},
{63, 63, -99, 63, -99, -99, 63, 63, 63, -99, -99, 63, -99, 63, -99, -99, 63, -99, -99, 63, -99, -99, 63, 63, -99, -99, -99, -99, -99, 63, -99, -99, 63, 63, 63, 63, -99, -99, 63, -99, -99, -99, -99, 63, -99, 63, -99, -99, -99, -99, 63, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 26, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 37, -99, -99, -99, -99, -99, -99, -99, -99, 33, -99, -99, -99, -99, -99, 34, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 62, -99, -99, -99, -99, -99, -99, 62, 62, -99, 62, -99, -99, -99, -99, -99, -99, -99, -99, 62, -99, -99, -99, 62, -99, -99, -99, -99, 62, -99, -99, -99, 62, -99, -99, 61, -99, -99, -99, -99, -99, -99, 62, 62, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 35, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 2, -99, 6, -99, -99, 9, 7, 6, -99, -99, -99, -99, -99, -99, 4, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 7, -99, -99, -99, -99, -99, -99, -99, -99, 7, -99, 7, 3, -99, -99, -99, 5, -99, -99, 7, -99, 7, 8},
{-99, -99, -99, -99, -99, 65, -99, -99, -99, -99, -99, -99, 65, 65, -99, 65, -99, -99, -99, -99, -99, -99, -99, -99, 65, 64, -99, -99, 65, -99, -99, -99, -99, 65, -99, -99, -99, 65, -99, -99, 65, -99, -99, -99, -99, -99, -99, 65, 65, -99, -99, -99, -99},
{66, 66, -99, 66, -99, -99, 66, 66, 66, -99, -99, 66, -99, 66, -99, -99, 66, -99, -99, 66, -99, -99, 66, 66, -99, -99, -99, -99, -99, 66, -99, -99, 66, 66, 66, 66, -99, -99, 66, -99, -99, -99, -99, 66, -99, 66, -99, -99, -99, -99, 66, -99, -99},
{-99, -99, -99, -99, -99, 47, -99, -99, -99, -99, -99, -99, 47, -99, -99, 47, -99, -99, -99, -99, -99, -99, -99, -99, 47, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 46, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 47, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, 29, -99, -99, -99, -99, 29, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 30, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 36, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, 1, -99, 0, -99, 0, -99, -99, 0, 0, 0, -99, -99, -99, -99, -99, -99, 0, -99, -99, -99, -99, -99, -99, -99, 1, -99, -99, -99, 0, -99, -99, -99, -99, -99, -99, -99, -99, 0, -99, 0, 0, -99, -99, -99, 0, -99, -99, 0, -99, 0, 0},
{69, 69, -99, 69, -99, -99, 69, 69, 69, -99, -99, 69, -99, 69, -99, -99, 69, -99, -99, 69, -99, -99, 69, 69, -99, -99, -99, -99, -99, 69, -99, -99, 69, 69, 69, 69, -99, -99, 69, -99, -99, -99, -99, 69, -99, 69, -99, -99, -99, -99, 69, -99, -99},
{-99, -99, 22, -99, 22, -99, 22, -99, -99, 22, 22, 22, -99, -99, -99, -99, -99, -99, 22, -99, -99, 22, -99, -99, -99, -99, 22, -99, -99, -99, 22, -99, -99, -99, -99, -99, -99, -99, -99, 22, -99, 22, 22, -99, -99, -99, 22, -99, -99, 22, -99, 22, 22},
{-99, -99, 25, -99, 25, -99, 25, -99, -99, 25, 25, 25, -99, -99, -99, -99, -99, -99, 25, -99, -99, -99, -99, -99, -99, -99, 25, -99, -99, -99, 25, -99, -99, -99, -99, -99, -99, -99, -99, 25, -99, 25, 25, -99, -99, -99, 25, -99, -99, 25, -99, 25, 25},
{57, 57, -99, 57, -99, -99, 57, 57, 57, -99, -99, 57, -99, 57, -99, -99, 57, -99, -99, 57, -99, -99, 57, 57, -99, -99, -99, -99, -99, 57, -99, -99, 57, 57, 57, 57, -99, -99, 57, -99, -99, -99, -99, 57, -99, 57, -99, -99, -99, -99, 57, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 16, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 15, -99, -99, -99, -99, -99, -99, -99, -99, 11, -99, 13, -99, -99, -99, -99, -99, -99, -99, 14, -99, 12, -99},
{54, 54, -99, 54, -99, -99, 54, 54, 54, -99, -99, 54, -99, 54, -99, -99, 54, -99, -99, 54, -99, -99, 54, 54, -99, -99, -99, -99, -99, 54, -99, -99, 54, 54, 54, 54, -99, -99, 54, -99, -99, -99, -99, 54, -99, 54, -99, -99, -99, -99, 54, -99, -99},
{-99, -99, -99, -99, 19, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 50, -99, -99, -99, -99, -99, -99, 50, -99, -99, 50, -99, -99, -99, -99, -99, -99, -99, -99, 50, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 50, -99, -99, -99, -99, -99, -99, -99, -99, -99, 49, 50, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 53, -99, -99, -99, -99, -99, -99, 53, -99, -99, 53, -99, -99, -99, -99, -99, -99, -99, -99, 53, -99, -99, -99, 52, -99, -99, -99, -99, -99, -99, -99, -99, 53, -99, -99, -99, -99, -99, -99, -99, -99, -99, 53, 53, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, 38, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 38, -99, -99, -99, -99}};
const char * KeywordList[] = {
"print",
"formats",
"disableevent",
"enableevent",
"printf",
"pause",
"poi",
"db",
"dd",
"dw",
"dq",
"neg",
"hi",
"low",
"not",
"memset"};
const char * OperatorsTwoOperandList[] = {
"@OR",
"@XOR",
"@AND",
"@ASR",
"@ASL",
"@ADD",
"@SUB",
"@MUL",
"@DIV",
"@MOD",
"@GT",
"@LT",
"@EGT",
"@ELT",
"@EQ",
"@NEQ"};
const char * OperatorsOneOperandList[] = {
"@INC",
"@DEC"};
const char * ThreeOpFunc1[] = {
"@MEMSET"};
const char * OneOpFunc1[] = {
"@POI",
"@DB",
"@DD",
"@DW",
"@DQ",
"@NEG",
"@HI",
"@LOW",
"@NOT",
};
const char * OneOpFunc2[] = {
"@PRINT",
"@FORMATS",
"@DISABLEEVENT",
"@ENABLEEVENT",
};
const char * ZeroOpFunc1[] = {
"@PAUSE"};
const char * VarArgFunc1[] = {
"@PRINTF"};
const SYMBOL_MAP SemanticRulesMapList[] = {
{"@INC", FUNC_INC},
{"@DEC", FUNC_DEC},
{"@OR", FUNC_OR},
{"@XOR", FUNC_XOR},
{"@AND", FUNC_AND},
{"@ASR", FUNC_ASR},
{"@ASL", FUNC_ASL},
{"@ADD", FUNC_ADD},
{"@SUB", FUNC_SUB},
{"@MUL", FUNC_MUL},
{"@DIV", FUNC_DIV},
{"@MOD", FUNC_MOD},
{"@GT", FUNC_GT},
{"@LT", FUNC_LT},
{"@EGT", FUNC_EGT},
{"@ELT", FUNC_ELT},
{"@EQ", FUNC_EQ},
{"@NEQ", FUNC_NEQ},
{"@START_OF_IF", FUNC_START_OF_IF},
{"@JMP", FUNC_JMP},
{"@JZ", FUNC_JZ},
{"@JNZ", FUNC_JNZ},
{"@JMP_TO_END_AND_JZCOMPLETED", FUNC_JMP_TO_END_AND_JZCOMPLETED},
{"@END_OF_IF", FUNC_END_OF_IF},
{"@START_OF_WHILE", FUNC_START_OF_WHILE},
{"@END_OF_WHILE", FUNC_END_OF_WHILE},
{"@VARGSTART", FUNC_VARGSTART},
{"@MOV", FUNC_MOV},
{"@START_OF_DO_WHILE", FUNC_START_OF_DO_WHILE},
{"@", FUNC_},
{"@START_OF_DO_WHILE_COMMANDS", FUNC_START_OF_DO_WHILE_COMMANDS},
{"@END_OF_DO_WHILE", FUNC_END_OF_DO_WHILE},
{"@START_OF_FOR", FUNC_START_OF_FOR},
{"@FOR_INC_DEC", FUNC_FOR_INC_DEC},
{"@START_OF_FOR_OMMANDS", FUNC_START_OF_FOR_OMMANDS},
{"@END_OF_IF", FUNC_END_OF_IF},
{"@PRINT", FUNC_PRINT},
{"@FORMATS", FUNC_FORMATS},
{"@DISABLEEVENT", FUNC_DISABLEEVENT},
{"@ENABLEEVENT", FUNC_ENABLEEVENT},
{"@PRINTF", FUNC_PRINTF},
{"@PAUSE", FUNC_PAUSE},
{"@POI", FUNC_POI},
{"@DB", FUNC_DB},
{"@DD", FUNC_DD},
{"@DW", FUNC_DW},
{"@DQ", FUNC_DQ},
{"@NEG", FUNC_NEG},
{"@HI", FUNC_HI},
{"@LOW", FUNC_LOW},
{"@NOT", FUNC_NOT},
{"@MEMSET", FUNC_MEMSET},
};
const SYMBOL_MAP RegisterMapList[] = {
{"rax", REGISTER_RAX},
{"rcx", REGISTER_RCX},
{"rdx", REGISTER_RDX},
{"rbx", REGISTER_RBX},
{"rsp", REGISTER_RSP},
{"rbp", REGISTER_RBP},
{"rsi", REGISTER_RSI},
{"rdi", REGISTER_RDI},
{"r8", REGISTER_R8},
{"r9", REGISTER_R9},
{"r10", REGISTER_R10},
{"r11", REGISTER_R11},
{"r12", REGISTER_R12},
{"r13", REGISTER_R13},
{"r14", REGISTER_R14},
{"r15", REGISTER_R15},
{"ds", REGISTER_DS},
{"es", REGISTER_ES},
{"fs", REGISTER_FS},
{"gs", REGISTER_GS},
{"cs", REGISTER_CS},
{"ss", REGISTER_SS},
{"rflags", REGISTER_RFLAGS},
{"rip", REGISTER_RIP},
{"idtr", REGISTER_IDTR},
{"gdtr", REGISTER_GDTR},
{"cr0", REGISTER_CR0},
{"cr2", REGISTER_CR2},
{"cr3", REGISTER_CR3},
{"cr4", REGISTER_CR4},
{"cr8", REGISTER_CR8}};
const SYMBOL_MAP PseudoRegisterMapList[] = {
{"pid", PSEUDO_REGISTER_PID},
{"tid", PSEUDO_REGISTER_TID},
{"proc", PSEUDO_REGISTER_PROC},
{"thread", PSEUDO_REGISTER_THREAD},
{"peb", PSEUDO_REGISTER_PEB},
{"teb", PSEUDO_REGISTER_TEB},
{"ip", PSEUDO_REGISTER_IP},
{"buffer", PSEUDO_REGISTER_BUFFER},
{"context", PSEUDO_REGISTER_CONTEXT}};
const struct _TOKEN LalrLhs[RULES_COUNT] =
{
{NON_TERMINAL, "S"},
{NON_TERMINAL, "BE"},
{NON_TERMINAL, "B1"},
{NON_TERMINAL, "B1'"},
{NON_TERMINAL, "B1'"},
{NON_TERMINAL, "B2"},
{NON_TERMINAL, "B2'"},
{NON_TERMINAL, "B2'"},
{NON_TERMINAL, "B3"},
{NON_TERMINAL, "B3"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "CMP"},
{NON_TERMINAL, "EXP"},
{NON_TERMINAL, "E0'"},
{NON_TERMINAL, "E0'"},
{NON_TERMINAL, "E1"},
{NON_TERMINAL, "E1'"},
{NON_TERMINAL, "E1'"},
{NON_TERMINAL, "E2"},
{NON_TERMINAL, "E2'"},
{NON_TERMINAL, "E2'"},
{NON_TERMINAL, "E3"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E3'"},
{NON_TERMINAL, "E4"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E4'"},
{NON_TERMINAL, "E5"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E5'"},
{NON_TERMINAL, "E6"},
{NON_TERMINAL, "E6'"},
{NON_TERMINAL, "E6'"},
{NON_TERMINAL, "E7"},
{NON_TERMINAL, "E7'"},
{NON_TERMINAL, "E7'"},
{NON_TERMINAL, "E8"},
{NON_TERMINAL, "E8'"},
{NON_TERMINAL, "E8'"},
{NON_TERMINAL, "E9"},
{NON_TERMINAL, "E9'"},
{NON_TERMINAL, "E9'"},
{NON_TERMINAL, "E10"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E12"},
{NON_TERMINAL, "E13"}};
const struct _TOKEN LalrRhs[RULES_COUNT][MAX_RHS_LEN] =
{
{{NON_TERMINAL, "BE"}},
{{NON_TERMINAL, "B1"}},
{{NON_TERMINAL, "B2"}, {NON_TERMINAL, "B1'"}},
{{SPECIAL_TOKEN, "&&"}, {NON_TERMINAL, "B2"}, {NON_TERMINAL, "B1'"}, {SEMANTIC_RULE, "@AND"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "B3"}, {NON_TERMINAL, "B2'"}},
{{SPECIAL_TOKEN, "||"}, {NON_TERMINAL, "B3"}, {NON_TERMINAL, "B2'"}, {SEMANTIC_RULE, "@OR"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "CMP"}},
{{NON_TERMINAL, "EXP"}},
{{NON_TERMINAL, "EXP"}, {KEYWORD, ">"}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@GT"}},
{{NON_TERMINAL, "EXP"}, {KEYWORD, "<"}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@LT"}},
{{NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ">="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@EGT"}},
{{NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, "<="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@ELT"}},
{{NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, "=="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@EQ"}},
{{NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, "!="}, {NON_TERMINAL, "EXP"}, {SEMANTIC_RULE, "@NEQ"}},
{{SPECIAL_TOKEN, "("}, {NON_TERMINAL, "CMP"}, {SPECIAL_TOKEN, ")"}},
{{NON_TERMINAL, "E1"}, {NON_TERMINAL, "E0'"}},
{{SPECIAL_TOKEN, "|"}, {NON_TERMINAL, "E1"}, {NON_TERMINAL, "E0'"}, {SEMANTIC_RULE, "@OR"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E2"}, {NON_TERMINAL, "E1'"}},
{{SPECIAL_TOKEN, "^"}, {NON_TERMINAL, "E2"}, {NON_TERMINAL, "E1'"}, {SEMANTIC_RULE, "@XOR"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E3"}, {NON_TERMINAL, "E2'"}},
{{SPECIAL_TOKEN, "&"}, {NON_TERMINAL, "E3"}, {NON_TERMINAL, "E2'"}, {SEMANTIC_RULE, "@AND"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E4"}, {NON_TERMINAL, "E3'"}},
{{SPECIAL_TOKEN, ">>"}, {NON_TERMINAL, "E4"}, {NON_TERMINAL, "E3'"}, {SEMANTIC_RULE, "@ASR"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E5"}, {NON_TERMINAL, "E4'"}},
{{SPECIAL_TOKEN, "<<"}, {NON_TERMINAL, "E5"}, {NON_TERMINAL, "E4'"}, {SEMANTIC_RULE, "@ASL"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E6"}, {NON_TERMINAL, "E5'"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E6"}, {NON_TERMINAL, "E5'"}, {SEMANTIC_RULE, "@ADD"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E7"}, {NON_TERMINAL, "E6'"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E7"}, {NON_TERMINAL, "E6'"}, {SEMANTIC_RULE, "@SUB"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E8"}, {NON_TERMINAL, "E7'"}},
{{SPECIAL_TOKEN, "*"}, {NON_TERMINAL, "E8"}, {NON_TERMINAL, "E7'"}, {SEMANTIC_RULE, "@MUL"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E9"}, {NON_TERMINAL, "E8'"}},
{{SPECIAL_TOKEN, "/"}, {NON_TERMINAL, "E9"}, {NON_TERMINAL, "E8'"}, {SEMANTIC_RULE, "@DIV"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E10"}, {NON_TERMINAL, "E9'"}},
{{SPECIAL_TOKEN, "%"}, {NON_TERMINAL, "E10"}, {NON_TERMINAL, "E9'"}, {SEMANTIC_RULE, "@MOD"}},
{{EPSILON, "eps"}},
{{NON_TERMINAL, "E12"}},
{{KEYWORD, "poi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@POI"}},
{{KEYWORD, "db"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DB"}},
{{KEYWORD, "dd"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DD"}},
{{KEYWORD, "dw"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DW"}},
{{KEYWORD, "dq"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@DQ"}},
{{KEYWORD, "neg"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@NEG"}},
{{KEYWORD, "hi"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@HI"}},
{{KEYWORD, "low"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@LOW"}},
{{KEYWORD, "not"}, {SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}, {SEMANTIC_RULE, "@NOT"}},
{{SPECIAL_TOKEN, "("}, {NON_TERMINAL, "EXP"}, {SPECIAL_TOKEN, ")"}},
{{REGISTER, "_register"}, {SEMANTIC_RULE, "@PUSH"}},
{{ID, "_id"}, {SEMANTIC_RULE, "@PUSH"}},
{{HEX, "_hex"}, {SEMANTIC_RULE, "@PUSH"}},
{{DECIMAL, "_decimal"}, {SEMANTIC_RULE, "@PUSH"}},
{{OCTAL, "_octal"}, {SEMANTIC_RULE, "@PUSH"}},
{{BINARY, "_binary"}, {SEMANTIC_RULE, "@PUSH"}},
{{PSEUDO_REGISTER, "_pseudo_register"}, {SEMANTIC_RULE, "@PUSH"}},
{{SPECIAL_TOKEN, "-"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NEG"}},
{{SPECIAL_TOKEN, "+"}, {NON_TERMINAL, "E12"}},
{{KEYWORD, "~"}, {NON_TERMINAL, "E12"}, {SEMANTIC_RULE, "@NEG"}},
{{EPSILON, "eps"}}};
const unsigned int LalrRhsSize[RULES_COUNT] =
{
1,
1,
2,
4,
1,
2,
4,
1,
1,
1,
4,
4,
4,
4,
4,
4,
3,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
2,
4,
1,
1,
5,
5,
5,
5,
5,
5,
5,
5,
5,
3,
2,
2,
2,
2,
2,
2,
2,
3,
2,
3,
1};
const char * LalrNoneTerminalMap[NONETERMINAL_COUNT] =
{
"E3",
"E0'",
"B1'",
"E9'",
"B2",
"E13",
"E7",
"E6'",
"E2",
"E1",
"E5'",
"B1",
"E1'",
"E12",
"B2'",
"E4",
"E8",
"EXP",
"CMP",
"E7'",
"E8'",
"E9",
"E2'",
"S",
"E10",
"B3",
"E6",
"E5",
"E3'",
"E4'",
"BE"};
const char * LalrTerminalMap[TERMINAL_COUNT] =
{
"_binary",
"_decimal",
"$",
"hi",
")",
"_register",
"poi",
"<",
"(",
"_id",
"<=",
">",
"-",
"||",
"^",
"db",
"!=",
"~",
"dw",
"|",
"/",
"%",
"<<",
"dq",
"==",
"low",
"+",
"_pseudo_register",
"not",
"&",
"_octal",
"*",
">=",
"neg",
"_hex",
">>",
"&&",
"dd"};
const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT] =
{
{10, -99, -99, -99, 4, -99, 14, -99, 9, 8, -99, 3, -99, 18, -99, 11, 15, 7, 6, -99, -99, 16, -99, 1, 17, 5, 13, 12, -99, -99, 2},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, 39, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 41, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, 49, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 51, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 53, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 55, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 57, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 59, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, 61, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 63, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 65, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, 67, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 70, 69, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 71, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 76, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 77, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, 84, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 7, 6, -99, -99, 16, -99, -99, 17, 5, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 7, 6, -99, -99, 16, -99, -99, 17, 85, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 86, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 87, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 88, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 89, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 90, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 91, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 92, -99, -99, -99, 18, -99, 11, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 93, -99, -99, -99, -99, 18, -99, 11, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{94, -99, -99, -99, -99, -99, 14, -99, -99, -99, -99, -99, -99, 18, -99, 11, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, 14, -99, -99, -99, -99, -99, -99, 18, -99, 95, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, 14, -99, -99, -99, -99, -99, -99, 18, -99, -99, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, 13, 96, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, 14, -99, -99, -99, -99, -99, -99, 18, -99, -99, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, 97, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, 98, -99, -99, -99, -99, -99, -99, 18, -99, -99, 15, -99, -99, -99, -99, 16, -99, -99, 17, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 18, -99, -99, 99, -99, -99, -99, -99, 16, -99, -99, 17, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 18, -99, -99, -99, -99, -99, -99, -99, 100, -99, -99, 17, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 18, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 101, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 104, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 105, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 106, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 107, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 108, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 109, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 110, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 111, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 112, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{10, -99, -99, -99, -99, -99, 14, -99, 9, 8, -99, -99, -99, 18, -99, 11, 15, 113, -99, -99, -99, 16, -99, -99, 17, -99, 13, 12, -99, -99, -99},
{-99, -99, 114, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 115, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, 116, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 117, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 118, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 119, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 120, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 121, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, 122, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 123, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 124, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, 125, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99}};
const int LalrActionTable[LALR_STATE_COUNT][LALR_TERMINAL_COUNT] =
{
{27, 25, -99, 23, -99, 28, 26, -99, 19, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, 99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -1, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -2, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -5, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 40, -99},
{-99, -99, -8, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 42, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -8, -99},
{-99, -99, -9, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -9, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -9, -99},
{-99, -99, -10, -99, -99, -99, -99, 43, -99, -99, 45, 47, -99, -10, -99, -99, 44, -99, -99, -99, -99, -99, -99, -99, 48, -99, -99, -99, -99, -99, -99, -99, 46, -99, -99, -99, -10, -99},
{-99, -99, -20, -99, -20, -99, -99, -20, -99, -99, -20, -20, -99, -20, -99, -99, -20, -99, -99, 50, -99, -99, -99, -99, -20, -99, -99, -99, -99, -99, -99, -99, -20, -99, -99, -99, -20, -99},
{-99, -99, -23, -99, -23, -99, -99, -23, -99, -99, -23, -23, -99, -23, 52, -99, -23, -99, -99, -23, -99, -99, -99, -99, -23, -99, -99, -99, -99, -99, -99, -99, -23, -99, -99, -99, -23, -99},
{-99, -99, -26, -99, -26, -99, -99, -26, -99, -99, -26, -26, -99, -26, -26, -99, -26, -99, -99, -26, -99, -99, -99, -99, -26, -99, -99, -99, -99, 54, -99, -99, -26, -99, -99, -99, -26, -99},
{-99, -99, -29, -99, -29, -99, -99, -29, -99, -99, -29, -29, -99, -29, -29, -99, -29, -99, -99, -29, -99, -99, -99, -99, -29, -99, -99, -99, -99, -29, -99, -99, -29, -99, -99, 56, -29, -99},
{-99, -99, -32, -99, -32, -99, -99, -32, -99, -99, -32, -32, -99, -32, -32, -99, -32, -99, -99, -32, -99, -99, 58, -99, -32, -99, -99, -99, -99, -32, -99, -99, -32, -99, -99, -32, -32, -99},
{-99, -99, -35, -99, -35, -99, -99, -35, -99, -99, -35, -35, -99, -35, -35, -99, -35, -99, -99, -35, -99, -99, -35, -99, -35, -99, 60, -99, -99, -35, -99, -99, -35, -99, -99, -35, -35, -99},
{-99, -99, -38, -99, -38, -99, -99, -38, -99, -99, -38, -38, 62, -38, -38, -99, -38, -99, -99, -38, -99, -99, -38, -99, -38, -99, -38, -99, -99, -38, -99, -99, -38, -99, -99, -38, -38, -99},
{-99, -99, -41, -99, -41, -99, -99, -41, -99, -99, -41, -41, -41, -41, -41, -99, -41, -99, -99, -41, -99, -99, -41, -99, -41, -99, -41, -99, -99, -41, -99, 64, -41, -99, -99, -41, -41, -99},
{-99, -99, -44, -99, -44, -99, -99, -44, -99, -99, -44, -44, -44, -44, -44, -99, -44, -99, -99, -44, 66, -99, -44, -99, -44, -99, -44, -99, -99, -44, -99, -44, -44, -99, -99, -44, -44, -99},
{-99, -99, -47, -99, -47, -99, -99, -47, -99, -99, -47, -47, -47, -47, -47, -99, -47, -99, -99, -47, -47, 68, -47, -99, -47, -99, -47, -99, -99, -47, -99, -47, -47, -99, -99, -47, -47, -99},
{-99, -99, -48, -99, -48, -99, -99, -48, -99, -99, -48, -48, -48, -48, -48, -99, -48, -99, -99, -48, -48, -48, -48, -99, -48, -99, -48, -99, -99, -48, -99, -48, -48, -99, -99, -48, -48, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 19, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -63, -99, -63, -99, -99, -63, -99, -99, -63, -63, -63, -63, -63, -99, -63, -99, -99, -63, -63, -63, -63, -99, -63, -99, -63, -99, -99, -63, -99, -63, -63, -99, -99, -63, -63, -99},
{-99, -99, -60, -99, -60, -99, -99, -60, -99, -99, -60, -60, -60, -60, -60, -99, -60, -99, -99, -60, -60, -60, -60, -99, -60, -99, -60, -99, -99, -60, -99, -60, -60, -99, -99, -60, -60, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -99, -99, -99, -99, -99, -99, 73, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 74, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -62, -99, -62, -99, -99, -62, -99, -99, -62, -62, -62, -62, -62, -99, -62, -99, -99, -62, -62, -62, -62, -99, -62, -99, -62, -99, -99, -62, -99, -62, -62, -99, -99, -62, -62, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 75, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -64, -99, -64, -99, -99, -64, -99, -99, -64, -64, -64, -64, -64, -99, -64, -99, -99, -64, -64, -64, -64, -99, -64, -99, -64, -99, -99, -64, -99, -64, -64, -99, -99, -64, -64, -99},
{-99, -99, -59, -99, -59, -99, -99, -59, -99, -99, -59, -59, -59, -59, -59, -99, -59, -99, -99, -59, -59, -59, -59, -99, -59, -99, -59, -99, -99, -59, -99, -59, -59, -99, -99, -59, -59, -99},
{-99, -99, -61, -99, -61, -99, -99, -61, -99, -99, -61, -61, -61, -61, -61, -99, -61, -99, -99, -61, -61, -61, -61, -99, -61, -99, -61, -99, -99, -61, -99, -61, -61, -99, -99, -61, -61, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -99, -99, -99, -99, -99, -99, 78, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 79, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 80, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 81, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 82, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -65, -99, -65, -99, -99, -65, -99, -99, -65, -65, -65, -65, -65, -99, -65, -99, -99, -65, -65, -65, -65, -99, -65, -99, -65, -99, -99, -65, -99, -65, -65, -99, -99, -65, -65, -99},
{-99, -99, -99, -99, -99, -99, -99, -99, 83, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -3, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 19, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -6, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -6, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 19, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -18, -99, -18, -99, -99, -18, -99, -99, -18, -18, -99, -18, -99, -99, -18, -99, -99, -99, -99, -99, -99, -99, -18, -99, -99, -99, -99, -99, -99, -99, -18, -99, -99, -99, -18, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -21, -99, -21, -99, -99, -21, -99, -99, -21, -21, -99, -21, -99, -99, -21, -99, -99, -21, -99, -99, -99, -99, -21, -99, -99, -99, -99, -99, -99, -99, -21, -99, -99, -99, -21, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -24, -99, -24, -99, -99, -24, -99, -99, -24, -24, -99, -24, -24, -99, -24, -99, -99, -24, -99, -99, -99, -99, -24, -99, -99, -99, -99, -99, -99, -99, -24, -99, -99, -99, -24, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -27, -99, -27, -99, -99, -27, -99, -99, -27, -27, -99, -27, -27, -99, -27, -99, -99, -27, -99, -99, -99, -99, -27, -99, -99, -99, -99, -27, -99, -99, -27, -99, -99, -99, -27, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -30, -99, -30, -99, -99, -30, -99, -99, -30, -30, -99, -30, -30, -99, -30, -99, -99, -30, -99, -99, -99, -99, -30, -99, -99, -99, -99, -30, -99, -99, -30, -99, -99, -30, -30, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -33, -99, -33, -99, -99, -33, -99, -99, -33, -33, -99, -33, -33, -99, -33, -99, -99, -33, -99, -99, -33, -99, -33, -99, -99, -99, -99, -33, -99, -99, -33, -99, -99, -33, -33, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -36, -99, -36, -99, -99, -36, -99, -99, -36, -36, -99, -36, -36, -99, -36, -99, -99, -36, -99, -99, -36, -99, -36, -99, -36, -99, -99, -36, -99, -99, -36, -99, -99, -36, -36, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -39, -99, -39, -99, -99, -39, -99, -99, -39, -39, -39, -39, -39, -99, -39, -99, -99, -39, -99, -99, -39, -99, -39, -99, -39, -99, -99, -39, -99, -99, -39, -99, -99, -39, -39, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -42, -99, -42, -99, -99, -42, -99, -99, -42, -42, -42, -42, -42, -99, -42, -99, -99, -42, -99, -99, -42, -99, -42, -99, -42, -99, -99, -42, -99, -42, -42, -99, -99, -42, -42, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -45, -99, -45, -99, -99, -45, -99, -99, -45, -45, -45, -45, -45, -99, -45, -99, -99, -45, -45, -99, -45, -99, -45, -99, -45, -99, -99, -45, -99, -45, -45, -99, -99, -45, -45, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -99, -99, 102, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 103, -99, -99, 43, -99, -99, 45, 47, -99, -99, -99, -99, 44, -99, -99, -99, -99, -99, -99, -99, 48, -99, -99, -99, -99, -99, -99, -99, 46, -99, -99, -99, -99, -99},
{-99, -99, -66, -99, -66, -99, -99, -66, -99, -99, -66, -66, -66, -66, -66, -99, -66, -99, -99, -66, -66, -66, -66, -99, -66, -99, -66, -99, -99, -66, -99, -66, -66, -99, -99, -66, -66, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -68, -99, -68, -99, -99, -68, -99, -99, -68, -68, -68, -68, -68, -99, -68, -99, -99, -68, -68, -68, -68, -99, -68, -99, -68, -99, -99, -68, -99, -68, -68, -99, -99, -68, -68, -99},
{-99, -99, -67, -99, -67, -99, -99, -67, -99, -99, -67, -67, -67, -67, -67, -99, -67, -99, -99, -67, -67, -67, -67, -99, -67, -99, -67, -99, -99, -67, -99, -67, -67, -99, -99, -67, -67, -99},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{27, 25, -99, 23, -99, 28, 26, -99, 72, 21, -99, -99, 22, -99, -99, 38, -99, 30, 33, -99, -99, -99, -99, 35, -99, 36, 31, 37, 24, -99, 20, -99, -99, 34, 29, -99, -99, 32},
{-99, -99, -5, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 40, -99},
{-99, -99, -8, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 42, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -8, -99},
{-99, -99, -12, -99, -12, -99, -99, -99, -99, -99, -99, -99, -99, -12, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -12, -99},
{-99, -99, -16, -99, -16, -99, -99, -99, -99, -99, -99, -99, -99, -16, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -16, -99},
{-99, -99, -14, -99, -14, -99, -99, -99, -99, -99, -99, -99, -99, -14, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -14, -99},
{-99, -99, -13, -99, -13, -99, -99, -99, -99, -99, -99, -99, -99, -13, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -13, -99},
{-99, -99, -11, -99, -11, -99, -99, -99, -99, -99, -99, -99, -99, -11, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -11, -99},
{-99, -99, -15, -99, -15, -99, -99, -99, -99, -99, -99, -99, -99, -15, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -15, -99},
{-99, -99, -20, -99, -20, -99, -99, -20, -99, -99, -20, -20, -99, -20, -99, -99, -20, -99, -99, 50, -99, -99, -99, -99, -20, -99, -99, -99, -99, -99, -99, -99, -20, -99, -99, -99, -20, -99},
{-99, -99, -23, -99, -23, -99, -99, -23, -99, -99, -23, -23, -99, -23, 52, -99, -23, -99, -99, -23, -99, -99, -99, -99, -23, -99, -99, -99, -99, -99, -99, -99, -23, -99, -99, -99, -23, -99},
{-99, -99, -26, -99, -26, -99, -99, -26, -99, -99, -26, -26, -99, -26, -26, -99, -26, -99, -99, -26, -99, -99, -99, -99, -26, -99, -99, -99, -99, 54, -99, -99, -26, -99, -99, -99, -26, -99},
{-99, -99, -29, -99, -29, -99, -99, -29, -99, -99, -29, -29, -99, -29, -29, -99, -29, -99, -99, -29, -99, -99, -99, -99, -29, -99, -99, -99, -99, -29, -99, -99, -29, -99, -99, 56, -29, -99},
{-99, -99, -32, -99, -32, -99, -99, -32, -99, -99, -32, -32, -99, -32, -32, -99, -32, -99, -99, -32, -99, -99, 58, -99, -32, -99, -99, -99, -99, -32, -99, -99, -32, -99, -99, -32, -32, -99},
{-99, -99, -35, -99, -35, -99, -99, -35, -99, -99, -35, -35, -99, -35, -35, -99, -35, -99, -99, -35, -99, -99, -35, -99, -35, -99, 60, -99, -99, -35, -99, -99, -35, -99, -99, -35, -35, -99},
{-99, -99, -38, -99, -38, -99, -99, -38, -99, -99, -38, -38, 62, -38, -38, -99, -38, -99, -99, -38, -99, -99, -38, -99, -38, -99, -38, -99, -99, -38, -99, -99, -38, -99, -99, -38, -38, -99},
{-99, -99, -41, -99, -41, -99, -99, -41, -99, -99, -41, -41, -41, -41, -41, -99, -41, -99, -99, -41, -99, -99, -41, -99, -41, -99, -41, -99, -99, -41, -99, 64, -41, -99, -99, -41, -41, -99},
{-99, -99, -44, -99, -44, -99, -99, -44, -99, -99, -44, -44, -44, -44, -44, -99, -44, -99, -99, -44, 66, -99, -44, -99, -44, -99, -44, -99, -99, -44, -99, -44, -44, -99, -99, -44, -44, -99},
{-99, -99, -47, -99, -47, -99, -99, -47, -99, -99, -47, -47, -47, -47, -47, -99, -47, -99, -99, -47, -47, 68, -47, -99, -47, -99, -47, -99, -99, -47, -99, -47, -47, -99, -99, -47, -47, -99},
{-99, -99, -17, -99, -17, -99, -99, -99, -99, -99, -99, -99, -99, -17, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -17, -99},
{-99, -99, -58, -99, -58, -99, -99, -58, -99, -99, -58, -58, -58, -58, -58, -99, -58, -99, -99, -58, -58, -58, -58, -99, -58, -99, -58, -99, -99, -58, -99, -58, -58, -99, -99, -58, -58, -99},
{-99, -99, -99, -99, 103, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 126, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 127, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 128, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 129, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 130, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 131, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 132, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 133, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -99, -99, 134, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -4, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99},
{-99, -99, -7, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -7, -99},
{-99, -99, -19, -99, -19, -99, -99, -19, -99, -99, -19, -19, -99, -19, -99, -99, -19, -99, -99, -99, -99, -99, -99, -99, -19, -99, -99, -99, -99, -99, -99, -99, -19, -99, -99, -99, -19, -99},
{-99, -99, -22, -99, -22, -99, -99, -22, -99, -99, -22, -22, -99, -22, -99, -99, -22, -99, -99, -22, -99, -99, -99, -99, -22, -99, -99, -99, -99, -99, -99, -99, -22, -99, -99, -99, -22, -99},
{-99, -99, -25, -99, -25, -99, -99, -25, -99, -99, -25, -25, -99, -25, -25, -99, -25, -99, -99, -25, -99, -99, -99, -99, -25, -99, -99, -99, -99, -99, -99, -99, -25, -99, -99, -99, -25, -99},
{-99, -99, -28, -99, -28, -99, -99, -28, -99, -99, -28, -28, -99, -28, -28, -99, -28, -99, -99, -28, -99, -99, -99, -99, -28, -99, -99, -99, -99, -28, -99, -99, -28, -99, -99, -99, -28, -99},
{-99, -99, -31, -99, -31, -99, -99, -31, -99, -99, -31, -31, -99, -31, -31, -99, -31, -99, -99, -31, -99, -99, -99, -99, -31, -99, -99, -99, -99, -31, -99, -99, -31, -99, -99, -31, -31, -99},
{-99, -99, -34, -99, -34, -99, -99, -34, -99, -99, -34, -34, -99, -34, -34, -99, -34, -99, -99, -34, -99, -99, -34, -99, -34, -99, -99, -99, -99, -34, -99, -99, -34, -99, -99, -34, -34, -99},
{-99, -99, -37, -99, -37, -99, -99, -37, -99, -99, -37, -37, -99, -37, -37, -99, -37, -99, -99, -37, -99, -99, -37, -99, -37, -99, -37, -99, -99, -37, -99, -99, -37, -99, -99, -37, -37, -99},
{-99, -99, -40, -99, -40, -99, -99, -40, -99, -99, -40, -40, -40, -40, -40, -99, -40, -99, -99, -40, -99, -99, -40, -99, -40, -99, -40, -99, -99, -40, -99, -99, -40, -99, -99, -40, -40, -99},
{-99, -99, -43, -99, -43, -99, -99, -43, -99, -99, -43, -43, -43, -43, -43, -99, -43, -99, -99, -43, -99, -99, -43, -99, -43, -99, -43, -99, -99, -43, -99, -43, -43, -99, -99, -43, -43, -99},
{-99, -99, -46, -99, -46, -99, -99, -46, -99, -99, -46, -46, -46, -46, -46, -99, -46, -99, -99, -46, -46, -99, -46, -99, -46, -99, -46, -99, -99, -46, -99, -46, -46, -99, -99, -46, -46, -99},
{-99, -99, -55, -99, -55, -99, -99, -55, -99, -99, -55, -55, -55, -55, -55, -99, -55, -99, -99, -55, -55, -55, -55, -99, -55, -99, -55, -99, -99, -55, -99, -55, -55, -99, -99, -55, -55, -99},
{-99, -99, -57, -99, -57, -99, -99, -57, -99, -99, -57, -57, -57, -57, -57, -99, -57, -99, -99, -57, -57, -57, -57, -99, -57, -99, -57, -99, -99, -57, -99, -57, -57, -99, -99, -57, -57, -99},
{-99, -99, -49, -99, -49, -99, -99, -49, -99, -99, -49, -49, -49, -49, -49, -99, -49, -99, -99, -49, -49, -49, -49, -99, -49, -99, -49, -99, -99, -49, -99, -49, -49, -99, -99, -49, -49, -99},
{-99, -99, -51, -99, -51, -99, -99, -51, -99, -99, -51, -51, -51, -51, -51, -99, -51, -99, -99, -51, -51, -51, -51, -99, -51, -99, -51, -99, -99, -51, -99, -51, -51, -99, -99, -51, -51, -99},
{-99, -99, -52, -99, -52, -99, -99, -52, -99, -99, -52, -52, -52, -52, -52, -99, -52, -99, -99, -52, -52, -52, -52, -99, -52, -99, -52, -99, -99, -52, -99, -52, -52, -99, -99, -52, -52, -99},
{-99, -99, -54, -99, -54, -99, -99, -54, -99, -99, -54, -54, -54, -54, -54, -99, -54, -99, -99, -54, -54, -54, -54, -99, -54, -99, -54, -99, -99, -54, -99, -54, -54, -99, -99, -54, -54, -99},
{-99, -99, -53, -99, -53, -99, -99, -53, -99, -99, -53, -53, -53, -53, -53, -99, -53, -99, -99, -53, -53, -53, -53, -99, -53, -99, -53, -99, -99, -53, -99, -53, -53, -99, -99, -53, -53, -99},
{-99, -99, -56, -99, -56, -99, -99, -56, -99, -99, -56, -56, -56, -56, -56, -99, -56, -99, -99, -56, -56, -56, -56, -99, -56, -99, -56, -99, -99, -56, -99, -56, -56, -99, -99, -56, -56, -99},
{-99, -99, -50, -99, -50, -99, -99, -50, -99, -99, -50, -50, -50, -50, -50, -99, -50, -99, -99, -50, -50, -50, -50, -99, -50, -99, -50, -99, -99, -50, -99, -50, -50, -99, -99, -50, -50, -99}};
const struct _TOKEN LalrSemanticRules[RULES_COUNT] =
{
{UNKNOWN, ""},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@AND"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@OR"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@GT"},
{SEMANTIC_RULE, "@LT"},
{SEMANTIC_RULE, "@EGT"},
{SEMANTIC_RULE, "@ELT"},
{SEMANTIC_RULE, "@EQ"},
{SEMANTIC_RULE, "@NEQ"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@OR"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@XOR"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@AND"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@ASR"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@ASL"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@ADD"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@SUB"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@MUL"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@DIV"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@MOD"},
{UNKNOWN, ""},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@POI"},
{SEMANTIC_RULE, "@DB"},
{SEMANTIC_RULE, "@DD"},
{SEMANTIC_RULE, "@DW"},
{SEMANTIC_RULE, "@DQ"},
{SEMANTIC_RULE, "@NEG"},
{SEMANTIC_RULE, "@HI"},
{SEMANTIC_RULE, "@LOW"},
{SEMANTIC_RULE, "@NOT"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@PUSH"},
{SEMANTIC_RULE, "@NEG"},
{UNKNOWN, ""},
{SEMANTIC_RULE, "@NEG"},
{UNKNOWN, ""}};