File: example.php

Recommend this page to a friend!
  Classes of Debug  >  LR Parsing Tables  >  example.php  >  Download  
File: example.php
Role: Example script
Content type: text/plain
Description: Example code
Class: LR Parsing Tables
Generate parsing tables for context free grammars
Author: By
Last change:
Date: 11 years ago
Size: 1,012 bytes



Class file image Download

// This is our example script.

include("lr_parsing_tables.class.php"); // include class
$productions = array(
"expression", array("expression", "T_PLUS", "expression")),
"expression", array("expression", "T_MINUS", "expression")),
"expression", array("T_START_PAREN", "expression", "T_END_PAREN")),
"expression", array("T_INT")),
"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


For more information send a message to info at phpclasses dot org.