Question: Using C#, implement a console application of the source code of a lexical analyzer (front.c) on page 166 in the textbook. Your console application should

Using C#, implement a console application of the source code of a lexical analyzer (front.c) on page 166 in the textbook. Your console application should receive an input (for example sum + 56/total) and give the similar output like on page 171.

Page 166:

Using C#, implement a console application of the source code of a

lexical analyzer (front.c) on page 166 in the textbook. Your console application

should receive an input (for example sum + 56/total) and give the

similar output like on page 171. Page 166: Output on page 171:

/* front.c-a lexical analyzer system for simple arithmetic expressions #include #include /*Global

Output on page 171:

declarations / /*Variables int charClass; char lexeme [100] char nextChar; int lexLen;

/* front.c-a lexical analyzer system for simple arithmetic expressions #include #include /*Global declarations / /*Variables int charClass; char lexeme [100] char nextChar; int lexLen; int token; int nextToken; FILE *in_fp, *fopen ); Function declarations/ void addChar ) void getChar void getNonBlank () int lex ) /*Character classes #de fine LETTER 0 #de fine DIGIT 1 #de fine UNKNOWN 99 /*Token codes #de fine INT LIT 10 #de fine IDENT 11 #de fine ASSIGN OP 20 #de fine ADD OP 21 #de fine SUB OP 22 #de fine MULT OP 23 #define DIV OP 24 #define LEFT PAREN 25 #define RIGHT PAREN 26 /*Parse identifiers / case LETTER: addChar ); getChar) while (charClassLETTER II charClassDIGIT) addChar ); getChar ); nextTokenIDENT break; /Parse integer literals case DIGIT: addChar); getChar) while (charClassDIGIT) addChar ); getChar ); nextTokenINT_LIT; break; /Parentheses and operators */ case UNKNOWN: lookup (nextChar); getChar) break; EOF case EOF: nextToken = EOF; lexeme [0]'E lexeme 'O lexeme [2] 'E lexeme [ 3 ] -0 ; break; /End of switch / printf ("Next token is: %d, Next Iexeme is %s ", nextToken, lexeme); return nextToken; End of function lex / This code illustrates the relative simplicity of lexical analyzers. Of course, we have left out input buffering, as well as some other important details. Further- more, we have dealt with a very small and simple input language Consider the following expression (sum 47) / total Following is the output of the lexical analyzer of front.c when used on this expression: Next token is: 25 Next lexeme is( Next token is: 11 Next lexeme is sum Next token is: 21 Next lexeme is Next token is: 10 Next lexeme is 47 Next token is: 26 Next lexeme is Next token is: 24 Next lexeme is / Next token is: 11 Next lexeme is total Next token is: -1 Next lexeme is EOF

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!