// <Expression> ::= <Term> { "|" <Term> } . private void ParseExpression() { ParseAction(); _astBuilder.BeginExpression(_scanner.CurrentToken); ParseTerm(); while (_scanner.CurrentToken.TokenKind == TokenKind.Or) { _scanner.Advance(); ParseTerm(); } ParseAction(); _astBuilder.EndExpression(); }