Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

expr.cpp

Go to the documentation of this file.
00001 #include "borqueror.h"
00002 
00003 #include "expr.h"
00004 
00005 /*
00006         BNF
00007         ===
00008 
00009         <Expr> ::= <Expr> <op> <Expr>
00010         <Expr> ::= ( <Expr> )
00011         <Expr> ::= - <Expr>
00012         <Expr> ::= Identifier | value
00013         <Op> ::= + | - | * | / | |
00014 */
00015 
00016 const char Expr::sr[10][10] =   
00017 {       //                               +         -     *     /     |     Id    (     )     $    Val 
00018         /* +  */        {       '>' , '>' , '<' , '<' , '>' , '<' , '<' , '>' , '>'     , '<' } ,
00019         /* -  */        {       '>' , '>' , '<' , '<' , '>' , '<' , '<' , '>' , '>'     , '<' } ,
00020         /* *  */        {       '>' , '>' , '>' , '>' , '>' , '<' , '<' , '>' , '>'     , '<' } ,
00021         /* /  */        {       '>' , '>' , '>' , '>' , '>' , '<' , '<' , '>' , '>'     , '<' } ,
00022         /* |  */        {       '>' , '>' , '<' , '<' , '>' , '<' , '<' , '>' , '>'     , '<' } ,
00023         /* Id */        {       '>' , '>' , '>' , '>' , '>' , ' ' , ' ' , '>' , '>'     , ' ' } ,
00024         /* (  */        {       '<' , '<' , '<' , '<' , '<' , '<' , '<' , '=' , '>'     , '<' } ,
00025         /* )  */        {       '>' , '>' , '>' , '>' , '>' , ' ' , ' ' , '>' , '>'     , ' ' } ,
00026         /* $  */        {       '<' , '<' , '<' , '<' , '<' , '<' , '<' , ' ' , '$'     , '<' } ,
00027         /*Val */        {       '>' , '>' , '>' , '>' , '>' , ' ' , ' ' , '>' , '>'     , ' ' } 
00028 };
00030 Expr::Expr( const string &aBuffer )
00031 : Lexer( aBuffer )
00032 {
00034         symbol.insert( std::make_pair( string( "$" ) , 8) );
00035         symbol.insert( std::make_pair( string( "(" ) , 6) );
00036         symbol.insert( std::make_pair( string( ")" ) , 7) );
00037         symbol.insert( std::make_pair( string( "|" ) , 4) );
00038         symbol.insert( std::make_pair( string( "+" ) , 0) );
00039         symbol.insert( std::make_pair( string( "-" ) , 1) );
00040         symbol.insert( std::make_pair( string( "/" ) , 3) );
00041         symbol.insert( std::make_pair( string( "*" ) , 2) );
00042         symbol.insert( std::make_pair( string( "Id" ) , 5) );
00043 
00044         symbol.insert( std::make_pair( string( "Val" ) , 9) );
00045 
00046 
00047 }
00048 const int Expr::EofId( void ) const
00049 {
00050         return 8;
00051 }
00052 
00053 const int Expr::IdentifierId( void ) const
00054 {
00055         return 5;
00056 }
00057 
00058 const int Expr::NumberId( void ) const
00059 {
00060         return 9;
00061 }
00062 
00063 vector<Uniform *> ExprParser::toDelinExprParser;
00064 

Generated on Fri Dec 5 04:05:59 2003 for Borqueror by doxygen 1.3.3