Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Flex/examples/   (Fast Lexical Analyzer Version 2.6©)  Datei vom 6.11.2012 mit Größe 872 B image not shown  

Quelle  testxxLexer.l   Sprache: unbekannt

 
 // An example of using the flex C++ scanner class.

%option C++ noyywrap

%{
int mylineno = 0;
%}

string \"[^\n"]+\"

ws [ \t]+

alpha [A-Za-z]
dig [0-9]
name ({alpha}|{dig}|\$)({alpha}|{dig}|\_|\.|\-|\/|\$)*
num1 [-+]?{dig}+\.?([eE][-+]?{dig}+)?
num2 [-+]?{dig}*\.{dig}+([eE][-+]?{dig}+)?
number {num1}|{num2}

%%

{ws} /* skip blanks and tabs */

"/*"  {
  int c;

  while((c = yyinput()) != 0)
   {
   if(c == '\n')
    ++mylineno;

   else if(c == '*')
    {
    if((c = yyinput()) == '/')
     break;
    else
     unput(c);
    }
   }
  }

{number} FLEX_STD cout << "number " << YYText() << '\n';

\n  mylineno++;

{name}  FLEX_STD cout << "name " << YYText() << '\n';

{string} FLEX_STD cout << "string " << YYText() << '\n';

%%

int main( int /* argc */, char** /* argv */ )
 {
 FlexLexer* lexer = new yyFlexLexer;
 while(lexer->yylex() != 0)
  ;
 return 0;
 }

[ Dauer der Verarbeitung: 0.25 Sekunden  (vorverarbeitet)  ]