(file) Return to WQL.y CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / WQL

Diff for /pegasus/src/Pegasus/WQL/WQL.y between version 1.1.2.6 and 1.1.2.7

version 1.1.2.6, 2001/12/02 22:03:23 version 1.1.2.7, 2001/12/03 00:08:00
Line 24 
Line 24 
 # include <alloca.h> # include <alloca.h>
 #endif #endif
  
 #if 1  #if 0
 # define WQL_TRACE(X) printf X # define WQL_TRACE(X) printf X
 #else #else
 # define WQL_TRACE(X) # define WQL_TRACE(X)
Line 33 
Line 33 
 extern int WQL_lex(); extern int WQL_lex();
 extern int WQL_error(char*); extern int WQL_error(char*);
  
   //
   // Define the global parser state object:
   //
   
 PEGASUS_USING_PEGASUS; PEGASUS_USING_PEGASUS;
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
Line 97 
Line 101 
 %type <nodeValue> propertyList %type <nodeValue> propertyList
 %type <nodeValue> predicate %type <nodeValue> predicate
 %type <nodeValue> comparisonPredicate %type <nodeValue> comparisonPredicate
 %type <nodeValue> comparisonTerm  // %type <nodeValue> comparisonTerm
 %type <nodeValue> nullPredicate %type <nodeValue> nullPredicate
 %type <nodeValue> searchCondition %type <nodeValue> searchCondition
 %type <nodeValue> fromClause %type <nodeValue> fromClause
Line 106 
Line 110 
 %type <nodeValue> selectList %type <nodeValue> selectList
 %type <nodeValue> selectExpression %type <nodeValue> selectExpression
 %type <strValue> className %type <strValue> className
   %type <intValue> truthValue
  
 %left TOK_OR %left TOK_OR
 %left TOK_AND %left TOK_AND
Line 124 
Line 129 
 start start
     : selectStatement     : selectStatement
     {     {
         printf("YACC: start\n");          WQL_TRACE(("YACC: start\n"));
     }     }
  
 selectStatement selectStatement
Line 168 
Line 173 
     {     {
         WQL_TRACE(("YACC: fromClause: TOK_FROM className(%s)\n", $2));         WQL_TRACE(("YACC: fromClause: TOK_FROM className(%s)\n", $2));
         globalParserState->statement->setClassName($2);         globalParserState->statement->setClassName($2);
         delete [] $2;  
     }     }
  
 whereClause whereClause
