character identifier seems to work. Still working on strings. Updated tests to include more. Task01

This commit is contained in:
Partho Bhattacharya
2025-02-07 18:59:45 -05:00
parent db66b04033
commit 6c3951b6ab
2 changed files with 14 additions and 5 deletions

View File

@ -1,4 +1,3 @@
/* Lexical Analysis with Flex (2.6.0) We used some of the code from this manual */
/* so we placed the citation here. */
/* definitions */
%option noyywrap
@ -7,19 +6,21 @@
%}
DIGIT [0-9]
CHAR \\\\n|\\\\t|\\\'|[^'\\\n\t]
STRINGVAL CHAR | " "
%%
/* rules */
{DIGIT}+ {printf( "C_INTEGER: %s (%d)\n", yytext, atoi( yytext ) );}
"null" {printf( "C_NULL: %s (%d)\n", yytext, atoi( yytext ) );}
\'.\'|\'\\[nt]\' {printf( "C_CHARACTER: %s (%d)\n", yytext, atoi( yytext ) );} /*using double \ per documentation to show escaped chars*/
'{CHAR}' {printf( "C_CHARACTER: %s (%d)\n", yytext, atoi( yytext ) );} /*using double \ per documentation to show escaped chars*/
"true" {printf( "C_TRUE: %s (%d)\n", yytext, atoi( yytext ) );}
"false" {printf( "C_FALSE: %s (%d)\n", yytext, atoi( yytext ) );}
"\""[\^{}}\n]*"\"" {printf( "C_STRING: %s (%d)\n", yytext, atoi( yytext ) );}
"{STRINGVAL}+" {printf( "C_STRING: %s (%d)\n", yytext, atoi( yytext ) );}
.|\n