00001 // $Id$ 00002 // Author: John Wu <John.Wu at acm.org> 00003 // Lawrence Berkeley National Laboratory 00004 // Copyright 2007-2011 the Regents of the University of California 00005 #ifndef IBIS_WHERELEXER_H 00006 #define IBIS_WHERELEXER_H 00007 00011 #ifndef YY_DECL 00012 // the new lex function to satisfy the reentrant parser requirement 00013 #define YY_DECL ibis::whereParser::token_type ibis::whereLexer::lex \ 00014 (ibis::whereParser::semantic_type* yylval, \ 00015 ibis::whereParser::location_type* yylloc) 00016 #endif 00017 #include "whereParser.hh" // class whereParser 00018 00019 // rename yyFlexLexer to _wLexer 00020 #undef yyFlexLexer 00021 #define yyFlexLexer _wLexer 00022 #include <FlexLexer.h> 00023 //#undef yyFlexLexer 00024 00025 namespace ibis { 00041 class whereLexer : public ::_wLexer { 00042 public: 00043 whereLexer(std::istream* in=0, std::ostream* out=0); 00044 virtual ~whereLexer(); 00045 00046 // The new lex function. It carries the value of token and its type. 00047 // The value of the token is returned as the first argument and the 00048 // corresponding type is the return value of this function. 00049 virtual whereParser::token_type 00050 lex(whereParser::semantic_type*, whereParser::location_type*); 00051 00052 void set_debug(bool); 00053 }; // ibis::whereLexer 00054 } // namespace ibis 00055 #endif
![]() |