mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-08-22 15:05:38 +00:00
1234 lines
88 KiB
C
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, ""}};
|