private void ParsePredicateExpression(PredicateExpressionContext node) { foreach (var child in node.children) { if (child is ExpressionAtomPredicateContext atom) { this.ParseExpressionAtom(atom); } else if (child is BinaryComparasionPredicateContext binary) { foreach (var binaryChild in binary.children) { if (binaryChild is ExpressionAtomPredicateContext expAtom) { this.ParseExpressionAtom(expAtom); } else if (binaryChild is ComparisonOperatorContext comparison) { foreach (var comparionChild in comparison.children) { if (comparionChild is TerminalNodeImpl terminalNode) { this.Write(terminalNode.GetText()); } } } } } } }
public static QsiExpressionNode VisitPredicateExpression(PredicateExpressionContext context) { return(VisitPredicate(context.predicate())); }