(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.4 and 1.1.2.6

version 1.1.2.4, 2001/12/02 07:52:38 version 1.1.2.6, 2001/12/02 22:03:23
Line 8 
Line 8 
  
 %{ %{
  
   #include <Pegasus/Common/Config.h>
   #include <Pegasus/WQL/WQLOperation.h>
   #include <Pegasus/WQL/WQLOperand.h>
   #include <Pegasus/WQL/WQLParserState.h>
   #include <Pegasus/WQL/WQLSelectStatement.h>
 #include <string.h> #include <string.h>
 #include <stdlib.h> #include <stdlib.h>
  
Line 19 
Line 24 
 # include <alloca.h> # include <alloca.h>
 #endif #endif
  
 #if 0  #if 1
 # define WQL_TRACE(X) printf(X)  # define WQL_TRACE(X) printf X
 #else #else
 # define WQL_TRACE(X) # define WQL_TRACE(X)
 #endif #endif
Line 28 
Line 33 
 extern int WQL_lex(); extern int WQL_lex();
 extern int WQL_error(char*); extern int WQL_error(char*);
  
   PEGASUS_USING_PEGASUS;
   
   PEGASUS_NAMESPACE_BEGIN
   
   extern WQLParserState* globalParserState;
   
   PEGASUS_NAMESPACE_END
   
 %} %}
  
 /* /*
Line 78 
Line 91 
 %token <intValue> TOK_WHERE %token <intValue> TOK_WHERE
 %token <intValue> TOK_FROM %token <intValue> TOK_FROM
  
 %token <strValue> TOK_UNEXPECTED_CHAR  %token <intValue> TOK_UNEXPECTED_CHAR
  
 %type <nodeValue> propertyName  %type <strValue> propertyName
 %type <nodeValue> propertyList %type <nodeValue> propertyList
 %type <nodeValue> predicate %type <nodeValue> predicate
 %type <nodeValue> comparisonPredicate %type <nodeValue> comparisonPredicate
Line 123 
Line 136 
 selectList selectList
     : '*'     : '*'
     {     {
           globalParserState->statement->appendPropertyName("*");
     }     }
     | propertyList     | propertyList
     {     {
Line 133 
Line 146 
 propertyList propertyList
     : propertyName     : propertyName
     {     {
           globalParserState->statement->appendPropertyName($1);
     }     }
     | propertyList ',' propertyName     | propertyList ',' propertyName
     {     {
           globalParserState->statement->appendPropertyName($3);
     }     }
  
 selectExpression selectExpression
Line 153 
Line 166 
 fromClause fromClause
     : TOK_FROM className     : TOK_FROM className
     {     {
           WQL_TRACE(("YACC: fromClause: TOK_FROM className(%s)\n", $2));
           globalParserState->statement->setClassName($2);
           delete [] $2;
     }     }
  
 whereClause whereClause
Line 165 
Line 180 
 searchCondition searchCondition
     : searchCondition TOK_OR searchCondition     : searchCondition TOK_OR searchCondition
     {     {
           WQL_TRACE(("YACC: TOK_OR\n"));
     }     }
     | searchCondition TOK_AND searchCondition     | searchCondition TOK_AND searchCondition
     {     {
           WQL_TRACE(("YACC: TOK_AND\n"));
     }     }
     | TOK_NOT searchCondition     | TOK_NOT searchCondition
     {     {
Line 205 
Line 220 
 comparisonPredicate comparisonPredicate
     : comparisonTerm TOK_LT comparisonTerm     : comparisonTerm TOK_LT comparisonTerm
     {     {
           WQL_TRACE(("YACC: TOK_LT\n"));
     }     }
     | comparisonTerm TOK_GT comparisonTerm     | comparisonTerm TOK_GT comparisonTerm
     {     {
           WQL_TRACE(("YACC: TOK_GT\n"));
     }     }
     | comparisonTerm TOK_LE comparisonTerm     | comparisonTerm TOK_LE comparisonTerm
     {     {
           WQL_TRACE(("YACC: TOK_LE\n"));
     }     }
     | comparisonTerm TOK_GE comparisonTerm     | comparisonTerm TOK_GE comparisonTerm
     {     {
           WQL_TRACE(("YACC: TOK_GE\n"));
     }     }
     | comparisonTerm TOK_EQ comparisonTerm     | comparisonTerm TOK_EQ comparisonTerm
     {     {
           WQL_TRACE(("YACC: TOK_EQ\n"));
     }     }
     | comparisonTerm TOK_NE comparisonTerm     | comparisonTerm TOK_NE comparisonTerm
     {     {
           WQL_TRACE(("YACC: TOK_NE\n"));
     }     }
  
 nullPredicate nullPredicate
     : comparisonTerm TOK_IS TOK_NULL     : comparisonTerm TOK_IS TOK_NULL
     {     {
           WQL_TRACE(("YACC: TOK_IS TOK_NULL\n"));
     }     }
     | comparisonTerm TOK_IS TOK_NOT TOK_NULL     | comparisonTerm TOK_IS TOK_NOT TOK_NULL
     {     {
           WQL_TRACE(("YACC: TOK_NOT TOK_NULL\n"));
     }     }
  
 truthValue truthValue
Line 251 
Line 266 
 propertyName propertyName
     : TOK_IDENTIFIER     : TOK_IDENTIFIER
     {     {
           WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s)\n", $1));
           $$ = $1;
     }     }
  
 className : TOK_IDENTIFIER className : TOK_IDENTIFIER
     {     {
           WQL_TRACE(("YACC: TOK_IDENTIFIER %s\n", $1));
           $$ = $1;
     }     }
  
 comparisonTerm comparisonTerm
Line 278 
Line 295 
     }     }
     | truthValue     | truthValue
     {     {
   
     }     }
  
 %% %%
   
 int WQL_error(char* errorMessage)  
 {  
     fprintf(stderr, "WQL_error: %s\n", errorMessage);  
     return -1;  
 }  


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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2