Below, find the token stream that your lexical analyzer should give when it analyzes the input in ~cs331/lextest.dat. Given how you handle error situations, your output could differ slightly. ________________________________________________________________________ PROGRAM BEGIN END VAR FUNCTION PROCEDURE DOUBLEDOT RESULT INTEGER REAL ARRAY OF IF THEN ELSE WHILE DO NOT ADDOP (OR) RELOP (LESSTHAN) RELOP (GREATERTHAN) RELOP (LESSTHANOREQUAL) RELOP (GREATERTHANOREQUAL) RELOP (NOTEQUAL) UNARYPLUS IDENTIFIER (identifier) ADDOP (PLUS) UNARYMINUS RESULT END DOUBLEDOT REALCONSTANT (1.1) IDENTIFIER (e) ENDMARKER REALCONSTANT (1.1) REALCONSTANT (98756E2531) INTCONSTANT (46) ADDOP (PLUS) IDENTIFIER (identifier) ADDOP (PLUS) >> ERROR : no digit after decimal point *or* Constant: 35 and ENDMARKER INTCONSTANT (-34) RIGHTPAREN SEMICOLON MULOP (*) MULOP (/) MULOP (DIV) MULOP (MOD) MULOP (AND) ASSIGNOP COLON COLON RELOP (=) INTCONSTANT (+123) LEFTPAREN LEFTBRACKET RIGHTBRACKET DOUBLEDOT UNARYPLUS INTCONSTANT (-46) IDENTIFIER (aname) IDENTIFIER (anothername) >> ERROR : identifier name too long (probably) CONSTANT (123.456) >> ERROR : no digit before decimal point *or* ENDMARKER and Constant: 123456 IDENTIFIER (en) IDENTIFIER (d) >> ERROR : illegal placement of "}" LEFTBRACKET INTCONSTANT (5) DOUBLEDOT INTCONSTANT (9) RIGHTBRACKET >> ERROR : cannot include "{" within a comment >> ERROR : illegal placement of "}" >> ERROR : constant too long >> ERROR : illegal character in input (!) >> ERROR : illegal character in input (@) >> ERROR : illegal character in input (#) >> ERROR : ill-formed constant *or* Constant: 123, Identifier: E, ENDMARKER INTCONSTANT (4) IDENTIFIER (abc) >> ERROR : illegal character in input ($) *or* illegal string in input (abc$) ENDOFFILE