本文整理汇总了C#中Scope.InitR方法的典型用法代码示例。如果您正苦于以下问题:C# Scope.InitR方法的具体用法?C# Scope.InitR怎么用?C# Scope.InitR使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scope
的用法示例。
在下文中一共展示了Scope.InitR方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Program
private static SyntaxNode Program(RParser.ProgContext prog, Func<ParserRuleContext, Scope, SyntaxNode> transform, Scope scope)
{
var statements = new List<StatementSyntax>();
var inner = new Scope(scope);
inner.InitR();
var pre = inner.PreStatements();
foreach (var expr in prog.expr_or_assign())
{
pre.Clear();
var statement = transform(expr, inner) as StatementSyntax;
Debug.Assert(statement != null);
statements.AddRange(pre);
statements.Add(statement);
}
return CSharp.Block(statements);
}
示例2: Compound
private static SyntaxNode Compound(RParser.CompoundContext compound, Func<ParserRuleContext, Scope, SyntaxNode> transform, Scope scope)
{
//create a new context for the block
var inner = new Scope(scope);
inner.InitR();
var pre = inner.PreStatements();
var statements = new List<StatementSyntax>();
var exprlist = compound.exprlist();
if (exprlist is RParser.ExpressionListContext)
{
var list = exprlist as RParser.ExpressionListContext;
foreach (var expr in list.expr_or_assign())
{
pre.Clear();
var statement = transform(expr, inner) as StatementSyntax;
Debug.Assert(statement != null);
statements.AddRange(pre);
statements.Add(statement);
}
}
return CSharp.Block(statements);
}