[Jython-checkins] jython: Support for indexer code now part of code generation.

frank.wierzbicki jython-checkins at python.org
Fri May 16 00:18:54 CEST 2014


http://hg.python.org/jython/rev/507fbaad0fcc
changeset:   7249:507fbaad0fcc
user:        Frank Wierzbicki <fwierzbicki at gmail.com>
date:        Thu May 15 22:17:18 2014 +0000
summary:
  Support for indexer code now part of code generation.

files:
  ast/asdl_antlr.py                         |   4 +-
  grammar/Python.g                          |   4 +-
  src/org/python/antlr/ast/Attribute.java   |  45 +++---
  src/org/python/antlr/ast/ClassDef.java    |  65 ++++----
  src/org/python/antlr/ast/FunctionDef.java |  53 +++---
  src/org/python/antlr/ast/Global.java      |  22 +-
  src/org/python/antlr/ast/ImportFrom.java  |  54 ++++--
  src/org/python/antlr/ast/Name.java        |   3 +-
  src/org/python/antlr/ast/alias.java       |  47 +++---
  src/org/python/antlr/ast/arguments.java   |  78 +++++-----
  10 files changed, 197 insertions(+), 178 deletions(-)


diff --git a/ast/asdl_antlr.py b/ast/asdl_antlr.py
--- a/ast/asdl_antlr.py
+++ b/ast/asdl_antlr.py
@@ -846,8 +846,8 @@
     // XXX: vararg and kwarg are deliberately moved to the end of the
     // method signature to avoid clashes with the (Token, List<expr>,
     // String, String, List<expr>) version of the constructor.
-    public arguments(Token token, java.util.List<expr> args,
-            java.util.List<expr> defaults, Name vararg, Name kwarg) {
+    public arguments(Token token, java.util.List<expr> args, Name vararg, Name kwarg,
+            java.util.List<expr> defaults) {
         super(token);
         this.args = args;
         if (args == null) {
diff --git a/grammar/Python.g b/grammar/Python.g
--- a/grammar/Python.g
+++ b/grammar/Python.g
@@ -511,7 +511,7 @@
         }
       |
         {
-            $args = new arguments($parameters.start, new ArrayList<expr>(), null, null, new ArrayList<expr>());
+            $args = new arguments($parameters.start, new ArrayList<expr>(), (Name)null, null, new ArrayList<expr>());
         }
       )
       RPAREN
@@ -1851,7 +1851,7 @@
       {
           arguments a = $varargslist.args;
           if (a == null) {
-              a = new arguments($LAMBDA, new ArrayList<expr>(), null, null, new ArrayList<expr>());
+              a = new arguments($LAMBDA, new ArrayList<expr>(), (Name)null, null, new ArrayList<expr>());
           }
           etype = new Lambda($LAMBDA, a, actions.castExpr($test.tree));
       }
diff --git a/src/org/python/antlr/ast/Attribute.java b/src/org/python/antlr/ast/Attribute.java
--- a/src/org/python/antlr/ast/Attribute.java
+++ b/src/org/python/antlr/ast/Attribute.java
@@ -45,10 +45,6 @@
     public String getInternalAttr() {
         return attr;
     }
-    private Name attrName;
-    public Name getInternalAttrName() {
-        return attrName;
-    }
     @ExposedGet(name = "attr")
     public PyObject getAttr() {
         if (attr == null) return Py.None;
@@ -123,24 +119,6 @@
         this.ctx = ctx;
     }
 
-    public Attribute(Token token, expr value, Name attr, expr_contextType ctx) {
-        super(token);
-        this.value = value;
-        addChild(value);
-        this.attr = attr.getText();
-        this.attrName = attr;
-        this.ctx = ctx;
-    }
-
-    public Attribute(Integer ttype, Token token, expr value, Name attr, expr_contextType ctx) {
-        super(ttype, token);
-        this.value = value;
-        addChild(value);
-        this.attr = attr.getText();
-        this.attrName = attr;
-        this.ctx = ctx;
-    }
-
     public Attribute(Integer ttype, Token token, expr value, String attr, expr_contextType ctx) {
         super(ttype, token);
         this.value = value;
@@ -218,4 +196,27 @@
         col_offset = num;
     }
 
+    // Support for indexer below
+
+    private Name attrName;
+    public Name getInternalAttrName() {
+        return attrName;
+    }
+    public Attribute(Token token, expr value, Name attr, expr_contextType ctx) {
+        super(token);
+        this.value = value;
+        addChild(value);
+        this.attr = attr.getText();
+        this.attrName = attr;
+        this.ctx = ctx;
+    }
+
+    public Attribute(Integer ttype, Token token, expr value, Name attr, expr_contextType ctx) {
+        super(ttype, token);
+        this.value = value;
+        addChild(value);
+        this.attr = attr.getText();
+        this.attrName = attr;
+        this.ctx = ctx;
+    }
 }
