/// <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); } } }
public override IPhpModuleBuilder DefineModule(CompilationUnitBase /*!*/ compilationUnit) { return(DefineModule((ScriptCompilationUnit)compilationUnit)); }
public abstract IPhpModuleBuilder /*!*/ DefineModule(CompilationUnitBase /*!*/ compilationUnit);
/// <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)); }
/// <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 // }