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