diff --git a/src/org/python/antlr/ast/ClassDef.java b/src/org/python/antlr/ast/ClassDef.java
--- a/src/org/python/antlr/ast/ClassDef.java
+++ b/src/org/python/antlr/ast/ClassDef.java
@@ -32,10 +32,6 @@
     public String getInternalName() {
         return name;
     }
-    private Name nameNode;
-    public Name getInternalNameNode() {
-        return nameNode;
-    }
     @ExposedGet(name = "name")
     public PyObject getName() {
         if (name == null) return Py.None;
@@ -158,34 +154,6 @@
         }
     }
 
-    public ClassDef(Token token, Name name, java.util.List<expr> bases, java.util.List<stmt>
-    body, java.util.List<expr> decorator_list) {
-        super(token);
-        this.name = name.getText();
-        this.nameNode = name;
-        this.bases = bases;
-        if (bases == null) {
-            this.bases = new ArrayList<expr>();
-        }
-        for(PythonTree t : this.bases) {
-            addChild(t);
-        }
-        this.body = body;
-        if (body == null) {
-            this.body = new ArrayList<stmt>();
-        }
-        for(PythonTree t : this.body) {
-            addChild(t);
-        }
-        this.decorator_list = decorator_list;
-        if (decorator_list == null) {
-            this.decorator_list = new ArrayList<expr>();
-        }
-        for(PythonTree t : this.decorator_list) {
-            addChild(t);
-        }
-    }
-
     public ClassDef(Integer ttype, Token token, String name, java.util.List<expr> bases,
     java.util.List<stmt> body, java.util.List<expr> decorator_list) {
         super(ttype, token);
@@ -316,4 +284,37 @@
         col_offset = num;
     }
 
+    // Support for indexer below
+
+    private Name nameNode;
+    public Name getInternalNameNode() {
+        return nameNode;
+    }
+    public ClassDef(Token token, Name name, java.util.List<expr> bases, java.util.List<stmt>
+    body, java.util.List<expr> decorator_list) {
+        super(token);
+        this.name = name.getText();
+        this.nameNode = name;
+        this.bases = bases;
+        if (bases == null) {
+            this.bases = new ArrayList<expr>();
+        }
+        for(PythonTree t : this.bases) {
+            addChild(t);
+        }
+        this.body = body;
+        if (body == null) {
+            this.body = new ArrayList<stmt>();
+        }
+        for(PythonTree t : this.body) {
+            addChild(t);
+        }
+        this.decorator_list = decorator_list;
+        if (decorator_list == null) {
+            this.decorator_list = new ArrayList<expr>();
+        }
+        for(PythonTree t : this.decorator_list) {
+            addChild(t);
+        }
+    }
 }
diff --git a/src/org/python/antlr/ast/FunctionDef.java b/src/org/python/antlr/ast/FunctionDef.java
--- a/src/org/python/antlr/ast/FunctionDef.java
+++ b/src/org/python/antlr/ast/FunctionDef.java
@@ -32,10 +32,6 @@
     public String getInternalName() {
         return name;
     }
-    private Name nameNode;
-    public Name getInternalNameNode() {
-        return nameNode;
-    }
     @ExposedGet(name = "name")
     public PyObject getName() {
         if (name == null) return Py.None;
@@ -152,28 +148,6 @@
         }
     }
 
-    public FunctionDef(Token token, Name name, arguments args, java.util.List<stmt> body,
-            java.util.List<expr> decorator_list) {
-        super(token);
-        this.name = name.getText();
-        this.nameNode = name;
-        this.args = args;
-        this.body = body;
-        if (body == null) {
-            this.body = new ArrayList<stmt>();
-        }
-        for(PythonTree t : this.body) {
-            addChild(t);
-        }
-        this.decorator_list = decorator_list;
-        if (decorator_list == null) {
-            this.decorator_list = new ArrayList<expr>();
-        }
-        for(PythonTree t : this.decorator_list) {
-            addChild(t);
-        }
-    }
-
     public FunctionDef(Integer ttype, Token token, String name, arguments args,
     java.util.List<stmt> body, java.util.List<expr> decorator_list) {
         super(ttype, token);
@@ -288,4 +262,31 @@
         col_offset = num;
     }
 
