From: <cg...@us...> - 2008-12-10 08:24:02
|
Revision: 5732 http://jython.svn.sourceforge.net/jython/?rev=5732&view=rev Author: cgroves Date: 2008-12-10 08:23:53 +0000 (Wed, 10 Dec 2008) Log Message: ----------- Merged revisions 5670,5680-5682,5687,5691,5695-5697,5702-5704,5706,5712-5726 via svnmerge from https://jython.svn.sourceforge.net/svnroot/jython/trunk/jython I removed a bunch of unused imports of PyJavaInstance in the ast code and ripped out all the collection updates as they landed separately in PyJavaType. ........ r5670 | nriley | 2008-12-01 10:33:00 -0800 (Mon, 01 Dec 2008) | 1 line PyStringMap should not be hashable, just as PyDictionary isn't. ........ r5680 | otmarhumbel | 2008-12-03 01:30:15 -0800 (Wed, 03 Dec 2008) | 5 lines prevent JYTHON_OPTS from being enriched with arguments (this could lead to an infinite recursion of subprocesses) test_subprocess_jy.py now passes issue #1187 is fixed now ........ r5681 | nriley | 2008-12-03 01:39:46 -0800 (Wed, 03 Dec 2008) | 1 line --print option for start script ........ r5682 | otmarhumbel | 2008-12-03 06:43:11 -0800 (Wed, 03 Dec 2008) | 1 line added tests for issue #1187 ........ r5687 | nriley | 2008-12-03 14:08:15 -0800 (Wed, 03 Dec 2008) | 1 line avoid test_asynchat on Windows too; refs #1064 ........ r5691 | fwierzbicki | 2008-12-03 18:20:28 -0800 (Wed, 03 Dec 2008) | 3 lines Initialized merge tracking via "svnmerge" with revisions "1-5585" from https://jython.svn.sourceforge.net/svnroot/jython/branches/astwrite ........ r5695 | fwierzbicki | 2008-12-04 17:10:49 -0800 (Thu, 04 Dec 2008) | 13 lines Merging the astwrite branch into trunk. While I was testing, I noticed some problems stemming from the package names and the "Type" at the end of some of the asdl_antlr.py generated code -- so I fixed that up as well. This checkin changes all of the access on ast nodes to be getters and setters with Lists instead of arrays. The ast nodes also now descend from PyObject instead of Antlr's CommonTree. There are new adapter classes that handle the back and forth of ast nodes from Java to Python. Merged revisions 5586-5592,5594-5595,5597,5612,5628,5633-5634,5636-5637,5641-5643,5660,5672,5677-5679,5683,5685-5686 via svnmerge from https://jython.svn.sourceforge.net/svnroot/jython/branches/astwrite ........ r5696 | fwierzbicki | 2008-12-04 17:11:47 -0800 (Thu, 04 Dec 2008) | 2 lines Ack missed these new files for the astwrite merge. ........ r5697 | fwierzbicki | 2008-12-04 19:33:30 -0800 (Thu, 04 Dec 2008) | 2 lines Fix missing exposed classes. ........ r5702 | fwierzbicki | 2008-12-05 06:26:10 -0800 (Fri, 05 Dec 2008) | 2 lines Derived classes for org/python/antlr/ast/* ........ r5703 | fwierzbicki | 2008-12-05 08:10:15 -0800 (Fri, 05 Dec 2008) | 2 lines org/python/antlr/op/* Derived classes, and fixed lineno, col_offset from ast_antlr.py ........ r5704 | nriley | 2008-12-05 10:43:33 -0800 (Fri, 05 Dec 2008) | 1 line avoid test_asynchat on Solaris (everywhere but Linux?); refs #1064 ........ r5706 | fwierzbicki | 2008-12-05 18:49:45 -0800 (Fri, 05 Dec 2008) | 3 lines Added better lineno and col_offset support to a couple of ast nodes, also finished slice support in AstList. ........ r5712 | pjenvey | 2008-12-05 22:52:28 -0800 (Fri, 05 Dec 2008) | 4 lines o fix str/unicode add/join to decode when appropriate o fix '%r' % u'' returning unicode o cast fastSequence to a PySequence ........ r5713 | pjenvey | 2008-12-05 22:55:48 -0800 (Fri, 05 Dec 2008) | 1 line correct mismatch between partition/rpartition and their exposed versions ........ r5714 | pjenvey | 2008-12-06 01:02:53 -0800 (Sat, 06 Dec 2008) | 1 line revert the astlist workaround as it subclasses list now ........ r5715 | fwierzbicki | 2008-12-06 07:00:08 -0800 (Sat, 06 Dec 2008) | 5 lines Now able to use the exact copy of CPython's ast.py Copied from: http://svn.python.org/projects/python/branches/release26-maint/Lib/ast.py ........ r5716 | otmarhumbel | 2008-12-06 13:44:53 -0800 (Sat, 06 Dec 2008) | 2 lines fork the biggest javac task this hopefully enables hudson's build ........ r5717 | otmarhumbel | 2008-12-06 14:14:43 -0800 (Sat, 06 Dec 2008) | 1 line javac ignores the optimize option, according to http://ant.apache.org/manual/ ........ r5718 | nriley | 2008-12-06 14:50:19 -0800 (Sat, 06 Dec 2008) | 1 line Java 6 javac on Mac OS X requires more memory to compile Jython ........ r5719 | fwierzbicki | 2008-12-06 20:15:26 -0800 (Sat, 06 Dec 2008) | 2 lines Fixed bugs in mutable ast revealed by running sympy tests. ........ r5720 | nriley | 2008-12-06 22:35:04 -0800 (Sat, 06 Dec 2008) | 1 line Java 6 javac on x64 Linux requires even more memory to compile Jython ........ r5721 | fwierzbicki | 2008-12-07 10:57:27 -0800 (Sun, 07 Dec 2008) | 2 lines A couple more missed adaptations revealed by sympy testing. ........ r5722 | pjenvey | 2008-12-08 11:44:12 -0800 (Mon, 08 Dec 2008) | 2 lines use hex idstrs (without any padding) to more closely resemble CPython ........ r5723 | pjenvey | 2008-12-09 00:45:33 -0800 (Tue, 09 Dec 2008) | 3 lines avoid an NPE when getSQLState is null thanks Matthew Harrison ........ r5724 | pjenvey | 2008-12-09 13:56:51 -0800 (Tue, 09 Dec 2008) | 8 lines o allow overriding of ExceptionHandler's inline finally block o fix the with statement's normal finally/exit block so it also happens for non local gotos (e.g. return, continue) o modify test_with instead of adding test_with_jy to test for this case -- the lack of these tests is really a test bug IMO fixes #1194 pointed out by Terrence Cole ........ r5725 | pjenvey | 2008-12-09 14:25:56 -0800 (Tue, 09 Dec 2008) | 1 line these are no longer used ........ r5726 | pjenvey | 2008-12-09 16:07:22 -0800 (Tue, 09 Dec 2008) | 4 lines match CPython's dir() more closely fixes #1196 pointed out by doublep ........ Modified Paths: -------------- branches/newstyle-java-types/CoreExposed.includes branches/newstyle-java-types/Lib/ast.py branches/newstyle-java-types/Lib/inspect.py branches/newstyle-java-types/Lib/test/test_ast.py branches/newstyle-java-types/Lib/test/test_asynchat.py branches/newstyle-java-types/Lib/test/test_builtin_jy.py branches/newstyle-java-types/Lib/test/test_stringmap.py branches/newstyle-java-types/Lib/test/test_subprocess_jy.py branches/newstyle-java-types/Lib/test/test_unicode_jy.py branches/newstyle-java-types/Lib/test/test_with.py branches/newstyle-java-types/ast/Python.asdl branches/newstyle-java-types/ast/asdl_antlr.py branches/newstyle-java-types/build.xml branches/newstyle-java-types/grammar/Python.g branches/newstyle-java-types/src/com/ziclix/python/sql/zxJDBC.java branches/newstyle-java-types/src/org/python/antlr/AST.java branches/newstyle-java-types/src/org/python/antlr/ErrorHandler.java branches/newstyle-java-types/src/org/python/antlr/ExpressionParser.java branches/newstyle-java-types/src/org/python/antlr/FailFastHandler.java branches/newstyle-java-types/src/org/python/antlr/GrammarActions.java branches/newstyle-java-types/src/org/python/antlr/InteractiveParser.java branches/newstyle-java-types/src/org/python/antlr/ListErrorHandler.java branches/newstyle-java-types/src/org/python/antlr/ModuleParser.java branches/newstyle-java-types/src/org/python/antlr/PythonTree.java branches/newstyle-java-types/src/org/python/antlr/ast/Assert.java branches/newstyle-java-types/src/org/python/antlr/ast/Assign.java branches/newstyle-java-types/src/org/python/antlr/ast/Attribute.java branches/newstyle-java-types/src/org/python/antlr/ast/AugAssign.java branches/newstyle-java-types/src/org/python/antlr/ast/BinOp.java branches/newstyle-java-types/src/org/python/antlr/ast/BoolOp.java branches/newstyle-java-types/src/org/python/antlr/ast/Break.java branches/newstyle-java-types/src/org/python/antlr/ast/Call.java branches/newstyle-java-types/src/org/python/antlr/ast/ClassDef.java branches/newstyle-java-types/src/org/python/antlr/ast/Compare.java branches/newstyle-java-types/src/org/python/antlr/ast/Continue.java branches/newstyle-java-types/src/org/python/antlr/ast/Delete.java branches/newstyle-java-types/src/org/python/antlr/ast/Dict.java branches/newstyle-java-types/src/org/python/antlr/ast/Ellipsis.java branches/newstyle-java-types/src/org/python/antlr/ast/ErrorExpr.java branches/newstyle-java-types/src/org/python/antlr/ast/ErrorMod.java branches/newstyle-java-types/src/org/python/antlr/ast/ErrorSlice.java branches/newstyle-java-types/src/org/python/antlr/ast/ErrorStmt.java branches/newstyle-java-types/src/org/python/antlr/ast/Exec.java branches/newstyle-java-types/src/org/python/antlr/ast/Expr.java branches/newstyle-java-types/src/org/python/antlr/ast/Expression.java branches/newstyle-java-types/src/org/python/antlr/ast/ExtSlice.java branches/newstyle-java-types/src/org/python/antlr/ast/For.java branches/newstyle-java-types/src/org/python/antlr/ast/FunctionDef.java branches/newstyle-java-types/src/org/python/antlr/ast/GeneratorExp.java branches/newstyle-java-types/src/org/python/antlr/ast/Global.java branches/newstyle-java-types/src/org/python/antlr/ast/If.java branches/newstyle-java-types/src/org/python/antlr/ast/IfExp.java branches/newstyle-java-types/src/org/python/antlr/ast/Import.java branches/newstyle-java-types/src/org/python/antlr/ast/ImportFrom.java branches/newstyle-java-types/src/org/python/antlr/ast/Index.java branches/newstyle-java-types/src/org/python/antlr/ast/Interactive.java branches/newstyle-java-types/src/org/python/antlr/ast/Lambda.java branches/newstyle-java-types/src/org/python/antlr/ast/List.java branches/newstyle-java-types/src/org/python/antlr/ast/ListComp.java branches/newstyle-java-types/src/org/python/antlr/ast/Module.java branches/newstyle-java-types/src/org/python/antlr/ast/Name.java branches/newstyle-java-types/src/org/python/antlr/ast/Num.java branches/newstyle-java-types/src/org/python/antlr/ast/Pass.java branches/newstyle-java-types/src/org/python/antlr/ast/Print.java branches/newstyle-java-types/src/org/python/antlr/ast/Raise.java branches/newstyle-java-types/src/org/python/antlr/ast/Repr.java branches/newstyle-java-types/src/org/python/antlr/ast/Return.java branches/newstyle-java-types/src/org/python/antlr/ast/Slice.java branches/newstyle-java-types/src/org/python/antlr/ast/Str.java branches/newstyle-java-types/src/org/python/antlr/ast/Subscript.java branches/newstyle-java-types/src/org/python/antlr/ast/Suite.java branches/newstyle-java-types/src/org/python/antlr/ast/TryExcept.java branches/newstyle-java-types/src/org/python/antlr/ast/TryFinally.java branches/newstyle-java-types/src/org/python/antlr/ast/Tuple.java branches/newstyle-java-types/src/org/python/antlr/ast/UnaryOp.java branches/newstyle-java-types/src/org/python/antlr/ast/VisitorBase.java branches/newstyle-java-types/src/org/python/antlr/ast/VisitorIF.java branches/newstyle-java-types/src/org/python/antlr/ast/While.java branches/newstyle-java-types/src/org/python/antlr/ast/With.java branches/newstyle-java-types/src/org/python/antlr/ast/Yield.java branches/newstyle-java-types/src/org/python/antlr/ast/boolopType.java branches/newstyle-java-types/src/org/python/antlr/ast/cmpopType.java branches/newstyle-java-types/src/org/python/antlr/ast/expr_contextType.java branches/newstyle-java-types/src/org/python/antlr/ast/operatorType.java branches/newstyle-java-types/src/org/python/antlr/ast/unaryopType.java branches/newstyle-java-types/src/org/python/compiler/ArgListCompiler.java branches/newstyle-java-types/src/org/python/compiler/CodeCompiler.java branches/newstyle-java-types/src/org/python/compiler/Future.java branches/newstyle-java-types/src/org/python/compiler/Module.java branches/newstyle-java-types/src/org/python/compiler/ProxyMaker.java branches/newstyle-java-types/src/org/python/compiler/ScopeInfo.java branches/newstyle-java-types/src/org/python/compiler/ScopesCompiler.java branches/newstyle-java-types/src/org/python/core/AbstractArray.java branches/newstyle-java-types/src/org/python/core/IdImpl.java branches/newstyle-java-types/src/org/python/core/ParserFacade.java branches/newstyle-java-types/src/org/python/core/Py.java branches/newstyle-java-types/src/org/python/core/PyClass.java branches/newstyle-java-types/src/org/python/core/PyInstance.java branches/newstyle-java-types/src/org/python/core/PyList.java branches/newstyle-java-types/src/org/python/core/PyObject.java branches/newstyle-java-types/src/org/python/core/PySequence.java branches/newstyle-java-types/src/org/python/core/PyString.java branches/newstyle-java-types/src/org/python/core/PyStringMap.java branches/newstyle-java-types/src/org/python/core/PyType.java branches/newstyle-java-types/src/org/python/core/PyUnicode.java branches/newstyle-java-types/src/org/python/core/__builtin__.java branches/newstyle-java-types/src/org/python/core/imp.java branches/newstyle-java-types/src/org/python/modules/Setup.java branches/newstyle-java-types/src/shell/jython branches/newstyle-java-types/src/shell/jython.bat branches/newstyle-java-types/src/templates/mappings Added Paths: ----------- branches/newstyle-java-types/src/org/python/antlr/adapter/ branches/newstyle-java-types/src/org/python/antlr/adapter/AliasAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/AstAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/AstAdapters.java branches/newstyle-java-types/src/org/python/antlr/adapter/CmpopAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/ComprehensionAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/ExcepthandlerAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/ExprAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/IdentifierAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/KeywordAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/SliceAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/StmtAdapter.java branches/newstyle-java-types/src/org/python/antlr/ast/AssertDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/AssignDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/AstModule.java branches/newstyle-java-types/src/org/python/antlr/ast/AttributeDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/AugAssignDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/BinOpDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/BoolOpDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/BreakDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/CallDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ClassDefDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/CompareDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ContinueDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/DeleteDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/DictDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/EllipsisDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ExceptHandler.java branches/newstyle-java-types/src/org/python/antlr/ast/ExceptHandlerDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ExecDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ExprDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ExpressionDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ExtSliceDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ForDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/FunctionDefDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/GeneratorExpDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/GlobalDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/IfDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/IfExpDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ImportDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ImportFromDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/IndexDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/InteractiveDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/LambdaDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ListCompDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ListDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ModuleDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/NameDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/NumDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/PassDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/PrintDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/RaiseDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ReprDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/ReturnDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/SliceDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/StrDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/SubscriptDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/SuiteDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/TryExceptDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/TryFinallyDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/TupleDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/UnaryOpDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/WhileDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/WithDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/YieldDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/alias.java branches/newstyle-java-types/src/org/python/antlr/ast/aliasDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/arguments.java branches/newstyle-java-types/src/org/python/antlr/ast/argumentsDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/comprehension.java branches/newstyle-java-types/src/org/python/antlr/ast/comprehensionDerived.java branches/newstyle-java-types/src/org/python/antlr/ast/keyword.java branches/newstyle-java-types/src/org/python/antlr/ast/keywordDerived.java branches/newstyle-java-types/src/org/python/antlr/base/ branches/newstyle-java-types/src/org/python/antlr/base/excepthandler.java branches/newstyle-java-types/src/org/python/antlr/base/expr.java branches/newstyle-java-types/src/org/python/antlr/base/mod.java branches/newstyle-java-types/src/org/python/antlr/base/slice.java branches/newstyle-java-types/src/org/python/antlr/base/stmt.java branches/newstyle-java-types/src/org/python/antlr/op/ branches/newstyle-java-types/src/org/python/antlr/op/Add.java branches/newstyle-java-types/src/org/python/antlr/op/AddDerived.java branches/newstyle-java-types/src/org/python/antlr/op/And.java branches/newstyle-java-types/src/org/python/antlr/op/AndDerived.java branches/newstyle-java-types/src/org/python/antlr/op/AugLoad.java branches/newstyle-java-types/src/org/python/antlr/op/AugLoadDerived.java branches/newstyle-java-types/src/org/python/antlr/op/AugStore.java branches/newstyle-java-types/src/org/python/antlr/op/AugStoreDerived.java branches/newstyle-java-types/src/org/python/antlr/op/BitAnd.java branches/newstyle-java-types/src/org/python/antlr/op/BitAndDerived.java branches/newstyle-java-types/src/org/python/antlr/op/BitOr.java branches/newstyle-java-types/src/org/python/antlr/op/BitOrDerived.java branches/newstyle-java-types/src/org/python/antlr/op/BitXor.java branches/newstyle-java-types/src/org/python/antlr/op/BitXorDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Del.java branches/newstyle-java-types/src/org/python/antlr/op/DelDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Div.java branches/newstyle-java-types/src/org/python/antlr/op/DivDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Eq.java branches/newstyle-java-types/src/org/python/antlr/op/EqDerived.java branches/newstyle-java-types/src/org/python/antlr/op/FloorDiv.java branches/newstyle-java-types/src/org/python/antlr/op/FloorDivDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Gt.java branches/newstyle-java-types/src/org/python/antlr/op/GtDerived.java branches/newstyle-java-types/src/org/python/antlr/op/GtE.java branches/newstyle-java-types/src/org/python/antlr/op/GtEDerived.java branches/newstyle-java-types/src/org/python/antlr/op/In.java branches/newstyle-java-types/src/org/python/antlr/op/InDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Invert.java branches/newstyle-java-types/src/org/python/antlr/op/InvertDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Is.java branches/newstyle-java-types/src/org/python/antlr/op/IsDerived.java branches/newstyle-java-types/src/org/python/antlr/op/IsNot.java branches/newstyle-java-types/src/org/python/antlr/op/IsNotDerived.java branches/newstyle-java-types/src/org/python/antlr/op/LShift.java branches/newstyle-java-types/src/org/python/antlr/op/LShiftDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Load.java branches/newstyle-java-types/src/org/python/antlr/op/LoadDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Lt.java branches/newstyle-java-types/src/org/python/antlr/op/LtDerived.java branches/newstyle-java-types/src/org/python/antlr/op/LtE.java branches/newstyle-java-types/src/org/python/antlr/op/LtEDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Mod.java branches/newstyle-java-types/src/org/python/antlr/op/ModDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Mult.java branches/newstyle-java-types/src/org/python/antlr/op/MultDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Not.java branches/newstyle-java-types/src/org/python/antlr/op/NotDerived.java branches/newstyle-java-types/src/org/python/antlr/op/NotEq.java branches/newstyle-java-types/src/org/python/antlr/op/NotEqDerived.java branches/newstyle-java-types/src/org/python/antlr/op/NotIn.java branches/newstyle-java-types/src/org/python/antlr/op/NotInDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Or.java branches/newstyle-java-types/src/org/python/antlr/op/OrDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Param.java branches/newstyle-java-types/src/org/python/antlr/op/ParamDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Pow.java branches/newstyle-java-types/src/org/python/antlr/op/PowDerived.java branches/newstyle-java-types/src/org/python/antlr/op/RShift.java branches/newstyle-java-types/src/org/python/antlr/op/RShiftDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Store.java branches/newstyle-java-types/src/org/python/antlr/op/StoreDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Sub.java branches/newstyle-java-types/src/org/python/antlr/op/SubDerived.java branches/newstyle-java-types/src/org/python/antlr/op/UAdd.java branches/newstyle-java-types/src/org/python/antlr/op/UAddDerived.java branches/newstyle-java-types/src/org/python/antlr/op/USub.java branches/newstyle-java-types/src/org/python/antlr/op/USubDerived.java branches/newstyle-java-types/src/org/python/core/AstList.java branches/newstyle-java-types/src/templates/ast_Assert.derived branches/newstyle-java-types/src/templates/ast_Assign.derived branches/newstyle-java-types/src/templates/ast_Attribute.derived branches/newstyle-java-types/src/templates/ast_AugAssign.derived branches/newstyle-java-types/src/templates/ast_BinOp.derived branches/newstyle-java-types/src/templates/ast_BoolOp.derived branches/newstyle-java-types/src/templates/ast_Break.derived branches/newstyle-java-types/src/templates/ast_Call.derived branches/newstyle-java-types/src/templates/ast_ClassDef.derived branches/newstyle-java-types/src/templates/ast_Compare.derived branches/newstyle-java-types/src/templates/ast_Continue.derived branches/newstyle-java-types/src/templates/ast_Delete.derived branches/newstyle-java-types/src/templates/ast_Dict.derived branches/newstyle-java-types/src/templates/ast_Ellipsis.derived branches/newstyle-java-types/src/templates/ast_ExceptHandler.derived branches/newstyle-java-types/src/templates/ast_Exec.derived branches/newstyle-java-types/src/templates/ast_Expr.derived branches/newstyle-java-types/src/templates/ast_Expression.derived branches/newstyle-java-types/src/templates/ast_ExtSlice.derived branches/newstyle-java-types/src/templates/ast_For.derived branches/newstyle-java-types/src/templates/ast_FunctionDef.derived branches/newstyle-java-types/src/templates/ast_GeneratorExp.derived branches/newstyle-java-types/src/templates/ast_Global.derived branches/newstyle-java-types/src/templates/ast_If.derived branches/newstyle-java-types/src/templates/ast_IfExp.derived branches/newstyle-java-types/src/templates/ast_Import.derived branches/newstyle-java-types/src/templates/ast_ImportFrom.derived branches/newstyle-java-types/src/templates/ast_Index.derived branches/newstyle-java-types/src/templates/ast_Interactive.derived branches/newstyle-java-types/src/templates/ast_Lambda.derived branches/newstyle-java-types/src/templates/ast_List.derived branches/newstyle-java-types/src/templates/ast_ListComp.derived branches/newstyle-java-types/src/templates/ast_Module.derived branches/newstyle-java-types/src/templates/ast_Name.derived branches/newstyle-java-types/src/templates/ast_Num.derived branches/newstyle-java-types/src/templates/ast_Pass.derived branches/newstyle-java-types/src/templates/ast_Print.derived branches/newstyle-java-types/src/templates/ast_Raise.derived branches/newstyle-java-types/src/templates/ast_Repr.derived branches/newstyle-java-types/src/templates/ast_Return.derived branches/newstyle-java-types/src/templates/ast_Slice.derived branches/newstyle-java-types/src/templates/ast_Str.derived branches/newstyle-java-types/src/templates/ast_Subscript.derived branches/newstyle-java-types/src/templates/ast_Suite.derived branches/newstyle-java-types/src/templates/ast_TryExcept.derived branches/newstyle-java-types/src/templates/ast_TryFinally.derived branches/newstyle-java-types/src/templates/ast_Tuple.derived branches/newstyle-java-types/src/templates/ast_UnaryOp.derived branches/newstyle-java-types/src/templates/ast_While.derived branches/newstyle-java-types/src/templates/ast_With.derived branches/newstyle-java-types/src/templates/ast_Yield.derived branches/newstyle-java-types/src/templates/ast_alias.derived branches/newstyle-java-types/src/templates/ast_arguments.derived branches/newstyle-java-types/src/templates/ast_comprehension.derived branches/newstyle-java-types/src/templates/ast_keyword.derived branches/newstyle-java-types/src/templates/op_Add.derived branches/newstyle-java-types/src/templates/op_And.derived branches/newstyle-java-types/src/templates/op_AugLoad.derived branches/newstyle-java-types/src/templates/op_AugStore.derived branches/newstyle-java-types/src/templates/op_BitAnd.derived branches/newstyle-java-types/src/templates/op_BitOr.derived branches/newstyle-java-types/src/templates/op_BitXor.derived branches/newstyle-java-types/src/templates/op_Del.derived branches/newstyle-java-types/src/templates/op_Div.derived branches/newstyle-java-types/src/templates/op_Eq.derived branches/newstyle-java-types/src/templates/op_FloorDiv.derived branches/newstyle-java-types/src/templates/op_Gt.derived branches/newstyle-java-types/src/templates/op_GtE.derived branches/newstyle-java-types/src/templates/op_In.derived branches/newstyle-java-types/src/templates/op_Invert.derived branches/newstyle-java-types/src/templates/op_Is.derived branches/newstyle-java-types/src/templates/op_IsNot.derived branches/newstyle-java-types/src/templates/op_LShift.derived branches/newstyle-java-types/src/templates/op_Load.derived branches/newstyle-java-types/src/templates/op_Lt.derived branches/newstyle-java-types/src/templates/op_LtE.derived branches/newstyle-java-types/src/templates/op_Mod.derived branches/newstyle-java-types/src/templates/op_Mult.derived branches/newstyle-java-types/src/templates/op_Not.derived branches/newstyle-java-types/src/templates/op_NotEq.derived branches/newstyle-java-types/src/templates/op_NotIn.derived branches/newstyle-java-types/src/templates/op_Or.derived branches/newstyle-java-types/src/templates/op_Param.derived branches/newstyle-java-types/src/templates/op_Pow.derived branches/newstyle-java-types/src/templates/op_RShift.derived branches/newstyle-java-types/src/templates/op_Store.derived branches/newstyle-java-types/src/templates/op_Sub.derived branches/newstyle-java-types/src/templates/op_UAdd.derived branches/newstyle-java-types/src/templates/op_USub.derived Removed Paths: ------------- branches/newstyle-java-types/Lib/_ast.py branches/newstyle-java-types/src/org/python/antlr/adapter/AliasAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/AstAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/AstAdapters.java branches/newstyle-java-types/src/org/python/antlr/adapter/CmpopAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/ComprehensionAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/ExcepthandlerAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/ExprAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/IdentifierAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/KeywordAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/SliceAdapter.java branches/newstyle-java-types/src/org/python/antlr/adapter/StmtAdapter.java branches/newstyle-java-types/src/org/python/antlr/ast/aliasType.java branches/newstyle-java-types/src/org/python/antlr/ast/argumentsType.java branches/newstyle-java-types/src/org/python/antlr/ast/comprehensionType.java branches/newstyle-java-types/src/org/python/antlr/ast/excepthandlerType.java branches/newstyle-java-types/src/org/python/antlr/ast/exprType.java branches/newstyle-java-types/src/org/python/antlr/ast/keywordType.java branches/newstyle-java-types/src/org/python/antlr/ast/modType.java branches/newstyle-java-types/src/org/python/antlr/ast/sliceType.java branches/newstyle-java-types/src/org/python/antlr/ast/stmtType.java branches/newstyle-java-types/src/org/python/antlr/base/excepthandler.java branches/newstyle-java-types/src/org/python/antlr/base/expr.java branches/newstyle-java-types/src/org/python/antlr/base/mod.java branches/newstyle-java-types/src/org/python/antlr/base/slice.java branches/newstyle-java-types/src/org/python/antlr/base/stmt.java branches/newstyle-java-types/src/org/python/antlr/op/Add.java branches/newstyle-java-types/src/org/python/antlr/op/AddDerived.java branches/newstyle-java-types/src/org/python/antlr/op/And.java branches/newstyle-java-types/src/org/python/antlr/op/AndDerived.java branches/newstyle-java-types/src/org/python/antlr/op/AugLoad.java branches/newstyle-java-types/src/org/python/antlr/op/AugLoadDerived.java branches/newstyle-java-types/src/org/python/antlr/op/AugStore.java branches/newstyle-java-types/src/org/python/antlr/op/AugStoreDerived.java branches/newstyle-java-types/src/org/python/antlr/op/BitAnd.java branches/newstyle-java-types/src/org/python/antlr/op/BitAndDerived.java branches/newstyle-java-types/src/org/python/antlr/op/BitOr.java branches/newstyle-java-types/src/org/python/antlr/op/BitOrDerived.java branches/newstyle-java-types/src/org/python/antlr/op/BitXor.java branches/newstyle-java-types/src/org/python/antlr/op/BitXorDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Del.java branches/newstyle-java-types/src/org/python/antlr/op/DelDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Div.java branches/newstyle-java-types/src/org/python/antlr/op/DivDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Eq.java branches/newstyle-java-types/src/org/python/antlr/op/EqDerived.java branches/newstyle-java-types/src/org/python/antlr/op/FloorDiv.java branches/newstyle-java-types/src/org/python/antlr/op/FloorDivDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Gt.java branches/newstyle-java-types/src/org/python/antlr/op/GtDerived.java branches/newstyle-java-types/src/org/python/antlr/op/GtE.java branches/newstyle-java-types/src/org/python/antlr/op/GtEDerived.java branches/newstyle-java-types/src/org/python/antlr/op/In.java branches/newstyle-java-types/src/org/python/antlr/op/InDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Invert.java branches/newstyle-java-types/src/org/python/antlr/op/InvertDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Is.java branches/newstyle-java-types/src/org/python/antlr/op/IsDerived.java branches/newstyle-java-types/src/org/python/antlr/op/IsNot.java branches/newstyle-java-types/src/org/python/antlr/op/IsNotDerived.java branches/newstyle-java-types/src/org/python/antlr/op/LShift.java branches/newstyle-java-types/src/org/python/antlr/op/LShiftDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Load.java branches/newstyle-java-types/src/org/python/antlr/op/LoadDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Lt.java branches/newstyle-java-types/src/org/python/antlr/op/LtDerived.java branches/newstyle-java-types/src/org/python/antlr/op/LtE.java branches/newstyle-java-types/src/org/python/antlr/op/LtEDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Mod.java branches/newstyle-java-types/src/org/python/antlr/op/ModDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Mult.java branches/newstyle-java-types/src/org/python/antlr/op/MultDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Not.java branches/newstyle-java-types/src/org/python/antlr/op/NotDerived.java branches/newstyle-java-types/src/org/python/antlr/op/NotEq.java branches/newstyle-java-types/src/org/python/antlr/op/NotEqDerived.java branches/newstyle-java-types/src/org/python/antlr/op/NotIn.java branches/newstyle-java-types/src/org/python/antlr/op/NotInDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Or.java branches/newstyle-java-types/src/org/python/antlr/op/OrDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Param.java branches/newstyle-java-types/src/org/python/antlr/op/ParamDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Pow.java branches/newstyle-java-types/src/org/python/antlr/op/PowDerived.java branches/newstyle-java-types/src/org/python/antlr/op/RShift.java branches/newstyle-java-types/src/org/python/antlr/op/RShiftDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Store.java branches/newstyle-java-types/src/org/python/antlr/op/StoreDerived.java branches/newstyle-java-types/src/org/python/antlr/op/Sub.java branches/newstyle-java-types/src/org/python/antlr/op/SubDerived.java branches/newstyle-java-types/src/org/python/antlr/op/UAdd.java branches/newstyle-java-types/src/org/python/antlr/op/UAddDerived.java branches/newstyle-java-types/src/org/python/antlr/op/USub.java branches/newstyle-java-types/src/org/python/antlr/op/USubDerived.java Property Changed: ---------------- branches/newstyle-java-types/ branches/newstyle-java-types/ast/ branches/newstyle-java-types/src/org/python/antlr/ branches/newstyle-java-types/src/org/python/antlr/ast/ branches/newstyle-java-types/src/org/python/compiler/ Property changes on: branches/newstyle-java-types ___________________________________________________________________ Modified: svnmerge-integrated - /branches/nowalker:1-5263 /trunk/jython:1-5664 + /branches/nowalker:1-5263 /trunk/jython:1-5729 /branches/astwrite:1-5692 Modified: svn:mergeinfo - /trunk/jython:5565-5661 + /trunk/jython:5565-5661,5670-5726 Modified: branches/newstyle-java-types/CoreExposed.includes =================================================================== --- branches/newstyle-java-types/CoreExposed.includes 2008-12-10 08:10:31 UTC (rev 5731) +++ branches/newstyle-java-types/CoreExposed.includes 2008-12-10 08:23:53 UTC (rev 5732) @@ -1,3 +1,4 @@ +org/python/core/AstList.class org/python/core/PyArray.class org/python/core/PyBaseString.class org/python/core/PyBaseException.class @@ -55,3 +56,98 @@ org/python/modules/zipimport/zipimporter.class org/python/modules/PyStruct.class org/python/modules/PyTeeIterator.class +org/python/antlr/AST.class +org/python/antlr/ast/alias.class +org/python/antlr/ast/arguments.class +org/python/antlr/ast/Assert.class +org/python/antlr/ast/Assign.class +org/python/antlr/ast/Attribute.class +org/python/antlr/ast/AugAssign.class +org/python/antlr/ast/BinOp.class +org/python/antlr/ast/BoolOp.class +org/python/antlr/ast/Break.class +org/python/antlr/ast/Call.class +org/python/antlr/ast/ClassDef.class +org/python/antlr/ast/Compare.class +org/python/antlr/ast/comprehension.class +org/python/antlr/ast/Continue.class +org/python/antlr/ast/Delete.class +org/python/antlr/ast/Dict.class +org/python/antlr/ast/Ellipsis.class +org/python/antlr/ast/ExceptHandler.class +org/python/antlr/ast/Exec.class +org/python/antlr/ast/Expr.class +org/python/antlr/ast/Expression.class +org/python/antlr/ast/ExtSlice.class +org/python/antlr/ast/For.class +org/python/antlr/ast/FunctionDef.class +org/python/antlr/ast/GeneratorExp.class +org/python/antlr/ast/Global.class +org/python/antlr/ast/If.class +org/python/antlr/ast/IfExp.class +org/python/antlr/ast/Import.class +org/python/antlr/ast/ImportFrom.class +org/python/antlr/ast/Index.class +org/python/antlr/ast/Interactive.class +org/python/antlr/ast/keyword.class +org/python/antlr/ast/Lambda.class +org/python/antlr/ast/List.class +org/python/antlr/ast/ListComp.class +org/python/antlr/ast/Module.class +org/python/antlr/ast/Name.class +org/python/antlr/ast/Num.class +org/python/antlr/ast/Pass.class +org/python/antlr/ast/Print.class +org/python/antlr/ast/Raise.class +org/python/antlr/ast/Repr.class +org/python/antlr/ast/Return.class +org/python/antlr/ast/Slice.class +org/python/antlr/ast/Str.class +org/python/antlr/ast/Subscript.class +org/python/antlr/ast/Suite.class +org/python/antlr/ast/TryExcept.class +org/python/antlr/ast/TryFinally.class +org/python/antlr/ast/Tuple.class +org/python/antlr/ast/UnaryOp.class +org/python/antlr/ast/While.class +org/python/antlr/ast/With.class +org/python/antlr/ast/Yield.class +org/python/antlr/base/excepthandler.class +org/python/antlr/base/expr.class +org/python/antlr/base/mod.class +org/python/antlr/base/slice.class +org/python/antlr/base/stmt.class +org/python/antlr/op/Add.class +org/python/antlr/op/And.class +org/python/antlr/op/AugLoad.class +org/python/antlr/op/AugStore.class +org/python/antlr/op/BitAnd.class +org/python/antlr/op/BitOr.class +org/python/antlr/op/BitXor.class +org/python/antlr/op/Del.class +org/python/antlr/op/Div.class +org/python/antlr/op/Eq.class +org/python/antlr/op/FloorDiv.class +org/python/antlr/op/Gt.class +org/python/antlr/op/GtE.class +org/python/antlr/op/In.class +org/python/antlr/op/Invert.class +org/python/antlr/op/Is.class +org/python/antlr/op/IsNot.class +org/python/antlr/op/Load.class +org/python/antlr/op/LShift.class +org/python/antlr/op/Lt.class +org/python/antlr/op/LtE.class +org/python/antlr/op/Mod.class +org/python/antlr/op/Mult.class +org/python/antlr/op/Not.class +org/python/antlr/op/NotEq.class +org/python/antlr/op/NotIn.class +org/python/antlr/op/Or.class +org/python/antlr/op/Param.class +org/python/antlr/op/Pow.class +org/python/antlr/op/RShift.class +org/python/antlr/op/Store.class +org/python/antlr/op/Sub.class +org/python/antlr/op/UAdd.class +org/python/antlr/op/USub.class Deleted: branches/newstyle-java-types/Lib/_ast.py =================================================================== --- branches/newstyle-java-types/Lib/_ast.py 2008-12-10 08:10:31 UTC (rev 5731) +++ branches/newstyle-java-types/Lib/_ast.py 2008-12-10 08:23:53 UTC (rev 5732) @@ -1,79 +0,0 @@ -from org.python.antlr.ast.boolopType import And,Or -from org.python.antlr.ast.operatorType import Add,Sub,Mult,Div,FloorDiv,Mod,LShift,RShift,BitOr,BitAnd,BitXor,Pow -from org.python.antlr.ast.cmpopType import Eq,Gt,GtE,In,Is,IsNot,Lt,LtE,NotEq,NotIn -from org.python.antlr.ast.unaryopType import Invert,Not,UAdd,USub -from org.python.core.PyTableCode import PyCF_ONLY_AST -from org.python.antlr.ast.expr_contextType import Load, Store, Del, AugLoad, AugStore, Param - -from org.python.antlr import AST - -from org.python.antlr.ast import Assert -from org.python.antlr.ast import Assign -from org.python.antlr.ast import Attribute -from org.python.antlr.ast import AugAssign -from org.python.antlr.ast import BinOp -from org.python.antlr.ast import BoolOp -from org.python.antlr.ast import Break -from org.python.antlr.ast import Call -from org.python.antlr.ast import ClassDef -from org.python.antlr.ast import Compare -from org.python.antlr.ast import Continue -from org.python.antlr.ast import Delete -from org.python.antlr.ast import Dict -from org.python.antlr.ast import Ellipsis -from org.python.antlr.ast import Exec -from org.python.antlr.ast import Expr -from org.python.antlr.ast import Expression -from org.python.antlr.ast import ExtSlice -from org.python.antlr.ast import For -from org.python.antlr.ast import FunctionDef -from org.python.antlr.ast import GeneratorExp -from org.python.antlr.ast import Global -from org.python.antlr.ast import If -from org.python.antlr.ast import IfExp -from org.python.antlr.ast import Import -from org.python.antlr.ast import ImportFrom -from org.python.antlr.ast import Index -from org.python.antlr.ast import Interactive -from org.python.antlr.ast import Lambda -from org.python.antlr.ast import List -from org.python.antlr.ast import ListComp -from org.python.antlr.ast import Module -from org.python.antlr.ast import Name -from org.python.antlr.ast import Num -from org.python.antlr.ast import Pass -from org.python.antlr.ast import Print -from org.python.antlr.ast import Raise -from org.python.antlr.ast import Repr -from org.python.antlr.ast import Return -from org.python.antlr.ast import Slice -from org.python.antlr.ast import Str -from org.python.antlr.ast import Subscript -from org.python.antlr.ast import Suite -from org.python.antlr.ast import TryExcept -from org.python.antlr.ast import TryFinally -from org.python.antlr.ast import Tuple -from org.python.antlr.ast import UnaryOp -#from org.python.antlr.ast import Unicode -from org.python.antlr.ast import While -from org.python.antlr.ast import With -from org.python.antlr.ast import Yield - -import org.python.antlr.ast.aliasType as alias -import org.python.antlr.ast.argumentsType as arguments -import org.python.antlr.ast.boolopType as boolop -import org.python.antlr.ast.cmpopType as cmpop -import org.python.antlr.ast.comprehensionType as comprehension -import org.python.antlr.ast.excepthandlerType as excepthandler -import org.python.antlr.ast.exprType as expr -import org.python.antlr.ast.expr_contextType as expr_context -import org.python.antlr.ast.keywordType as keyword -import org.python.antlr.ast.modType as mod -import org.python.antlr.ast.operatorType as operator -import org.python.antlr.ast.sliceType as slice -import org.python.antlr.ast.stmtType as stmt -import org.python.antlr.ast.unaryopType as unaryop - -#Set to the same value as the CPython version we are targetting. -#note that this number comes from the revision number in CPython's repository. -__version__ = 43614 Modified: branches/newstyle-java-types/Lib/ast.py =================================================================== --- branches/newstyle-java-types/Lib/ast.py 2008-12-10 08:10:31 UTC (rev 5731) +++ branches/newstyle-java-types/Lib/ast.py 2008-12-10 08:23:53 UTC (rev 5732) @@ -25,35 +25,10 @@ :copyright: Copyright 2008 by Armin Ronacher. :license: Python License. """ -import sys from _ast import * from _ast import __version__ -if sys.platform.startswith('java'): - import array - ast_list = array.ArrayType - - def get_class_name(t): - result = t.__class__.__name__ - if result in ("expr_contextType", - "boolopType", - "unaryopType", - "cmpopType", - "operatorType"): - result = str(t) - if result == "AugLoad": - result = "Load" - elif result == "AugStore": - result = "Store" - elif result.endswith("Type"): - result = result[:-4] - return result -else: - ast_list = list - get_class_name = lambda node: node.__class__.__name__ - - def parse(expr, filename='<unknown>', mode='exec'): """ Parse an expression into an AST node. @@ -105,7 +80,7 @@ def _format(node): if isinstance(node, AST): fields = [(a, _format(b)) for a, b in iter_fields(node)] - rv = '%s(%s' % (get_class_name(node), ', '.join( + rv = '%s(%s' % (node.__class__.__name__, ', '.join( ('%s=%s' % field for field in fields) if annotate_fields else (b for a, b in fields) @@ -115,11 +90,11 @@ rv += ', '.join('%s=%s' % (a, _format(getattr(node, a))) for a in node._attributes) return rv + ')' - elif isinstance(node, ast_list): + elif isinstance(node, list): return '[%s]' % ', '.join(_format(x) for x in node) return repr(node) if not isinstance(node, AST): - raise TypeError('expected AST, got %r' % get_class_name(node)) + raise TypeError('expected AST, got %r' % node.__class__.__name__) return _format(node) @@ -193,7 +168,7 @@ for name, field in iter_fields(node): if isinstance(field, AST): yield field - elif isinstance(field, ast_list): + elif isinstance(field, list): for item in field: if isinstance(item, AST): yield item @@ -206,7 +181,7 @@ will be raised. """ if not isinstance(node, (FunctionDef, ClassDef, Module)): - raise TypeError("%r can't have docstrings" % get_class_name(node)) + raise TypeError("%r can't have docstrings" % node.__class__.__name__) if node.body and isinstance(node.body[0], Expr) and \ isinstance(node.body[0].value, Str): if clean: @@ -251,14 +226,14 @@ def visit(self, node): """Visit a node.""" - method = 'visit_' + get_class_name(node) + method = 'visit_' + node.__class__.__name__ visitor = getattr(self, method, self.generic_visit) return visitor(node) def generic_visit(self, node): """Called if no explicit visitor function exists for a node.""" for field, value in iter_fields(node): - if isinstance(value, ast_list): + if isinstance(value, list): for item in value: if isinstance(item, AST): self.visit(item) @@ -305,7 +280,7 @@ def generic_visit(self, node): for field, old_value in iter_fields(node): old_value = getattr(node, field, None) - if isinstance(old_value, ast_list): + if isinstance(old_value, list): new_values = [] for value in old_value: if isinstance(value, AST): Modified: branches/newstyle-java-types/Lib/inspect.py =================================================================== --- branches/newstyle-java-types/Lib/inspect.py 2008-12-10 08:10:31 UTC (rev 5731) +++ branches/newstyle-java-types/Lib/inspect.py 2008-12-10 08:23:53 UTC (rev 5732) @@ -315,6 +315,13 @@ return None if not isinstance(doc, types.StringTypes): return None + return cleandoc(doc) + +def cleandoc(doc): + """Clean up indentation from docstrings. + + Any whitespace that can be uniformly removed from the second line + onwards is removed.""" try: lines = string.split(string.expandtabs(doc), '\n') except UnicodeError: Modified: branches/newstyle-java-types/Lib/test/test_ast.py =================================================================== --- branches/newstyle-java-types/Lib/test/test_ast.py 2008-12-10 08:10:31 UTC (rev 5731) +++ branches/newstyle-java-types/Lib/test/test_ast.py 2008-12-10 08:23:53 UTC (rev 5732) @@ -1,36 +1,22 @@ -#Taken and modified from CPython's release25-maint branch, revision 62446. -import sys,os, itertools +import sys, itertools, unittest +from test import test_support import ast -def get_class_name(t): - result = t.__class__.__name__ - if os.name.startswith('java'): - if result in ("expr_contextType", - "boolopType", - "unaryopType", - "cmpopType", - "operatorType"): - result = t.name() - else: - result = result.split(".")[-1] - if result.endswith("Type"): - result = result[:-4] - return result - def to_tuple(t): if t is None or isinstance(t, (basestring, int, long, complex)): return t - elif hasattr(t, '__iter__'): + elif isinstance(t, list): return [to_tuple(e) for e in t] - result = [get_class_name(t)] + result = [t.__class__.__name__] if hasattr(t, 'lineno') and hasattr(t, 'col_offset'): result.append((t.lineno, t.col_offset)) - if not hasattr(t, '_fields') or t._fields is None: + if t._fields is None: return tuple(result) for f in t._fields: result.append(to_tuple(getattr(t, f))) return tuple(result) + # These tests are compiled through "exec" # There should be atleast one test per statement exec_tests = [ @@ -134,49 +120,192 @@ # TODO: expr_context, slice, boolop, operator, unaryop, cmpop, comprehension # excepthandler, arguments, keywords, alias -if __name__=='__main__' and sys.argv[1:] == ['-g']: - for statements, kind in ((exec_tests, "exec"), (single_tests, "single"), - (eval_tests, "eval")): - print kind+"_results = [" - for s in statements: - print repr(to_tuple(compile(s, "?", kind, 0x400)))+"," - print "]" - print "run_tests()" - raise SystemExit +class AST_Tests(unittest.TestCase): -def test_order(ast_node, parent_pos): - - if (not isinstance(ast_node, ast.AST) - or not hasattr(ast_node, '_fields') - or ast_node._fields == None): + def _assert_order(self, ast_node, parent_pos): + if not isinstance(ast_node, ast.AST) or ast_node._fields is None: return - if isinstance(ast_node, (ast.expr, ast.stmt, ast.excepthandler)): - node_pos = (ast_node.lineno, ast_node.col_offset) - assert node_pos >= parent_pos, (node_pos, parent_pos) - parent_pos = (ast_node.lineno, ast_node.col_offset) - for name in ast_node._fields: - value = getattr(ast_node, name) - if hasattr(value, '__iter__'): - for child in value: - test_order(child, parent_pos) - elif value != None: - test_order(value, parent_pos) + if isinstance(ast_node, (ast.expr, ast.stmt, ast.excepthandler)): + node_pos = (ast_node.lineno, ast_node.col_offset) + self.assert_(node_pos >= parent_pos) + parent_pos = (ast_node.lineno, ast_node.col_offset) + for name in ast_node._fields: + value = getattr(ast_node, name) + if isinstance(value, list): + for child in value: + self._assert_order(child, parent_pos) + elif value is not None: + self._assert_order(value, parent_pos) -def run_tests(): - for input, output, kind in ((exec_tests, exec_results, "exec"), - (single_tests, single_results, "single"), - (eval_tests, eval_results, "eval")): - for i, o in itertools.izip(input, output): - ast_tree = compile(i, "?", kind, 0x400) - assert to_tuple(ast_tree) == o, "expected %s, got %s" % ( - o, to_tuple(ast_tree)) - test_order(ast_tree, (0, 0)) + def test_snippets(self): + for input, output, kind in ((exec_tests, exec_results, "exec"), + (single_tests, single_results, "single"), + (eval_tests, eval_results, "eval")): + for i, o in itertools.izip(input, output): + ast_tree = compile(i, "?", kind, ast.PyCF_ONLY_AST) + self.assertEquals(to_tuple(ast_tree), o) + self._assert_order(ast_tree, (0, 0)) -# XXX: AugStore added for Jython. Short term it is too hard to emit just "Store" as CPython does. + def test_nodeclasses(self): + x = ast.BinOp(1, 2, 3, lineno=0) + self.assertEquals(x.left.n, 1) + self.assertEquals(int(x.op), 2) + self.assertEquals(x.right.n, 3) + self.assertEquals(x.lineno, 0) + + # node raises exception when not given enough arguments + self.assertRaises(TypeError, ast.BinOp, 1, 2) + + # can set attributes through kwargs too + x = ast.BinOp(left=1, op=2, right=3, lineno=0) + self.assertEquals(x.left.n, 1) + self.assertEquals(int(x.op), 2) + self.assertEquals(x.right.n, 3) + self.assertEquals(x.lineno, 0) + + # this used to fail because Sub._fields was None + x = ast.Sub() + + def test_pickling(self): + import pickle + mods = [pickle] + try: + import cPickle + mods.append(cPickle) + except ImportError: + pass + protocols = [0, 1, 2] + for mod in mods: + for protocol in protocols: + for ast in (compile(i, "?", "exec", 0x400) for i in exec_tests): + ast2 = mod.loads(mod.dumps(ast, protocol)) + self.assertEquals(to_tuple(ast2), to_tuple(ast)) + + +class ASTHelpers_Test(unittest.TestCase): + + def test_parse(self): + a = ast.parse('foo(1 + 1)') + b = compile('foo(1 + 1)', '<unknown>', 'exec', ast.PyCF_ONLY_AST) + self.assertEqual(ast.dump(a), ast.dump(b)) + + def test_dump(self): + node = ast.parse('spam(eggs, "and cheese")') + self.assertEqual(ast.dump(node), + "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), " + "args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], " + "keywords=[], starargs=None, kwargs=None))])" + ) + self.assertEqual(ast.dump(node, annotate_fields=False), + "Module([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), " + "Str('and cheese')], [], None, None))])" + ) + self.assertEqual(ast.dump(node, include_attributes=True), + "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), " + "lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), " + "lineno=1, col_offset=5), Str(s='and cheese', lineno=1, " + "col_offset=11)], keywords=[], starargs=None, kwargs=None, " + "lineno=1, col_offset=0), lineno=1, col_offset=0)])" + ) + + def test_copy_location(self): + src = ast.parse('1 + 1', mode='eval') + src.body.right = ast.copy_location(ast.Num(2), src.body.right) + self.assertEqual(ast.dump(src, include_attributes=True), + 'Expression(body=BinOp(left=Num(n=1, lineno=1, col_offset=0), ' + 'op=Add(), right=Num(n=2, lineno=1, col_offset=4), lineno=1, ' + 'col_offset=0))' + ) + + def test_fix_missing_locations(self): + src = ast.parse('write("spam")') + src.body.append(ast.Expr(ast.Call(ast.Name('spam', ast.Load()), + [ast.Str('eggs')], [], None, None))) + self.assertEqual(src, ast.fix_missing_locations(src)) + self.assertEqual(ast.dump(src, include_attributes=True), + "Module(body=[Expr(value=Call(func=Name(id='write', ctx=Load(), " + "lineno=1, col_offset=0), args=[Str(s='spam', lineno=1, " + "col_offset=6)], keywords=[], starargs=None, kwargs=None, " + "lineno=1, col_offset=0), lineno=1, col_offset=0), " + "Expr(value=Call(func=Name(id='spam', ctx=Load(), lineno=1, " + "col_offset=0), args=[Str(s='eggs', lineno=1, col_offset=0)], " + "keywords=[], starargs=None, kwargs=None, lineno=1, " + "col_offset=0), lineno=1, col_offset=0)])" + ) + + def test_increment_lineno(self): + src = ast.parse('1 + 1', mode='eval') + self.assertEqual(ast.increment_lineno(src, n=3), src) + self.assertEqual(ast.dump(src, include_attributes=True), + 'Expression(body=BinOp(left=Num(n=1, lineno=4, col_offset=0), ' + 'op=Add(), right=Num(n=1, lineno=4, col_offset=4), lineno=4, ' + 'col_offset=0))' + ) + + def test_iter_fields(self): + node = ast.parse('foo()', mode='eval') + d = dict(ast.iter_fields(node.body)) + self.assertEqual(d.pop('func').id, 'foo') + + #XXX: tests for equality between astlist and regular lists not + # working, breaking this test up into its components. + #self.assertEqual(d, {'keywords': [], 'kwargs': None, + # 'args': [], 'starargs': None}) + assert len(d) == 4 + assert d['keywords'] is not None + assert len(d['keywords']) == 0 + assert d['args'] is not None + assert len(d['args']) == 0 + assert d['kwargs'] is None + assert d['starargs'] is None + + def test_iter_child_nodes(self): + node = ast.parse("spam(23, 42, eggs='leek')", mode='eval') + self.assertEqual(len(list(ast.iter_child_nodes(node.body))), 4) + iterator = ast.iter_child_nodes(node.body) + self.assertEqual(iterator.next().id, 'spam') + self.assertEqual(iterator.next().n, 23) + self.assertEqual(iterator.next().n, 42) + self.assertEqual(ast.dump(iterator.next()), + "keyword(arg='eggs', value=Str(s='leek'))" + ) + + def test_get_docstring(self): + node = ast.parse('def foo():\n """line one\n line two"""') + self.assertEqual(ast.get_docstring(node.body[0]), + 'line one\nline two') + + def test_literal_eval(self): + self.assertEqual(ast.literal_eval(... [truncated message content] |