#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, ""}};