Login   Register  
PHP Classes
elePHPant
Icontem

File: example.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Debug  >  LR Parsing Tables  >  example.php  
File: example.php
Role: Example script
Content type: text/plain
Description: Example code
Class: LR Parsing Tables
Generate parsing tables for context free grammars
 

Contents

Class file image Download
<?php

// This is our example script.

include("lr_parsing_tables.class.php"); // include class
$productions = array(
    array(
"expression", array("expression""T_PLUS""expression")),
    array(
"expression", array("expression""T_MINUS""expression")),
    array(
"expression", array("T_START_PAREN""expression""T_END_PAREN")),
    array(
"expression", array("T_INT")),
    array(
"expression", array("T_IDENT"))
); 
// these are our productions
// The grammar is:
// E -> E + E
// E -> E - E
// E -> ( E )
// E -> int
// E -> ident

// Of course, it's a bit twisted. Our nonterminals are lowercase (defined by
// if strtolower($name) == $name). Terminals are uppercase otherwise.

$LR_Parsing_Tables = new LR_Parsing_Tables($productions"expression"); // provide productions. expression is our "start" NT.
$tables $LR_Parsing_Tables->build(); // build the tables.
$LR_Parsing_Tables->print_tables($tables); // print them
$LR_Parsing_Tables->print_productions(); // print our productions

?>