tw14174.pp 871 B

123456789101112131415161718192021222324252627282930313233343536
  1. program Test;
  2. type
  3. TToken = (
  4. tkNil,tkEOF,tkNumber,tkOpenBrace,tkCloseBrace,
  5. tkPlus,tkMinus,tkTimes,tkSlash,tkCaret,tkSemiColon
  6. );
  7. function TokenToStr(const Token: TToken): String;
  8. function Quote(const S: String): String;
  9. inline; // comment out to avoid the internal error
  10. begin
  11. Quote:='"'+S+'"';
  12. end;
  13. begin
  14. case Token of
  15. tkNil : TokenToStr:=Quote('Unknown');
  16. tkEOF : TokenToStr:=Quote('EOF');
  17. tkNumber : TokenToStr:=Quote('Number');
  18. tkOpenBrace : TokenToStr:=Quote('(');
  19. tkCloseBrace: TokenToStr:=Quote(')');
  20. tkPlus : TokenToStr:=Quote('+');
  21. tkMinus : TokenToStr:=Quote('-');
  22. tkTimes : TokenToStr:=Quote('*');
  23. tkSlash : TokenToStr:=Quote('/');
  24. tkCaret : TokenToStr:=Quote('^');
  25. tkSemiColon : TokenToStr:=Quote(';');
  26. end;
  27. end;
  28. begin
  29. if (TokenToStr(tkNil)<>'"Unknown"') then
  30. halt(1);
  31. end.