public function createNodeCompiler() { // Node Compiler if (!($aNodeCompiler = NodeCompiler::singleton(false))) { $aNodeCompiler = NodeCompiler::singleton(true); //if $aNodeCompiler->addSubCompiler('if', __NAMESPACE__ . "\\compiler\\node\\IfCompiler"); $aNodeCompiler->addSubCompiler('else', __NAMESPACE__ . "\\compiler\\node\\ElseCompiler"); $aNodeCompiler->addSubCompiler('if:else', __NAMESPACE__ . "\\compiler\\node\\ElseCompiler"); $aNodeCompiler->addSubCompiler('elseif', __NAMESPACE__ . "\\compiler\\node\\ElseIfCompiler"); //for $aNodeCompiler->addSubCompiler('for', __NAMESPACE__ . "\\compiler\\node\\LoopCompiler"); $aNodeCompiler->addSubCompiler('loop', __NAMESPACE__ . "\\compiler\\node\\LoopCompiler"); //foreach $aNodeCompiler->addSubCompiler('foreach', __NAMESPACE__ . "\\compiler\\node\\ForeachCompiler"); //loopelse $aNodeCompiler->addSubCompiler('foreach:else', __NAMESPACE__ . "\\compiler\\node\\LoopelseCompiler"); $aNodeCompiler->addSubCompiler('while:else', __NAMESPACE__ . "\\compiler\\node\\LoopelseCompiler"); $aNodeCompiler->addSubCompiler('dowhile:else', __NAMESPACE__ . "\\compiler\\node\\LoopelseCompiler"); $aNodeCompiler->addSubCompiler('do:else', __NAMESPACE__ . "\\compiler\\node\\LoopelseCompiler"); $aNodeCompiler->addSubCompiler('loop:else', __NAMESPACE__ . "\\compiler\\node\\LoopelseCompiler"); //while $aNodeCompiler->addSubCompiler('while', __NAMESPACE__ . "\\compiler\\node\\WhileCompiler"); $aNodeCompiler->addSubCompiler('dowhile', __NAMESPACE__ . "\\compiler\\node\\DoWhileCompiler"); $aNodeCompiler->addSubCompiler('do', __NAMESPACE__ . "\\compiler\\node\\DoWhileCompiler"); //ends $aNodeCompiler->addSubCompiler('struct:end', __NAMESPACE__ . "\\compiler\\node\\StructEndCompiler"); $aNodeCompiler->addSubCompiler('if:end', __NAMESPACE__ . "\\compiler\\node\\StructEndCompiler"); $aNodeCompiler->addSubCompiler('loop:end', __NAMESPACE__ . "\\compiler\\node\\LoopEndCompiler"); $aNodeCompiler->addSubCompiler('while:end', __NAMESPACE__ . "\\compiler\\node\\LoopEndCompiler"); $aNodeCompiler->addSubCompiler('dowhile:end', __NAMESPACE__ . "\\compiler\\node\\LoopEndCompiler"); $aNodeCompiler->addSubCompiler('foreach:end', __NAMESPACE__ . "\\compiler\\node\\LoopEndCompiler"); //others $aNodeCompiler->addSubCompiler('include', __NAMESPACE__ . "\\compiler\\node\\IncludeCompiler"); $aNodeCompiler->addSubCompiler('function', __NAMESPACE__ . "\\compiler\\node\\FunctionCompiler"); $aNodeCompiler->addSubCompiler('continue', __NAMESPACE__ . "\\compiler\\node\\ContinueCompiler"); $aNodeCompiler->addSubCompiler('break', __NAMESPACE__ . "\\compiler\\node\\BreakCompiler"); $aNodeCompiler->addSubCompiler('script', __NAMESPACE__ . "\\compiler\\node\\ScriptCompiler"); $aNodeCompiler->addSubCompiler('resrc', __NAMESPACE__ . "\\compiler\\node\\LoadResourceCompiler"); $aNodeCompiler->addSubCompiler('link', __NAMESPACE__ . "\\compiler\\node\\CssCompiler"); $aNodeCompiler->addSubCompiler('css', __NAMESPACE__ . "\\compiler\\node\\CssCompiler"); $aNodeCompiler->addSubCompiler('js', __NAMESPACE__ . "\\compiler\\node\\ScriptCompiler"); $aNodeCompiler->addSubCompiler('subtemplate', __NAMESPACE__ . "\\compiler\\node\\SubTemplateDefineCompiler"); $aNodeCompiler->addSubCompiler('subtemplate:define', __NAMESPACE__ . "\\compiler\\node\\SubTemplateDefineCompiler"); $aNodeCompiler->addSubCompiler('subtemplate:call', __NAMESPACE__ . "\\compiler\\node\\SubTemplateCallCompiler"); $aNodeCompiler->addSubCompiler('template', __NAMESPACE__ . "\\compiler\\node\\SubTemplateDefineCompiler"); $aNodeCompiler->addSubCompiler('nl', __NAMESPACE__ . "\\compiler\\node\\NlCompiler"); $aNodeCompiler->addSubCompiler('clear', __NAMESPACE__ . "\\compiler\\node\\ClearCompiler"); $aNodeCompiler->addSubCompiler('code', __NAMESPACE__ . "\\compiler\\node\\CodeCompiler"); $aNodeCompiler->addSubCompiler('render:js', __NAMESPACE__ . "\\compiler\\node\\RenderJsCompiler"); } return $aNodeCompiler; }