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