private void TransformBody(AstGenerator /*!*/ gen)
{
ScopeBuilder scope = DefineLocals();
var scopeVariable = gen.TopLevelScope.Builder.DefineHiddenVariable("#scope", typeof(RubyScope));
gen.EnterFileInitializer(
scope,
gen.TopLevelScope.SelfVariable,
scopeVariable
);
// visit nested initializers depth-first:
var body = gen.TransformStatements(_statements, ResultOperation.Ignore);
gen.LeaveFileInitializer();
gen.AddFileInitializer(
scope.CreateScope(
scopeVariable,
Methods.CreateFileInitializerScope.OpCall(
scope.MakeLocalsStorage(),
scope.GetVariableNamesExpression(),
gen.TopLevelScope.RuntimeScopeVariable
),
body
)
);
}