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

  1 martin 1.11 //%LICENSE////////////////////////////////////////////////////////////////
  2             // 
  3             // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9             // 
 10             // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16             // 
 17             // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19             // 
 20             // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21             // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
 22 martin 1.11 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 mike   1.2  // 
 28 martin 1.11 //////////////////////////////////////////////////////////////////////////
 29 mike   1.2  //
 30             // Author: Mike Brasher (mbrasher@bmc.com)
 31             //
 32             // Modified By:
 33             //
 34             //%/////////////////////////////////////////////////////////////////////////////
 35             
 36             #ifndef Pegasus_WQLParserState_h
 37             #define Pegasus_WQLParserState_h
 38             
 39             #include <Pegasus/Common/Config.h>
 40 kumpf  1.5  #include <Pegasus/Common/ArrayInternal.h>
 41 mike   1.2  #include <Pegasus/WQL/WQLSelectStatement.h>
 42             
 43             PEGASUS_NAMESPACE_BEGIN
 44             
 45             /** This is an internal structure used for holding parser state information
 46                 during parsing (while inside the WQLParser::parse() method). Instances
 47                 of this class are created and destroyed by WQLParser::parse().
 48             */
 49             struct WQLParserState
 50             {
 51                 //
 52                 // Text containing SELECT statement (must be null-terminated).
 53                 //
 54             
 55 mike   1.3      const char* text;
 56             
 57                 //
 58                 // Size in bytes (including null terminator) of the text.
 59                 //
 60             
 61                 Uint32 textSize;
 62 mike   1.2  
 63                 //
 64                 // Offset to current parser position in the above text.
 65                 //
 66             
 67                 Uint32 offset;
 68             
 69                 //
 70                 // The output object being initialized during parsing. This object is
 71 kumpf  1.6      // set to point to the statement argument passed to the WQLParser::parse()
 72 mike   1.2      // method.
 73                 //
 74             
 75                 WQLSelectStatement* statement;
 76             
 77                 //
 78                 // Set to true when there is an error (set by WQL_error()).
 79                 //
 80             
 81                 Boolean error;
 82             
 83                 //
 84                 // Error message if any (set by WQL_error()).
 85                 //
 86             
 87                 String errorMessage;
 88             
 89                 //
 90                 // A list of strings created by lexer. These are deleted by the
 91                 // WQLParser when cleaning up in the parse() method. It is not possible
 92                 // to reliably clean them up anywhere else due to potential parse errors
 93 mike   1.2      // which prevent YACC actions (which might attempt to free them) from
 94                 // being reached. These strings are outstanding in the sense that they
 95                 // need to be cleaned up (not in the sense that they are excellent examples
 96                 // of strings).
 97                 //
 98             
 99                 Array<char*> outstandingStrings;
100             };
101             
102             PEGASUS_NAMESPACE_END
103             
104             #endif /* Pegasus_WQLParserState_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2