diff options
Diffstat (limited to 'BUGS')
-rw-r--r-- | BUGS | 107 |
1 files changed, 0 insertions, 107 deletions
@@ -1,107 +0,0 @@ -This is a list of bugs still in the queue at lex.sf.net at the time we closed -out the project and moved it to flex.sf.net. - -------------------------------------------------------------- - -Some strict compilers warn about a few internal flex variables signedness. They -are bogus warnings and can be ignored, but people send in reports nonethless. - -------------------------------------------------------------- - -The initializer of the yy_transition array in the -generated scanner -contains fewer entries than the declared size of the array. - -Examples include yy_transition[6504] with 6250 entries, -yy_transition[13215] with 12961 entries. This looks -like it -is always 254 fewer entries than the declared size. - -This bug is present in flex 2.5.4a as well. It appears to be harmless. - -------------------------------------------------------------- -The examples in the chapter "Generating C++ Scanners" -contain suspicious code. Attached is a patch that -corrects this, and after these -modifications this example compiles and works. - -------------------------------------------------------------- - -C++ scanners derived from the yyFlexLexer base class -will not compile with flex-2.5.31 because the -<FlexLexer.h> automatically gets included into the -scanner twice. Because yyFlexLexer is now defined by -default even if no prefix is specified, including -FlexLexer.h twice causes the class yyFlexLexer to be -declared twice. In flex-2.5.4 because yyFlexLexer was -not defined by flex in the scanner code, including -FlexLexer.h more than once only declared yyFlexLexer -once. I appreciate that this is because of the M4 -additions to flex, but I can not find a way to stop -flex defining yyFlexLexer if it is not needed. - -Here is an example of a class that will not compile: - -derived_lexer.h: - -#ifndef __derived_lexer__ -#define __derived_lexer__ - -#include <FlexLexer.h> - -class derived_lexer : public yyFlexLexer -{ -public: -derived_lexer(std::istream* arg_yyin = 0) : -yyFlexLexer(arg_yyin){} -int yylex(); -int x; -}; -#endif - -derived_lexer.l: - -%{ -#include "derived_lexer.h" -%} - -%option yyclass="derived_lexer" - -%% -[0-9]+ { -x = atoi(yytext); -} -%% - -main.cpp: - -#include "derived_lexer.h" -#include <fstream> - -int main() -{ -std::ifstream input; -input.open("input"); -derived_lexer lexer(&input); -lexer.yylex(); -} - -------------------------------------------------------------- - -Hi, the anomally is that if I generate a c++ parser it will not make -yy_scan_buffer and friends. -this is happenning on flex version 2.5.4. -Is this the intent, if so how do I make a c++ parser read from my buffer? - -P.S. in c++ it will only generate: -#ifndef YY_NO_SCAN_BUFFER -#endif - - -#ifndef YY_NO_SCAN_STRING -#endif - - -#ifndef YY_NO_SCAN_BYTES -#endif -------------------------------------------------------------- |