public List <ProcedureCompilation>?Compile(S.NamespaceDeclaration declaration, out IEnumerable <DiagnosticInfo> diagnostics)
        {
            var binder = new NamespaceBinder(declaration);

            binder.Explore();
            var bound = binder.Bind();

            binder.CollectDiagnostics();
            diagnostics = binder.Diagnostics;

            if (binder.HasErrors)
            {
                return(null);
            }

            var procedures = CompileDeclaration(bound).ToList();

            foreach (var constant in Transformer.ConstantTable)
            {
                RegisterConstant(constant);
            }

            return(procedures.ToList());
        }
Ejemplo n.º 2
0
 public NamespaceBinder(S.NamespaceDeclaration declaration)
 {
     Declaration  = declaration;
     Declarations = new Dictionary <S.Declaration, IDeclaration>();
     Namespaces   = new List <NamespaceBinder>();
 }