From: <fwi...@us...> - 2008-08-04 02:36:48
|
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. |