From lextest.c: line 2 "lextest.c" line 4 "lextest.c" define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ Code: %{ include <stdio.h> int wordCount = 0; %} word a|(the) %% [\t\n ]+ {printf("I see whitespace\n");} {word} {wordCount++;} %% int main() { yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0; }
%{ #include <stdio.h> int articleCount = 0; %} article [^a\s\t\n]+ article [^the\s\t\n]+ %% [\t\n ]+ {printf("I see 'a' or 'the'\n");} //what to do if see pattern {article} {articleCount++;} %% int main() { yylex(); //calls the lexer printf("article count: %d", articleCount); return 0; }(Edited: 2021-09-22)
code from lex.yy.c: line 2 "lex.yy.c" define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ define FLEX_SCANNER define YY_FLEX_MAJOR_VERSION 2 define YY_FLEX_MINOR_VERSION 6 define YY_FLEX_SUBMINOR_VERSION 4 if YY_FLEX_SUBMINOR_VERSION > 0 define FLEX_BETA endif inclass.l code: %{ include <stdio.h> int wordCount = 0; %} word a|the %% [\t\n ]+ {printf("I see whitespace\n");} //what to do if see pattern {word} {wordCount++;} %% int main() { yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0; } To compile: lex -o lextest.c lextest.l #default output is lex.yy.c gcc lextest.c -o lextest -ll #-ll not needed if use flex.(Edited: 2021-09-22)
%{ #include <stdio.h> int wordCount = 0; %} word a|the %% [\t\n ]+ {printf("I see whitespace\n");} //what to do if see pattern {word} {wordCount++;} %% int main() { yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0; }(Edited: 2021-09-22)
yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0;}
lextest.l :
yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0;}
yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0;}
#line 2 "lex.yy.c"
#line 4 "lex.yy.c"
#define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */
#define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif
%{ #include <stdio.h> int wordCount = 0; %} word [^a\s\t\n]+|[^the\s\t\n]+ %% [\t\n ]+ {printf("I see whitespace\n");} //what to do if see pattern {word} {wordCount++;} %% int main() { yylex(); //call the lexer. Gets input from command line until ^D printf("word count: %d", wordCount); return 0; }(Edited: 2021-09-22)