+    // Support for indexer below
+
+    private Name nameNode;
+    public Name getInternalNameNode() {
+        return nameNode;
+    }
+    public FunctionDef(Token token, Name name, arguments args, java.util.List<stmt> body,
+            java.util.List<expr> decorator_list) {
+        super(token);
+        this.name = name.getText();
+        this.nameNode = name;
+        this.args = args;
+        this.body = body;
+        if (body == null) {
+            this.body = new ArrayList<stmt>();
+        }
+        for(PythonTree t : this.body) {
+            addChild(t);
+        }
+        this.decorator_list = decorator_list;
+        if (decorator_list == null) {
+            this.decorator_list = new ArrayList<expr>();
+        }
+        for(PythonTree t : this.decorator_list) {
+            addChild(t);
+        }
+    }
 }
diff --git a/src/org/python/antlr/ast/Global.java b/src/org/python/antlr/ast/Global.java
--- a/src/org/python/antlr/ast/Global.java
+++ b/src/org/python/antlr/ast/Global.java
@@ -40,10 +40,7 @@
     public void setNames(PyObject names) {
         this.names = AstAdapters.py2identifierList(names);
     }
-    private java.util.List<Name> nameNodes;
-    public java.util.List<Name> getInternalNameNodes() {
-        return nameNodes;
-    }
+
 
     private final static PyString[] fields =
     new PyString[] {new PyString("names")};
@@ -88,12 +85,6 @@
         this.names = names;
     }
 
-    public Global(Token token, java.util.List<String> names, java.util.List<Name> nameNodes) {
-        super(token);
-        this.names = names;
-        this.nameNodes = nameNodes;
-    }
-
     public Global(Integer ttype, Token token, java.util.List<String> names) {
         super(ttype, token);
         this.names = names;
@@ -153,4 +144,15 @@
         col_offset = num;
     }
 
+    // Support for indexer below
+
+    private java.util.List<Name> nameNodes;
+    public java.util.List<Name> getInternalNameNodes() {
+        return nameNodes;
+    }
+    public Global(Token token, java.util.List<String> names, java.util.List<Name> nameNodes) {
+        super(token);
+        this.names = names;
+        this.nameNodes = nameNodes;
+    }
 }
diff --git a/src/org/python/antlr/ast/ImportFrom.java b/src/org/python/antlr/ast/ImportFrom.java
--- a/src/org/python/antlr/ast/ImportFrom.java
+++ b/src/org/python/antlr/ast/ImportFrom.java
@@ -1,4 +1,4 @@
-// Autogenerated AST node   -*- c-basic-offset:4 -*-
+// Autogenerated AST node
 package org.python.antlr.ast;
 import org.antlr.runtime.CommonToken;
 import org.antlr.runtime.Token;
@@ -24,7 +24,6 @@
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.List;
 
 @ExposedType(name = "_ast.ImportFrom", base = AST.class)
 public class ImportFrom extends stmt {
@@ -43,8 +42,8 @@
         this.module = AstAdapters.py2identifier(module);
     }
 
-    private List<alias> names;
-    public List<alias> getInternalNames() {
+    private java.util.List<alias> names;
+    public java.util.List<alias> getInternalNames() {
         return names;
     }
     @ExposedGet(name = "names")
@@ -56,11 +55,6 @@
         this.names = AstAdapters.py2aliasList(names);
     }
 
-    private List<Name> moduleNames;
-    public List<Name> getInternalModuleNames() {
-        return moduleNames;
-    }
-
     private Integer level;
     public Integer getInternalLevel() {
         return level;
@@ -117,9 +111,7 @@
         setLevel(level);
     }
 
