protected override void Visit(ScopeChunk chunk) { _variables.PushScope(); Accept(chunk.Body); _variables.PopScope(); }
public void ScopeTest() { var scope1 = new ScopeChunk(); scope1.Body.Add(new LocalVariableChunk { Name = "x", Value = "4" }); scope1.Body.Add(new SendExpressionChunk { Code = "x" }); var scope2 = new ScopeChunk(); scope2.Body.Add(new LocalVariableChunk { Name = "x", Value = "2" }); scope2.Body.Add(new SendExpressionChunk { Code = "x" }); var chunks = Chunks(scope1, scope2); _compiler.CompileView(chunks, chunks); var contents = ExecuteView(); Assert.AreEqual(contents, "42"); }