예제 #1
0
 public Compiler(IAstModuleLoader moduleLoader)
 {
     Context            = new CompilerContext(moduleLoader);
     _astBuilder        = new AstBuilder(Context);
     _resolveDefinition = new ResolveDefinition(Context);
     _checkRules        = new CheckRules(Context);
 }
예제 #2
0
        public void Symbols()
        {
            var file = Build.File(code);

            file.Should().NotBeNull();

            var context = new CompilerContext(new ModuleLoader());

            var typeResolver = new ResolveDefinition(context);

            typeResolver.Visit(file);

            context.Errors.PrintErrors();
            context.HasErrors.Should().BeFalse();

            var checker = new AstSymbolChecker();

            checker.Visit(file);
        }