diff options
Diffstat (limited to 'poc/poc02-compiling-cake/src/php-weave/main.php')
-rw-r--r-- | poc/poc02-compiling-cake/src/php-weave/main.php | 62 |
1 files changed, 4 insertions, 58 deletions
diff --git a/poc/poc02-compiling-cake/src/php-weave/main.php b/poc/poc02-compiling-cake/src/php-weave/main.php index 2a4df55..da94bbe 100644 --- a/poc/poc02-compiling-cake/src/php-weave/main.php +++ b/poc/poc02-compiling-cake/src/php-weave/main.php @@ -1,64 +1,10 @@ <?php -require '../vendor/nikic/php-parser/lib/bootstrap.php'; -require './visitors.inc.php'; +require_once './cakephp_weaver.class.php'; ini_set('xdebug.max_nesting_level', 2000); -function dbg($indent, $text) { - for($i=0;$i<$indent;$i++) echo "."; - echo "$text\n"; -} - -function recursive_parse($src_filepath, $stmts1_filepath, $stmts2_filepath, $level=0) { - global $parser,$nodeDumper; - - try { - dbg($level,"Parsing '$src_filepath'"); - $stmts = $parser->parse(file_get_contents($src_filepath)); - - if (strlen($stmts1_filepath) > 0 ) { - dbg($level,"Dumping1 '$src_filepath' AST to '$stmts1_filepath'"); - file_put_contents($stmts1_filepath, $nodeDumper->dump($stmts)); - } - - dbg($level,"Transforming '$src_filepath'"); - $traverser = new PHPParser_NodeTraverser; -/* - $traverser->addVisitor(new PHPParser_NodeVisitor_NameResolver); - $traverser->addVisitor(new NodeVisitor_NamespaceConverter); -*/ - // FIXME : getcwd is quick and dirty here - $traverser->addVisitor(new NodeVisitor_PreprocessInclude($level, getcwd(), $src_filepath)); - $stmts = $traverser->traverse($stmts); - $traverser=null; //Destroy - - if (strlen($stmts2_filepath) > 0) { - dbg($level,"Dumping2 '$src_filepath' AST to '$stmts2_filepath'"); - file_put_contents($stmts2_filepath, $nodeDumper->dump($stmts)); - } - - } catch (PHPParser_Error $e) { - echo 'Parse Error: ', $e->getMessage(); - } - return $stmts; -} - - // Main -$src_filepath = "./main.php"; -#$src_filepath = "./to_parse.php"; -$stmts1_filepath = "out/stmts1.ast"; -$stmts2_filepath = "out/stmts2.ast"; -$dest_filepath = "out/result.php"; - -$parser = new PHPParser_Parser(new PHPParser_Lexer); -$nodeDumper = new PHPParser_NodeDumper; - -$level=0; -$stmts=recursive_parse($src_filepath, $stmts1_filepath, $stmts2_filepath); - -dbg(0,"Outputing '$dest_filepath'"); -$prettyPrinter = new PHPParser_PrettyPrinter_Zend; -file_put_contents($dest_filepath, "<?php\n" . $prettyPrinter->prettyPrint($stmts) . "\n?>"); - +$weaver=new CakePHPWeaver; +$weaver->runAllSteps("../workdir/in", "../workdir/cache", "../workdir/out"); + ?> |