//declarestmt public override void OutADeclarestmt(ADeclarestmt node) { Definition typeDef, varDef; String typeName = node.GetType().Text; String varName = node.GetVarname().Text; // check type name is defined if (!(_currentSymbolTable.TryGetValue(typeName, out typeDef) || _globalSymbolTable.TryGetValue(typeName, out typeDef))) { Console.WriteLine("[" + node.GetType().Line + "] : " + typeName + " is not defined."); // check if type name is defined as a type } else if (!(typeDef is TypeDefinition)) { Console.WriteLine("[" + node.GetType().Line + "] : " + typeName + " is not a valid type."); // check var name is not defined } else if (_currentSymbolTable.TryGetValue(varName, out varDef)) { Console.WriteLine("[" + node.GetVarname().Line + "] : " + varName + " is already defined."); // add to symbol table } else { VariableDefinition newDef = new VariableDefinition(); newDef.name = varName; newDef.vartype = (TypeDefinition)typeDef; _currentSymbolTable.Add(varName, newDef); } }
public override void CaseADeclarestmt(ADeclarestmt node) { InADeclarestmt(node); if (node.GetEol() != null) { node.GetEol().Apply(this); } if (node.GetVarname() != null) { node.GetVarname().Apply(this); } if (node.GetTypename() != null) { node.GetTypename().Apply(this); } OutADeclarestmt(node); }
ArrayList New7() { ArrayList nodeList = new ArrayList(); ArrayList nodeArrayList3 = (ArrayList)Pop(); ArrayList nodeArrayList2 = (ArrayList)Pop(); ArrayList nodeArrayList1 = (ArrayList)Pop(); TId tidNode2 = (TId)nodeArrayList1[0]; TId tidNode3 = (TId)nodeArrayList2[0]; TEol teolNode4 = (TEol)nodeArrayList3[0]; ADeclarestmt pdeclarestmtNode1 = new ADeclarestmt( tidNode2, tidNode3, teolNode4 ); nodeList.Add(pdeclarestmtNode1); return(nodeList); }
public virtual void OutADeclarestmt(ADeclarestmt node) { DefaultOut(node); }
public virtual void InADeclarestmt(ADeclarestmt node) { DefaultIn(node); }
public virtual void CaseADeclarestmt(ADeclarestmt node) { DefaultCase(node); }
public override void InADeclarestmt(ADeclarestmt node) { _output.Write("\t.locals init("); _output.WriteLine(node.GetTypename().Text + "32 " + node.GetVarname().Text + ")"); }