예제 #1
0
        public override PatternUst Visit(PatternNot patternNot)
        {
            if (patternNot.Pattern is PatternNot innerPatternNot)
            {
                return(Visit(innerPatternNot.Pattern));
            }

            return(VisitChildren(patternNot));
        }
예제 #2
0
        public PatternUst VisitPatternNotLiteral([NotNull] DslParser.PatternNotLiteralContext context)
        {
            PatternUst patternLiteral = VisitPatternLiteral(context.patternLiteral());
            PatternUst result;

            if (context.PatternNot() != null)
            {
                result = new PatternNot(patternLiteral, context.GetTextSpan());
            }
            else
            {
                result = patternLiteral;
            }
            return(result);
        }
예제 #3
0
        public PatternUst VisitExpressionStatement(DslParser.ExpressionStatementContext context)
        {
            PatternUst result = VisitExpression(context.expression());

            if (!PatternExpressionInsideStatement)
            {
                if (context.PatternNot() != null)
                {
                    result = new PatternNot(result);
                }
            }
            else
            {
                result = new PatternArbitraryDepth(result, context.GetTextSpan());
                if (context.PatternNot() != null)
                {
                    result = new PatternNot(result);
                }
            }
            return(result);
        }
예제 #4
0
 public virtual T Visit(PatternNot patternNot)
 {
     return(VisitChildren(patternNot));
 }