Line 181 
Line 185 
     : searchCondition TOK_OR searchCondition     : searchCondition TOK_OR searchCondition
     {     {
         WQL_TRACE(("YACC: TOK_OR\n"));         WQL_TRACE(("YACC: TOK_OR\n"));
           globalParserState->statement->appendOperation(WQL_OR);
     }     }
     | searchCondition TOK_AND searchCondition     | searchCondition TOK_AND searchCondition
     {     {
         WQL_TRACE(("YACC: TOK_AND\n"));         WQL_TRACE(("YACC: TOK_AND\n"));
           globalParserState->statement->appendOperation(WQL_AND);
     }     }
     | TOK_NOT searchCondition     | TOK_NOT searchCondition
     {     {
           WQL_TRACE(("YACC: TOK_NOT\n"));
  
           globalParserState->statement->appendOperation(WQL_NOT);
     }     }
     | '(' searchCondition ')'     | '(' searchCondition ')'
     {     {
Line 200 
Line 208 
     }     }
     | predicate TOK_IS truthValue     | predicate TOK_IS truthValue
     {     {
           WQLOperation op = $3 ? WQL_IS_TRUE : WQL_IS_FALSE;
           globalParserState->statement->appendOperation(op);
     }     }
     | predicate TOK_IS TOK_NOT truthValue     | predicate TOK_IS TOK_NOT truthValue
     {     {
           WQLOperation op = $4 ? WQL_IS_NOT_TRUE : WQL_IS_NOT_FALSE;
           globalParserState->statement->appendOperation(op);
     }     }
  
   /******************************************************************************/
   
 predicate predicate
     : comparisonPredicate     : comparisonPredicate
     {     {
Line 221 
Line 233 
     : comparisonTerm TOK_LT comparisonTerm     : comparisonTerm TOK_LT comparisonTerm
     {     {
         WQL_TRACE(("YACC: TOK_LT\n"));         WQL_TRACE(("YACC: TOK_LT\n"));
           globalParserState->statement->appendOperation(WQL_LT);
     }     }
     | comparisonTerm TOK_GT comparisonTerm     | comparisonTerm TOK_GT comparisonTerm
     {     {
         WQL_TRACE(("YACC: TOK_GT\n"));         WQL_TRACE(("YACC: TOK_GT\n"));
           globalParserState->statement->appendOperation(WQL_GT);
     }     }
     | comparisonTerm TOK_LE comparisonTerm     | comparisonTerm TOK_LE comparisonTerm
     {     {
         WQL_TRACE(("YACC: TOK_LE\n"));         WQL_TRACE(("YACC: TOK_LE\n"));
           globalParserState->statement->appendOperation(WQL_LE);
     }     }
     | comparisonTerm TOK_GE comparisonTerm     | comparisonTerm TOK_GE comparisonTerm
     {     {
         WQL_TRACE(("YACC: TOK_GE\n"));         WQL_TRACE(("YACC: TOK_GE\n"));
           globalParserState->statement->appendOperation(WQL_GE);
     }     }
     | comparisonTerm TOK_EQ comparisonTerm     | comparisonTerm TOK_EQ comparisonTerm
     {     {
         WQL_TRACE(("YACC: TOK_EQ\n"));         WQL_TRACE(("YACC: TOK_EQ\n"));
           globalParserState->statement->appendOperation(WQL_EQ);
     }     }
     | comparisonTerm TOK_NE comparisonTerm     | comparisonTerm TOK_NE comparisonTerm
     {     {
         WQL_TRACE(("YACC: TOK_NE\n"));         WQL_TRACE(("YACC: TOK_NE\n"));
           globalParserState->statement->appendOperation(WQL_NE);
     }     }
  
 nullPredicate nullPredicate
     : comparisonTerm TOK_IS TOK_NULL     : comparisonTerm TOK_IS TOK_NULL
     {     {
         WQL_TRACE(("YACC: TOK_IS TOK_NULL\n"));          WQL_TRACE(("YACC: nullPredicate : comparisonTerm IS NULL\n"));
           globalParserState->statement->appendOperation(WQL_IS_NULL);
     }     }
     | comparisonTerm TOK_IS TOK_NOT TOK_NULL     | comparisonTerm TOK_IS TOK_NOT TOK_NULL
     {     {
         WQL_TRACE(("YACC: TOK_NOT TOK_NULL\n"));          WQL_TRACE(("YACC: nullPredicate : comparisonTerm IS NOT NULL\n"));
           globalParserState->statement->appendOperation(WQL_IS_NOT_NULL);
     }     }
  
 truthValue truthValue
     : TOK_TRUE     : TOK_TRUE
     {     {
           $$ = 1;
     }     }
     | TOK_FALSE     | TOK_FALSE
     {     {
           $$ = 0;
     }     }
  
 propertyName propertyName
Line 279 
Line 299 
 comparisonTerm comparisonTerm
     : propertyName     : propertyName
     {     {
           globalParserState->statement->appendOperand(
               WQLOperand($1, WQLOperand::PROPERTY_NAME_TAG));
     }     }
     | TOK_INTEGER     | TOK_INTEGER
     {     {
           globalParserState->statement->appendOperand(
               WQLOperand($1, WQLOperand::INTEGER_VALUE_TAG));
     }     }
     | TOK_DOUBLE     | TOK_DOUBLE
     {     {
           globalParserState->statement->appendOperand(
               WQLOperand($1, WQLOperand::DOUBLE_VALUE_TAG));
     }     }
     | TOK_STRING     | TOK_STRING
     {     {
           globalParserState->statement->appendOperand(
               WQLOperand($1, WQLOperand::STRING_VALUE_TAG));
     }     }
     | truthValue     | truthValue
     {     {
           globalParserState->statement->appendOperand(
               WQLOperand($1 != 0, WQLOperand::BOOLEAN_VALUE_TAG));
     }     }
  
 %% %%


Legend:
Removed from v.1.1.2.6  
changed lines
  Added in v.1.1.2.7

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2