(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.3 and 1.10

version 1.3, 2002/08/27 18:47:11 version 1.10, 2008/12/01 17:51:20
Line 1 
Line 1 
   //%LICENSE////////////////////////////////////////////////////////////////
   //
   // Licensed to The Open Group (TOG) under one or more contributor license
   // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
   // this work for additional information regarding copyright ownership.
   // Each contributor licenses this file to you under the OpenPegasus Open
   // Source License; you may not use this file except in compliance with the
   // License.
   //
   // 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 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
       : TOK_IDENTIFIER
       {
       WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s)\n", $1));
       $$ = $1;
       }
   *****************/
 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;
     }     }
       | 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.3  
changed lines
  Added in v.1.10

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2