[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