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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2