3 require_once( __DIR__
.'/../js_class_generator.php' );
4 require_once( __DIR__
.'/../class_generator.php' );
6 require_once( 'php/LalrLexerPHPGenerator.php' );
7 require_once( 'php/LalrPreprocessorPHPGenerator.php' );
8 require_once( 'php/LalrParserPHPGenerator.php' );
9 require_once( 'php/LalrVisitorPHPGenerator.php' );
10 require_once( 'php/LalrExceptionPHPGenerator.php' );
11 require_once( 'php/LalrPHPGenerator.php' );
12 require_once( 'js/LalrLexerJSGenerator.php' );
13 require_once( 'js/LalrPreprocessorJSGenerator.php' );
14 require_once( 'js/LalrParserJSGenerator.php' );
15 require_once( 'js/LalrVisitorJSGenerator.php' );
16 require_once( 'js/LalrJSGenerator.php' );
17 require_once( 'html/LalrHTMLVisualizationGenerator.php' );
18 require_once( 'LalrStateMachine.php' );
19 require_once( 'LalrGrammar.php' );
25 public function __construct( $name, $grammar ) {
27 $this->grammar
= new LalrGrammar( $grammar );
30 public function generate() {
31 print "- Building parser state table\n";
32 $fsm = new LalrStateMachine( $this->grammar
);
34 print "- Building PHP Lexer\n";
35 $generator = new LalrLexerPHPGenerator( $this->name
, $this->grammar
);
36 $generator->generate();
37 print "- Building PHP Preprocessor\n";
38 $generator = new LalrPreprocessorPHPGenerator( $this->name
, $this->grammar
);
39 $generator->generate();
40 print "- Building PHP Parser\n";
41 $generator = new LalrParserPHPGenerator( $this->name
, $fsm, $this->grammar
);
42 $generator->generate();
43 print "- Building PHP Visitor\n";
44 $generator = new LalrVisitorPHPGenerator( $this->name
, $this->grammar
);
45 $generator->generate();
46 print "- Building PHP Exception\n";
47 $generator = new LalrExceptionPHPGenerator( $this->name
);
48 $generator->generate();
49 print "- Building PHP Wrapper\n";
50 $generator = new LalrPHPGenerator( $this->name
);
51 $generator->generate();
53 print "- Building Javascript Lexer\n";
54 $generator = new LalrLexerJSGenerator( $this->name
, $this->grammar
);
55 $generator->generate();
56 print "- Building Javascript Preprocessor\n";
57 $generator = new LalrPreprocessorJSGenerator( $this->name
, $this->grammar
);
58 $generator->generate();
59 print "- Building Javascript Parser\n";
60 $generator = new LalrParserJSGenerator( $this->name
, $fsm, $this->grammar
);
61 $generator->generate();
62 print "- Building Javascript Visitor\n";
63 $generator = new LalrVisitorJSGenerator( $this->name
, $this->grammar
);
64 $generator->generate();
65 print "- Building Javascript Wrapper\n";
66 $generator = new LalrJSGenerator( $this->name
);
67 $generator->generate();
69 print "- Building HTML visualization of parser state table and lexer\n";
70 $generator = new LalrHTMLVisualizationGenerator( $this->name
, $fsm, $this->grammar
);
71 $generator->generate();