private void ParseIfBlockComment() { var ifBlockNode = new IfBlockNode(); AppendNode(ifBlockNode); _nodeStack.Push(ifBlockNode); var expression = SqlTokenHelper.Extract(_tokenType, _token); var ifNode = new IfNode(Location, expression, _token); ifBlockNode.IfNode = ifNode; _nodeStack.Push(ifNode); }
private bool HandleIfNode(IfBlockNode node, Context parameter) { var ifNode = node.IfNode; var expression = ifNode.Expression; var isValid = ExpressionEvaluator.Evaluate(expression, _propertyValues); if (isValid) { ifNode.Accept(this, parameter); return(true); } return(false); }
public object VisitIfBlockNode(IfBlockNode node, Context parameter) { if (!HandleIfNode(node, parameter)) { if (!HandleElseifNode(node, parameter)) { HandleElseNode(node, parameter); } } var endNode = node.EndNode; return(endNode.Accept(this, parameter)); }
private bool HandleElseifNode(IfBlockNode node, Context parameter) { foreach (var elseifNode in node.ElseifNodes) { var expression = elseifNode.Expression; var isValid = ExpressionEvaluator.Evaluate(expression, _propertyValues); if (isValid) { elseifNode.Accept(this, parameter); return(true); } } return(false); }
private void HandleElseNode(IfBlockNode node, Context parameter) { var elseNode = node.ElseNode; elseNode?.Accept(this, parameter); }