コード例 #1
0
        public PatternUst VisitObjectCreationExpression(DslParser.ObjectCreationExpressionContext context)
        {
            PatternUst  literal   = VisitLiteralOrPatternId(context.literalOrPatternId());
            var         typeToken = new PatternIdToken(literal.ToString(), literal.TextSpan);
            PatternArgs args      = context.args() == null
                ? new PatternArgs()
                : (PatternArgs)VisitArgs(context.args());
            var result = new PatternObjectCreateExpression(typeToken, args, context.GetTextSpan());

            return(result);
        }
コード例 #2
0
ファイル: DslUstConverter.cs プロジェクト: Yikez978/PT.PM
        public UstNode VisitPatternId([NotNull] DslParser.PatternIdContext context)
        {
            string patternId = context.GetText();

            if (SourceLanguage.IsCaseInsensitive() && !patternId.StartsWith("(?i)"))
            {
                patternId = "(?i)" + patternId;
            }
            IdToken result = new PatternIdToken(patternId, context.GetTextSpan());

            return(result);
        }
コード例 #3
0
        public PatternUst VisitObjectCreationExpression(DslParser.ObjectCreationExpressionContext context)
        {
            List <PatternUst> literals = context.literalOrPatternId()
                                         .Select(VisitLiteralOrPatternId).ToList();
            string      typeString   = string.Join(".", literals);
            TextSpan    typeTextSpan = literals.Select(literal => literal.TextSpan).ToList().Union();
            var         typeToken    = new PatternIdToken(typeString, typeTextSpan);
            PatternArgs args         = context.args() == null
                ? new PatternArgs()
                : (PatternArgs)VisitArgs(context.args());
            var result = new PatternObjectCreateExpression(typeToken, args, context.GetTextSpan());

            return(result);
        }
コード例 #4
0
ファイル: DslUstConverter.cs プロジェクト: Yikez978/PT.PM
        private IdToken ProcessId(ITerminalNode idTerminal)
        {
            string  id = idTerminal.GetText();
            IdToken result;

            if (SourceLanguage.IsCaseInsensitive())
            {
                result = new PatternIdToken("(?i)^" + id + "$", idTerminal.GetTextSpan());
            }
            else
            {
                result = new IdToken(id, idTerminal.GetTextSpan(), null);
            }
            return(result);
        }
コード例 #5
0
ファイル: PatternVisitor.cs プロジェクト: smartfish/PT.PM
 public virtual T Visit(PatternIdToken patternIdToken)
 {
     return(VisitChildren(patternIdToken));
 }
コード例 #6
0
        private PatternUst ProcessId(ITerminalNode idTerminal)
        {
            var result = new PatternIdToken(idTerminal.GetText(), idTerminal.GetTextSpan());

            return(result);
        }
コード例 #7
0
ファイル: UstListener.cs プロジェクト: Yikez978/PT.PM
 public virtual void Exit(PatternIdToken patternIdToken)
 {
 }
コード例 #8
0
ファイル: UstListener.cs プロジェクト: Yikez978/PT.PM
 public virtual void Enter(PatternIdToken patternIdToken)
 {
 }