public SemanticTree.IProgramNode Convert(SemanticTree.IProgramNode ProgramNode)
 {
     foreach (ISemanticTreeConverter SemanticTreeConverter in semanticTreeConverters)
     {
         ChangeState(State.Convert, SemanticTreeConverter);
         ProgramNode = SemanticTreeConverter.Convert(Compiler, ProgramNode);
     }
     return(ProgramNode);
 }
        public SemanticTree.IProgramNode Convert(PascalABCCompiler.ICompiler Compiler, SemanticTree.IProgramNode ProgramNode)
        {
            Optimizer Optimizer = new Optimizer();

            Compiler.AddWarnings(Optimizer.Optimize(ProgramNode as TreeRealization.program_node));
            return(ProgramNode);
        }
예제 #3
0
        private NETGenerator.ILConverter il_converter;        //=new NETGenerator.ILConverter();

        public void Compile(SemanticTree.IProgramNode ProgramTree, string TargetFileName, string SourceFileName,
                            NETGenerator.CompilerOptions options, Hashtable StandartDirectories, string[] ResourceFiles)
        {
            il_converter = new NETGenerator.ILConverter(StandartDirectories);
            il_converter.ConvertFromTree(ProgramTree, TargetFileName, SourceFileName, options, ResourceFiles);
        }