Issue2466
Created on 2016-02-16.12:06:43 by pradeeppanayal, last changed 2018-03-03.17:52:56 by jeff.allen.
| Messages | |||
|---|---|---|---|
| msg10744 (view) | Author: pradeeppanayal (pradeeppanayal) | Date: 2016-02-16.12:06:42 | |
Following scripts returns no error/response message on compile or execute using python interceptor.
Test case 1: print "some text -- Failed
Test case 2: print 'some text -- Failed
Test case 3: print 'Some data
#comments / new line / EOF -- Failed
Failed - Terminates without any error or response.
|
|||
| msg10748 (view) | Author: Jim Baker (zyasoft) | Date: 2016-02-16.23:48:50 | |
We should be reporting SyntaxError: EOL while scanning string literal |
|||
| msg11114 (view) | Author: Lakshan (ldias) | Date: 2017-02-23.00:52:54 | |
Just FYI, this also fails (because it does not raise SyntaxError):
exec('def foo():\n return "bar\n')
but this works correctly (because it does raise SyntaxError):
exec('a = "bar\n')
|
|||
| msg11119 (view) | Author: James Mudd (jamesmudd) | Date: 2017-02-23.20:38:33 | |
Could you provide more details on which version of Jython does it fail?
I have just tried this on master and it appears to work almost correctly. Jython returns the correct SyntaxError, with a slightly different message to CPython and the ^ highlighting the position of the error is wrong.
Jython 2.7.1b3 (, Feb 23 2017, 20:19:21)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_121
Type "help", "copyright", "credits" or "license" for more information.
>>> print "some text
File "<stdin>", line 1
print "some text
^
SyntaxError: no viable alternative at input '<EOF>'
>>> print 'some text
File "<stdin>", line 1
print 'some text
^
SyntaxError: no viable alternative at input '<EOF>'
>>> print 'some data
File "<stdin>", line 1
print 'some data
^
SyntaxError: no viable alternative at input '<EOF>'
>>> exec('def foo():\n return "bar\n')
>>> exec('a = "bar\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
a = "bar
^
SyntaxError: no viable alternative at input '='
>>>
The only example which actually failed for me (by which I mean incorrectly suceeded) was "exec('def foo():\n return "bar\n')" where no SyntaxError was raised. I will have a look at that one
|
|||
| msg11120 (view) | Author: pradeeppanayal (pradeeppanayal) | Date: 2017-02-24.05:06:14 | |
I am using 2.7.0 stand alone jar. Maven, <dependency> <groupId>org.python</groupId> <artifactId>jython-standalone</artifactId> <version>2.7.0</version> </dependency> I was using a different version of jython (2.5.3) when I posted that issue. The issue is still exist in 2.7.0 also. Test cases, - print 'test -> Failed (No resp and error) - print "test' -> Failed - print 'test" -> Failed - print 'test"\nprint 'some valid' -> Success (Getting syntax error) - print 'test"\nprint 'some invalid" -> Success (Getting syntax error) Hope this may help you. You people had done a great job by implementing this tool. It's really magical. Thanks & Regards, *Pradeep CH* *+91-7708336299 * On Fri, Feb 24, 2017 at 2:08 AM, James Mudd <report@bugs.jython.org> wrote: > > James Mudd added the comment: > > Could you provide more details on which version of Jython does it fail? > > I have just tried this on master and it appears to work almost correctly. > Jython returns the correct SyntaxError, with a slightly different message > to CPython and the ^ highlighting the position of the error is wrong. > > Jython 2.7.1b3 (, Feb 23 2017, 20:19:21) > [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_121 > Type "help", "copyright", "credits" or "license" for more information. > >>> print "some text > File "<stdin>", line 1 > print "some text > ^ > SyntaxError: no viable alternative at input '<EOF>' > >>> print 'some text > File "<stdin>", line 1 > print 'some text > ^ > SyntaxError: no viable alternative at input '<EOF>' > >>> print 'some data > File "<stdin>", line 1 > print 'some data > ^ > SyntaxError: no viable alternative at input '<EOF>' > >>> exec('def foo():\n return "bar\n') > >>> exec('a = "bar\n') > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "<string>", line 1 > a = "bar > ^ > SyntaxError: no viable alternative at input '=' > >>> > > The only example which actually failed for me (by which I mean incorrectly > suceeded) was "exec('def foo():\n return "bar\n')" where no SyntaxError > was raised. I will have a look at that one > > ---------- > nosy: +jamesmudd > > _______________________________________ > Jython tracker <report@bugs.jython.org> > <http://bugs.jython.org/issue2466> > _______________________________________ > |
|||
| msg11139 (view) | Author: James Mudd (jamesmudd) | Date: 2017-02-27.18:56:16 | |
I have looked at this a bit more and have a few more examples which seem strange
>>> print "some text
File "<stdin>", line 1
print "some text
^
SyntaxError: no viable alternative at input '<EOF>'
>>> exec('print "some text')
>>> exec('print \'some text')
>>>
print "some text - correctly produces a SyntaxError however exec('print "some text') just prints a blank line like exec('print') would. This behaviour is also reproduced with a escaped single quote.
If you call print('some text') then it always seems to work correctly
>>> print("some text
File "<stdin>", line 1
print("some text
^
SyntaxError: no viable alternative at input '<EOF>'
>>> print("some text)
File "<stdin>", line 1
print("some text)
^
SyntaxError: no viable alternative at input '<EOF>'
>>> print("some text")
some text
>>> print('some text
File "<stdin>", line 1
print('some text
^
SyntaxError: no viable alternative at input '<EOF>'
>>> print('some text)
File "<stdin>", line 1
print('some text)
^
SyntaxError: no viable alternative at input '<EOF>'
>>> print('some text')
some text
>>> exec('print('some text')')
File "<stdin>", line 1
exec('print('some text')')
^
SyntaxError: no viable alternative at input 'some'
>>> exec('print(\'some text\')')
some text
>>> exec('print("some text")')
some text
>>>
|
|||
| msg11140 (view) | Author: Lakshan (ldias) | Date: 2017-02-27.19:23:33 | |
Hi James,
I think that correlates with the way I've been testing: using the 2.7.1b3 maven jar and PythonInterpreter::exec() :
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.1b3</version>
</dependency>
PythonInterpreter interp = new PythonInterpreter();
interp.exec("print \"some text"); # << does not raise SyntaxError, and outputs an empty line
|
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2018-03-03 17:52:56 | jeff.allen | set | milestone: Jython 2.7.2 -> |
| 2017-02-27 19:23:34 | ldias | set | messages: + msg11140 |
| 2017-02-27 18:56:16 | jamesmudd | set | messages: + msg11139 |
| 2017-02-24 05:13:36 | pradeeppanayal | set | files: - unnamed |
| 2017-02-24 05:06:14 | pradeeppanayal | set | files:
+ unnamed messages: + msg11120 |
| 2017-02-23 20:38:34 | jamesmudd | set | nosy:
+ jamesmudd messages: + msg11119 |
| 2017-02-23 00:52:54 | ldias | set | nosy:
+ ldias messages: + msg11114 |
| 2016-02-17 16:01:47 | zyasoft | set | milestone: Jython 2.7.1 -> Jython 2.7.2 |
| 2016-02-16 23:48:50 | zyasoft | set | nosy:
+ fwierzbicki, zyasoft resolution: accepted messages: + msg10748 |
| 2016-02-16 12:06:43 | pradeeppanayal | create | |
Supported by Python Software Foundation,
Powered by Roundup