non_compliant_lexer.py 714 B

12345678910111213141516171819202122232425262728293031
  1. # lexer tests for things that are not implemented, or have non-compliant behaviour
  2. def test(code):
  3. try:
  4. exec(code)
  5. print('no Error')
  6. except SyntaxError:
  7. print('SyntaxError')
  8. except NotImplementedError:
  9. print('NotImplementedError')
  10. # uPy requires spaces between literal numbers and keywords, CPy doesn't
  11. try:
  12. eval('1and 0')
  13. except SyntaxError:
  14. print('SyntaxError')
  15. try:
  16. eval('1or 0')
  17. except SyntaxError:
  18. print('SyntaxError')
  19. try:
  20. eval('1if 1else 0')
  21. except SyntaxError:
  22. print('SyntaxError')
  23. try:
  24. eval('1if 0else 0')
  25. except SyntaxError:
  26. print('SyntaxError')
  27. # unicode name escapes are not implemented
  28. test('"\\N{LATIN SMALL LETTER A}"')