00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00035 #ifndef OW_WQL_SELECT_STATEMENT_GEN_HPP_INCLUDE_GUARD_
00036 #define OW_WQL_SELECT_STATEMENT_GEN_HPP_INCLUDE_GUARD_
00037 #include "OW_config.h"
00038 #include "OW_WQLVisitor.hpp"
00039 #include "OW_WQLSelectStatement.hpp"
00040 
00041 
00042 
00043 
00044 namespace OW_NAMESPACE
00045 {
00046 
00047 class OW_WQL_API WQLSelectStatementGen : public WQLVisitor
00048 {
00049 public:
00050    WQLSelectStatementGen();
00051    virtual ~WQLSelectStatementGen();
00052    virtual void visit_stmt_selectStmt_optSemicolon(
00053       const stmt_selectStmt_optSemicolon* pstmt_selectStmt_optSemicolon
00054       );
00055    virtual void visit_stmt_updateStmt_optSemicolon(
00056       const stmt_updateStmt_optSemicolon* pstmt_updateStmt_optSemicolon
00057       );
00058    virtual void visit_stmt_insertStmt_optSemicolon(
00059       const stmt_insertStmt_optSemicolon* pstmt_insertStmt_optSemicolon
00060       );
00061    virtual void visit_stmt_deleteStmt_optSemicolon(
00062       const stmt_deleteStmt_optSemicolon* pstmt_deleteStmt_optSemicolon
00063       );
00064    virtual void visit_optSemicolon_empty(
00065       const optSemicolon_empty* poptSemicolon_empty
00066       );
00067    virtual void visit_optSemicolon_SEMICOLON(
00068       const optSemicolon_SEMICOLON* poptSemicolon_SEMICOLON
00069       );
00070    virtual void visit_insertStmt(
00071       const insertStmt* pinsertStmt
00072       );
00073    virtual void visit_insertRest_VALUES_LEFTPAREN_targetList_RIGHTPAREN(
00074       const insertRest_VALUES_LEFTPAREN_targetList_RIGHTPAREN* pinsertRest_VALUES_LEFTPAREN_targetList_RIGHTPAREN
00075       );
00076    virtual void visit_insertRest_DEFAULT_VALUES(
00077       const insertRest_DEFAULT_VALUES* pinsertRest_DEFAULT_VALUES
00078       );
00079    virtual void visit_insertRest_LEFTPAREN_columnList_RIGHTPAREN_VALUES_LEFTPAREN_targetList_RIGHTPAREN(
00080       const insertRest_LEFTPAREN_columnList_RIGHTPAREN_VALUES_LEFTPAREN_targetList_RIGHTPAREN* pinsertRest_LEFTPAREN_columnList_RIGHTPAREN_VALUES_LEFTPAREN_targetList_RIGHTPAREN
00081       );
00082    virtual void visit_deleteStmt(
00083       const deleteStmt* pdeleteStmt
00084       );
00085    virtual void visit_updateStmt(
00086       const updateStmt* pupdateStmt
00087       );
00088    virtual void visit_selectStmt(
00089       const selectStmt* pselectStmt
00090       );
00091    virtual void visit_exprSeq_aExpr(
00092       const exprSeq_aExpr* pexprSeq_aExpr
00093       );
00094    virtual void visit_exprSeq_exprSeq_COMMA_aExpr(
00095       const exprSeq_exprSeq_COMMA_aExpr* pexprSeq_exprSeq_COMMA_aExpr
00096       );
00097    virtual void visit_exprSeq_exprSeq_USING_aExpr(
00098       const exprSeq_exprSeq_USING_aExpr* pexprSeq_exprSeq_USING_aExpr
00099       );
00100    virtual void visit_optDistinct_empty(
00101       const optDistinct_empty* poptDistinct_empty
00102       );
00103    virtual void visit_optDistinct_DISTINCT(
00104       const optDistinct_DISTINCT* poptDistinct_DISTINCT
00105       );
00106    virtual void visit_optDistinct_DISTINCT_ON_LEFTPAREN_exprSeq_RIGHTPAREN(
00107       const optDistinct_DISTINCT_ON_LEFTPAREN_exprSeq_RIGHTPAREN* poptDistinct_DISTINCT_ON_LEFTPAREN_exprSeq_RIGHTPAREN
00108       );
00109    virtual void visit_optDistinct_ALL(
00110       const optDistinct_ALL* poptDistinct_ALL
00111       );
00112    virtual void visit_sortClause(
00113       const sortClause* psortClause
00114       );
00115    virtual void visit_optSortClause_empty(
00116       const optSortClause_empty* poptSortClause_empty
00117       );
00118    virtual void visit_optSortClause_sortClause(
00119       const optSortClause_sortClause* poptSortClause_sortClause
00120       );
00121    virtual void visit_sortby(
00122       const sortby* psortby
00123       );
00124    virtual void visit_optGroupClause_empty(
00125       const optGroupClause_empty* poptGroupClause_empty
00126       );
00127    virtual void visit_optGroupClause_GROUP_BY_exprSeq(
00128       const optGroupClause_GROUP_BY_exprSeq* poptGroupClause_GROUP_BY_exprSeq
00129       );
00130    virtual void visit_optHavingClause_empty(
00131       const optHavingClause_empty* poptHavingClause_empty
00132       );
00133    virtual void visit_optHavingClause_HAVING_aExpr(
00134       const optHavingClause_HAVING_aExpr* poptHavingClause_HAVING_aExpr
00135       );
00136    virtual void visit_optFromClause_empty(
00137       const optFromClause_empty* poptFromClause_empty
00138       );
00139    virtual void visit_optFromClause_FROM_fromList(
00140       const optFromClause_FROM_fromList* poptFromClause_FROM_fromList
00141       );
00142    virtual void visit_tableRef_relationExpr(
00143       const tableRef_relationExpr* ptableRef_relationExpr
00144       );
00145    virtual void visit_tableRef_relationExpr_aliasClause(
00146       const tableRef_relationExpr_aliasClause* ptableRef_relationExpr_aliasClause
00147       );
00148    virtual void visit_tableRef_joinedTable(
00149       const tableRef_joinedTable* ptableRef_joinedTable
00150       );
00151    virtual void visit_tableRef_LEFTPAREN_joinedTable_RIGHTPAREN_aliasClause(
00152       const tableRef_LEFTPAREN_joinedTable_RIGHTPAREN_aliasClause* ptableRef_LEFTPAREN_joinedTable_RIGHTPAREN_aliasClause
00153       );
00154    virtual void visit_joinedTable_LEFTPAREN_joinedTable_RIGHTPAREN(
00155       const joinedTable_LEFTPAREN_joinedTable_RIGHTPAREN* pjoinedTable_LEFTPAREN_joinedTable_RIGHTPAREN
00156       );
00157    virtual void visit_joinedTable_tableRef_CROSS_JOIN_tableRef(
00158       const joinedTable_tableRef_CROSS_JOIN_tableRef* pjoinedTable_tableRef_CROSS_JOIN_tableRef
00159       );
00160    virtual void visit_joinedTable_tableRef_UNIONJOIN_tableRef(
00161       const joinedTable_tableRef_UNIONJOIN_tableRef* pjoinedTable_tableRef_UNIONJOIN_tableRef
00162       );
00163    virtual void visit_joinedTable_tableRef_joinType_JOIN_tableRef_joinQual(
00164       const joinedTable_tableRef_joinType_JOIN_tableRef_joinQual* pjoinedTable_tableRef_joinType_JOIN_tableRef_joinQual
00165       );
00166    virtual void visit_joinedTable_tableRef_JOIN_tableRef_joinQual(
00167       const joinedTable_tableRef_JOIN_tableRef_joinQual* pjoinedTable_tableRef_JOIN_tableRef_joinQual
00168       );
00169    virtual void visit_joinedTable_tableRef_NATURAL_joinType_JOIN_tableRef(
00170       const joinedTable_tableRef_NATURAL_joinType_JOIN_tableRef* pjoinedTable_tableRef_NATURAL_joinType_JOIN_tableRef
00171       );
00172    virtual void visit_joinedTable_tableRef_NATURAL_JOIN_tableRef(
00173       const joinedTable_tableRef_NATURAL_JOIN_tableRef* pjoinedTable_tableRef_NATURAL_JOIN_tableRef
00174       );
00175    virtual void visit_aliasClause_AS_strColId_LEFTPAREN_nameList_RIGHTPAREN(
00176       const aliasClause_AS_strColId_LEFTPAREN_nameList_RIGHTPAREN* paliasClause_AS_strColId_LEFTPAREN_nameList_RIGHTPAREN
00177       );
00178    virtual void visit_aliasClause_AS_strColId(
00179       const aliasClause_AS_strColId* paliasClause_AS_strColId
00180       );
00181    virtual void visit_aliasClause_strColId_LEFTPAREN_nameList_RIGHTPAREN(
00182       const aliasClause_strColId_LEFTPAREN_nameList_RIGHTPAREN* paliasClause_strColId_LEFTPAREN_nameList_RIGHTPAREN
00183       );
00184    virtual void visit_aliasClause_strColId(
00185       const aliasClause_strColId* paliasClause_strColId
00186       );
00187    virtual void visit_joinType_FULL_strOptJoinOuter(
00188       const joinType_FULL_strOptJoinOuter* pjoinType_FULL_strOptJoinOuter
00189       );
00190    virtual void visit_joinType_LEFT_strOptJoinOuter(
00191       const joinType_LEFT_strOptJoinOuter* pjoinType_LEFT_strOptJoinOuter
00192       );
00193    virtual void visit_joinType_RIGHT_strOptJoinOuter(
00194       const joinType_RIGHT_strOptJoinOuter* pjoinType_RIGHT_strOptJoinOuter
00195       );
00196    virtual void visit_joinType_INNERP(
00197       const joinType_INNERP* pjoinType_INNERP
00198       );
00199    virtual void visit_joinQual_USING_LEFTPAREN_nameList_RIGHTPAREN(
00200       const joinQual_USING_LEFTPAREN_nameList_RIGHTPAREN* pjoinQual_USING_LEFTPAREN_nameList_RIGHTPAREN
00201       );
00202    virtual void visit_joinQual_ON_aExpr(
00203       const joinQual_ON_aExpr* pjoinQual_ON_aExpr
00204       );
00205    virtual void visit_relationExpr_strRelationName(
00206       const relationExpr_strRelationName* prelationExpr_strRelationName
00207       );
00208    virtual void visit_relationExpr_strRelationName_ASTERISK(
00209       const relationExpr_strRelationName_ASTERISK* prelationExpr_strRelationName_ASTERISK
00210       );
00211    virtual void visit_relationExpr_ONLY_strRelationName(
00212       const relationExpr_ONLY_strRelationName* prelationExpr_ONLY_strRelationName
00213       );
00214    virtual void visit_optWhereClause_empty(
00215       const optWhereClause_empty* poptWhereClause_empty
00216       );
00217    virtual void visit_optWhereClause_WHERE_aExpr(
00218       const optWhereClause_WHERE_aExpr* poptWhereClause_WHERE_aExpr
00219       );
00220    virtual void visit_rowExpr(
00221       const rowExpr* prowExpr
00222       );
00223    virtual void visit_rowDescriptor(
00224       const rowDescriptor* prowDescriptor
00225       );
00226    virtual void visit_aExpr_cExpr(
00227       const aExpr_cExpr* paExpr_cExpr
00228       );
00229    virtual void visit_aExpr_aExpr_AT_TIME_ZONE_cExpr(
00230       const aExpr_aExpr_AT_TIME_ZONE_cExpr* paExpr_aExpr_AT_TIME_ZONE_cExpr
00231       );
00232    virtual void visit_aExpr_PLUS_aExpr(
00233       const aExpr_PLUS_aExpr* paExpr_PLUS_aExpr
00234       );
00235    virtual void visit_aExpr_MINUS_aExpr(
00236       const aExpr_MINUS_aExpr* paExpr_MINUS_aExpr
00237       );
00238    virtual void visit_aExpr_BITINVERT_aExpr(
00239       const aExpr_BITINVERT_aExpr* paExpr_BITINVERT_aExpr
00240       );
00241    virtual void visit_aExpr_aExpr_PLUS_aExpr(
00242       const aExpr_aExpr_PLUS_aExpr* paExpr_aExpr_PLUS_aExpr
00243       );
00244    virtual void visit_aExpr_aExpr_MINUS_aExpr(
00245       const aExpr_aExpr_MINUS_aExpr* paExpr_aExpr_MINUS_aExpr
00246       );
00247    virtual void visit_aExpr_aExpr_ASTERISK_aExpr(
00248       const aExpr_aExpr_ASTERISK_aExpr* paExpr_aExpr_ASTERISK_aExpr
00249       );
00250    virtual void visit_aExpr_aExpr_SOLIDUS_aExpr(
00251       const aExpr_aExpr_SOLIDUS_aExpr* paExpr_aExpr_SOLIDUS_aExpr
00252       );
00253    virtual void visit_aExpr_aExpr_PERCENT_aExpr(
00254       const aExpr_aExpr_PERCENT_aExpr* paExpr_aExpr_PERCENT_aExpr
00255       );
00256    virtual void visit_aExpr_aExpr_BITAND_aExpr(
00257       const aExpr_aExpr_BITAND_aExpr* paExpr_aExpr_BITAND_aExpr
00258       );
00259    virtual void visit_aExpr_aExpr_BITOR_aExpr(
00260       const aExpr_aExpr_BITOR_aExpr* paExpr_aExpr_BITOR_aExpr
00261       );
00262    virtual void visit_aExpr_aExpr_BITSHIFTLEFT_aExpr(
00263       const aExpr_aExpr_BITSHIFTLEFT_aExpr* paExpr_aExpr_BITSHIFTLEFT_aExpr
00264       );
00265    virtual void visit_aExpr_aExpr_BITSHIFTRIGHT_aExpr(
00266       const aExpr_aExpr_BITSHIFTRIGHT_aExpr* paExpr_aExpr_BITSHIFTRIGHT_aExpr
00267       );
00268    virtual void visit_aExpr_aExpr_LESSTHAN_aExpr(
00269       const aExpr_aExpr_LESSTHAN_aExpr* paExpr_aExpr_LESSTHAN_aExpr
00270       );
00271    virtual void visit_aExpr_aExpr_LESSTHANOREQUALS_aExpr(
00272       const aExpr_aExpr_LESSTHANOREQUALS_aExpr* paExpr_aExpr_LESSTHANOREQUALS_aExpr
00273       );
00274    virtual void visit_aExpr_aExpr_GREATERTHAN_aExpr(
00275       const aExpr_aExpr_GREATERTHAN_aExpr* paExpr_aExpr_GREATERTHAN_aExpr
00276       );
00277    virtual void visit_aExpr_aExpr_GREATERTHANOREQUALS_aExpr(
00278       const aExpr_aExpr_GREATERTHANOREQUALS_aExpr* paExpr_aExpr_GREATERTHANOREQUALS_aExpr
00279       );
00280    virtual void visit_aExpr_aExpr_EQUALS_aExpr(
00281       const aExpr_aExpr_EQUALS_aExpr* paExpr_aExpr_EQUALS_aExpr
00282       );
00283    virtual void visit_aExpr_aExpr_NOTEQUALS_aExpr(
00284       const aExpr_aExpr_NOTEQUALS_aExpr* paExpr_aExpr_NOTEQUALS_aExpr
00285       );
00286    virtual void visit_aExpr_aExpr_AND_aExpr(
00287       const aExpr_aExpr_AND_aExpr* paExpr_aExpr_AND_aExpr
00288       );
00289    virtual void visit_aExpr_aExpr_OR_aExpr(
00290       const aExpr_aExpr_OR_aExpr* paExpr_aExpr_OR_aExpr
00291       );
00292    virtual void visit_aExpr_NOT_aExpr(
00293       const aExpr_NOT_aExpr* paExpr_NOT_aExpr
00294       );
00295    virtual void visit_aExpr_aExpr_CONCATENATION_aExpr(
00296       const aExpr_aExpr_CONCATENATION_aExpr* paExpr_aExpr_CONCATENATION_aExpr
00297       );
00298    virtual void visit_aExpr_aExpr_LIKE_aExpr(
00299       const aExpr_aExpr_LIKE_aExpr* paExpr_aExpr_LIKE_aExpr
00300       );
00301    virtual void visit_aExpr_aExpr_LIKE_aExpr_ESCAPE_aExpr(
00302       const aExpr_aExpr_LIKE_aExpr_ESCAPE_aExpr* paExpr_aExpr_LIKE_aExpr_ESCAPE_aExpr
00303       );
00304    virtual void visit_aExpr_aExpr_NOT_LIKE_aExpr(
00305       const aExpr_aExpr_NOT_LIKE_aExpr* paExpr_aExpr_NOT_LIKE_aExpr
00306       );
00307    virtual void visit_aExpr_aExpr_NOT_LIKE_aExpr_ESCAPE_aExpr(
00308       const aExpr_aExpr_NOT_LIKE_aExpr_ESCAPE_aExpr* paExpr_aExpr_NOT_LIKE_aExpr_ESCAPE_aExpr
00309       );
00310    virtual void visit_aExpr_aExpr_ISNULL(
00311       const aExpr_aExpr_ISNULL* paExpr_aExpr_ISNULL
00312       );
00313    virtual void visit_aExpr_aExpr_IS_NULLP(
00314       const aExpr_aExpr_IS_NULLP* paExpr_aExpr_IS_NULLP
00315       );
00316    virtual void visit_aExpr_aExpr_NOTNULL(
00317       const aExpr_aExpr_NOTNULL* paExpr_aExpr_NOTNULL
00318       );
00319    virtual void visit_aExpr_aExpr_IS_NOT_NULLP(
00320       const aExpr_aExpr_IS_NOT_NULLP* paExpr_aExpr_IS_NOT_NULLP
00321       );
00322    virtual void visit_aExpr_aExpr_IS_TRUEP(
00323       const aExpr_aExpr_IS_TRUEP* paExpr_aExpr_IS_TRUEP
00324       );
00325    virtual void visit_aExpr_aExpr_IS_NOT_FALSEP(
00326       const aExpr_aExpr_IS_NOT_FALSEP* paExpr_aExpr_IS_NOT_FALSEP
00327       );
00328    virtual void visit_aExpr_aExpr_IS_FALSEP(
00329       const aExpr_aExpr_IS_FALSEP* paExpr_aExpr_IS_FALSEP
00330       );
00331    virtual void visit_aExpr_aExpr_IS_NOT_TRUEP(
00332       const aExpr_aExpr_IS_NOT_TRUEP* paExpr_aExpr_IS_NOT_TRUEP
00333       );
00334    virtual void visit_aExpr_aExpr_ISA_aExpr(
00335       const aExpr_aExpr_ISA_aExpr* paExpr_aExpr_ISA_aExpr
00336       );
00337    
00338    virtual void visit_aExpr_rowExpr(
00339       const aExpr_rowExpr* paExpr_rowExpr
00340       );
00341    virtual void visit_bExpr_cExpr(
00342       const bExpr_cExpr* pbExpr_cExpr
00343       );
00344    virtual void visit_bExpr_PLUS_bExpr(
00345       const bExpr_PLUS_bExpr* pbExpr_PLUS_bExpr
00346       );
00347    virtual void visit_bExpr_MINUS_bExpr(
00348       const bExpr_MINUS_bExpr* pbExpr_MINUS_bExpr
00349       );
00350    virtual void visit_bExpr_BITINVERT_bExpr(
00351       const bExpr_BITINVERT_bExpr* pbExpr_BITINVERT_bExpr
00352       );
00353    virtual void visit_bExpr_bExpr_PLUS_bExpr(
00354       const bExpr_bExpr_PLUS_bExpr* pbExpr_bExpr_PLUS_bExpr
00355       );
00356    virtual void visit_bExpr_bExpr_MINUS_bExpr(
00357       const bExpr_bExpr_MINUS_bExpr* pbExpr_bExpr_MINUS_bExpr
00358       );
00359    virtual void visit_bExpr_bExpr_ASTERISK_bExpr(
00360       const bExpr_bExpr_ASTERISK_bExpr* pbExpr_bExpr_ASTERISK_bExpr
00361       );
00362    virtual void visit_bExpr_bExpr_SOLIDUS_bExpr(
00363       const bExpr_bExpr_SOLIDUS_bExpr* pbExpr_bExpr_SOLIDUS_bExpr
00364       );
00365    virtual void visit_bExpr_bExpr_PERCENT_bExpr(
00366       const bExpr_bExpr_PERCENT_bExpr* pbExpr_bExpr_PERCENT_bExpr
00367       );
00368    virtual void visit_bExpr_bExpr_BITAND_bExpr(
00369       const bExpr_bExpr_BITAND_bExpr* pbExpr_bExpr_BITAND_bExpr
00370       );
00371    virtual void visit_bExpr_bExpr_BITOR_bExpr(
00372       const bExpr_bExpr_BITOR_bExpr* pbExpr_bExpr_BITOR_bExpr
00373       );
00374    virtual void visit_bExpr_bExpr_BITSHIFTLEFT_bExpr(
00375       const bExpr_bExpr_BITSHIFTLEFT_bExpr* pbExpr_bExpr_BITSHIFTLEFT_bExpr
00376       );
00377    virtual void visit_bExpr_bExpr_BITSHIFTRIGHT_bExpr(
00378       const bExpr_bExpr_BITSHIFTRIGHT_bExpr* pbExpr_bExpr_BITSHIFTRIGHT_bExpr
00379       );
00380    virtual void visit_bExpr_bExpr_LESSTHAN_bExpr(
00381       const bExpr_bExpr_LESSTHAN_bExpr* pbExpr_bExpr_LESSTHAN_bExpr
00382       );
00383    virtual void visit_bExpr_bExpr_LESSTHANOREQUALS_bExpr(
00384       const bExpr_bExpr_LESSTHANOREQUALS_bExpr* pbExpr_bExpr_LESSTHANOREQUALS_bExpr
00385       );
00386    virtual void visit_bExpr_bExpr_GREATERTHAN_bExpr(
00387       const bExpr_bExpr_GREATERTHAN_bExpr* pbExpr_bExpr_GREATERTHAN_bExpr
00388       );
00389    virtual void visit_bExpr_bExpr_GREATERTHANOREQUALS_bExpr(
00390       const bExpr_bExpr_GREATERTHANOREQUALS_bExpr* pbExpr_bExpr_GREATERTHANOREQUALS_bExpr
00391       );
00392    virtual void visit_bExpr_bExpr_EQUALS_bExpr(
00393       const bExpr_bExpr_EQUALS_bExpr* pbExpr_bExpr_EQUALS_bExpr
00394       );
00395    virtual void visit_bExpr_bExpr_NOTEQUALS_bExpr(
00396       const bExpr_bExpr_NOTEQUALS_bExpr* pbExpr_bExpr_NOTEQUALS_bExpr
00397       );
00398    virtual void visit_bExpr_bExpr_CONCATENATION_bExpr(
00399       const bExpr_bExpr_CONCATENATION_bExpr* pbExpr_bExpr_CONCATENATION_bExpr
00400       );
00401    virtual void visit_cExpr_attr(
00402       const cExpr_attr* pcExpr_attr
00403       );
00404    virtual void visit_cExpr_strColId_optIndirection(
00405       const cExpr_strColId_optIndirection* pcExpr_strColId_optIndirection
00406       );
00407    virtual void visit_cExpr_aExprConst(
00408       const cExpr_aExprConst* pcExpr_aExprConst
00409       );
00410    virtual void visit_cExpr_LEFTPAREN_aExpr_RIGHTPAREN(
00411       const cExpr_LEFTPAREN_aExpr_RIGHTPAREN* pcExpr_LEFTPAREN_aExpr_RIGHTPAREN
00412       );
00413    virtual void visit_cExpr_strFuncName_LEFTPAREN_RIGHTPAREN(
00414       const cExpr_strFuncName_LEFTPAREN_RIGHTPAREN* pcExpr_strFuncName_LEFTPAREN_RIGHTPAREN
00415       );
00416    virtual void visit_cExpr_strFuncName_LEFTPAREN_exprSeq_RIGHTPAREN(
00417       const cExpr_strFuncName_LEFTPAREN_exprSeq_RIGHTPAREN* pcExpr_strFuncName_LEFTPAREN_exprSeq_RIGHTPAREN
00418       );
00419    virtual void visit_cExpr_strFuncName_LEFTPAREN_ALL_exprSeq_RIGHTPAREN(
00420       const cExpr_strFuncName_LEFTPAREN_ALL_exprSeq_RIGHTPAREN* pcExpr_strFuncName_LEFTPAREN_ALL_exprSeq_RIGHTPAREN
00421       );
00422    virtual void visit_cExpr_strFuncName_LEFTPAREN_DISTINCT_exprSeq_RIGHTPAREN(
00423       const cExpr_strFuncName_LEFTPAREN_DISTINCT_exprSeq_RIGHTPAREN* pcExpr_strFuncName_LEFTPAREN_DISTINCT_exprSeq_RIGHTPAREN
00424       );
00425    virtual void visit_cExpr_strFuncName_LEFTPAREN_ASTERISK_RIGHTPAREN(
00426       const cExpr_strFuncName_LEFTPAREN_ASTERISK_RIGHTPAREN* pcExpr_strFuncName_LEFTPAREN_ASTERISK_RIGHTPAREN
00427       );
00428    virtual void visit_cExpr_CURRENTDATE(
00429       const cExpr_CURRENTDATE* pcExpr_CURRENTDATE
00430       );
00431    virtual void visit_cExpr_CURRENTTIME(
00432       const cExpr_CURRENTTIME* pcExpr_CURRENTTIME
00433       );
00434    virtual void visit_cExpr_CURRENTTIME_LEFTPAREN_ICONST_RIGHTPAREN(
00435       const cExpr_CURRENTTIME_LEFTPAREN_ICONST_RIGHTPAREN* pcExpr_CURRENTTIME_LEFTPAREN_ICONST_RIGHTPAREN
00436       );
00437    virtual void visit_cExpr_CURRENTTIMESTAMP(
00438       const cExpr_CURRENTTIMESTAMP* pcExpr_CURRENTTIMESTAMP
00439       );
00440    virtual void visit_cExpr_CURRENTTIMESTAMP_LEFTPAREN_ICONST_RIGHTPAREN(
00441       const cExpr_CURRENTTIMESTAMP_LEFTPAREN_ICONST_RIGHTPAREN* pcExpr_CURRENTTIMESTAMP_LEFTPAREN_ICONST_RIGHTPAREN
00442       );
00443    virtual void visit_cExpr_CURRENTUSER(
00444       const cExpr_CURRENTUSER* pcExpr_CURRENTUSER
00445       );
00446    virtual void visit_cExpr_SESSIONUSER(
00447       const cExpr_SESSIONUSER* pcExpr_SESSIONUSER
00448       );
00449    virtual void visit_cExpr_USER(
00450       const cExpr_USER* pcExpr_USER
00451       );
00452    virtual void visit_cExpr_EXTRACT_LEFTPAREN_optExtract_RIGHTPAREN(
00453       const cExpr_EXTRACT_LEFTPAREN_optExtract_RIGHTPAREN* pcExpr_EXTRACT_LEFTPAREN_optExtract_RIGHTPAREN
00454       );
00455    virtual void visit_cExpr_POSITION_LEFTPAREN_positionExpr_RIGHTPAREN(
00456       const cExpr_POSITION_LEFTPAREN_positionExpr_RIGHTPAREN* pcExpr_POSITION_LEFTPAREN_positionExpr_RIGHTPAREN
00457       );
00458    virtual void visit_cExpr_SUBSTRING_LEFTPAREN_optSubstrExpr_RIGHTPAREN(
00459       const cExpr_SUBSTRING_LEFTPAREN_optSubstrExpr_RIGHTPAREN* pcExpr_SUBSTRING_LEFTPAREN_optSubstrExpr_RIGHTPAREN
00460       );
00461    virtual void visit_cExpr_TRIM_LEFTPAREN_LEADING_trimExpr_RIGHTPAREN(
00462       const cExpr_TRIM_LEFTPAREN_LEADING_trimExpr_RIGHTPAREN* pcExpr_TRIM_LEFTPAREN_LEADING_trimExpr_RIGHTPAREN
00463       );
00464    virtual void visit_cExpr_TRIM_LEFTPAREN_TRAILING_trimExpr_RIGHTPAREN(
00465       const cExpr_TRIM_LEFTPAREN_TRAILING_trimExpr_RIGHTPAREN* pcExpr_TRIM_LEFTPAREN_TRAILING_trimExpr_RIGHTPAREN
00466       );
00467    virtual void visit_cExpr_TRIM_LEFTPAREN_trimExpr_RIGHTPAREN(
00468       const cExpr_TRIM_LEFTPAREN_trimExpr_RIGHTPAREN* pcExpr_TRIM_LEFTPAREN_trimExpr_RIGHTPAREN
00469       );
00470    virtual void visit_optIndirection_empty(
00471       const optIndirection_empty* poptIndirection_empty
00472       );
00473    virtual void visit_optIndirection_optIndirection_LEFTBRACKET_aExpr_RIGHTBRACKET(
00474       const optIndirection_optIndirection_LEFTBRACKET_aExpr_RIGHTBRACKET* poptIndirection_optIndirection_LEFTBRACKET_aExpr_RIGHTBRACKET
00475       );
00476    virtual void visit_optIndirection_optIndirection_LEFTBRACKET_aExpr_COLON_aExpr_RIGHTBRACKET(
00477       const optIndirection_optIndirection_LEFTBRACKET_aExpr_COLON_aExpr_RIGHTBRACKET* poptIndirection_optIndirection_LEFTBRACKET_aExpr_COLON_aExpr_RIGHTBRACKET
00478       );
00479    virtual void visit_optExtract_empty(
00480       const optExtract_empty* poptExtract_empty
00481       );
00482    virtual void visit_optExtract_strExtractArg_FROM_aExpr(
00483       const optExtract_strExtractArg_FROM_aExpr* poptExtract_strExtractArg_FROM_aExpr
00484       );
00485    virtual void visit_positionExpr_bExpr_IN_bExpr(
00486       const positionExpr_bExpr_IN_bExpr* ppositionExpr_bExpr_IN_bExpr
00487       );
00488    virtual void visit_positionExpr_empty(
00489       const positionExpr_empty* ppositionExpr_empty
00490       );
00491    virtual void visit_optSubstrExpr_empty(
00492       const optSubstrExpr_empty* poptSubstrExpr_empty
00493       );
00494    virtual void visit_optSubstrExpr_aExpr_substrFrom_substrFor(
00495       const optSubstrExpr_aExpr_substrFrom_substrFor* poptSubstrExpr_aExpr_substrFrom_substrFor
00496       );
00497    virtual void visit_optSubstrExpr_aExpr_substrFor_substrFrom(
00498       const optSubstrExpr_aExpr_substrFor_substrFrom* poptSubstrExpr_aExpr_substrFor_substrFrom
00499       );
00500    virtual void visit_optSubstrExpr_aExpr_substrFrom(
00501       const optSubstrExpr_aExpr_substrFrom* poptSubstrExpr_aExpr_substrFrom
00502       );
00503    virtual void visit_optSubstrExpr_aExpr_substrFor(
00504       const optSubstrExpr_aExpr_substrFor* poptSubstrExpr_aExpr_substrFor
00505       );
00506    virtual void visit_optSubstrExpr_exprSeq(
00507       const optSubstrExpr_exprSeq* poptSubstrExpr_exprSeq
00508       );
00509    virtual void visit_substrFrom(
00510       const substrFrom* psubstrFrom
00511       );
00512    virtual void visit_substrFor(
00513       const substrFor* psubstrFor
00514       );
00515    virtual void visit_trimExpr_aExpr_FROM_exprSeq(
00516       const trimExpr_aExpr_FROM_exprSeq* ptrimExpr_aExpr_FROM_exprSeq
00517       );
00518    virtual void visit_trimExpr_FROM_exprSeq(
00519       const trimExpr_FROM_exprSeq* ptrimExpr_FROM_exprSeq
00520       );
00521    virtual void visit_trimExpr_exprSeq(
00522       const trimExpr_exprSeq* ptrimExpr_exprSeq
00523       );
00524    virtual void visit_attr(
00525       const attr* pattr
00526       );
00527    virtual void visit_attrs_strAttrName(
00528       const attrs_strAttrName* pattrs_strAttrName
00529       );
00530    virtual void visit_attrs_attrs_PERIOD_strAttrName(
00531       const attrs_attrs_PERIOD_strAttrName* pattrs_attrs_PERIOD_strAttrName
00532       );
00533    virtual void visit_attrs_attrs_PERIOD_ASTERISK(
00534       const attrs_attrs_PERIOD_ASTERISK* pattrs_attrs_PERIOD_ASTERISK
00535       );
00536    virtual void visit_targetEl_aExpr_AS_strColLabel(
00537       const targetEl_aExpr_AS_strColLabel* ptargetEl_aExpr_AS_strColLabel
00538       );
00539    virtual void visit_targetEl_aExpr(
00540       const targetEl_aExpr* ptargetEl_aExpr
00541       );
00542    virtual void visit_targetEl_strRelationName_PERIOD_ASTERISK(
00543       const targetEl_strRelationName_PERIOD_ASTERISK* ptargetEl_strRelationName_PERIOD_ASTERISK
00544       );
00545    virtual void visit_targetEl_ASTERISK(
00546       const targetEl_ASTERISK* ptargetEl_ASTERISK
00547       );
00548    virtual void visit_updateTargetEl(
00549       const updateTargetEl* pupdateTargetEl
00550       );
00551    virtual void visit_aExprConst_ICONST(
00552       const aExprConst_ICONST* paExprConst_ICONST
00553       );
00554    virtual void visit_aExprConst_FCONST(
00555       const aExprConst_FCONST* paExprConst_FCONST
00556       );
00557    virtual void visit_aExprConst_SCONST(
00558       const aExprConst_SCONST* paExprConst_SCONST
00559       );
00560    virtual void visit_aExprConst_BITCONST(
00561       const aExprConst_BITCONST* paExprConst_BITCONST
00562       );
00563    virtual void visit_aExprConst_HEXCONST(
00564       const aExprConst_HEXCONST* paExprConst_HEXCONST
00565       );
00566    virtual void visit_aExprConst_TRUEP(
00567       const aExprConst_TRUEP* paExprConst_TRUEP
00568       );
00569    virtual void visit_aExprConst_FALSEP(
00570       const aExprConst_FALSEP* paExprConst_FALSEP
00571       );
00572    virtual void visit_aExprConst_NULLP(
00573       const aExprConst_NULLP* paExprConst_NULLP
00574       );
00575    
00576 public:
00577    WQLSelectStatement getSelectStatement() const
00578    {
00579       return m_stmt;
00580    }
00581 private:
00582    WQLSelectStatement m_stmt;
00583    bool m_isPropertyList;
00584    String m_attrName;
00585 };
00586 
00587 } 
00588 
00589 #endif