-    public ImportFrom(Token token,
-                      String module, List<Name> moduleNames,
-                      List<alias> names, Integer level) {
+    public ImportFrom(Token token, String module, java.util.List<alias> names, Integer level) {
         super(token);
         this.module = module;
         this.names = names;
@@ -129,17 +121,10 @@
         for(PythonTree t : this.names) {
             addChild(t);
         }
-        this.moduleNames = moduleNames;
-        if (moduleNames == null) {
-            this.moduleNames = new ArrayList<Name>();
-        }
-        for(PythonTree t : this.moduleNames) {
-            addChild(t);
-        }
         this.level = level;
     }
 
-    public ImportFrom(Integer ttype, Token token, String module, List<alias> names,
+    public ImportFrom(Integer ttype, Token token, String module, java.util.List<alias> names,
     Integer level) {
         super(ttype, token);
         this.module = module;
@@ -153,7 +138,7 @@
         this.level = level;
     }
 
-    public ImportFrom(PythonTree tree, String module, List<alias> names, Integer level) {
+    public ImportFrom(PythonTree tree, String module, java.util.List<alias> names, Integer level) {
         super(tree);
         this.module = module;
         this.names = names;
@@ -227,4 +212,31 @@
         col_offset = num;
     }
 
+    // Support for indexer below
+
+    private java.util.List<Name> moduleNames;
+    public java.util.List<Name> getInternalModuleNames() {
+        return moduleNames;
+    }
+    public ImportFrom(Token token,
+                      String module, java.util.List<Name> moduleNames,
+                      java.util.List<alias> names, Integer level) {
+        super(token);
+        this.module = module;
+        this.names = names;
+        if (names == null) {
+            this.names = new ArrayList<alias>();
+        }
+        for(PythonTree t : this.names) {
+            addChild(t);
+        }
+        this.moduleNames = moduleNames;
+        if (moduleNames == null) {
+            this.moduleNames = new ArrayList<Name>();
+        }
+        for(PythonTree t : this.moduleNames) {
+            addChild(t);
+        }
+        this.level = level;
+    }
 }
diff --git a/src/org/python/antlr/ast/Name.java b/src/org/python/antlr/ast/Name.java
--- a/src/org/python/antlr/ast/Name.java
+++ b/src/org/python/antlr/ast/Name.java
@@ -1,4 +1,4 @@
-// Autogenerated AST node  -*- c-basic-offset:4 -*-
+// Autogenerated AST node
 package org.python.antlr.ast;
 import org.antlr.runtime.CommonToken;
 import org.antlr.runtime.Token;
@@ -55,6 +55,7 @@
         this.ctx = AstAdapters.py2expr_context(ctx);
     }
 
+
     private final static PyString[] fields =
     new PyString[] {new PyString("id"), new PyString("ctx")};
     @ExposedGet(name = "_fields")
diff --git a/src/org/python/antlr/ast/alias.java b/src/org/python/antlr/ast/alias.java
--- a/src/org/python/antlr/ast/alias.java
+++ b/src/org/python/antlr/ast/alias.java
@@ -42,10 +42,6 @@
         this.name = AstAdapters.py2identifier(name);
     }
 
-    private java.util.List<Name> nameNodes;
-    public java.util.List<Name> getInternalNameNodes() {
-        return nameNodes;
-    }
     private String asname;
     public String getInternalAsname() {
         return asname;
@@ -60,10 +56,6 @@
         this.asname = AstAdapters.py2identifier(asname);
     }
 
-    private Name asnameNode;
-    public Name getInternalAsnameNode() {
-        return asnameNode;
-    }
 
     private final static PyString[] fields =
     new PyString[] {new PyString("name"), new PyString("asname")};
@@ -100,21 +92,6 @@
         this.asname = asname;
     }
 
-    // [import] name [as asname]
-    public alias(Name name, Name asname) {
-        this(java.util.Arrays.asList(new Name[]{name}), asname);
-    }
-
-    // [import] ...foo.bar.baz [as asname]
-    public alias(java.util.List<Name> nameNodes, Name asname) {
-        this.nameNodes = nameNodes;
-        this.name = dottedNameListToString(nameNodes);
-        if (asname != null) {
-            this.asnameNode = asname;
-            this.asname = asname.getInternalId();
-        }
-    }
-
     public alias(Integer ttype, Token token, String name, String asname) {
         super(ttype, token);
         this.name = name;
@@ -152,4 +129,28 @@
     public void traverse(VisitorIF<?> visitor) throws Exception {
     }
 
+    // Support for indexer below
+
+    private java.util.List<Name> nameNodes;
+    public java.util.List<Name> getInternalNameNodes() {
+        return nameNodes;
+    }
+    private Name asnameNode;
+    public Name getInternalAsnameNode() {
+        return asnameNode;
+    }
+    // [import] name [as asname]
+    public alias(Name name, Name asname) {
+        this(java.util.Arrays.asList(new Name[]{name}), asname);
+    }
+
+    // [import] ...foo.bar.baz [as asname]
+    public alias(java.util.List<Name> nameNodes, Name asname) {
+        this.nameNodes = nameNodes;
+        this.name = dottedNameListToString(nameNodes);
+        if (asname != null) {
+            this.asnameNode = asname;
+            this.asname = asname.getInternalId();
+        }
+    }
 }
