public string Visit(NArrayList nArrayList) { string retVal = "\t\tldc.i8 0\n"; retVal += "\t\tcall int64 class ['int64lib']'Int64'.'Utils'::'New'(int64)\n"; foreach (Node literal in nArrayList.children) { retVal += "\t\tdup\n"; retVal += Visit((dynamic)literal); retVal += "\t\tcall int64 class ['int64lib']'Int64'.'Utils'::'add'(int64, int64)\n"; retVal += "\t\tpop\n"; } return(retVal); }
// Returns NArrayList public Node ArrayList() { NArrayList nArrayList = new NArrayList(); Expect(TokenCategory.CURLY_BRACE_LEFT); if (firstOfLit.Contains(CurrentToken)) { nArrayList.Add(Lit()); while (CurrentToken == TokenCategory.COMMA) { Expect(TokenCategory.COMMA); nArrayList.Add(Lit()); } } Expect(TokenCategory.CURLY_BRACE_RIGHT); return(nArrayList); }
//----------------------------------------------------------- public void Visit(NArrayList node) { Console.WriteLine($"+++++++++++++++ NArrayList ++++++++++++++++"); //VisitBinaryOperator('*', node /*, Type.INT*/); VisitChildren(node); }
public void Visit(NArrayList nArrayList) { GenericChildVisitor(nArrayList); }