void NextStatement(ref StatementNode node) { ExpressionNode varExpr = null; Expect(41); NumericVariable(ref varExpr); var nnode = new NextStatementNode(varExpr); prog.PopNext(ref nnode); node = nnode; }
public bool PopNext(ref NextStatementNode next) { if (openFors.Count == 0) { parser.SemErr("NEXT without FOR"); return(false); } var forNode = openFors.Pop(); if (next.Var == null) { next = new NextStatementNode(forNode.Var); } else if (!forNode.Var.Equals(next.Var)) { parser.SemErr($"different var names in FOR ({forNode.Var.Name}) and NEXT ({next.Var.Name})"); return(false); } next.For = forNode; forNode.nextNode = next; return(true); }