Revision: 5075
http://jython.svn.sourceforge.net/jython/?rev=5075&view=rev
Author: fwierzbicki
Date: 2008-08-04 02:36:46 +0000 (Mon, 04 Aug 2008)
Log Message:
-----------
Some checks for assignment to None.
Modified Paths:
--------------
branches/asm/grammar/PythonWalker.g
Modified: branches/asm/grammar/PythonWalker.g
===================================================================
--- branches/asm/grammar/PythonWalker.g 2008-08-04 01:15:48 UTC (rev 5074)
+++ branches/asm/grammar/PythonWalker.g 2008-08-04 02:36:46 UTC (rev 5075)
@@ -286,6 +286,12 @@
}
return new UnaryOp(t, unaryopType.USub, o);
}
+
+ private void checkAssign(exprType e) {
+ if (e instanceof Name && ((Name)e).id.equals("None")) {
+ throw new ParseException("assignment to None", e);
+ }
+ }
}
@rulecatch {
@@ -336,6 +342,7 @@
defparameter[List params, List defaults]
: fpdef[expr_contextType.Param, null] (ASSIGN test[expr_contextType.Load])? {
+ checkAssign($fpdef.etype);
params.add($fpdef.etype);
if ($ASSIGN != null) {
defaults.add($test.etype);
@@ -494,6 +501,7 @@
target[List etypes]
: ^(Target atom[expr_contextType.Store]) {
+ checkAssign($atom.etype);
etypes.add($atom.etype);
}
;
@@ -1343,6 +1351,7 @@
keyword[List kws]
: ^(Keyword ^(Arg arg=test[expr_contextType.Load]) ^(Value val=test[expr_contextType.Load])) {
+ checkAssign($arg.etype);
kws.add(new keywordType($Keyword, $arg.text, $val.etype));
}
;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|