123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import {
- I18N_LEXER_TYPES,
- I18N_LEXER_COMMANDS,
- I18N_LEXER_BOOLVAL,
- I18N_LEXER_LOGICOP,
- makeLexer,
- I18N_LANG_LIBS,
- I18N_LANG_FUNCS,
- } from "../lexer";
- // i18n lexer strings for the language.
- const types: I18N_LEXER_TYPES = {
- // types
- RK_REAL: "real",
- RK_INTEGER: "int",
- RK_BOOLEAN: "bool",
- RK_CHARACTER: "char",
- RK_STRING: "string",
- };
- const commands: I18N_LEXER_COMMANDS = {
- // RK_VOID is not formally part of Types since it doesn't have a valid value/instance
- RK_VOID: "void",
- // commands
- RK_PROGRAM: "program",
- RK_SWITCH: "switch",
- RK_CASE: "case",
- RK_DEFAULT: "otherwise",
- RK_CONST: "const",
- RK_FUNCTION: "function",
- RK_RETURN: "return",
- RK_FOR: "for",
- RK_FOR_ALT: "repeat_for",
- RK_FOR_FROM: "from",
- RK_FOR_TO: "to",
- RK_FOR_PASS: "pass",
- RK_BREAK: "break",
- RK_DO: "repeat",
- RK_DO_UNTIL: "until",
- RK_WHILE: "while",
- RK_WHILE_ALT: "repeat_while",
- RK_IF: "if",
- RK_ELSE: "else",
- RK_REFERENCE: "&",
- };
- const boolVal: I18N_LEXER_BOOLVAL = {
- RK_FALSE: "false",
- RK_TRUE: "true",
- };
- const logicOp: I18N_LEXER_LOGICOP = {
- RK_LOGICAL_NOT: "not",
- RK_LOGICAL_AND: "AND",
- RK_LOGICAL_OR: "OR",
- };
- const langLibs: I18N_LANG_LIBS = {
- $mathLib: "Mathematics",
- $ioLib: "IO",
- $strLib: "Text",
- $arrayLib: "Array",
- $langLib: "Conversion",
- };
- const langFuncs: I18N_LANG_FUNCS = {
- main_function: "main",
- $read: "read",
- $write: "write",
- $numElements: "total_of_elements",
- $matrixLines: "total_of_lines",
- $matrixColumns: "total_of_columns",
- $substring: "substring",
- $length: "length",
- $uppercase: "uppercase",
- $lowercase: "lowercase",
- $charAt: "char_at",
- $isReal: "is_real",
- $isInt: "is_integer",
- $isBool: "is_logic",
- $castReal: "to_real",
- $castInt: "to_integer",
- $castBool: "to_logic",
- $castString: "to_string",
- $castChar: "to_char",
- $sin: "sin",
- $cos: "cos",
- $tan: "tan",
- $sqrt: "sqrt",
- $pow: "pow",
- $log: "log",
- $abs: "abs",
- $negate: "negate",
- $invert: "invert",
- $max: "maximum",
- $min: "minimum",
- $rand: "random",
- };
- // END i18n lexer strings
- export const enLexer = makeLexer({
- commands,
- boolVal,
- logicOp,
- types,
- langLibs,
- langFuncs,
- });
|