Exemplo n.º 1
0
        /// <summary>
        /// Defines a new script belonging to the assembly builder
        /// </summary>
        /// <param name="compilationUnit">PHP script compilation unit</param>
        /// <returns>New module of PHP script</returns>
        public override IPhpModuleBuilder DefineModule(CompilationUnitBase /*!*/ compilationUnit)
        {
            var scriptCompilationUnit = compilationUnit as ScriptCompilationUnit;

            if (scriptCompilationUnit != null)
            {
                var subnamespace = ScriptBuilder.GetSubnamespace(
                    scriptCompilationUnit.SourceUnit.SourceFile.RelativePath, true);
                var builder        = new ScriptBuilder(scriptCompilationUnit, this, subnamespace);
                var scriptAssembly = GetAssembly();
                scriptAssembly.Builder = builder;
                return(builder);
            }
            else
            {
                if (compilationUnit != null)
                {
                    return(compilationUnit.ModuleBuilder);
                }
                else
                {
                    return(null);
                }
            }
        }
Exemplo n.º 2
0
 public override IPhpModuleBuilder DefineModule(CompilationUnitBase /*!*/ compilationUnit)
 {
     return(DefineModule((ScriptCompilationUnit)compilationUnit));
 }
Exemplo n.º 3
0
 public abstract IPhpModuleBuilder /*!*/ DefineModule(CompilationUnitBase /*!*/ compilationUnit);
Exemplo n.º 4
0
 /// <summary>
 /// Adds a new module to application's assembly.
 /// </summary>
 /// <param name="compiledUnit">Unit being compiled.</param>
 /// <param name="ctx">A compilation context.</param>
 /// <returns>The builder where compiler should emit the resulting code.</returns>
 public IPhpModuleBuilder /*!*/ DefineModuleBuilder(CompilationUnitBase /*!*/ compiledUnit, CompilationContext ctx)
 {
     return(assemblyBuilder.DefineModule(compiledUnit));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Ignored. All modules are stored in a single assembly which is persisted in <see cref="Finish"/>.
 /// </summary>
 public void Persist(CompilationUnitBase /*!*/ compiledUnit, CompilationContext /*!*/ ctx)
 {
     // nop //
 }