private static TransitionConditionExpr Translate(this exprItem item, AutomatonParsingContext ctx) { TransitionConditionExpr expr; if (item.identifier != null) { expr = new TransitionConditionExpr.VarExpr(ctx.Unescape(item.identifier.@string)); } else if (item.exprGroup != null) { expr = item.exprGroup.exprSeq.TranslateToConditionExpr(ctx); } else if (item.literal != null) { expr = new TransitionConditionExpr.ConstExpr(true); } else { throw new NotImplementedException(); } if (item.not != null) { expr = new TransitionConditionExpr.NotExpr(expr); } return(expr); }
bool ITransitionConditionExprVisitor <bool> .VisitNot(TransitionConditionExpr.NotExpr not) { return(false); }
VarsCollector ITransitionConditionExprVisitor <VarsCollector> .VisitNot(TransitionConditionExpr.NotExpr not) { throw new InvalidOperationException(); }
bool ITransitionConditionExprVisitor <bool> .VisitNot(TransitionConditionExpr.NotExpr not) { return(!not.Child.Apply(this)); }