public override int VisitDef_const([NotNull] GrammarParser.Def_constContext context) { VarConstItem newItem = createConst(context); if (inFunction) { if (!localSymbolTable.ContainsVarConstItem(newItem.GetName())) { localSymbolTable.AddVarConstItem(newItem); } else { errors.Add("Promena " + newItem.GetName() + " uz existuje!\n"); Console.WriteLine("Promena " + newItem.GetName() + " uz existuje!\n"); } inFunctionAddress += 1; } else { if (!globalSymbolTable.ContainsVarConstItem(newItem.GetName())) { globalSymbolTable.AddVarConstItem(newItem); } else { errors.Add("Promena " + newItem.GetName() + " uz existuje!\n"); Console.WriteLine("Promena " + newItem.GetName() + " uz existuje!\n"); } globalAddress += 1; } Boolean isNeg = isNegative(newItem.GetValue()); String value = removeUnaryOperator(newItem.GetValue()); AddLIT(value); if (isNeg) { AddOPR(Instruction.UNARY_MINUS); } base.VisitDef_const(context); return(20); }
public void AddVarConstItem(VarConstItem item) { varConstTable[item.GetName()] = item; }