From: <fwi...@us...> - 2009-10-08 02:33:28
|
Revision: 6847 http://jython.svn.sourceforge.net/jython/?rev=6847&view=rev Author: fwierzbicki Date: 2009-10-08 02:33:20 +0000 (Thu, 08 Oct 2009) Log Message: ----------- Coding standards / Cleanup. Modified Paths: -------------- trunk/jython/src/org/python/compiler/Module.java Modified: trunk/jython/src/org/python/compiler/Module.java =================================================================== --- trunk/jython/src/org/python/compiler/Module.java 2009-10-07 19:16:54 UTC (rev 6846) +++ trunk/jython/src/org/python/compiler/Module.java 2009-10-08 02:33:20 UTC (rev 6847) @@ -1,5 +1,4 @@ // Copyright (c) Corporation for National Research Initiatives - package org.python.compiler; import java.io.IOException; @@ -39,6 +38,7 @@ import static org.python.util.CodegenUtils.*; class PyIntegerConstant extends Constant implements ClassConstants, Opcodes { + final int value; PyIntegerConstant(int value) { @@ -64,15 +64,15 @@ @Override public boolean equals(Object o) { if (o instanceof PyIntegerConstant) { - return ((PyIntegerConstant)o).value == value; + return ((PyIntegerConstant) o).value == value; } else { return false; } } } -class PyFloatConstant extends Constant implements ClassConstants, Opcodes -{ +class PyFloatConstant extends Constant implements ClassConstants, Opcodes { + final double value; PyFloatConstant(double value) { @@ -92,21 +92,21 @@ @Override public int hashCode() { - return (int)value; + return (int) value; } @Override public boolean equals(Object o) { if (o instanceof PyFloatConstant) { - return ((PyFloatConstant)o).value == value; + return ((PyFloatConstant) o).value == value; } else { return false; } } } -class PyComplexConstant extends Constant implements ClassConstants, Opcodes -{ +class PyComplexConstant extends Constant implements ClassConstants, Opcodes { + final double value; PyComplexConstant(double value) { @@ -126,21 +126,21 @@ @Override public int hashCode() { - return (int)value; + return (int) value; } @Override public boolean equals(Object o) { if (o instanceof PyComplexConstant) { - return ((PyComplexConstant)o).value == value; + return ((PyComplexConstant) o).value == value; } else { return false; } } } -class PyStringConstant extends Constant implements ClassConstants, Opcodes -{ +class PyStringConstant extends Constant implements ClassConstants, Opcodes { + final String value; PyStringConstant(String value) { @@ -166,15 +166,15 @@ @Override public boolean equals(Object o) { if (o instanceof PyStringConstant) { - return ((PyStringConstant)o).value.equals(value); + return ((PyStringConstant) o).value.equals(value); } else { return false; } } } -class PyUnicodeConstant extends Constant implements ClassConstants, Opcodes -{ +class PyUnicodeConstant extends Constant implements ClassConstants, Opcodes { + final String value; PyUnicodeConstant(String value) { @@ -200,15 +200,15 @@ @Override public boolean equals(Object o) { if (o instanceof PyUnicodeConstant) { - return ((PyUnicodeConstant)o).value.equals(value); + return ((PyUnicodeConstant) o).value.equals(value); } else { return false; } } } -class PyLongConstant extends Constant implements ClassConstants, Opcodes -{ +class PyLongConstant extends Constant implements ClassConstants, Opcodes { + final String value; PyLongConstant(String value) { @@ -234,15 +234,15 @@ @Override public boolean equals(Object o) { if (o instanceof PyLongConstant) { - return ((PyLongConstant)o).value.equals(value); + return ((PyLongConstant) o).value.equals(value); } else { return false; } } } -class PyCodeConstant extends Constant implements ClassConstants, Opcodes -{ +class PyCodeConstant extends Constant implements ClassConstants, Opcodes { + final String co_name; final int argcount; final List<String> names; @@ -250,19 +250,16 @@ final int co_firstlineno; final boolean arglist, keywordlist; final String fname; - // for nested scopes final List<String> cellvars; final List<String> freevars; final int jy_npurecell; - final int moreflags; - PyCodeConstant(mod tree, String name, boolean fast_locals, String - className, boolean classBody, boolean printResults, int - firstlineno, ScopeInfo scope, org.python.core.CompilerFlags cflags, + PyCodeConstant(mod tree, String name, boolean fast_locals, String className, boolean classBody, + boolean printResults, int firstlineno, ScopeInfo scope, CompilerFlags cflags, Module module) - throws Exception { + throws Exception { this.co_name = name; this.co_firstlineno = firstlineno; @@ -275,7 +272,7 @@ arglist = scope.ac.arglist; keywordlist = scope.ac.keywordlist; argcount = scope.ac.names.size(); - + //Do something to add init_code to tree //XXX: not sure we should be modifying scope.ac in a PyCodeConstant //constructor. @@ -292,16 +289,16 @@ //Better names in the future? if (isJavaIdentifier(name)) { - fname = name+"$"+id; + fname = name + "$" + id; } else { - fname = "f$"+id; + fname = "f$" + id; } //XXX: is fname needed at all, or should we just use "name"? this.name = fname; // !classdef only if (!classBody) { - names = toNameAr(scope.names,false); + names = toNameAr(scope.names, false); } else { names = null; } @@ -328,7 +325,7 @@ } //XXX: this can probably go away now that we can probably just copy the list. - private List<String> toNameAr(List<String> names,boolean nullok) { + private List<String> toNameAr(List<String> names, boolean nullok) { int sz = names.size(); if (sz == 0 && nullok) { return null; @@ -347,7 +344,7 @@ return false; } - for(int i=1; i<chars.length; i++) { + for (int i = 1; i < chars.length; i++) { if (!Character.isJavaIdentifierPart(chars[i])) { return false; } @@ -379,7 +376,7 @@ c.iconst(arglist ? 1 : 0); c.iconst(keywordlist ? 1 : 0); - c.getstatic(module.classfile.name, "self", "L"+module.classfile.name+";"); + c.getstatic(module.classfile.name, "self", "L" + module.classfile.name + ";"); c.iconst(id); @@ -387,38 +384,44 @@ int strArray = CodeCompiler.makeStrings(c, cellvars); c.aload(strArray); c.freeLocal(strArray); - } else + } else { c.aconst_null(); + } if (freevars != null) { int strArray = CodeCompiler.makeStrings(c, freevars); c.aload(strArray); c.freeLocal(strArray); - } else + } else { c.aconst_null(); + } c.iconst(jy_npurecell); c.iconst(moreflags); - c.invokestatic(p(Py.class), "newCode", sig(PyCode.class, Integer.TYPE, - String[].class, String.class, String.class, Integer.TYPE, Boolean.TYPE, - Boolean.TYPE, PyFunctionTable.class, Integer.TYPE, String[].class, - String[].class, Integer.TYPE, Integer.TYPE)); + c.invokestatic(p(Py.class), "newCode", sig(PyCode.class, Integer.TYPE, + String[].class, String.class, String.class, Integer.TYPE, Boolean.TYPE, + Boolean.TYPE, PyFunctionTable.class, Integer.TYPE, String[].class, + String[].class, Integer.TYPE, Integer.TYPE)); c.putstatic(module.classfile.name, name, ci(PyCode.class)); } } -public class Module implements Opcodes, ClassConstants, CompilationContext -{ +public class Module implements Opcodes, ClassConstants, CompilationContext { + ClassFile classfile; Constant filename; String sfilename; Constant mainCode; boolean linenumbers; Future futures; - Hashtable<PythonTree,ScopeInfo> scopes; + Hashtable<PythonTree, ScopeInfo> scopes; + List<PyCodeConstant> codes; long mtime; + /** The pool of Python Constants */ + Hashtable<Constant, Constant> constants; + public Module(String name, String filename, boolean linenumbers) { this(name, filename, linenumbers, org.python.core.imp.NO_MTIME); } @@ -427,8 +430,8 @@ this.linenumbers = linenumbers; this.mtime = mtime; classfile = new ClassFile(name, p(PyFunctionTable.class), - ACC_SYNCHRONIZED | ACC_PUBLIC, mtime); - constants = new Hashtable<Constant,Constant>(); + ACC_SYNCHRONIZED | ACC_PUBLIC, mtime); + constants = new Hashtable<Constant, Constant>(); sfilename = filename; if (filename != null) { this.filename = stringConstant(filename); @@ -437,16 +440,13 @@ } codes = new ArrayList<PyCodeConstant>(); futures = new Future(); - scopes = new Hashtable<PythonTree,ScopeInfo>(); + scopes = new Hashtable<PythonTree, ScopeInfo>(); } public Module(String name) { - this(name, name+".py", true, org.python.core.imp.NO_MTIME); + this(name, name + ".py", true, org.python.core.imp.NO_MTIME); } - // This block of code handles the pool of Python Constants - Hashtable<Constant,Constant> constants; - private Constant findConstant(Constant c) { Constant ret = constants.get(c); if (ret != null) { @@ -455,7 +455,7 @@ ret = c; c.module = this; //More sophisticated name mappings might be nice - c.name = "_"+constants.size(); + c.name = "_" + constants.size(); constants.put(ret, ret); return ret; } @@ -484,25 +484,17 @@ return findConstant(new PyLongConstant(value)); } - List<PyCodeConstant> codes; - PyCodeConstant codeConstant(mod tree, String name, - boolean fast_locals, String className, - boolean classBody, boolean printResults, - int firstlineno, ScopeInfo scope) - throws Exception - { - return codeConstant(tree,name,fast_locals,className,classBody, - printResults,firstlineno,scope,null); + PyCodeConstant codeConstant(mod tree, String name, boolean fast_locals, String className, + boolean classBody, boolean printResults, int firstlineno, ScopeInfo scope) + throws Exception { + return codeConstant(tree, name, fast_locals, className, classBody, + printResults, firstlineno, scope, null); } - PyCodeConstant codeConstant(mod tree, String name, - boolean fast_locals, String className, - boolean classBody, boolean printResults, - int firstlineno, - ScopeInfo scope, - org.python.core.CompilerFlags cflags) - throws Exception - { + PyCodeConstant codeConstant(mod tree, String name, boolean fast_locals, String className, + boolean classBody, boolean printResults, int firstlineno, ScopeInfo scope, + CompilerFlags cflags) + throws Exception { PyCodeConstant code = new PyCodeConstant(tree, name, fast_locals, className, classBody, printResults, firstlineno, scope, cflags, this); @@ -511,9 +503,9 @@ CodeCompiler compiler = new CodeCompiler(this, printResults); Code c = classfile.addMethod( - code.fname, - sig(PyObject.class, PyFrame.class, ThreadState.class), - ACC_PUBLIC); + code.fname, + sig(PyObject.class, PyFrame.class, ThreadState.class), + ACC_PUBLIC); if (classBody) { // Set the class's __module__ to __name__. fails when there's no __name__ @@ -524,7 +516,7 @@ c.ldc("__name__"); c.invokevirtual(p(PyFrame.class), "getname", sig(PyObject.class, String.class)); c.invokevirtual(p(PyFrame.class), "setlocal", sig(Void.TYPE, String.class, - PyObject.class)); + PyObject.class)); } Label genswitch = new Label(); @@ -535,16 +527,16 @@ c.label(start); int nparamcell = scope.jy_paramcells.size(); - if(nparamcell > 0) { + if (nparamcell > 0) { Map<String, SymInfo> tbl = scope.tbl; List<String> paramcells = scope.jy_paramcells; - for(int i = 0; i < nparamcell; i++) { + for (int i = 0; i < nparamcell; i++) { c.aload(1); SymInfo syminf = tbl.get(paramcells.get(i)); c.iconst(syminf.locals_index); c.iconst(syminf.env_index); c.invokevirtual(p(PyFrame.class), "to_cell", sig(Void.TYPE, Integer.TYPE, - Integer.TYPE)); + Integer.TYPE)); } } @@ -555,11 +547,11 @@ c.aload(1); c.getfield(p(PyFrame.class), "f_lasti", "I"); - Label[] yields = new Label[compiler.yields.size()+1]; + Label[] yields = new Label[compiler.yields.size() + 1]; yields[0] = start; for (int i = 1; i < yields.length; i++) { - yields[i] = compiler.yields.get(i-1); + yields[i] = compiler.yields.get(i - 1); } c.tableswitch(0, yields.length - 1, start, yields); } @@ -567,7 +559,7 @@ return code; } - //This block of code writes out the various standard methods + /** This block of code writes out the various standard methods */ public void addInit() throws IOException { Code c = classfile.addMethod("<init>", sig(Void.TYPE, String.class), ACC_PUBLIC); c.aload(0); @@ -596,7 +588,7 @@ c.invokestatic(p(Py.class), "runMain", sig(Void.TYPE, CodeBootstrap.class, String[].class)); c.return_(); } - + public void addBootstrap() throws IOException { Code c = classfile.addMethod(CodeLoader.GET_BOOTSTRAP_METHOD_NAME, sig(CodeBootstrap.class), ACC_PUBLIC | ACC_STATIC); @@ -607,17 +599,17 @@ } void addConstants(Code c) throws IOException { - classfile.addField("self", "L"+classfile.name+";", ACC_STATIC|ACC_FINAL); + classfile.addField("self", "L" + classfile.name + ";", ACC_STATIC | ACC_FINAL); c.aload(0); - c.putstatic(classfile.name, "self", "L"+classfile.name+";"); + c.putstatic(classfile.name, "self", "L" + classfile.name + ";"); Enumeration e = constants.elements(); while (e.hasMoreElements()) { - Constant constant = (Constant)e.nextElement(); + Constant constant = (Constant) e.nextElement(); constant.put(c); } - for(int i=0; i<codes.size(); i++) { + for (int i = 0; i < codes.size(); i++) { PyCodeConstant pyc = codes.get(i); pyc.put(c); } @@ -627,7 +619,7 @@ public void addFunctions() throws IOException { Code code = classfile.addMethod("call_function", - sig(PyObject.class, Integer.TYPE, PyFrame.class, ThreadState.class), ACC_PUBLIC); + sig(PyObject.class, Integer.TYPE, PyFrame.class, ThreadState.class), ACC_PUBLIC); code.aload(0); // this code.aload(2); // frame @@ -635,16 +627,17 @@ Label def = new Label(); Label[] labels = new Label[codes.size()]; int i; - for(i=0; i<labels.length; i++) + for (i = 0; i < labels.length; i++) { labels[i] = new Label(); + } //Get index for function to call code.iload(1); code.tableswitch(0, labels.length - 1, def, labels); - for(i=0; i<labels.length; i++) { + for (i = 0; i < labels.length; i++) { code.label(labels[i]); code.invokevirtual(classfile.name, (codes.get(i)).fname, sig(PyObject.class, - PyFrame.class, ThreadState.class)); + PyFrame.class, ThreadState.class)); code.areturn(); } code.label(def); @@ -670,45 +663,44 @@ } // Implementation of CompilationContext - public Future getFutures() { return futures; } + public Future getFutures() { + return futures; + } - public String getFilename() { return sfilename; } + public String getFilename() { + return sfilename; + } public ScopeInfo getScopeInfo(PythonTree node) { return scopes.get(node); } - public void error(String msg,boolean err,PythonTree node) - throws Exception - { + public void error(String msg, boolean err, PythonTree node) + throws Exception { if (!err) { try { Py.warning(Py.SyntaxWarning, msg, (sfilename != null) ? sfilename : "?", - node.getLine() ,null, Py.None); + node.getLine(), null, Py.None); return; - } catch(PyException e) { - if (!e.match(Py.SyntaxWarning)) + } catch (PyException e) { + if (!e.match(Py.SyntaxWarning)) { throw e; + } } } - throw new ParseException(msg,node); + throw new ParseException(msg, node); } - public static void compile(mod node, OutputStream ostream, - String name, String filename, - boolean linenumbers, boolean printResults, - CompilerFlags cflags) - throws Exception - { + + public static void compile(mod node, OutputStream ostream, String name, String filename, + boolean linenumbers, boolean printResults, CompilerFlags cflags) + throws Exception { compile(node, ostream, name, filename, linenumbers, printResults, cflags, org.python.core.imp.NO_MTIME); } - public static void compile(mod node, OutputStream ostream, - String name, String filename, - boolean linenumbers, boolean printResults, - CompilerFlags cflags, long mtime) - throws Exception - { + public static void compile(mod node, OutputStream ostream, String name, String filename, + boolean linenumbers, boolean printResults, CompilerFlags cflags, long mtime) + throws Exception { Module module = new Module(name, filename, linenumbers, mtime); if (cflags == null) { cflags = new CompilerFlags(); @@ -719,9 +711,9 @@ //Add __doc__ if it exists Constant main = module.codeConstant(node, "<module>", false, null, false, - printResults, 0, - module.getScopeInfo(node), - cflags); + printResults, 0, + module.getScopeInfo(node), + cflags); module.mainCode = main; module.write(ostream); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |