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> .VisitVar(TransitionConditionExpr.VarExpr var) { return(true); }
VarsCollector ITransitionConditionExprVisitor <VarsCollector> .VisitVar(TransitionConditionExpr.VarExpr var) { this.Add(var.Name); return(this); }
bool ITransitionConditionExprVisitor <bool> .VisitVar(TransitionConditionExpr.VarExpr var) { return(_varEvaluator(var.Name)); }