// Appends NFunDef to nFunDefList public void FunDef(NFunDefList nFunDefList) { NFunDef nFunDef = new NFunDef() { AnchorToken = Expect(TokenCategory.IDENTIFIER) }; NParameterList nParameterList = new NParameterList(); Expect(TokenCategory.PARENTHESIS_LEFT); if (CurrentToken == TokenCategory.IDENTIFIER) { nParameterList.Add(new NParameter() { AnchorToken = Expect(TokenCategory.IDENTIFIER) }); while (CurrentToken == TokenCategory.COMMA) { Expect(TokenCategory.COMMA); nParameterList.Add(new NParameter() { AnchorToken = Expect(TokenCategory.IDENTIFIER) }); } } Expect(TokenCategory.PARENTHESIS_RIGHT); Expect(TokenCategory.CURLY_BRACE_LEFT); NVarDefList nVarDefList = (NVarDefList)VarDefList(); NStmtList nStmtList = (NStmtList)StmtList(); Expect(TokenCategory.CURLY_BRACE_RIGHT); nFunDef.Add(nParameterList); nFunDef.Add(nVarDefList); nFunDef.Add(nStmtList); nFunDefList.Add(nFunDef); }
public string Visit(NParameterList nParameterList) { string retVal = ""; int childrenCount = nParameterList.children.Count; for (int i = 0; i < childrenCount; ++i) { retVal += Visit((dynamic)nParameterList[i]); if (i != childrenCount - 1) { retVal += ", "; } } return(retVal); }
public void Visit(NParameterList node) { Console.WriteLine($"+++++++++++++++ NPARAMETERLIST ++++++++++++++++"); VisitChildren(node); }