本文整理汇总了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 }));
}
示例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);
}
示例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);
}
示例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);
}
示例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));
}
示例6: Expression
private static ExpressionSyntax Expression(ParserRuleContext node)
{
Debug.Assert(node.ChildCount == 1);
return visitNode(node.GetRuleContext<ParserRuleContext>(0));
}
示例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);
}
示例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);
}