static int initialized = 0;
-static const char *predeclaredNames[23];
+static const char *predeclaredNames[20];
static Trees_Node predeclaredNodes[LEN(predeclaredNames)];
static Scope globalScope, currentScope;
void Table_Init(void)
{
+/* Type Conversions
+
+ FLOOR() -> AsInt()
+ FLT() -> AsReal()
+ ORD() -> AsInt()
+ CHR() -> AsChar()
+
+*/
static const struct { const char *name; int kind, type; } predecIdents[] = {
- {"ABS", TREES_PROCEDURE_KIND, TREES_ABS_PROC},
- {"ASR", TREES_PROCEDURE_KIND, TREES_ASR_PROC},
+ {"ABS", TREES_PROCEDURE_KIND, TREES_ABS_PROC}, /* Remove */
+ {"ASR", TREES_PROCEDURE_KIND, TREES_ASR_PROC}, /* Operator */
{"Assert", TREES_PROCEDURE_KIND, TREES_ASSERT_PROC},
{"Bool", TREES_TYPE_KIND, TREES_BOOLEAN_TYPE},
{"Byte", TREES_TYPE_KIND, TREES_BYTE_TYPE},
{"CHR", TREES_PROCEDURE_KIND, TREES_CHR_PROC},
{"Char", TREES_TYPE_KIND, TREES_CHAR_TYPE},
- {"DEC", TREES_PROCEDURE_KIND, TREES_DEC_PROC},
+ {"DEC", TREES_PROCEDURE_KIND, TREES_DEC_PROC}, /* Operator */
{"EXCL", TREES_PROCEDURE_KIND, TREES_EXCL_PROC},
{"FLOOR", TREES_PROCEDURE_KIND, TREES_FLOOR_PROC},
{"FLT", TREES_PROCEDURE_KIND, TREES_FLT_PROC},
- {"INC", TREES_PROCEDURE_KIND, TREES_INC_PROC},
+ {"INC", TREES_PROCEDURE_KIND, TREES_INC_PROC}, /* Operator */
{"INCL", TREES_PROCEDURE_KIND, TREES_INCL_PROC},
{"Int", TREES_TYPE_KIND, TREES_INTEGER_TYPE},
- {"LSL", TREES_PROCEDURE_KIND, TREES_LSL_PROC},
+ {"LSL", TREES_PROCEDURE_KIND, TREES_LSL_PROC}, /* Operator */
{"Length", TREES_PROCEDURE_KIND, TREES_LEN_PROC},
{"New", TREES_PROCEDURE_KIND, TREES_NEW_PROC},
{"ORD", TREES_PROCEDURE_KIND, TREES_ORD_PROC},
- {"PACK", TREES_PROCEDURE_KIND, TREES_PACK_PROC},
- {"ROR", TREES_PROCEDURE_KIND, TREES_ROR_PROC},
{"Real", TREES_TYPE_KIND, TREES_REAL_TYPE},
{"Set", TREES_TYPE_KIND, TREES_SET_TYPE},
- {"UNPK", TREES_PROCEDURE_KIND, TREES_UNPK_PROC}
};
int i;