当前位置: 首页>>代码示例>>C#>>正文


C# ParserRuleContext.GetRuleContext方法代码示例

本文整理汇总了C#中ParserRuleContext.GetRuleContext方法的典型用法代码示例。如果您正苦于以下问题:C# ParserRuleContext.GetRuleContext方法的具体用法?C# ParserRuleContext.GetRuleContext怎么用?C# ParserRuleContext.GetRuleContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ParserRuleContext的用法示例。


在下文中一共展示了ParserRuleContext.GetRuleContext方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Arguments

        private static ArgumentListSyntax Arguments(ParserRuleContext node)
        {
            var expr = null as ExpressionSyntax;
            var args = null as ArgumentListSyntax;
            if (node.ChildCount == 1)
                expr = visitNode(node.GetRuleContext<ParserRuleContext>(0));
            else
            {
                Debug.Assert(node.ChildCount == 2);
                expr = visitNode(node.GetRuleContext<ParserRuleContext>(1));
                args = Arguments(node.GetRuleContext<ParserRuleContext>(0));
            }

            var arg = CSharp.Argument(expr);
            if (args != null)
                return args.AddArguments(arg);

            return CSharp
                .ArgumentList(CSharp
                .SeparatedList(new[] { arg }));
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:21,代码来源:AntlrExpression.cs

示例2: Assignment

        private static ExpressionSyntax Assignment(ParserRuleContext node)
        {
            if (node.ChildCount == 1)
                return Expression(node.GetRuleContext<ParserRuleContext>(0));

            Debug.Assert(node.ChildCount == 3);
            var left = visitNode(node.GetRuleContext<ParserRuleContext>(0));
            var right = visitNode(node.GetRuleContext<ParserRuleContext>(2));

            SyntaxKind kind;
            var op = GetBinaryOperator(node.children[1].GetText(), out kind);

            return CSharp.AssignmentExpression(kind, left, op, right);
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:14,代码来源:AntlrExpression.cs

示例3: UnaryExpression

        private static ExpressionSyntax UnaryExpression(ParserRuleContext node)
        {
            if (node.ChildCount == 1)
                return Expression(node.GetRuleContext<ParserRuleContext>(0));

            Debug.Assert(node.ChildCount == 2);
            var expr = visitNode(node.GetRuleContext<ParserRuleContext>(2));

            SyntaxKind kind;
            var op = GetUnaryOperator(node.children[0].GetText(), out kind);

            return CSharp.PrefixUnaryExpression(kind, op, expr);
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:13,代码来源:AntlrExpression.cs

示例4: Parenthesized

        private static ExpressionSyntax Parenthesized(ParserRuleContext node)
        {
            if (node.ChildCount == 1)
                return Expression(node.GetRuleContext<ParserRuleContext>(0));

            Debug.Assert(node.ChildCount == 3);
            var expr = visitNode(node.GetRuleContext<ParserRuleContext>(0));

            return CSharp.ParenthesizedExpression(expr);
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:10,代码来源:AntlrExpression.cs

示例5: Index

        private static ExpressionSyntax Index(ParserRuleContext node)
        {
            if (node.ChildCount == 1)
                return Expression(node.GetRuleContext<ParserRuleContext>(0));

            Debug.Assert(node.ChildCount == 4);
            var expr = visitNode(node.GetRuleContext<ParserRuleContext>(0));
            var index = (ArgumentListSyntax)Arguments(node.GetRuleContext<ParserRuleContext>(2));

            return CSharp.ElementAccessExpression(
                expr, CSharp
                .BracketedArgumentList(index.Arguments));
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:13,代码来源:AntlrExpression.cs

示例6: Expression

 private static ExpressionSyntax Expression(ParserRuleContext node)
 {
     Debug.Assert(node.ChildCount == 1);
     return visitNode(node.GetRuleContext<ParserRuleContext>(0));
 }
开发者ID:mpmedia,项目名称:Excess,代码行数:5,代码来源:AntlrExpression.cs

示例7: Cast

        private static ExpressionSyntax Cast(ParserRuleContext node)
        {
            if (node.ChildCount == 1)
                return Expression(node.GetRuleContext<ParserRuleContext>(0));

            Debug.Assert(node.ChildCount == 2);
            var type = CSharp.ParseTypeName(node.children[0].GetText());
            var expr = visitNode(node.GetRuleContext<ParserRuleContext>(1));

            return CSharp.CastExpression(type, expr);
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:11,代码来源:AntlrExpression.cs

示例8: Call

        private static ExpressionSyntax Call(ParserRuleContext node)
        {
            if (node.ChildCount == 1)
                return Expression(node.GetRuleContext<ParserRuleContext>(0));

            var expr = visitNode(node.GetRuleContext<ParserRuleContext>(0));
            var args = null as ArgumentListSyntax;

            if (node.ChildCount == 4)
                args = Arguments(node.GetRuleContext<ParserRuleContext>(2));
            else
                args = CSharp.ArgumentList();

            return CSharp.InvocationExpression(expr, args);
        }
开发者ID:mpmedia,项目名称:Excess,代码行数:15,代码来源:AntlrExpression.cs


注:本文中的ParserRuleContext.GetRuleContext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。