private void ParseOrExpr(ParseNode parent)
{
Token tok;
ParseNode n;
ParseNode node = parent.CreateNode(scanner.GetToken(TokenType.OrExpr), "OrExpr");
parent.Nodes.Add(node);
ParseAndExpr(node);
tok = scanner.LookAhead(TokenType.OR);
while (tok.Type == TokenType.OR)
{
tok = scanner.Scan(TokenType.OR);
n = node.CreateNode(tok, tok.ToString());
node.Token.UpdateRange(tok);
node.Nodes.Add(n);
if (tok.Type != TokenType.OR)
{
tree.Errors.Add(new ParseError("Unexpected token '" + tok.Text.Replace("\n", "") + "' found. Expected " + TokenType.OR.ToString(), 0x1001, 0, tok.StartPos, tok.StartPos, tok.Length));
return;
}
ParseAndExpr(node);
tok = scanner.LookAhead(TokenType.OR);
}
parent.Token.UpdateRange(node.Token);
}