YylexTest.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package org.json.simple.parser;
  2. import java.io.IOException;
  3. import java.io.StringReader;
  4. import junit.framework.TestCase;
  5. public class YylexTest extends TestCase {
  6. public void testYylex() throws Exception{
  7. String s="\"\\/\"";
  8. System.out.println(s);
  9. StringReader in = new StringReader(s);
  10. Yylex lexer=new Yylex(in);
  11. Yytoken token=lexer.yylex();
  12. assertEquals(Yytoken.TYPE_VALUE,token.type);
  13. assertEquals("/",token.value);
  14. s="\"abc\\/\\r\\b\\n\\t\\f\\\\\"";
  15. System.out.println(s);
  16. in = new StringReader(s);
  17. lexer=new Yylex(in);
  18. token=lexer.yylex();
  19. assertEquals(Yytoken.TYPE_VALUE,token.type);
  20. assertEquals("abc/\r\b\n\t\f\\",token.value);
  21. s="[\t \n\r\n{ \t \t\n\r}";
  22. System.out.println(s);
  23. in = new StringReader(s);
  24. lexer=new Yylex(in);
  25. token=lexer.yylex();
  26. assertEquals(Yytoken.TYPE_LEFT_SQUARE,token.type);
  27. token=lexer.yylex();
  28. assertEquals(Yytoken.TYPE_LEFT_BRACE,token.type);
  29. token=lexer.yylex();
  30. assertEquals(Yytoken.TYPE_RIGHT_BRACE,token.type);
  31. s="\b\f{";
  32. System.out.println(s);
  33. in = new StringReader(s);
  34. lexer=new Yylex(in);
  35. ParseException err=null;
  36. try{
  37. token=lexer.yylex();
  38. }
  39. catch(ParseException e){
  40. err=e;
  41. System.out.println("error:"+err);
  42. assertEquals(ParseException.ERROR_UNEXPECTED_CHAR, e.getErrorType());
  43. assertEquals(0,e.getPosition());
  44. assertEquals(new Character('\b'),e.getUnexpectedObject());
  45. }
  46. catch(IOException ie){
  47. throw ie;
  48. }
  49. assertTrue(err!=null);
  50. s="{a : b}";
  51. System.out.println(s);
  52. in = new StringReader(s);
  53. lexer=new Yylex(in);
  54. err=null;
  55. try{
  56. lexer.yylex();
  57. token=lexer.yylex();
  58. }
  59. catch(ParseException e){
  60. err=e;
  61. System.out.println("error:"+err);
  62. assertEquals(ParseException.ERROR_UNEXPECTED_CHAR, e.getErrorType());
  63. assertEquals(new Character('a'),e.getUnexpectedObject());
  64. assertEquals(1,e.getPosition());
  65. }
  66. catch(IOException ie){
  67. throw ie;
  68. }
  69. assertTrue(err!=null);
  70. }
  71. }