diff --git a/src/org/python/antlr/ast/arguments.java b/src/org/python/antlr/ast/arguments.java
--- a/src/org/python/antlr/ast/arguments.java
+++ b/src/org/python/antlr/ast/arguments.java
@@ -45,12 +45,6 @@
     public String getInternalVararg() {
         return vararg;
     }
-
-    private Name varargName;
-    public Name getInternalVarargName() {
-        return varargName;
-    }
-
     @ExposedGet(name = "vararg")
     public PyObject getVararg() {
         if (vararg == null) return Py.None;
@@ -65,12 +59,6 @@
     public String getInternalKwarg() {
         return kwarg;
     }
-
-    private Name kwargName;
-    public Name getInternalKwargName() {
-        return kwargName;
-    }
-
     @ExposedGet(name = "kwarg")
     public PyObject getKwarg() {
         if (kwarg == null) return Py.None;
@@ -129,29 +117,8 @@
         setDefaults(defaults);
     }
 
-    // public arguments(Token token, java.util.List<expr> args, String vararg, String kwarg,
-    // java.util.List<expr> defaults) {
-    //     super(token);
-    //     this.args = args;
-    //     if (args == null) {
-    //         this.args = new ArrayList<expr>();
-    //     }
-    //     for(PythonTree t : this.args) {
-    //         addChild(t);
-    //     }
-    //     this.vararg = vararg;
-    //     this.kwarg = kwarg;
-    //     this.defaults = defaults;
-    //     if (defaults == null) {
-    //         this.defaults = new ArrayList<expr>();
-    //     }
-    //     for(PythonTree t : this.defaults) {
-    //         addChild(t);
-    //     }
-    // }
-
-    public arguments(Token token, java.util.List<expr> args, Name vararg, Name kwarg,
-            java.util.List<expr> defaults) {
+    public arguments(Token token, java.util.List<expr> args, String vararg, String kwarg,
+    java.util.List<expr> defaults) {
         super(token);
         this.args = args;
         if (args == null) {
@@ -160,10 +127,8 @@
         for(PythonTree t : this.args) {
             addChild(t);
         }
-        this.vararg = vararg == null ? null : vararg.getText();
-        this.varargName = vararg;
-        this.kwarg = kwarg == null ? null : kwarg.getText();
-        this.kwargName = kwarg;
+        this.vararg = vararg;
+        this.kwarg = kwarg;
         this.defaults = defaults;
         if (defaults == null) {
             this.defaults = new ArrayList<expr>();
@@ -258,4 +223,39 @@
         }
     }
 
+    // Support for indexer below
+
+    private Name varargName;
+    public Name getInternalVarargName() {
+        return varargName;
+    }
+    private Name kwargName;
+    public Name getInternalKwargName() {
+        return kwargName;
+    }
+    // XXX: vararg and kwarg are deliberately moved to the end of the
+    // method signature to avoid clashes with the (Token, List<expr>,
+    // String, String, List<expr>) version of the constructor.
+    public arguments(Token token, java.util.List<expr> args, Name vararg, Name kwarg,
+            java.util.List<expr> defaults) {
+        super(token);
+        this.args = args;
+        if (args == null) {
+            this.args = new ArrayList<expr>();
+        }
+        for(PythonTree t : this.args) {
+            addChild(t);
+        }
+        this.vararg = vararg == null ? null : vararg.getText();
+        this.varargName = vararg;
+        this.kwarg = kwarg == null ? null : kwarg.getText();
+        this.kwargName = kwarg;
+        this.defaults = defaults;
+        if (defaults == null) {
+            this.defaults = new ArrayList<expr>();
+        }
+        for(PythonTree t : this.defaults) {
+            addChild(t);
+        }
+    }
 }

-- 
Repository URL: http://hg.python.org/jython


More information about the Jython-checkins mailing list