list comprehensions. see
http://sourceforge.net/patch/?func=detailpatch&patch_id=100654&group_id=5470 for details.
This commit is contained in:
parent
b16b83534d
commit
803d6e5451
|
@ -152,13 +152,22 @@ A list display is a possibly empty series of expressions enclosed in
|
||||||
square brackets:
|
square brackets:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
list_display: "[" [expression_list] "]"
|
list_display: "[" [expression_list [list_iter]] "]"
|
||||||
|
list_iter: list_for | list_if
|
||||||
|
list_for: "for" expression_list "in" testlist [list_iter]
|
||||||
|
list_if: "if" test [list_iter]
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
A list display yields a new list object. If it has no expression
|
A list display yields a new list object. Its contents are specified
|
||||||
list, the list object has no items. Otherwise, the elements of the
|
by providing either a list of expressions or a list comprehension.
|
||||||
expression list are evaluated from left to right and inserted in the
|
When a comma-separated list of expressions is supplied, its elements are
|
||||||
list object in that order.
|
evaluated from left to right and placed into the list object in that
|
||||||
|
order. When a list comprehension is supplied, it consists of a
|
||||||
|
single expression followed by one or more "for" or "if" clauses. In this
|
||||||
|
case, the elements of the new list are those that would be produced
|
||||||
|
by considering each of the "for" or "if" clauses a block, nesting from
|
||||||
|
left to right, and evaluating the expression to produce a list element
|
||||||
|
each time the innermost block is reached.
|
||||||
\obindex{list}
|
\obindex{list}
|
||||||
\indexii{empty}{list}
|
\indexii{empty}{list}
|
||||||
|
|
||||||
|
|
|
@ -1753,6 +1753,27 @@ item, then to the result and the next item, and so on. For example,
|
||||||
0
|
0
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
\subsection{List Comprehensions}
|
||||||
|
|
||||||
|
List comprehensions provide a concise way to create lists without resorting
|
||||||
|
to use of the \func{map()} or \func{filter()} functions. The resulting
|
||||||
|
construct tends often to be clearer than use of those functions.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
>>> spcs = [" Apple", " Banana ", "Coco nut "]
|
||||||
|
>>> print [s.strip() for s in spcs]
|
||||||
|
['Apple', 'Banana', 'Coco nut']
|
||||||
|
>>> vec = [2, 4, 6]
|
||||||
|
>>> print [3*x for x in vec]
|
||||||
|
[6, 12, 18]
|
||||||
|
>>> vec1 = [2, 4, 6]
|
||||||
|
>>> vec2 = [4, 3, -9]
|
||||||
|
>>> print [x*y for x in vec1 for y in vec2]
|
||||||
|
[8, 6, -18, 16, 12, -36, 24, 18, -54]
|
||||||
|
>>> print [x+y for x in vec1 for y in vec2]
|
||||||
|
[6, 5, -7, 8, 7, -5, 10, 9, -3]
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
\section{The \keyword{del} statement \label{del}}
|
\section{The \keyword{del} statement \label{del}}
|
||||||
|
|
||||||
There is a way to remove an item from a list given its index instead
|
There is a way to remove an item from a list given its index instead
|
||||||
|
|
|
@ -74,7 +74,8 @@ arith_expr: term (('+'|'-') term)*
|
||||||
term: factor (('*'|'/'|'%') factor)*
|
term: factor (('*'|'/'|'%') factor)*
|
||||||
factor: ('+'|'-'|'~') factor | power
|
factor: ('+'|'-'|'~') factor | power
|
||||||
power: atom trailer* ('**' factor)*
|
power: atom trailer* ('**' factor)*
|
||||||
atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+
|
atom: '(' [testlist] ')' | '[' [listmaker] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+
|
||||||
|
listmaker: test ( list_iter | (',' test)* [','] )
|
||||||
lambdef: 'lambda' [varargslist] ':' test
|
lambdef: 'lambda' [varargslist] ':' test
|
||||||
trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
|
trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
|
||||||
subscriptlist: subscript (',' subscript)* [',']
|
subscriptlist: subscript (',' subscript)* [',']
|
||||||
|
@ -88,3 +89,7 @@ classdef: 'class' NAME ['(' testlist ')'] ':' suite
|
||||||
|
|
||||||
arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] | '**' test)
|
arglist: (argument ',')* (argument [',']| '*' test [',' '**' test] | '**' test)
|
||||||
argument: [test '='] test # Really [keyword '='] test
|
argument: [test '='] test # Really [keyword '='] test
|
||||||
|
|
||||||
|
list_iter: list_for | list_if
|
||||||
|
list_for: 'for' exprlist 'in' testlist [list_iter]
|
||||||
|
list_if: 'if' test [list_iter]
|
||||||
|
|
|
@ -44,14 +44,18 @@
|
||||||
#define factor 299
|
#define factor 299
|
||||||
#define power 300
|
#define power 300
|
||||||
#define atom 301
|
#define atom 301
|
||||||
#define lambdef 302
|
#define listmaker 302
|
||||||
#define trailer 303
|
#define lambdef 303
|
||||||
#define subscriptlist 304
|
#define trailer 304
|
||||||
#define subscript 305
|
#define subscriptlist 305
|
||||||
#define sliceop 306
|
#define subscript 306
|
||||||
#define exprlist 307
|
#define sliceop 307
|
||||||
#define testlist 308
|
#define exprlist 308
|
||||||
#define dictmaker 309
|
#define testlist 309
|
||||||
#define classdef 310
|
#define dictmaker 310
|
||||||
#define arglist 311
|
#define classdef 311
|
||||||
#define argument 312
|
#define arglist 312
|
||||||
|
#define argument 313
|
||||||
|
#define list_iter 314
|
||||||
|
#define list_for 315
|
||||||
|
#define list_if 316
|
||||||
|
|
|
@ -45,3 +45,10 @@ selectors
|
||||||
|
|
||||||
atoms
|
atoms
|
||||||
classdef
|
classdef
|
||||||
|
['Apple', 'Banana', 'Coco nut']
|
||||||
|
[3, 6, 9, 12, 15]
|
||||||
|
[3, 4, 5]
|
||||||
|
[(1, 'Apple'), (1, 'Banana'), (1, 'Coconut'), (2, 'Apple'), (2, 'Banana'), (2, 'Coconut'), (3, 'Apple'), (3, 'Banana'), (3, 'Coconut'), (4, 'Apple'), (4, 'Banana'), (4, 'Coconut'), (5, 'Apple'), (5, 'Banana'), (5, 'Coconut')]
|
||||||
|
[(1, 'Banana'), (1, 'Coconut'), (2, 'Banana'), (2, 'Coconut'), (3, 'Banana'), (3, 'Coconut'), (4, 'Banana'), (4, 'Coconut'), (5, 'Banana'), (5, 'Coconut')]
|
||||||
|
good: got a SyntaxError as expected
|
||||||
|
[('Boeing', 'Airliner'), ('Boeing', 'Engine'), ('Ford', 'Engine'), ('Macdonalds', 'Cheeseburger')]
|
||||||
|
|
|
@ -542,3 +542,43 @@ class C:
|
||||||
def meth1(self): pass
|
def meth1(self): pass
|
||||||
def meth2(self, arg): pass
|
def meth2(self, arg): pass
|
||||||
def meth3(self, a1, a2): pass
|
def meth3(self, a1, a2): pass
|
||||||
|
|
||||||
|
# list comprehension tests
|
||||||
|
nums = [1, 2, 3, 4, 5]
|
||||||
|
strs = ["Apple", "Banana", "Coconut"]
|
||||||
|
spcs = [" Apple", " Banana ", "Coco nut "]
|
||||||
|
|
||||||
|
print [s.strip() for s in spcs]
|
||||||
|
print [3 * x for x in nums]
|
||||||
|
print [x for x in nums if x > 2]
|
||||||
|
print [(i, s) for i in nums for s in strs]
|
||||||
|
print [(i, s) for i in nums for s in [f for f in strs if "n" in f]]
|
||||||
|
try:
|
||||||
|
eval("[i, s for i in nums for s in strs]")
|
||||||
|
print "FAIL: should have raised a SyntaxError!"
|
||||||
|
except SyntaxError:
|
||||||
|
print "good: got a SyntaxError as expected"
|
||||||
|
|
||||||
|
suppliers = [
|
||||||
|
(1, "Boeing"),
|
||||||
|
(2, "Ford"),
|
||||||
|
(3, "Macdonalds")
|
||||||
|
]
|
||||||
|
|
||||||
|
parts = [
|
||||||
|
(10, "Airliner"),
|
||||||
|
(20, "Engine"),
|
||||||
|
(30, "Cheeseburger")
|
||||||
|
]
|
||||||
|
|
||||||
|
suppart = [
|
||||||
|
(1, 10), (1, 20), (2, 20), (3, 30)
|
||||||
|
]
|
||||||
|
|
||||||
|
print [
|
||||||
|
(sname, pname)
|
||||||
|
for (sno, sname) in suppliers
|
||||||
|
for (pno, pname) in parts
|
||||||
|
for (sp_sno, sp_pno) in suppart
|
||||||
|
if sno == sp_sno and pno == sp_pno
|
||||||
|
]
|
||||||
|
|
143
Python/compile.c
143
Python/compile.c
|
@ -294,6 +294,7 @@ struct compiling {
|
||||||
#ifdef PRIVATE_NAME_MANGLING
|
#ifdef PRIVATE_NAME_MANGLING
|
||||||
char *c_private; /* for private name mangling */
|
char *c_private; /* for private name mangling */
|
||||||
#endif
|
#endif
|
||||||
|
int c_tmpname; /* temporary local name counter */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -368,8 +369,10 @@ static int com_addconst(struct compiling *, PyObject *);
|
||||||
static int com_addname(struct compiling *, PyObject *);
|
static int com_addname(struct compiling *, PyObject *);
|
||||||
static void com_addopname(struct compiling *, int, node *);
|
static void com_addopname(struct compiling *, int, node *);
|
||||||
static void com_list(struct compiling *, node *, int);
|
static void com_list(struct compiling *, node *, int);
|
||||||
|
static void com_list_iter(struct compiling *, node *, node *, char *);
|
||||||
static int com_argdefs(struct compiling *, node *);
|
static int com_argdefs(struct compiling *, node *);
|
||||||
static int com_newlocal(struct compiling *, char *);
|
static int com_newlocal(struct compiling *, char *);
|
||||||
|
static void com_assign(struct compiling *, node *, int);
|
||||||
static PyCodeObject *icompile(struct _node *, struct compiling *);
|
static PyCodeObject *icompile(struct _node *, struct compiling *);
|
||||||
static PyCodeObject *jcompile(struct _node *, char *,
|
static PyCodeObject *jcompile(struct _node *, char *,
|
||||||
struct compiling *);
|
struct compiling *);
|
||||||
|
@ -419,6 +422,7 @@ com_init(struct compiling *c, char *filename)
|
||||||
c->c_last_addr = 0;
|
c->c_last_addr = 0;
|
||||||
c->c_last_line = 0;
|
c->c_last_line = 0;
|
||||||
c-> c_lnotab_next = 0;
|
c-> c_lnotab_next = 0;
|
||||||
|
c->c_tmpname = 0;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
@ -941,18 +945,116 @@ parsestrplus(node *n)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
com_list_constructor(struct compiling *c, node *n)
|
com_list_for(struct compiling *c, node *n, node *e, char *t)
|
||||||
{
|
{
|
||||||
int len;
|
PyObject *v;
|
||||||
int i;
|
int anchor = 0;
|
||||||
if (TYPE(n) != testlist)
|
int save_begin = c->c_begin;
|
||||||
REQ(n, exprlist);
|
|
||||||
/* exprlist: expr (',' expr)* [',']; likewise for testlist */
|
/* list_iter: for v in expr [list_iter] */
|
||||||
len = (NCH(n) + 1) / 2;
|
com_node(c, CHILD(n, 3)); /* expr */
|
||||||
for (i = 0; i < NCH(n); i += 2)
|
v = PyInt_FromLong(0L);
|
||||||
com_node(c, CHILD(n, i));
|
if (v == NULL)
|
||||||
com_addoparg(c, BUILD_LIST, len);
|
c->c_errors++;
|
||||||
com_pop(c, len-1);
|
com_addoparg(c, LOAD_CONST, com_addconst(c, v));
|
||||||
|
com_push(c, 1);
|
||||||
|
Py_XDECREF(v);
|
||||||
|
c->c_begin = c->c_nexti;
|
||||||
|
com_addoparg(c, SET_LINENO, n->n_lineno);
|
||||||
|
com_addfwref(c, FOR_LOOP, &anchor);
|
||||||
|
com_push(c, 1);
|
||||||
|
com_assign(c, CHILD(n, 1), OP_ASSIGN);
|
||||||
|
c->c_loops++;
|
||||||
|
com_list_iter(c, n, e, t);
|
||||||
|
c->c_loops--;
|
||||||
|
com_addoparg(c, JUMP_ABSOLUTE, c->c_begin);
|
||||||
|
c->c_begin = save_begin;
|
||||||
|
com_backpatch(c, anchor);
|
||||||
|
com_pop(c, 2); /* FOR_LOOP has popped these */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
com_list_if(struct compiling *c, node *n, node *e, char *t)
|
||||||
|
{
|
||||||
|
int anchor = 0;
|
||||||
|
int a = 0;
|
||||||
|
/* list_iter: 'if' test [list_iter] */
|
||||||
|
com_addoparg(c, SET_LINENO, n->n_lineno);
|
||||||
|
com_node(c, CHILD(n, 1));
|
||||||
|
com_addfwref(c, JUMP_IF_FALSE, &a);
|
||||||
|
com_addbyte(c, POP_TOP);
|
||||||
|
com_pop(c, 1);
|
||||||
|
com_list_iter(c, n, e, t);
|
||||||
|
com_addfwref(c, JUMP_FORWARD, &anchor);
|
||||||
|
com_backpatch(c, a);
|
||||||
|
/* We jump here with an extra entry which we now pop */
|
||||||
|
com_addbyte(c, POP_TOP);
|
||||||
|
com_backpatch(c, anchor);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
com_list_iter(struct compiling *c,
|
||||||
|
node *p, /* parent of list_iter node */
|
||||||
|
node *e, /* element expression node */
|
||||||
|
char *t /* name of result list temp local */)
|
||||||
|
{
|
||||||
|
/* list_iter is the last child in a listmaker, list_for, or list_if */
|
||||||
|
node *n = CHILD(p, NCH(p)-1);
|
||||||
|
if (TYPE(n) == list_iter) {
|
||||||
|
n = CHILD(n, 0);
|
||||||
|
switch (TYPE(n)) {
|
||||||
|
case list_for:
|
||||||
|
com_list_for(c, n, e, t);
|
||||||
|
break;
|
||||||
|
case list_if:
|
||||||
|
com_list_if(c, n, e, t);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
com_error(c, PyExc_SystemError,
|
||||||
|
"invalid list_iter node type");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
com_addopnamestr(c, LOAD_NAME, t);
|
||||||
|
com_push(c, 1);
|
||||||
|
com_node(c, e);
|
||||||
|
com_addoparg(c, CALL_FUNCTION, 1);
|
||||||
|
com_addbyte(c, POP_TOP);
|
||||||
|
com_pop(c, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
com_list_comprehension(struct compiling *c, node *n)
|
||||||
|
{
|
||||||
|
/* listmaker: test list_iter */
|
||||||
|
char tmpname[12];
|
||||||
|
sprintf(tmpname, "__%d__", ++c->c_tmpname);
|
||||||
|
com_addoparg(c, BUILD_LIST, 0);
|
||||||
|
com_addbyte(c, DUP_TOP); /* leave the result on the stack */
|
||||||
|
com_push(c, 2);
|
||||||
|
com_addopnamestr(c, LOAD_ATTR, "append");
|
||||||
|
com_addopnamestr(c, STORE_NAME, tmpname);
|
||||||
|
com_pop(c, 1);
|
||||||
|
com_list_iter(c, n, CHILD(n, 0), tmpname);
|
||||||
|
com_addopnamestr(c, DELETE_NAME, tmpname);
|
||||||
|
--c->c_tmpname;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
com_listmaker(struct compiling *c, node *n)
|
||||||
|
{
|
||||||
|
/* listmaker: test ( list_iter | (',' test)* [','] ) */
|
||||||
|
if (TYPE(CHILD(n, 1)) == list_iter)
|
||||||
|
com_list_comprehension(c, n);
|
||||||
|
else {
|
||||||
|
int len = 0;
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < NCH(n); i += 2, len++)
|
||||||
|
com_node(c, CHILD(n, i));
|
||||||
|
com_addoparg(c, BUILD_LIST, len);
|
||||||
|
com_pop(c, len-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -990,18 +1092,18 @@ com_atom(struct compiling *c, node *n)
|
||||||
else
|
else
|
||||||
com_node(c, CHILD(n, 1));
|
com_node(c, CHILD(n, 1));
|
||||||
break;
|
break;
|
||||||
case LSQB:
|
case LSQB: /* '[' [listmaker] ']' */
|
||||||
if (TYPE(CHILD(n, 1)) == RSQB) {
|
if (TYPE(CHILD(n, 1)) == RSQB) {
|
||||||
com_addoparg(c, BUILD_LIST, 0);
|
com_addoparg(c, BUILD_LIST, 0);
|
||||||
com_push(c, 1);
|
com_push(c, 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
com_list_constructor(c, CHILD(n, 1));
|
com_listmaker(c, CHILD(n, 1));
|
||||||
break;
|
break;
|
||||||
case LBRACE: /* '{' [dictmaker] '}' */
|
case LBRACE: /* '{' [dictmaker] '}' */
|
||||||
com_addoparg(c, BUILD_MAP, 0);
|
com_addoparg(c, BUILD_MAP, 0);
|
||||||
com_push(c, 1);
|
com_push(c, 1);
|
||||||
if (TYPE(CHILD(n, 1)) != RBRACE)
|
if (TYPE(CHILD(n, 1)) == dictmaker)
|
||||||
com_dictmaker(c, CHILD(n, 1));
|
com_dictmaker(c, CHILD(n, 1));
|
||||||
break;
|
break;
|
||||||
case BACKQUOTE:
|
case BACKQUOTE:
|
||||||
|
@ -1743,6 +1845,19 @@ com_assign_sequence(struct compiling *c, node *n, int assigning)
|
||||||
com_assign(c, CHILD(n, i), assigning);
|
com_assign(c, CHILD(n, i), assigning);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
com_assign_list(struct compiling *c, node *n, int assigning)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (assigning) {
|
||||||
|
i = (NCH(n)+1)/2;
|
||||||
|
com_addoparg(c, UNPACK_SEQUENCE, i);
|
||||||
|
com_push(c, i-1);
|
||||||
|
}
|
||||||
|
for (i = 0; i < NCH(n); i += 2)
|
||||||
|
com_assign(c, CHILD(n, i), assigning);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
com_assign_name(struct compiling *c, node *n, int assigning)
|
com_assign_name(struct compiling *c, node *n, int assigning)
|
||||||
{
|
{
|
||||||
|
|
|
@ -896,23 +896,23 @@ static state states_44[4] = {
|
||||||
static arc arcs_45_0[7] = {
|
static arc arcs_45_0[7] = {
|
||||||
{16, 1},
|
{16, 1},
|
||||||
{109, 2},
|
{109, 2},
|
||||||
{111, 3},
|
{112, 3},
|
||||||
{114, 4},
|
{115, 4},
|
||||||
{12, 5},
|
{12, 5},
|
||||||
{115, 5},
|
{116, 5},
|
||||||
{116, 6},
|
{117, 6},
|
||||||
};
|
};
|
||||||
static arc arcs_45_1[2] = {
|
static arc arcs_45_1[2] = {
|
||||||
{9, 7},
|
{9, 7},
|
||||||
{18, 5},
|
{18, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_2[2] = {
|
static arc arcs_45_2[2] = {
|
||||||
{9, 8},
|
{110, 8},
|
||||||
{110, 5},
|
{111, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_3[2] = {
|
static arc arcs_45_3[2] = {
|
||||||
{112, 9},
|
{113, 9},
|
||||||
{113, 5},
|
{114, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_4[1] = {
|
static arc arcs_45_4[1] = {
|
||||||
{9, 10},
|
{9, 10},
|
||||||
|
@ -921,20 +921,20 @@ static arc arcs_45_5[1] = {
|
||||||
{0, 5},
|
{0, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_6[2] = {
|
static arc arcs_45_6[2] = {
|
||||||
{116, 6},
|
{117, 6},
|
||||||
{0, 6},
|
{0, 6},
|
||||||
};
|
};
|
||||||
static arc arcs_45_7[1] = {
|
static arc arcs_45_7[1] = {
|
||||||
{18, 5},
|
{18, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_8[1] = {
|
static arc arcs_45_8[1] = {
|
||||||
{110, 5},
|
{111, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_9[1] = {
|
static arc arcs_45_9[1] = {
|
||||||
{113, 5},
|
{114, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_45_10[1] = {
|
static arc arcs_45_10[1] = {
|
||||||
{114, 5},
|
{115, 5},
|
||||||
};
|
};
|
||||||
static state states_45[11] = {
|
static state states_45[11] = {
|
||||||
{7, arcs_45_0},
|
{7, arcs_45_0},
|
||||||
|
@ -950,153 +950,163 @@ static state states_45[11] = {
|
||||||
{1, arcs_45_10},
|
{1, arcs_45_10},
|
||||||
};
|
};
|
||||||
static arc arcs_46_0[1] = {
|
static arc arcs_46_0[1] = {
|
||||||
{117, 1},
|
{21, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_46_1[2] = {
|
static arc arcs_46_1[3] = {
|
||||||
{17, 2},
|
{118, 2},
|
||||||
{14, 3},
|
{22, 3},
|
||||||
|
{0, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_46_2[1] = {
|
static arc arcs_46_2[1] = {
|
||||||
{14, 3},
|
{0, 2},
|
||||||
};
|
};
|
||||||
static arc arcs_46_3[1] = {
|
static arc arcs_46_3[2] = {
|
||||||
{21, 4},
|
{21, 4},
|
||||||
|
{0, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_46_4[1] = {
|
static arc arcs_46_4[2] = {
|
||||||
|
{22, 3},
|
||||||
{0, 4},
|
{0, 4},
|
||||||
};
|
};
|
||||||
static state states_46[5] = {
|
static state states_46[5] = {
|
||||||
{1, arcs_46_0},
|
{1, arcs_46_0},
|
||||||
{2, arcs_46_1},
|
{3, arcs_46_1},
|
||||||
{1, arcs_46_2},
|
{1, arcs_46_2},
|
||||||
{1, arcs_46_3},
|
{2, arcs_46_3},
|
||||||
{1, arcs_46_4},
|
{2, arcs_46_4},
|
||||||
};
|
};
|
||||||
static arc arcs_47_0[3] = {
|
static arc arcs_47_0[1] = {
|
||||||
{16, 1},
|
{119, 1},
|
||||||
{109, 2},
|
|
||||||
{52, 3},
|
|
||||||
};
|
};
|
||||||
static arc arcs_47_1[2] = {
|
static arc arcs_47_1[2] = {
|
||||||
{118, 4},
|
{17, 2},
|
||||||
{18, 5},
|
{14, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_47_2[1] = {
|
static arc arcs_47_2[1] = {
|
||||||
{119, 6},
|
{14, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_47_3[1] = {
|
static arc arcs_47_3[1] = {
|
||||||
{12, 5},
|
{21, 4},
|
||||||
};
|
};
|
||||||
static arc arcs_47_4[1] = {
|
static arc arcs_47_4[1] = {
|
||||||
{18, 5},
|
{0, 4},
|
||||||
};
|
};
|
||||||
static arc arcs_47_5[1] = {
|
static state states_47[5] = {
|
||||||
{0, 5},
|
{1, arcs_47_0},
|
||||||
};
|
|
||||||
static arc arcs_47_6[1] = {
|
|
||||||
{110, 5},
|
|
||||||
};
|
|
||||||
static state states_47[7] = {
|
|
||||||
{3, arcs_47_0},
|
|
||||||
{2, arcs_47_1},
|
{2, arcs_47_1},
|
||||||
{1, arcs_47_2},
|
{1, arcs_47_2},
|
||||||
{1, arcs_47_3},
|
{1, arcs_47_3},
|
||||||
{1, arcs_47_4},
|
{1, arcs_47_4},
|
||||||
{1, arcs_47_5},
|
|
||||||
{1, arcs_47_6},
|
|
||||||
};
|
};
|
||||||
static arc arcs_48_0[1] = {
|
static arc arcs_48_0[3] = {
|
||||||
{120, 1},
|
{16, 1},
|
||||||
|
{109, 2},
|
||||||
|
{52, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_48_1[2] = {
|
static arc arcs_48_1[2] = {
|
||||||
|
{120, 4},
|
||||||
|
{18, 5},
|
||||||
|
};
|
||||||
|
static arc arcs_48_2[1] = {
|
||||||
|
{121, 6},
|
||||||
|
};
|
||||||
|
static arc arcs_48_3[1] = {
|
||||||
|
{12, 5},
|
||||||
|
};
|
||||||
|
static arc arcs_48_4[1] = {
|
||||||
|
{18, 5},
|
||||||
|
};
|
||||||
|
static arc arcs_48_5[1] = {
|
||||||
|
{0, 5},
|
||||||
|
};
|
||||||
|
static arc arcs_48_6[1] = {
|
||||||
|
{111, 5},
|
||||||
|
};
|
||||||
|
static state states_48[7] = {
|
||||||
|
{3, arcs_48_0},
|
||||||
|
{2, arcs_48_1},
|
||||||
|
{1, arcs_48_2},
|
||||||
|
{1, arcs_48_3},
|
||||||
|
{1, arcs_48_4},
|
||||||
|
{1, arcs_48_5},
|
||||||
|
{1, arcs_48_6},
|
||||||
|
};
|
||||||
|
static arc arcs_49_0[1] = {
|
||||||
|
{122, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_49_1[2] = {
|
||||||
{22, 2},
|
{22, 2},
|
||||||
{0, 1},
|
{0, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_48_2[2] = {
|
static arc arcs_49_2[2] = {
|
||||||
{120, 1},
|
{122, 1},
|
||||||
{0, 2},
|
{0, 2},
|
||||||
};
|
};
|
||||||
static state states_48[3] = {
|
static state states_49[3] = {
|
||||||
{1, arcs_48_0},
|
{1, arcs_49_0},
|
||||||
{2, arcs_48_1},
|
{2, arcs_49_1},
|
||||||
{2, arcs_48_2},
|
{2, arcs_49_2},
|
||||||
};
|
};
|
||||||
static arc arcs_49_0[3] = {
|
static arc arcs_50_0[3] = {
|
||||||
{52, 1},
|
{52, 1},
|
||||||
{21, 2},
|
{21, 2},
|
||||||
{14, 3},
|
{14, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_49_1[1] = {
|
static arc arcs_50_1[1] = {
|
||||||
{52, 4},
|
{52, 4},
|
||||||
};
|
};
|
||||||
static arc arcs_49_2[2] = {
|
static arc arcs_50_2[2] = {
|
||||||
{14, 3},
|
{14, 3},
|
||||||
{0, 2},
|
{0, 2},
|
||||||
};
|
};
|
||||||
static arc arcs_49_3[3] = {
|
static arc arcs_50_3[3] = {
|
||||||
{21, 5},
|
{21, 5},
|
||||||
{121, 6},
|
{123, 6},
|
||||||
{0, 3},
|
{0, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_49_4[1] = {
|
static arc arcs_50_4[1] = {
|
||||||
{52, 6},
|
{52, 6},
|
||||||
};
|
};
|
||||||
static arc arcs_49_5[2] = {
|
static arc arcs_50_5[2] = {
|
||||||
{121, 6},
|
{123, 6},
|
||||||
{0, 5},
|
{0, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_49_6[1] = {
|
static arc arcs_50_6[1] = {
|
||||||
{0, 6},
|
{0, 6},
|
||||||
};
|
};
|
||||||
static state states_49[7] = {
|
static state states_50[7] = {
|
||||||
{3, arcs_49_0},
|
{3, arcs_50_0},
|
||||||
{1, arcs_49_1},
|
{1, arcs_50_1},
|
||||||
{2, arcs_49_2},
|
{2, arcs_50_2},
|
||||||
{3, arcs_49_3},
|
{3, arcs_50_3},
|
||||||
{1, arcs_49_4},
|
{1, arcs_50_4},
|
||||||
{2, arcs_49_5},
|
{2, arcs_50_5},
|
||||||
{1, arcs_49_6},
|
{1, arcs_50_6},
|
||||||
};
|
};
|
||||||
static arc arcs_50_0[1] = {
|
static arc arcs_51_0[1] = {
|
||||||
{14, 1},
|
{14, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_50_1[2] = {
|
static arc arcs_51_1[2] = {
|
||||||
{21, 2},
|
{21, 2},
|
||||||
{0, 1},
|
{0, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_50_2[1] = {
|
static arc arcs_51_2[1] = {
|
||||||
{0, 2},
|
|
||||||
};
|
|
||||||
static state states_50[3] = {
|
|
||||||
{1, arcs_50_0},
|
|
||||||
{2, arcs_50_1},
|
|
||||||
{1, arcs_50_2},
|
|
||||||
};
|
|
||||||
static arc arcs_51_0[1] = {
|
|
||||||
{55, 1},
|
|
||||||
};
|
|
||||||
static arc arcs_51_1[2] = {
|
|
||||||
{22, 2},
|
|
||||||
{0, 1},
|
|
||||||
};
|
|
||||||
static arc arcs_51_2[2] = {
|
|
||||||
{55, 1},
|
|
||||||
{0, 2},
|
{0, 2},
|
||||||
};
|
};
|
||||||
static state states_51[3] = {
|
static state states_51[3] = {
|
||||||
{1, arcs_51_0},
|
{1, arcs_51_0},
|
||||||
{2, arcs_51_1},
|
{2, arcs_51_1},
|
||||||
{2, arcs_51_2},
|
{1, arcs_51_2},
|
||||||
};
|
};
|
||||||
static arc arcs_52_0[1] = {
|
static arc arcs_52_0[1] = {
|
||||||
{21, 1},
|
{55, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_52_1[2] = {
|
static arc arcs_52_1[2] = {
|
||||||
{22, 2},
|
{22, 2},
|
||||||
{0, 1},
|
{0, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_52_2[2] = {
|
static arc arcs_52_2[2] = {
|
||||||
{21, 1},
|
{55, 1},
|
||||||
{0, 2},
|
{0, 2},
|
||||||
};
|
};
|
||||||
static state states_52[3] = {
|
static state states_52[3] = {
|
||||||
|
@ -1107,129 +1117,202 @@ static state states_52[3] = {
|
||||||
static arc arcs_53_0[1] = {
|
static arc arcs_53_0[1] = {
|
||||||
{21, 1},
|
{21, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_53_1[1] = {
|
static arc arcs_53_1[2] = {
|
||||||
|
{22, 2},
|
||||||
|
{0, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_53_2[2] = {
|
||||||
|
{21, 1},
|
||||||
|
{0, 2},
|
||||||
|
};
|
||||||
|
static state states_53[3] = {
|
||||||
|
{1, arcs_53_0},
|
||||||
|
{2, arcs_53_1},
|
||||||
|
{2, arcs_53_2},
|
||||||
|
};
|
||||||
|
static arc arcs_54_0[1] = {
|
||||||
|
{21, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_54_1[1] = {
|
||||||
{14, 2},
|
{14, 2},
|
||||||
};
|
};
|
||||||
static arc arcs_53_2[1] = {
|
static arc arcs_54_2[1] = {
|
||||||
{21, 3},
|
{21, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_53_3[2] = {
|
static arc arcs_54_3[2] = {
|
||||||
{22, 4},
|
{22, 4},
|
||||||
{0, 3},
|
{0, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_53_4[2] = {
|
static arc arcs_54_4[2] = {
|
||||||
{21, 1},
|
{21, 1},
|
||||||
{0, 4},
|
{0, 4},
|
||||||
};
|
};
|
||||||
static state states_53[5] = {
|
static state states_54[5] = {
|
||||||
{1, arcs_53_0},
|
{1, arcs_54_0},
|
||||||
{1, arcs_53_1},
|
{1, arcs_54_1},
|
||||||
{1, arcs_53_2},
|
{1, arcs_54_2},
|
||||||
{2, arcs_53_3},
|
{2, arcs_54_3},
|
||||||
{2, arcs_53_4},
|
{2, arcs_54_4},
|
||||||
};
|
};
|
||||||
static arc arcs_54_0[1] = {
|
static arc arcs_55_0[1] = {
|
||||||
{122, 1},
|
{124, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_54_1[1] = {
|
static arc arcs_55_1[1] = {
|
||||||
{12, 2},
|
{12, 2},
|
||||||
};
|
};
|
||||||
static arc arcs_54_2[2] = {
|
static arc arcs_55_2[2] = {
|
||||||
{16, 3},
|
{16, 3},
|
||||||
{14, 4},
|
{14, 4},
|
||||||
};
|
};
|
||||||
static arc arcs_54_3[1] = {
|
static arc arcs_55_3[1] = {
|
||||||
{9, 5},
|
{9, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_54_4[1] = {
|
static arc arcs_55_4[1] = {
|
||||||
{15, 6},
|
{15, 6},
|
||||||
};
|
};
|
||||||
static arc arcs_54_5[1] = {
|
static arc arcs_55_5[1] = {
|
||||||
{18, 7},
|
{18, 7},
|
||||||
};
|
};
|
||||||
static arc arcs_54_6[1] = {
|
|
||||||
{0, 6},
|
|
||||||
};
|
|
||||||
static arc arcs_54_7[1] = {
|
|
||||||
{14, 4},
|
|
||||||
};
|
|
||||||
static state states_54[8] = {
|
|
||||||
{1, arcs_54_0},
|
|
||||||
{1, arcs_54_1},
|
|
||||||
{2, arcs_54_2},
|
|
||||||
{1, arcs_54_3},
|
|
||||||
{1, arcs_54_4},
|
|
||||||
{1, arcs_54_5},
|
|
||||||
{1, arcs_54_6},
|
|
||||||
{1, arcs_54_7},
|
|
||||||
};
|
|
||||||
static arc arcs_55_0[3] = {
|
|
||||||
{123, 1},
|
|
||||||
{23, 2},
|
|
||||||
{24, 3},
|
|
||||||
};
|
|
||||||
static arc arcs_55_1[2] = {
|
|
||||||
{22, 4},
|
|
||||||
{0, 1},
|
|
||||||
};
|
|
||||||
static arc arcs_55_2[1] = {
|
|
||||||
{21, 5},
|
|
||||||
};
|
|
||||||
static arc arcs_55_3[1] = {
|
|
||||||
{21, 6},
|
|
||||||
};
|
|
||||||
static arc arcs_55_4[4] = {
|
|
||||||
{123, 1},
|
|
||||||
{23, 2},
|
|
||||||
{24, 3},
|
|
||||||
{0, 4},
|
|
||||||
};
|
|
||||||
static arc arcs_55_5[2] = {
|
|
||||||
{22, 7},
|
|
||||||
{0, 5},
|
|
||||||
};
|
|
||||||
static arc arcs_55_6[1] = {
|
static arc arcs_55_6[1] = {
|
||||||
{0, 6},
|
{0, 6},
|
||||||
};
|
};
|
||||||
static arc arcs_55_7[1] = {
|
static arc arcs_55_7[1] = {
|
||||||
{24, 3},
|
{14, 4},
|
||||||
};
|
};
|
||||||
static state states_55[8] = {
|
static state states_55[8] = {
|
||||||
{3, arcs_55_0},
|
{1, arcs_55_0},
|
||||||
{2, arcs_55_1},
|
{1, arcs_55_1},
|
||||||
{1, arcs_55_2},
|
{2, arcs_55_2},
|
||||||
{1, arcs_55_3},
|
{1, arcs_55_3},
|
||||||
{4, arcs_55_4},
|
{1, arcs_55_4},
|
||||||
{2, arcs_55_5},
|
{1, arcs_55_5},
|
||||||
{1, arcs_55_6},
|
{1, arcs_55_6},
|
||||||
{1, arcs_55_7},
|
{1, arcs_55_7},
|
||||||
};
|
};
|
||||||
static arc arcs_56_0[1] = {
|
static arc arcs_56_0[3] = {
|
||||||
{21, 1},
|
{125, 1},
|
||||||
|
{23, 2},
|
||||||
|
{24, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_56_1[2] = {
|
static arc arcs_56_1[2] = {
|
||||||
{20, 2},
|
{22, 4},
|
||||||
{0, 1},
|
{0, 1},
|
||||||
};
|
};
|
||||||
static arc arcs_56_2[1] = {
|
static arc arcs_56_2[1] = {
|
||||||
{21, 3},
|
{21, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_56_3[1] = {
|
static arc arcs_56_3[1] = {
|
||||||
{0, 3},
|
{21, 6},
|
||||||
};
|
};
|
||||||
static state states_56[4] = {
|
static arc arcs_56_4[4] = {
|
||||||
{1, arcs_56_0},
|
{125, 1},
|
||||||
|
{23, 2},
|
||||||
|
{24, 3},
|
||||||
|
{0, 4},
|
||||||
|
};
|
||||||
|
static arc arcs_56_5[2] = {
|
||||||
|
{22, 7},
|
||||||
|
{0, 5},
|
||||||
|
};
|
||||||
|
static arc arcs_56_6[1] = {
|
||||||
|
{0, 6},
|
||||||
|
};
|
||||||
|
static arc arcs_56_7[1] = {
|
||||||
|
{24, 3},
|
||||||
|
};
|
||||||
|
static state states_56[8] = {
|
||||||
|
{3, arcs_56_0},
|
||||||
{2, arcs_56_1},
|
{2, arcs_56_1},
|
||||||
{1, arcs_56_2},
|
{1, arcs_56_2},
|
||||||
{1, arcs_56_3},
|
{1, arcs_56_3},
|
||||||
|
{4, arcs_56_4},
|
||||||
|
{2, arcs_56_5},
|
||||||
|
{1, arcs_56_6},
|
||||||
|
{1, arcs_56_7},
|
||||||
};
|
};
|
||||||
static dfa dfas[57] = {
|
static arc arcs_57_0[1] = {
|
||||||
|
{21, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_57_1[2] = {
|
||||||
|
{20, 2},
|
||||||
|
{0, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_57_2[1] = {
|
||||||
|
{21, 3},
|
||||||
|
};
|
||||||
|
static arc arcs_57_3[1] = {
|
||||||
|
{0, 3},
|
||||||
|
};
|
||||||
|
static state states_57[4] = {
|
||||||
|
{1, arcs_57_0},
|
||||||
|
{2, arcs_57_1},
|
||||||
|
{1, arcs_57_2},
|
||||||
|
{1, arcs_57_3},
|
||||||
|
};
|
||||||
|
static arc arcs_58_0[2] = {
|
||||||
|
{126, 1},
|
||||||
|
{127, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_58_1[1] = {
|
||||||
|
{0, 1},
|
||||||
|
};
|
||||||
|
static state states_58[2] = {
|
||||||
|
{2, arcs_58_0},
|
||||||
|
{1, arcs_58_1},
|
||||||
|
};
|
||||||
|
static arc arcs_59_0[1] = {
|
||||||
|
{67, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_59_1[1] = {
|
||||||
|
{39, 2},
|
||||||
|
};
|
||||||
|
static arc arcs_59_2[1] = {
|
||||||
|
{56, 3},
|
||||||
|
};
|
||||||
|
static arc arcs_59_3[1] = {
|
||||||
|
{9, 4},
|
||||||
|
};
|
||||||
|
static arc arcs_59_4[2] = {
|
||||||
|
{118, 5},
|
||||||
|
{0, 4},
|
||||||
|
};
|
||||||
|
static arc arcs_59_5[1] = {
|
||||||
|
{0, 5},
|
||||||
|
};
|
||||||
|
static state states_59[6] = {
|
||||||
|
{1, arcs_59_0},
|
||||||
|
{1, arcs_59_1},
|
||||||
|
{1, arcs_59_2},
|
||||||
|
{1, arcs_59_3},
|
||||||
|
{2, arcs_59_4},
|
||||||
|
{1, arcs_59_5},
|
||||||
|
};
|
||||||
|
static arc arcs_60_0[1] = {
|
||||||
|
{63, 1},
|
||||||
|
};
|
||||||
|
static arc arcs_60_1[1] = {
|
||||||
|
{21, 2},
|
||||||
|
};
|
||||||
|
static arc arcs_60_2[2] = {
|
||||||
|
{118, 3},
|
||||||
|
{0, 2},
|
||||||
|
};
|
||||||
|
static arc arcs_60_3[1] = {
|
||||||
|
{0, 3},
|
||||||
|
};
|
||||||
|
static state states_60[4] = {
|
||||||
|
{1, arcs_60_0},
|
||||||
|
{1, arcs_60_1},
|
||||||
|
{2, arcs_60_2},
|
||||||
|
{1, arcs_60_3},
|
||||||
|
};
|
||||||
|
static dfa dfas[61] = {
|
||||||
{256, "single_input", 0, 3, states_0,
|
{256, "single_input", 0, 3, states_0,
|
||||||
"\004\030\001\000\140\341\153\202\034\200\000\000\060\242\074\004"},
|
"\004\030\001\000\140\341\153\202\034\200\000\000\060\042\271\020"},
|
||||||
{257, "file_input", 0, 2, states_1,
|
{257, "file_input", 0, 2, states_1,
|
||||||
"\204\030\001\000\140\341\153\202\034\200\000\000\060\242\074\004"},
|
"\204\030\001\000\140\341\153\202\034\200\000\000\060\042\271\020"},
|
||||||
{258, "eval_input", 0, 3, states_2,
|
{258, "eval_input", 0, 3, states_2,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{259, "funcdef", 0, 6, states_3,
|
{259, "funcdef", 0, 6, states_3,
|
||||||
"\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
"\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
||||||
{260, "parameters", 0, 4, states_4,
|
{260, "parameters", 0, 4, states_4,
|
||||||
|
@ -1241,13 +1324,13 @@ static dfa dfas[57] = {
|
||||||
{263, "fplist", 0, 3, states_7,
|
{263, "fplist", 0, 3, states_7,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
||||||
{264, "stmt", 0, 2, states_8,
|
{264, "stmt", 0, 2, states_8,
|
||||||
"\000\030\001\000\140\341\153\202\034\200\000\000\060\242\074\004"},
|
"\000\030\001\000\140\341\153\202\034\200\000\000\060\042\271\020"},
|
||||||
{265, "simple_stmt", 0, 4, states_9,
|
{265, "simple_stmt", 0, 4, states_9,
|
||||||
"\000\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\140\341\153\002\000\200\000\000\060\042\271\000"},
|
||||||
{266, "small_stmt", 0, 2, states_10,
|
{266, "small_stmt", 0, 2, states_10,
|
||||||
"\000\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\140\341\153\002\000\200\000\000\060\042\271\000"},
|
||||||
{267, "expr_stmt", 0, 2, states_11,
|
{267, "expr_stmt", 0, 2, states_11,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{268, "print_stmt", 0, 3, states_12,
|
{268, "print_stmt", 0, 3, states_12,
|
||||||
"\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"},
|
"\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000"},
|
||||||
{269, "del_stmt", 0, 3, states_13,
|
{269, "del_stmt", 0, 3, states_13,
|
||||||
|
@ -1275,7 +1358,7 @@ static dfa dfas[57] = {
|
||||||
{280, "assert_stmt", 0, 5, states_24,
|
{280, "assert_stmt", 0, 5, states_24,
|
||||||
"\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
|
"\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
|
||||||
{281, "compound_stmt", 0, 2, states_25,
|
{281, "compound_stmt", 0, 2, states_25,
|
||||||
"\000\010\000\000\000\000\000\200\034\000\000\000\000\000\000\004"},
|
"\000\010\000\000\000\000\000\200\034\000\000\000\000\000\000\020"},
|
||||||
{282, "if_stmt", 0, 8, states_26,
|
{282, "if_stmt", 0, 8, states_26,
|
||||||
"\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"},
|
"\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"},
|
||||||
{283, "while_stmt", 0, 8, states_27,
|
{283, "while_stmt", 0, 8, states_27,
|
||||||
|
@ -1287,59 +1370,67 @@ static dfa dfas[57] = {
|
||||||
{286, "except_clause", 0, 5, states_30,
|
{286, "except_clause", 0, 5, states_30,
|
||||||
"\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"},
|
"\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000"},
|
||||||
{287, "suite", 0, 5, states_31,
|
{287, "suite", 0, 5, states_31,
|
||||||
"\004\020\001\000\140\341\153\002\000\200\000\000\060\242\074\000"},
|
"\004\020\001\000\140\341\153\002\000\200\000\000\060\042\271\000"},
|
||||||
{288, "test", 0, 4, states_32,
|
{288, "test", 0, 4, states_32,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{289, "and_test", 0, 2, states_33,
|
{289, "and_test", 0, 2, states_33,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\071\000"},
|
||||||
{290, "not_test", 0, 3, states_34,
|
{290, "not_test", 0, 3, states_34,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\071\000"},
|
||||||
{291, "comparison", 0, 2, states_35,
|
{291, "comparison", 0, 2, states_35,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{292, "comp_op", 0, 4, states_36,
|
{292, "comp_op", 0, 4, states_36,
|
||||||
"\000\000\000\000\000\000\000\001\000\200\374\003\000\000\000\000"},
|
"\000\000\000\000\000\000\000\001\000\200\374\003\000\000\000\000"},
|
||||||
{293, "expr", 0, 2, states_37,
|
{293, "expr", 0, 2, states_37,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{294, "xor_expr", 0, 2, states_38,
|
{294, "xor_expr", 0, 2, states_38,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{295, "and_expr", 0, 2, states_39,
|
{295, "and_expr", 0, 2, states_39,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{296, "shift_expr", 0, 2, states_40,
|
{296, "shift_expr", 0, 2, states_40,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{297, "arith_expr", 0, 2, states_41,
|
{297, "arith_expr", 0, 2, states_41,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{298, "term", 0, 2, states_42,
|
{298, "term", 0, 2, states_42,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{299, "factor", 0, 3, states_43,
|
{299, "factor", 0, 3, states_43,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{300, "power", 0, 4, states_44,
|
{300, "power", 0, 4, states_44,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\000\240\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\000\040\071\000"},
|
||||||
{301, "atom", 0, 11, states_45,
|
{301, "atom", 0, 11, states_45,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\000\240\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\000\040\071\000"},
|
||||||
{302, "lambdef", 0, 5, states_46,
|
{302, "listmaker", 0, 5, states_46,
|
||||||
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\040\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{303, "trailer", 0, 7, states_47,
|
{303, "lambdef", 0, 5, states_47,
|
||||||
|
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000"},
|
||||||
|
{304, "trailer", 0, 7, states_48,
|
||||||
"\000\000\001\000\000\000\020\000\000\000\000\000\000\040\000\000"},
|
"\000\000\001\000\000\000\020\000\000\000\000\000\000\040\000\000"},
|
||||||
{304, "subscriptlist", 0, 3, states_48,
|
{305, "subscriptlist", 0, 3, states_49,
|
||||||
"\000\120\001\000\000\000\020\000\000\200\000\000\060\242\074\000"},
|
"\000\120\001\000\000\000\020\000\000\200\000\000\060\042\271\000"},
|
||||||
{305, "subscript", 0, 7, states_49,
|
{306, "subscript", 0, 7, states_50,
|
||||||
"\000\120\001\000\000\000\020\000\000\200\000\000\060\242\074\000"},
|
"\000\120\001\000\000\000\020\000\000\200\000\000\060\042\271\000"},
|
||||||
{306, "sliceop", 0, 3, states_50,
|
{307, "sliceop", 0, 3, states_51,
|
||||||
"\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
"\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
||||||
{307, "exprlist", 0, 3, states_51,
|
{308, "exprlist", 0, 3, states_52,
|
||||||
"\000\020\001\000\000\000\000\000\000\000\000\000\060\242\034\000"},
|
"\000\020\001\000\000\000\000\000\000\000\000\000\060\042\071\000"},
|
||||||
{308, "testlist", 0, 3, states_52,
|
{309, "testlist", 0, 3, states_53,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{309, "dictmaker", 0, 5, states_53,
|
{310, "dictmaker", 0, 5, states_54,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{310, "classdef", 0, 8, states_54,
|
{311, "classdef", 0, 8, states_55,
|
||||||
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004"},
|
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020"},
|
||||||
{311, "arglist", 0, 8, states_55,
|
{312, "arglist", 0, 8, states_56,
|
||||||
"\000\020\201\001\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\201\001\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
{312, "argument", 0, 4, states_56,
|
{313, "argument", 0, 4, states_57,
|
||||||
"\000\020\001\000\000\000\000\000\000\200\000\000\060\242\074\000"},
|
"\000\020\001\000\000\000\000\000\000\200\000\000\060\042\271\000"},
|
||||||
|
{314, "list_iter", 0, 2, states_58,
|
||||||
|
"\000\000\000\000\000\000\000\200\010\000\000\000\000\000\000\000"},
|
||||||
|
{315, "list_for", 0, 6, states_59,
|
||||||
|
"\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000"},
|
||||||
|
{316, "list_if", 0, 4, states_60,
|
||||||
|
"\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000"},
|
||||||
};
|
};
|
||||||
static label labels[124] = {
|
static label labels[128] = {
|
||||||
{0, "EMPTY"},
|
{0, "EMPTY"},
|
||||||
{256, 0},
|
{256, 0},
|
||||||
{4, 0},
|
{4, 0},
|
||||||
|
@ -1349,7 +1440,7 @@ static label labels[124] = {
|
||||||
{264, 0},
|
{264, 0},
|
||||||
{0, 0},
|
{0, 0},
|
||||||
{258, 0},
|
{258, 0},
|
||||||
{308, 0},
|
{309, 0},
|
||||||
{259, 0},
|
{259, 0},
|
||||||
{1, "def"},
|
{1, "def"},
|
||||||
{1, 0},
|
{1, 0},
|
||||||
|
@ -1379,7 +1470,7 @@ static label labels[124] = {
|
||||||
{280, 0},
|
{280, 0},
|
||||||
{1, "print"},
|
{1, "print"},
|
||||||
{1, "del"},
|
{1, "del"},
|
||||||
{307, 0},
|
{308, 0},
|
||||||
{1, "pass"},
|
{1, "pass"},
|
||||||
{272, 0},
|
{272, 0},
|
||||||
{273, 0},
|
{273, 0},
|
||||||
|
@ -1402,7 +1493,7 @@ static label labels[124] = {
|
||||||
{283, 0},
|
{283, 0},
|
||||||
{284, 0},
|
{284, 0},
|
||||||
{285, 0},
|
{285, 0},
|
||||||
{310, 0},
|
{311, 0},
|
||||||
{1, "if"},
|
{1, "if"},
|
||||||
{1, "elif"},
|
{1, "elif"},
|
||||||
{1, "else"},
|
{1, "else"},
|
||||||
|
@ -1416,7 +1507,7 @@ static label labels[124] = {
|
||||||
{6, 0},
|
{6, 0},
|
||||||
{289, 0},
|
{289, 0},
|
||||||
{1, "or"},
|
{1, "or"},
|
||||||
{302, 0},
|
{303, 0},
|
||||||
{290, 0},
|
{290, 0},
|
||||||
{1, "and"},
|
{1, "and"},
|
||||||
{1, "not"},
|
{1, "not"},
|
||||||
|
@ -1448,26 +1539,30 @@ static label labels[124] = {
|
||||||
{32, 0},
|
{32, 0},
|
||||||
{300, 0},
|
{300, 0},
|
||||||
{301, 0},
|
{301, 0},
|
||||||
{303, 0},
|
{304, 0},
|
||||||
{9, 0},
|
{9, 0},
|
||||||
|
{302, 0},
|
||||||
{10, 0},
|
{10, 0},
|
||||||
{26, 0},
|
{26, 0},
|
||||||
{309, 0},
|
{310, 0},
|
||||||
{27, 0},
|
{27, 0},
|
||||||
{25, 0},
|
{25, 0},
|
||||||
{2, 0},
|
{2, 0},
|
||||||
{3, 0},
|
{3, 0},
|
||||||
|
{314, 0},
|
||||||
{1, "lambda"},
|
{1, "lambda"},
|
||||||
{311, 0},
|
{312, 0},
|
||||||
{304, 0},
|
|
||||||
{305, 0},
|
{305, 0},
|
||||||
{306, 0},
|
{306, 0},
|
||||||
|
{307, 0},
|
||||||
{1, "class"},
|
{1, "class"},
|
||||||
{312, 0},
|
{313, 0},
|
||||||
|
{315, 0},
|
||||||
|
{316, 0},
|
||||||
};
|
};
|
||||||
grammar _PyParser_Grammar = {
|
grammar _PyParser_Grammar = {
|
||||||
57,
|
61,
|
||||||
dfas,
|
dfas,
|
||||||
{124, labels},
|
{128, labels},
|
||||||
256
|
256
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue