%{ /* * lexer for parsing cfg source files * */ /* enlarge token buffer to tokenize whole strings */ #undef YYLMAX #define YYLMAX 64000 /* to enable debug output define LEXDEBUG */ #define LEXDEBUG 1 #ifdef LEXDEBUG #define OUTPUT fprintf #else #define OUTPUT(Par1,Par2); #endif /* table of possible token ids */ #include "tokens.h" #include #include /* external functions (C++ code, declared as extren "C" */ extern WorkOnTokenSet( int, char* ); extern InitCfgExport( char * ); extern EndCfgExport(); extern GetError(); extern SetError(); extern char *GetOutputFile( int argc, char* argv[]); extern FILE *GetCfgFile(); extern isQuiet(); extern void removeTempFile(); /* forwards */ void YYWarning(); int bText=0; %} %p 24000 %e 1200 %n 500 %% \<[^\>]*"xml:lang="\""x-no-translate"\"[^\<]*\/\> { bText = 0; WorkOnTokenSet( CFG_TOKEN_NO_TRANSLATE, yytext ); } \<.*\/\> { bText = 0; WorkOnTokenSet( ANYTOKEN, yytext ); } \<[^\>]*"xml:lang="\".*\"[^\<]*\> { bText = 1; WorkOnTokenSet( CFG_TEXT_START, yytext ); } "