|
@@ -0,0 +1,36 @@
|
|
|
+program Test;
|
|
|
+
|
|
|
+type
|
|
|
+ TToken = (
|
|
|
+ tkNil,tkEOF,tkNumber,tkOpenBrace,tkCloseBrace,
|
|
|
+ tkPlus,tkMinus,tkTimes,tkSlash,tkCaret,tkSemiColon
|
|
|
+ );
|
|
|
+
|
|
|
+function TokenToStr(const Token: TToken): String;
|
|
|
+
|
|
|
+ function Quote(const S: String): String;
|
|
|
+ inline; // comment out to avoid the internal error
|
|
|
+ begin
|
|
|
+ Quote:='"'+S+'"';
|
|
|
+ end;
|
|
|
+
|
|
|
+begin
|
|
|
+ case Token of
|
|
|
+ tkNil : TokenToStr:=Quote('Unknown');
|
|
|
+ tkEOF : TokenToStr:=Quote('EOF');
|
|
|
+ tkNumber : TokenToStr:=Quote('Number');
|
|
|
+ tkOpenBrace : TokenToStr:=Quote('(');
|
|
|
+ tkCloseBrace: TokenToStr:=Quote(')');
|
|
|
+ tkPlus : TokenToStr:=Quote('+');
|
|
|
+ tkMinus : TokenToStr:=Quote('-');
|
|
|
+ tkTimes : TokenToStr:=Quote('*');
|
|
|
+ tkSlash : TokenToStr:=Quote('/');
|
|
|
+ tkCaret : TokenToStr:=Quote('^');
|
|
|
+ tkSemiColon : TokenToStr:=Quote(';');
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+begin
|
|
|
+ if (TokenToStr(tkNil)<>'"Unknown"') then
|
|
|
+ halt(1);
|
|
|
+end.
|