Пример #1
0
        private static IReadOnlyCollection <IntermediateCode> Generate(ICodeUnit unit)
        {
            var sut    = new IntermediateCodeGenerator();
            var actual = sut.Generate(unit);
            var namer  = new ImplicitReferenceNameAssigner();

            namer.AssignNames(unit);

            return(actual.ToList().AsReadOnly());
        }
Пример #2
0
        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();
        }
Пример #3
0
        private static void GiveNameToImplicitReferences(ICodeUnit ast)
        {
            var nameAssigner = new ImplicitReferenceNameAssigner();

            nameAssigner.AssignNames(ast);
        }