public void Visit(DeclarationContext parserRule, IFunctionCil cilTree, IContextCil contextCil) { contextCil.Define(parserRule.idText); var Id = new LocalCil(contextCil.variables[parserRule.idText].Name); cilTree.LocalCils.Add(Id); IHolderCil value; if (parserRule.expression != null) { value = Visit(parserRule.expression, cilTree, contextCil); } else if (parserRule.type.Text == "Int") { value = CreateABasicType(cilTree, CilAst.Int); } else if (parserRule.type.Text == "String") { value = CreateABasicType(cilTree, CilAst.String); } else if (parserRule.type.Text == "Bool") { value = CreateABasicType(cilTree, CilAst.Bool); } else { value = Visit_void(cilTree); } cilTree.ThreeDirInses.Add(new AssigCil(Id, value)); }
public void Visit(FormalContext parserRule, IFunctionCil cilTree, IContextCil contextCil) { contextCil.Define(parserRule.idText); var arg = new ArgCil(contextCil.variables[parserRule.idText].Name); cilTree.ArgCils.Add(arg); }