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)