Login   Register  
PHP Classes
elePHPant
Icontem

File: example_sql.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Richard Keizer  >  Pragmatic BNF-a-like parser  >  example_sql.php  >  Download  
File: example_sql.php
Role: Example script
Content type: text/plain
Description: usage example
Class: Pragmatic BNF-a-like parser
Parse language source with a BNF grammar syntax
Author: By
Last change: usage example of a sql parser
Date: 2011-10-05 03:45
Size: 1,947 bytes
 

Contents

Class file image Download
<?php
  
/**------------------------------------------------------------------------------
   * Title:        Usage example of the Pragmatic BNF-a-like parser
   * Filename:     example_sql.php
   * Version:      0.2
   * Author:       Richard Keizer
   * Email:        ra dot keizer at gmail dot com
   *-------------------------------------------------------------------------------
   * COPYRIGHT (c) 2011 Richard Keizer
   *
   * The source code included in this package is free software; you can
   * redistribute it and/or modify it under the terms of the GNU General Public
   * License as published by the Free Software Foundation. This license can be
   * read at:
   *
   * http://www.opensource.org/licenses/gpl-license.php
   *
   * This program is distributed in the hope that it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
   * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
   *------------------------------------------------------------------------------
   *
   *
   * the SQL grammar used herein is just a small subset of the
   * real deal, it just serves as an example how to write a grammar file.
   *
   * note    Parts of the regex used by the tokenizer come from an unknown source.
   *         I rewrote it to fit my needs, I hope I don't violate anyones license.
   *         pls contact me to get proper credits!
   *
   */
  
  
error_reporting(E_ALL);
  
ini_set('display_errors'1);
  
  
  include_once 
'parser.class.php';
  include_once 
'SQL/SQLLexer.class.php';
  
  
$parser = new Parser(
                       new 
Grammar(file_get_contents('SQL/sql.grammar.txt')),
                       new 
SQLLexer('SELECT a,b,c FROM BOOKSTORE.authors WHERE (age<150) OR (lastname IN ("Verne", "Dickens"))')
                       );
  echo 
$parser->createParsetree()->saveXML();