-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathconstants.js
More file actions
106 lines (101 loc) · 2.52 KB
/
constants.js
File metadata and controls
106 lines (101 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const KEYWORDS = {
JEKI: "jeki",
NIGBATI: "nigbati",
SOPE: "sope",
TABI: "tabi",
OOTO: "ooto",
IRO: "iro",
ISE: "ise",
FUN: "fun",
PADA: "pada",
KURO: "kuro",
SE: "se",
YI: "yi",
IRU: "iru",
PADASI: "padasi",
GBE_WOLE: "gbewole",
WOKE: "woke",
};
const SYMBOLS = {
STR_QUOTE: '"',
STR_QUOTE_SINGLE: "'",
PERIOD: ".",
OR: "||",
AND: "&&",
BINARY_AND: "&",
L_THAN: "<",
G_THAN: ">",
G_THAN_OR_EQ: ">=",
L_THAN_OR_EQ: "<=",
NOT_EQ: "!=",
EQ: "==",
ASSIGN: "=",
PLUS: "+",
MINUS: "-",
MULTIPLY: "*",
DIVIDE: "/",
REMAINDER: "%",
L_PAREN: "{",
R_PAREN: "}",
COMMA: ",",
COMMENT: "#",
L_BRACKET: "(",
R_BRACKET: ")",
L_SQ_BRACKET: "[",
R_SQ_BRACKET: "]",
STATEMENT_TERMINATOR: ";",
NEW_LINE: "\n",
TAB_SPACE: "\t",
EMPTY_SPACE: " ",
EXCLAMATION_POINT: "!",
PIPE: "|",
COLON: ":",
BACK_TICK: "`",
};
const LIST = {
PUNCTUATIONS: [
SYMBOLS.L_BRACKET, SYMBOLS.R_BRACKET, SYMBOLS.L_PAREN,
SYMBOLS.R_PAREN, SYMBOLS.STATEMENT_TERMINATOR, SYMBOLS.COMMA,
SYMBOLS.L_SQ_BRACKET, SYMBOLS.R_SQ_BRACKET, SYMBOLS.COLON, SYMBOLS.BACK_TICK,
],
OPERATORS: [
SYMBOLS.PLUS, SYMBOLS.MINUS, SYMBOLS.MULTIPLY,
SYMBOLS.DIVIDE, SYMBOLS.REMAINDER, SYMBOLS.L_THAN,
SYMBOLS.G_THAN, SYMBOLS.EQ, SYMBOLS.EXCLAMATION_POINT,
SYMBOLS.PIPE, SYMBOLS.BINARY_AND, SYMBOLS.ASSIGN,
],
WHITESPACES: [
SYMBOLS.EMPTY_SPACE, SYMBOLS.TAB_SPACE, SYMBOLS.NEW_LINE,
],
KEYWORDS: [
KEYWORDS.JEKI, KEYWORDS.NIGBATI, KEYWORDS.SE, KEYWORDS.SOPE,
KEYWORDS.TABI, KEYWORDS.OOTO, KEYWORDS.IRO, KEYWORDS.ISE,
KEYWORDS.FUN, KEYWORDS.PADA, KEYWORDS.KURO, KEYWORDS.YI,
KEYWORDS.IRU, KEYWORDS.PADASI, KEYWORDS.GBE_WOLE, KEYWORDS.WOKE,
],
};
const REGEX = {
DIGIT: /[0-9]/i,
IDENTIFIER: /[a-zA-Z]|[ÁÀÉÈẸẸ́Ẹ̀ẸĒÍÌÓÒỌỌ́Ọ̀ỌÚÙṢáàéèẹẹ́ẹíìóòọọ́ọ̀úùṣŃń]/i,
};
const constants = {
KW: KEYWORDS,
SYM: SYMBOLS,
LIST: LIST,
REGEX: REGEX,
KEYWORD: "keyword",
VARIABLE: "variable",
STRING: "string",
ARRAY: "array",
ARRAY_ELEM: "arrayElement",
NUMBER: "number",
PROGRAM: "program",
PUNCTUATION: "punctuation",
OPERATOR: "operator",
GET_JEKI: "getJeki",
CALL_ISE: "callIse",
EXP_PUNC: "expression_punctuations",
YL_EXT: ".yl",
NEGATE_EXPRESSION: "negate_exp",
};
module.exports = constants;