inline bool NewDeclaration(table *t, char *L) { value val; if (currentType == INTTYPE) { val.flag = true; val.ival = 0; } else { val.flag = false; val.dval = 0.0; } optional opt; if (!(opt = create_sym(t, L, val)).e) { //printf("Error at line %d position %d Redeclaration of %s\n", get_linenum(), get_position(), L); fprintf(sym_file, "Error at line %d position %d Redeclaration of %s\n", get_linenum(), get_position(), L); stop(); return false; } else { arr_push(operands, opt.val); return true; } }
int error(char *mes){ printf("\n line %d: ERROR:%s\n",get_linenum(),mes); end_scan(); return ERROR; }
inline void VariableFound(char *var) { optional opt = get_sym(tab, var); if (opt.e) { arr_push(operands, opt.val); } else { //printf("Error at line %d position %d Use of undeclared variable %s\n", get_linenum(), get_position(), var); fprintf(sym_file, "Error at line %d position %d Use of undeclared variable %s\n", get_linenum(), get_position(), var); stop(); } }