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

View File

@ -1,16 +1,24 @@
"this is a string" 721398 'g' '/n'
12893 "this is not a string
"
'''
'\'
false
'''
nullfalse
"nulltrue
null
'7'
true
'189
'/n'
'/t'
'\t'
'"'
'/'
'\n'
'\''
'\t'
'\\'
'\'
'''