private ActionSequenceNode ParseElseifStatements() { ActionSequenceNode itsAST; SourceCodePosition itsPos = _currentToken.SourcePosition; ActionNode itsAction = ParseElseifStatement(); if (_currentToken.Type == Token.TokenType.Elseif) { ActionSequenceNode itsNextActions = ParseElseifStatements(); itsAST = new MultipleActionSequenceNode(itsAction, itsNextActions, itsPos); } else { itsAST = new SingleActionSequenceNode(itsAction, itsPos); } return(itsAST); }
private ActionSequenceNode ParseActionStatements() { ActionSequenceNode itsAST; SourceCodePosition itsPos = _currentToken.SourcePosition; ActionNode itsAction = ParseActionStatement(); if (Array.Exists(_actionStatementFirstSet, e => e == _currentToken.Type)) { ActionSequenceNode itsNextActions = ParseActionStatements(); itsAST = new MultipleActionSequenceNode(itsAction, itsNextActions, itsPos); } else { itsAST = new SingleActionSequenceNode(itsAction, itsPos); } return(itsAST); }
public object Visit(MultipleActionSequenceNode n, object o) { n.Action.Accept(this, null); n.Actions.Accept(this, null); return(null); }