public override Node VisitQueryQuantifier(QueryQuantifier qq) { base.VisitQueryQuantifier(qq); Composer c = this.GetComposer(qq.Expression); return(this.Compose(qq, c)); }
public SubQueryPredicate(Expr operand , PredicateOperator operater , QueryQuantifier quantifier , IQuery query) { this.Comments = new Comments(4); this.Operand = operand; this.Operator = operater; this.Quantifier = quantifier; this.Query = query; }
internal SubQueryPredicate(Expr operand , PredicateOperator operater , QueryQuantifier quantifier , IQuery query , Comments comments) { this.Comments = comments; this.Operand = operand; this.Operator = operater; this.Quantifier = quantifier; this.Query = query; }
public virtual Node VisitQueryQuantifier(QueryQuantifier qq, QueryQuantifier changes, QueryQuantifier deletions, QueryQuantifier insertions){ this.UpdateSourceContext(qq, changes); if (qq == null) return changes; if (changes != null){ if (deletions == null || insertions == null) Debug.Assert(false); else{ } }else if (deletions != null) return null; return qq; }
public virtual Differences VisitQueryQuantifier(QueryQuantifier qq1, QueryQuantifier qq2){ Differences differences = new Differences(qq1, qq2); if (qq1 == null || qq2 == null){ if (qq1 != qq2) differences.NumberOfDifferences++; else differences.NumberOfSimilarities++; return differences; } QueryQuantifier changes = (QueryQuantifier)qq2.Clone(); QueryQuantifier deletions = (QueryQuantifier)qq2.Clone(); QueryQuantifier insertions = (QueryQuantifier)qq2.Clone(); // qq1.Expression; // qq1.Target; if (differences.NumberOfDifferences == 0){ differences.Changes = null; differences.Deletions = null; differences.Insertions = null; }else{ differences.Changes = changes; differences.Deletions = deletions; differences.Insertions = insertions; } return differences; }
public virtual Node VisitQueryQuantifier(QueryQuantifier qq){ if (qq == null) return null; qq.Expression = this.VisitExpression(qq.Expression); return qq; }
public override Node VisitQueryQuantifier(QueryQuantifier qq) { if (qq == null) return null; QueryQuantifiedExpression savedQQE = this.currentQuantifiedExpression; this.currentQuantifiedExpression = null; qq.Expression = this.VisitExpression(qq.Expression); this.currentQuantifiedExpression = savedQQE; if (qq.Expression == null || qq.Expression.Type == null) return null; Cardinality card = this.typeSystem.GetCardinality(qq.Expression, this.TypeViewer); if (card != Cardinality.OneOrMore && card != Cardinality.ZeroOrMore) { this.HandleError(qq.Expression, Error.QueryNotStream); return null; } if (this.currentQuantifiedExpression == null) { this.HandleError(qq, Error.QueryBadQuantifier); return null; } if (this.currentQuantifiedExpression.Left != qq && this.currentQuantifiedExpression.Right != qq) { this.HandleError(qq, Error.QueryBadQuantifier); return null; } if (qq.Type == null) return null; return qq; }
public override Node VisitQueryQuantifier(QueryQuantifier qq){ if (qq == null) return null; qq.Expression = this.VisitExpression(qq.Expression); if (qq.Expression != null && qq.Expression.Type != null){ qq.Type = this.typeSystem.GetStreamElementType(qq.Expression, this.TypeViewer); } return qq; }
public virtual void VisitQueryQuantifier(QueryQuantifier qq){ if (qq == null) return; this.VisitExpression(qq.Expression); }
public override void ExitSubQueryPredicate(MiniSqlParserParser.SubQueryPredicateContext context) { var comments = this.GetComments(context); var query = (IQuery)_stack.Pop(); var opType2 = context.op2.Type; QueryQuantifier quantifier = QueryQuantifier.Any; if (opType2 == MiniSqlParserLexer.K_ANY) { quantifier = QueryQuantifier.Any; } else if (opType2 == MiniSqlParserLexer.K_SOME) { quantifier = QueryQuantifier.Some; } else if (opType2 == MiniSqlParserLexer.K_ALL) { quantifier = QueryQuantifier.All; } else { throw new CannotBuildASTException("Undifined QueryQuantifier is used"); } var opType1 = context.op1.Type; PredicateOperator operater = PredicateOperator.Equal; if (opType1 == MiniSqlParserLexer.ASSIGN) { operater = PredicateOperator.Equal; } else if (opType1 == MiniSqlParserLexer.NOT_EQ2) { operater = PredicateOperator.NotEqual; } else if (opType1 == MiniSqlParserLexer.LT) { operater = PredicateOperator.Less; } else if (opType1 == MiniSqlParserLexer.LT_EQ) { operater = PredicateOperator.LessOrEqual; } else if (opType1 == MiniSqlParserLexer.GT) { operater = PredicateOperator.Greater; } else if (opType1 == MiniSqlParserLexer.GT_EQ) { operater = PredicateOperator.GreaterOrEqual; } else if (opType1 == MiniSqlParserLexer.EQ) { operater = PredicateOperator.Equal2; } else if (opType1 == MiniSqlParserLexer.NOT_EQ1) { operater = PredicateOperator.NotEqual2; } else { throw new CannotBuildASTException("Undifined PredicateOperator is used"); } var operand = (Expr)_stack.Pop(); var node = new SubQueryPredicate(operand, operater, quantifier, query, comments); _stack.Push(node); }
public override Node VisitQueryQuantifier(QueryQuantifier qq){ if (qq == null) return null; return base.VisitQueryQuantifier((QueryQuantifier)qq.Clone()); }
public virtual Node VisitQueryQuantifier(QueryQuantifier qq1, QueryQuantifier qq2){ if (qq1 == null) return null; if (qq2 == null) qq1.Expression = this.VisitExpression(qq1.Expression, null); else qq1.Expression = this.VisitExpression(qq1.Expression, qq2.Expression); return qq1; }
public override Node VisitQueryQuantifier(QueryQuantifier qq) { return qq.Target; }
public override Node VisitQueryQuantifier(QueryQuantifier qq) { base.VisitQueryQuantifier(qq); Composer c = this.GetComposer(qq.Expression); return this.Compose(qq, c); }
public EventingVisitor(Action<QueryQuantifier> visitQueryQuantifier) { VisitedQueryQuantifier += visitQueryQuantifier; } public event Action<QueryQuantifier> VisitedQueryQuantifier; public override Node VisitQueryQuantifier(QueryQuantifier qq) { if (VisitedQueryQuantifier != null) VisitedQueryQuantifier(qq); return base.VisitQueryQuantifier(qq); }