private Node parseConditional()
{
If conditionalToken = (If) expect(typeof (If));
ConditionalNode conditional = new ConditionalNode();
conditional.setLineNumber(conditionalToken.getLineNumber());
conditional.setFileName(filename);
List<IfConditionNode> conditions = conditional.getConditions();
IfConditionNode main = new IfConditionNode(conditionalToken.getValue(), conditionalToken.getLineNumber());
main.setInverse(conditionalToken.isInverseCondition());
main.setBlock(block());
conditions.Add(main);
while (peek() is ElseIf)
{
ElseIf token = (ElseIf) expect(typeof (ElseIf))
;
IfConditionNode elseIf = new IfConditionNode(token.getValue(), token.getLineNumber());
elseIf.setBlock(block());
conditions.Add(elseIf);
}
if (peek() is Else)
{
Else token = (Else) expect(typeof (Else))
;
IfConditionNode elseNode = new IfConditionNode(null, token.getLineNumber());
elseNode.setDefault(true);
elseNode.setBlock(block());
conditions.Add(elseNode);
}
return conditional;
}