From: Xavier N. <fx...@is...> - 2004-02-04 17:27:12
|
Is there a way to parse from Jython a string with Jython code to know whether it is well-formed or not, and to know in case of failure a line number and error message? -- fxn |
From: Alan K. <jyt...@xh...> - 2004-02-05 13:08:58
|
[Xavier Noria] > Is there a way to parse from Jython a string with Jython code to know > whether it is well-formed or not, and to know in case of failure a line > number and error message? >>> goodcode = "def fn():\n\tprint 'a'\n\tprint 'b'\n" >>> code_object = compile(goodcode, 'somestring', 'exec') >>> exec code_object >>> fn() a b >>> badcode = "def fn():\n print 'a'\n\tprint 'b'\n" >>> code_object = compile(badcode, 'somestring', 'exec') Traceback (innermost last): File "<console>", line 1, in ? File "somestring", line 3 print 'b' ^ SyntaxError: invalid syntax >>> try: ... code_object = compile(badcode, '<>', 'exec') ... except SyntaxError, se: ... print se.msg ... print "File %s, line %d" % (se.filename, se.lineno) ... print "Offending text: '%s'" % se.text ... invalid syntax File <>, line 3 Offending text: ' print 'b'' >>> HTH, Alan. |