2021-06-10 16:31:25 +04:30
|
|
|
#pragma once
|
|
|
|
|
#ifndef PARSE_TABLE_H
|
2023-06-06 22:46:03 +09:00
|
|
|
#define PARSE_TABLE_H
|
2026-08-14 21:40:42 +08:00
|
|
|
#define RULES_COUNT 381
|
2026-07-20 23:21:34 +08:00
|
|
|
#define TERMINAL_COUNT 135
|
2026-08-14 21:40:42 +08:00
|
|
|
#define NONETERMINAL_COUNT 104
|
2023-06-06 22:46:03 +09:00
|
|
|
#define START_VARIABLE "S"
|
|
|
|
|
#define MAX_RHS_LEN 15
|
2026-05-25 16:26:26 +02:00
|
|
|
#define KEYWORD_LIST_LENGTH 121
|
2025-10-21 16:46:49 +08:00
|
|
|
#define OPERATORS_ONE_OPERAND_LIST_LENGTH 3
|
2023-06-06 22:46:03 +09:00
|
|
|
#define OPERATORS_TWO_OPERAND_LIST_LENGTH 16
|
|
|
|
|
#define REGISTER_MAP_LIST_LENGTH 120
|
2024-06-30 20:59:41 +09:00
|
|
|
#define PSEUDO_REGISTER_MAP_LIST_LENGTH 16
|
2026-08-09 23:24:21 +08:00
|
|
|
#define SCRIPT_VARIABLE_TYPE_LIST_LENGTH 11
|
2024-08-22 00:30:23 +08:00
|
|
|
#define ASSIGNMENT_OPERATOR_LIST_LENGTH 10
|
2026-07-20 23:21:34 +08:00
|
|
|
#define SEMANTIC_RULES_MAP_LIST_LENGTH 211
|
2023-11-10 00:22:31 +08:00
|
|
|
#define THREEOPFUNC1_LENGTH 1
|
2025-02-20 15:31:03 +01:00
|
|
|
#define THREEOPFUNC2_LENGTH 3
|
|
|
|
|
#define TWOOPFUNC1_LENGTH 8
|
2023-08-21 23:12:05 +09:00
|
|
|
#define TWOOPFUNC2_LENGTH 2
|
2026-05-24 23:51:12 +02:00
|
|
|
#define ONEOPFUNC1_LENGTH 26
|
2025-06-02 11:26:48 +02:00
|
|
|
#define ONEOPFUNC2_LENGTH 10
|
2023-11-02 23:25:46 +08:00
|
|
|
#define ONEOPFUNC3_LENGTH 1
|
|
|
|
|
#define TWOOPFUNC3_LENGTH 1
|
2024-06-13 14:42:43 +09:00
|
|
|
#define THREEOPFUNC3_LENGTH 2
|
|
|
|
|
#define THREEOPFUNC4_LENGTH 1
|
2023-11-08 23:48:59 +08:00
|
|
|
#define ONEOPFUNC4_LENGTH 1
|
|
|
|
|
#define TWOOPFUNC4_LENGTH 1
|
2026-05-25 16:26:26 +02:00
|
|
|
#define ZEROOPFUNC1_LENGTH 7
|
|
|
|
|
#define ZEROOPFUNC2_LENGTH 7
|
2023-06-06 22:46:03 +09:00
|
|
|
#define VARARGFUNC1_LENGTH 1
|
2025-07-07 11:46:10 -07:00
|
|
|
extern const struct _SCRIPT_ENGINE_TOKEN Lhs[RULES_COUNT];
|
|
|
|
|
extern const struct _SCRIPT_ENGINE_TOKEN Rhs[RULES_COUNT][MAX_RHS_LEN];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const unsigned int RhsSize[RULES_COUNT];
|
|
|
|
|
extern const char* NoneTerminalMap[NONETERMINAL_COUNT];
|
|
|
|
|
extern const char* TerminalMap[TERMINAL_COUNT];
|
|
|
|
|
extern const int ParseTable[NONETERMINAL_COUNT][TERMINAL_COUNT];
|
|
|
|
|
extern const char* KeywordList[];
|
|
|
|
|
extern const char* OperatorsTwoOperandList[];
|
|
|
|
|
extern const char* OperatorsOneOperandList[];
|
2024-08-22 00:30:23 +08:00
|
|
|
extern const char* AssignmentOperatorList[];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const char* ThreeOpFunc1[];
|
2023-11-10 00:22:31 +08:00
|
|
|
extern const char* ThreeOpFunc2[];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const char* TwoOpFunc1[];
|
|
|
|
|
extern const char* TwoOpFunc2[];
|
|
|
|
|
extern const char* OneOpFunc1[];
|
|
|
|
|
extern const char* OneOpFunc2[];
|
2023-11-02 23:25:46 +08:00
|
|
|
extern const char* OneOpFunc3[];
|
|
|
|
|
extern const char* TwoOpFunc3[];
|
|
|
|
|
extern const char* ThreeOpFunc3[];
|
2024-06-13 14:42:43 +09:00
|
|
|
extern const char* ThreeOpFunc4[];
|
2023-11-08 23:48:59 +08:00
|
|
|
extern const char* OneOpFunc4[];
|
|
|
|
|
extern const char* TwoOpFunc4[];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const char* ZeroOpFunc1[];
|
2025-06-03 10:00:08 +02:00
|
|
|
extern const char* ZeroOpFunc2[];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const char* VarArgFunc1[];
|
|
|
|
|
extern const SYMBOL_MAP SemanticRulesMapList[];
|
|
|
|
|
extern const SYMBOL_MAP RegisterMapList[];
|
|
|
|
|
extern const SYMBOL_MAP PseudoRegisterMapList[];
|
2024-07-25 01:52:58 +08:00
|
|
|
extern const char* ScriptVariableTypeList[];
|
2021-06-11 15:26:08 +04:30
|
|
|
|
2023-06-06 22:46:03 +09:00
|
|
|
|
2026-08-14 21:40:42 +08:00
|
|
|
#define LALR_RULES_COUNT 143
|
2026-07-20 23:21:34 +08:00
|
|
|
#define LALR_TERMINAL_COUNT 93
|
|
|
|
|
#define LALR_NONTERMINAL_COUNT 37
|
2023-06-06 22:46:03 +09:00
|
|
|
#define LALR_MAX_RHS_LEN 9
|
2026-08-14 21:40:42 +08:00
|
|
|
#define LALR_STATE_COUNT 377
|
2025-07-07 11:46:10 -07:00
|
|
|
extern const struct _SCRIPT_ENGINE_TOKEN LalrLhs[RULES_COUNT];
|
|
|
|
|
extern const struct _SCRIPT_ENGINE_TOKEN LalrRhs[RULES_COUNT][MAX_RHS_LEN];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const unsigned int LalrRhsSize[RULES_COUNT];
|
2026-07-20 23:21:34 +08:00
|
|
|
extern const char* LalrNoneTerminalMap[LALR_NONTERMINAL_COUNT];
|
|
|
|
|
extern const char* LalrTerminalMap[LALR_TERMINAL_COUNT];
|
2023-06-06 22:46:03 +09:00
|
|
|
extern const int LalrGotoTable[LALR_STATE_COUNT][LALR_NONTERMINAL_COUNT];
|
|
|
|
|
extern const int LalrActionTable[LALR_STATE_COUNT][LALR_TERMINAL_COUNT];
|
2025-07-07 11:46:10 -07:00
|
|
|
extern const struct _SCRIPT_ENGINE_TOKEN LalrSemanticRules[RULES_COUNT];
|
2021-02-25 18:44:26 +03:30
|
|
|
#endif
|