From 104ff522c43fabc7c284fc38a46d17c16fe114d1 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Wed, 1 Aug 2012 20:24:03 +0000 Subject: Ecriure d'un squelette de l'outil de compilation. Une première instance sera implémentée pour le framework CakePHP. Pour l'instant les méthodes abstraites sont des bouchons qui ne permettent même pas de couvrir tout le code de la classe abstraite. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///var/svn/2012-php-weave/trunk@5 d972a294-176a-4cf9-8ea1-fcd5b0c30f5c --- poc/poc02-compiling-cake/src/php-weave/main.php | 62 ++----------------------- 1 file changed, 4 insertions(+), 58 deletions(-) (limited to 'poc/poc02-compiling-cake/src/php-weave/main.php') 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 @@ 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, "prettyPrint($stmts) . "\n?>"); - +$weaver=new CakePHPWeaver; +$weaver->runAllSteps("../workdir/in", "../workdir/cache", "../workdir/out"); + ?> -- cgit v1.2.3