(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.2 and 1.8

version 1.2, 2001/12/13 14:54:43 version 1.8, 2005/05/24 20:26:33
Line 1 
Line 1 
   //%2005////////////////////////////////////////////////////////////////////////
   //
   // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
   // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   //
   // Permission is hereby granted, free of charge, to any person obtaining a copy
   // of this software and associated documentation files (the "Software"), to
   // deal in the Software without restriction, including without limitation the
   // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
   // sell copies of the Software, and to permit persons to whom the Software is
   // furnished to do so, subject to the following conditions:
   //
   // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
   // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
   // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
   // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
   // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
   // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
   // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
   // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   //
   //==============================================================================
 /* /*
 **============================================================================== **==============================================================================
 ** **
Line 31 
Line 59 
 #endif #endif
  
 extern int WQL_lex(); extern int WQL_lex();
 extern int WQL_error(char*);  extern int WQL_error(const char*);
  
 // //
 // Define the global parser state object: // Define the global parser state object:
Line 77 
Line 105 
 %token <intValue> TOK_TRUE %token <intValue> TOK_TRUE
 %token <intValue> TOK_FALSE %token <intValue> TOK_FALSE
 %token <intValue> TOK_NULL %token <intValue> TOK_NULL
   %token <intValue> TOK_ISA
   %token <intValue> TOK_DOT
  
 %token <intValue> TOK_EQ %token <intValue> TOK_EQ
 %token <intValue> TOK_NE %token <intValue> TOK_NE
Line 141 
Line 171 
 selectList selectList
     : '*'     : '*'
     {     {
         globalParserState->statement->appendSelectPropertyName("*");          globalParserState->statement->setAllProperties(true);
     }     }
     | propertyList     | propertyList
     {     {
Line 151 
Line 181 
 propertyList propertyList
     : propertyName     : propertyName
     {     {
         globalParserState->statement->appendSelectPropertyName($1);          globalParserState->statement->appendSelectPropertyName(CIMName($1));
     }     }
     | propertyList ',' propertyName     | propertyList ',' propertyName
     {     {
         globalParserState->statement->appendSelectPropertyName($3);          globalParserState->statement->appendSelectPropertyName(CIMName($3));
     }     }
  
 selectExpression selectExpression
Line 172 
Line 202 
     : TOK_FROM className     : TOK_FROM className
     {     {
         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(CIMName($2));
     }     }
  
 whereClause whereClause
Line 260 
Line 290 
         WQL_TRACE(("YACC: TOK_NE\n"));         WQL_TRACE(("YACC: TOK_NE\n"));
         globalParserState->statement->appendOperation(WQL_NE);         globalParserState->statement->appendOperation(WQL_NE);
     }     }
       | propertyName TOK_ISA className
       {
       WQL_TRACE(("YACC: TOK_ISA\n"));
   #ifndef PEGASUS_SNIA_EXTENSIONS
           // If SNIA tests, allow the ISA but do not pass className
           yyerror("ISA Token Not Supported");
   #endif
       }
  
 nullPredicate nullPredicate
     : comparisonTerm TOK_IS TOK_NULL     : comparisonTerm TOK_IS TOK_NULL
Line 282 
Line 320 
     {     {
         $$ = 0;         $$ = 0;
     }     }
   /**************
 propertyName propertyName
     : TOK_IDENTIFIER     : TOK_IDENTIFIER
     {     {
         WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s)\n", $1));         WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s)\n", $1));
         $$ = $1;         $$ = $1;
     }     }
   *****************/
   propertyName
       : TOK_IDENTIFIER
       {
           WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s)\n", $1));
           $$ = $1;
       }
       | TOK_IDENTIFIER TOK_DOT TOK_IDENTIFIER
       {
           WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s.%s)\n", $1, $3));
   #ifdef PEGASUS_SNIA_EXTENSIONS
           // Pass anything as a property name to fool parser for SNIA testing
           $$ = strdup("dummy");
   #else
           yyerror("Scoped (dotted) property names not supported");
   #endif
       }
   
  
 className : TOK_IDENTIFIER className : TOK_IDENTIFIER
     {     {
Line 301 
Line 357 
     {     {
         globalParserState->statement->appendOperand(         globalParserState->statement->appendOperand(
             WQLOperand($1, WQL_PROPERTY_NAME_TAG));             WQLOperand($1, WQL_PROPERTY_NAME_TAG));
         globalParserState->statement->appendWherePropertyName($1);          globalParserState->statement->appendWherePropertyName(CIMName($1));
     }     }
     | TOK_INTEGER     | TOK_INTEGER
     {     {


Legend:
Removed from v.1.2  
changed lines
  Added in v.1.8

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2