private SymbolTable GetScope(ICodeUnit ast) { var scanner = new ScopeScanner(); ast.Accept(scanner); return(scanner.SymbolTable); }
public void Main() { var ast = new Program(new List <Function>()); var sut = new ScopeScanner(); ast.Accept(sut); var scope = sut.SymbolTable; AssertScope(ast, scope); }
private static void AssertScope(ICodeUnit expressionNode, SymbolTable expectedScope) { var sut = new ScopeScanner(); var nameAssigner = new ImplicitReferenceNameAssigner(); nameAssigner.AssignNames(expressionNode); expressionNode.Accept(sut); var actual = sut.SymbolTable; actual.WithDeepEqual(expectedScope) .IgnoreProperty(r => r.Name == "Parent") .Assert(); }