Skip to content

Instantly share code, notes, and snippets.

@breandan
Last active October 15, 2023 19:06
Show Gist options
  • Save breandan/dd76ff71ff8c7247c036eaaecf32a92b to your computer and use it in GitHub Desktop.
Save breandan/dd76ff71ff8c7247c036eaaecf32a92b to your computer and use it in GitHub Desktop.
Example of Python-Levenshtein ball of radius 2 around `NUMBER + NEWLINE`.
Constructing ∩-grammar took: 1381ms
∩-grammar has 383551 total productions
Removed 292478 useless productions.
Removed 80128 useless productions.
Removed 7536 useless productions.
Removed 1898 useless productions.
Removed 667 useless productions.
Removed 169 useless productions.
Removed 10 useless productions.
Removed 0 useless productions.
Disabling nonterminal stubs!
∩-grammar has 1059 useful productions
Postprocessing took 86500ms
LEV ∩ CFG grammar:
| F.ε → ε | [q_1/0,Aug_Assign,q_2/1] → **= | START → [q_0/0,Stmt_Or_Newline,q_1/1] [q_1/1,Stmts_Or_Newlines,q_3/2] |
| ε+ → ε | [q_1/0,Aug_Assign,q_2/1] → //= | START → [q_0/0,Stmt_Or_Newline,q_2/1] [q_2/1,Stmts_Or_Newlines,q_3/2] |
| ε+ → ε+ ε+ | [q_1/0,Aug_Assign,q_2/1] → [q_1/0,Aug_Assign,q_2/1] ε+ | START → [q_0/0,Stmt_Or_Newline,q_2/2] [q_2/2,Stmts_Or_Newlines,q_3/2] |
| [q_1/0,Dot,q_1/1] → . | [q_1/0,Aug_Assign,q_2/1] → ε+ [q_1/0,Aug_Assign,q_2/1] | START → [q_0/0,Stmt_Or_Newline,q_3/1] [q_3/1,Stmts_Or_Newlines,q_3/2] |
| [q_1/0,Dot,q_1/1] → [q_1/0,Dot,q_1/1] ε+ | [q_2/1,Arith_Expr,q_2/2] → ... | START → [q_0/0,Stmt_Or_Newline,q_2/1] [q_2/1,Stmts_Or_Newlines,q_3/1] |
| [q_1/0,Dot,q_1/1] → ε+ [q_1/0,Dot,q_1/1] | [q_2/1,Arith_Expr,q_2/2] → NAME | START → [q_0/0,Stmt_Or_Newline,q_2/1] [q_2/1,Stmts_Or_Newlines,q_4/2] |
| [q_1/0,Dot,q_2/1] → . | [q_2/1,Arith_Expr,q_2/2] → None | START → [q_0/0,Stmt_Or_Newline,q_3/1] [q_3/1,Stmts_Or_Newlines,q_4/2] |
| [q_1/0,Dot,q_2/1] → [q_1/0,Dot,q_2/1] ε+ | [q_2/1,Arith_Expr,q_2/2] → True | [q_1/1,Yield_Arg,q_2/2] → ... |
| [q_1/0,Dot,q_2/1] → ε+ [q_1/0,Dot,q_2/1] | [q_2/1,Arith_Expr,q_2/2] → False | [q_1/1,Yield_Arg,q_2/2] → NAME |
| [q_1/1,Atom,q_2/2] → ... | [q_2/1,Arith_Expr,q_2/2] → NUMBER | [q_1/1,Yield_Arg,q_2/2] → None |
| [q_1/1,Atom,q_2/2] → NAME | [q_2/1,Arith_Expr,q_2/2] → STRING | [q_1/1,Yield_Arg,q_2/2] → True |
| [q_1/1,Atom,q_2/2] → None | [q_2/1,Arith_Expr,q_2/2] → [q_2/1,Arith_Expr,q_2/2] ε+ | [q_1/1,Yield_Arg,q_2/2] → False |
| [q_1/1,Atom,q_2/2] → True | [q_2/1,Arith_Expr,q_2/2] → ε+ [q_2/1,Arith_Expr,q_2/2] | [q_1/1,Yield_Arg,q_2/2] → NUMBER |
| [q_1/1,Atom,q_2/2] → False | [q_2/1,Shift_Expr,q_2/2] → ... | [q_1/1,Yield_Arg,q_2/2] → STRING |
| [q_1/1,Atom,q_2/2] → NUMBER | [q_2/1,Shift_Expr,q_2/2] → NAME | [q_1/1,Yield_Arg,q_2/2] → [q_1/1,Yield_Arg,q_2/2] ε+ |
| [q_1/1,Atom,q_2/2] → STRING | [q_2/1,Shift_Expr,q_2/2] → None | [q_1/1,Yield_Arg,q_2/2] → ε+ [q_1/1,Yield_Arg,q_2/2] |
| [q_1/1,Atom,q_2/2] → [q_1/1,Atom,q_2/2] ε+ | [q_2/1,Shift_Expr,q_2/2] → True | [q_1/1,Yield_Arg,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_1/1,Atom,q_2/2] → ε+ [q_1/1,Atom,q_2/2] | [q_2/1,Shift_Expr,q_2/2] → False | [q_1/0,Comp_Op.Expr,q_2/2] → [q_1/0,Comp_Op,q_1/1] [q_1/1,Expr,q_2/2] |
| [q_2/0,Term,q_2/1] → ... | [q_2/1,Shift_Expr,q_2/2] → NUMBER | [q_1/0,Comp_Op.Expr,q_2/2] → [q_1/0,Comp_Op,q_2/1] [q_2/1,Expr,q_2/2] |
| [q_2/0,Term,q_2/1] → NAME | [q_2/1,Shift_Expr,q_2/2] → STRING | [q_1/1,Arith_Expr,q_2/2] → ... |
| [q_2/0,Term,q_2/1] → None | [q_2/1,Shift_Expr,q_2/2] → [q_2/1,Shift_Expr,q_2/2] ε+ | [q_1/1,Arith_Expr,q_2/2] → NAME |
| [q_2/0,Term,q_2/1] → True | [q_2/1,Shift_Expr,q_2/2] → ε+ [q_2/1,Shift_Expr,q_2/2] | [q_1/1,Arith_Expr,q_2/2] → None |
| [q_2/0,Term,q_2/1] → False | [q_0/0,Arith_Expr,q_1/0] → NUMBER | [q_1/1,Arith_Expr,q_2/2] → True |
| [q_2/0,Term,q_2/1] → NUMBER | [q_0/0,Arith_Expr,q_1/0] → [q_0/0,Arith_Expr,q_1/0] ε+ | [q_1/1,Arith_Expr,q_2/2] → False |
| [q_2/0,Term,q_2/1] → STRING | [q_0/0,Arith_Expr,q_1/0] → ε+ [q_0/0,Arith_Expr,q_1/0] | [q_1/1,Arith_Expr,q_2/2] → NUMBER |
| [q_2/0,Term,q_2/1] → [q_2/0,Term,q_2/1] ε+ | [q_0/0,Comparison,q_1/0] → NUMBER | [q_1/1,Arith_Expr,q_2/2] → STRING |
| [q_2/0,Term,q_2/1] → ε+ [q_2/0,Term,q_2/1] | [q_0/0,Comparison,q_1/0] → [q_0/0,Comparison,q_1/0] ε+ | [q_1/1,Arith_Expr,q_2/2] → [q_1/1,Arith_Expr,q_2/2] ε+ |
| [q_2/0,Term,q_3/1] → ... | [q_0/0,Comparison,q_1/0] → ε+ [q_0/0,Comparison,q_1/0] | [q_1/1,Arith_Expr,q_2/2] → ε+ [q_1/1,Arith_Expr,q_2/2] |
| [q_2/0,Term,q_3/1] → NAME | [q_0/0,Open_Paren,q_0/1] → ( | [q_1/1,Arith_Expr,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_2/0,Term,q_3/1] → None | [q_0/0,Open_Paren,q_0/1] → [q_0/0,Open_Paren,q_0/1] ε+ | [q_1/1,Shift_Expr,q_2/2] → ... |
| [q_2/0,Term,q_3/1] → True | [q_0/0,Open_Paren,q_0/1] → ε+ [q_0/0,Open_Paren,q_0/1] | [q_1/1,Shift_Expr,q_2/2] → NAME |
| [q_2/0,Term,q_3/1] → False | [q_0/0,Open_Paren,q_1/1] → ( | [q_1/1,Shift_Expr,q_2/2] → None |
| [q_2/0,Term,q_3/1] → NUMBER | [q_0/0,Open_Paren,q_1/1] → [q_0/0,Open_Paren,q_1/1] ε+ | [q_1/1,Shift_Expr,q_2/2] → True |
| [q_2/0,Term,q_3/1] → STRING | [q_0/0,Open_Paren,q_1/1] → ε+ [q_0/0,Open_Paren,q_1/1] | [q_1/1,Shift_Expr,q_2/2] → False |
| [q_2/0,Term,q_3/1] → [q_2/0,Term,q_3/1] ε+ | [q_0/0,Shift_Expr,q_1/0] → NUMBER | [q_1/1,Shift_Expr,q_2/2] → NUMBER |
| [q_2/0,Term,q_3/1] → ε+ [q_2/0,Term,q_3/1] | [q_0/0,Shift_Expr,q_1/0] → [q_0/0,Shift_Expr,q_1/0] ε+ | [q_1/1,Shift_Expr,q_2/2] → STRING |
| [q_2/1,Atom,q_2/2] → ... | [q_0/0,Shift_Expr,q_1/0] → ε+ [q_0/0,Shift_Expr,q_1/0] | [q_1/1,Shift_Expr,q_2/2] → [q_1/1,Shift_Expr,q_2/2] ε+ |
| [q_2/1,Atom,q_2/2] → NAME | [q_0/0,Small_Stmt,q_1/0] → NUMBER | [q_1/1,Shift_Expr,q_2/2] → ε+ [q_1/1,Shift_Expr,q_2/2] |
| [q_2/1,Atom,q_2/2] → None | [q_0/0,Small_Stmt,q_1/0] → [q_0/0,Small_Stmt,q_1/0] ε+ | [q_1/1,Shift_Expr,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_2/1,Atom,q_2/2] → True | [q_0/0,Small_Stmt,q_1/0] → ε+ [q_0/0,Small_Stmt,q_1/0] | [q_2/1,Test_Or_Star_Exprs,q_2/2] → ... |
| [q_2/1,Atom,q_2/2] → False | [q_0/1,Arith_Expr,q_1/1] → NUMBER | [q_2/1,Test_Or_Star_Exprs,q_2/2] → NAME |
| [q_2/1,Atom,q_2/2] → NUMBER | [q_0/1,Arith_Expr,q_1/1] → [q_0/1,Arith_Expr,q_1/1] ε+ | [q_2/1,Test_Or_Star_Exprs,q_2/2] → None |
| [q_2/1,Atom,q_2/2] → STRING | [q_0/1,Arith_Expr,q_1/1] → ε+ [q_0/1,Arith_Expr,q_1/1] | [q_2/1,Test_Or_Star_Exprs,q_2/2] → True |
| [q_2/1,Atom,q_2/2] → [q_2/1,Atom,q_2/2] ε+ | [q_1/0,Open_Paren,q_1/1] → ( | [q_2/1,Test_Or_Star_Exprs,q_2/2] → False |
| [q_2/1,Atom,q_2/2] → ε+ [q_2/1,Atom,q_2/2] | [q_1/0,Open_Paren,q_1/1] → [q_1/0,Open_Paren,q_1/1] ε+ | [q_2/1,Test_Or_Star_Exprs,q_2/2] → NUMBER |
| [q_2/1,Expr,q_2/2] → ... | [q_1/0,Open_Paren,q_1/1] → ε+ [q_1/0,Open_Paren,q_1/1] | [q_2/1,Test_Or_Star_Exprs,q_2/2] → STRING |
| [q_2/1,Expr,q_2/2] → NAME | [q_1/0,Open_Paren,q_2/1] → ( | [q_2/1,Test_Or_Star_Exprs,q_2/2] → [q_2/1,Test_Or_Star_Exprs,q_2/2] ε+ |
| [q_2/1,Expr,q_2/2] → None | [q_1/0,Open_Paren,q_2/1] → [q_1/0,Open_Paren,q_2/1] ε+ | [q_2/1,Test_Or_Star_Exprs,q_2/2] → ε+ [q_2/1,Test_Or_Star_Exprs,q_2/2] |
| [q_2/1,Expr,q_2/2] → True | [q_1/0,Open_Paren,q_2/1] → ε+ [q_1/0,Open_Paren,q_2/1] | [q_2/1,Testlist_Star_Expr,q_2/2] → ... |
| [q_2/1,Expr,q_2/2] → False | [q_1/0,Or_Bool_Op,q_1/1] → or | [q_2/1,Testlist_Star_Expr,q_2/2] → NAME |
| [q_2/1,Expr,q_2/2] → NUMBER | [q_1/0,Or_Bool_Op,q_1/1] → [q_1/0,Or_Bool_Op,q_1/1] ε+ | [q_2/1,Testlist_Star_Expr,q_2/2] → None |
| [q_2/1,Expr,q_2/2] → STRING | [q_1/0,Or_Bool_Op,q_1/1] → ε+ [q_1/0,Or_Bool_Op,q_1/1] | [q_2/1,Testlist_Star_Expr,q_2/2] → True |
| [q_2/1,Expr,q_2/2] → [q_2/1,Expr,q_2/2] ε+ | [q_1/0,Or_Bool_Op,q_2/1] → or | [q_2/1,Testlist_Star_Expr,q_2/2] → False |
| [q_2/1,Expr,q_2/2] → ε+ [q_2/1,Expr,q_2/2] | [q_1/0,Or_Bool_Op,q_2/1] → [q_1/0,Or_Bool_Op,q_2/1] ε+ | [q_2/1,Testlist_Star_Expr,q_2/2] → NUMBER |
| [q_2/1,Term,q_2/2] → ... | [q_1/0,Or_Bool_Op,q_2/1] → ε+ [q_1/0,Or_Bool_Op,q_2/1] | [q_2/1,Testlist_Star_Expr,q_2/2] → STRING |
| [q_2/1,Term,q_2/2] → NAME | [q_1/1,Many_Names,q_2/2] → NAME | [q_2/1,Testlist_Star_Expr,q_2/2] → [q_2/1,Testlist_Star_Expr,q_2/2] ε+ |
| [q_2/1,Term,q_2/2] → None | [q_1/1,Many_Names,q_2/2] → [q_1/1,Many_Names,q_2/2] ε+ | [q_2/1,Testlist_Star_Expr,q_2/2] → ε+ [q_2/1,Testlist_Star_Expr,q_2/2] |
| [q_2/1,Term,q_2/2] → True | [q_1/1,Many_Names,q_2/2] → ε+ [q_1/1,Many_Names,q_2/2] | [q_0/0,Test_Or_Star_Exprs,q_1/0] → NUMBER |
| [q_2/1,Term,q_2/2] → False | [q_1/1,Yield_Expr,q_2/2] → yield | [q_0/0,Test_Or_Star_Exprs,q_1/0] → [q_0/0,Test_Or_Star_Exprs,q_1/0] ε+ |
| [q_2/1,Term,q_2/2] → NUMBER | [q_1/1,Yield_Expr,q_2/2] → [q_1/1,Yield_Expr,q_2/2] ε+ | [q_0/0,Test_Or_Star_Exprs,q_1/0] → ε+ [q_0/0,Test_Or_Star_Exprs,q_1/0] |
| [q_2/1,Term,q_2/2] → STRING | [q_1/1,Yield_Expr,q_2/2] → ε+ [q_1/1,Yield_Expr,q_2/2] | [q_0/0,Testlist_Star_Expr,q_1/0] → NUMBER |
| [q_2/1,Term,q_2/2] → [q_2/1,Term,q_2/2] ε+ | [q_2/0,Open_Paren,q_2/1] → ( | [q_0/0,Testlist_Star_Expr,q_1/0] → [q_0/0,Testlist_Star_Expr,q_1/0] ε+ |
| [q_2/1,Term,q_2/2] → ε+ [q_2/1,Term,q_2/2] | [q_2/0,Open_Paren,q_2/1] → [q_2/0,Open_Paren,q_2/1] ε+ | [q_0/0,Testlist_Star_Expr,q_1/0] → ε+ [q_0/0,Testlist_Star_Expr,q_1/0] |
| [q_2/1,Test,q_2/2] → ... | [q_2/0,Open_Paren,q_2/1] → ε+ [q_2/0,Open_Paren,q_2/1] | [q_0/1,Test_Or_Star_Exprs,q_1/1] → NUMBER |
| [q_2/1,Test,q_2/2] → NAME | [q_2/1,Yield_Expr,q_2/2] → yield | [q_0/1,Test_Or_Star_Exprs,q_1/1] → [q_0/1,Test_Or_Star_Exprs,q_1/1] ε+ |
| [q_2/1,Test,q_2/2] → None | [q_2/1,Yield_Expr,q_2/2] → [q_2/1,Yield_Expr,q_2/2] ε+ | [q_0/1,Test_Or_Star_Exprs,q_1/1] → ε+ [q_0/1,Test_Or_Star_Exprs,q_1/1] |
| [q_2/1,Test,q_2/2] → True | [q_2/1,Yield_Expr,q_2/2] → ε+ [q_2/1,Yield_Expr,q_2/2] | [q_1/1,Close_Curl_Bracket,q_2/2] → } |
| [q_2/1,Test,q_2/2] → False | [q_2/1,Small_Stmts,q_2/2] → ... | [q_1/1,Close_Curl_Bracket,q_2/2] → [q_1/1,Close_Curl_Bracket,q_2/2] ε+ |
| [q_2/1,Test,q_2/2] → NUMBER | [q_2/1,Small_Stmts,q_2/2] → pass | [q_1/1,Close_Curl_Bracket,q_2/2] → ε+ [q_1/1,Close_Curl_Bracket,q_2/2] |
| [q_2/1,Test,q_2/2] → STRING | [q_2/1,Small_Stmts,q_2/2] → NAME | [q_2/1,Close_Curl_Bracket,q_2/2] → } |
| [q_2/1,Test,q_2/2] → [q_2/1,Test,q_2/2] ε+ | [q_2/1,Small_Stmts,q_2/2] → None | [q_2/1,Close_Curl_Bracket,q_2/2] → [q_2/1,Close_Curl_Bracket,q_2/2] ε+ |
| [q_2/1,Test,q_2/2] → ε+ [q_2/1,Test,q_2/2] | [q_2/1,Small_Stmts,q_2/2] → True | [q_2/1,Close_Curl_Bracket,q_2/2] → ε+ [q_2/1,Close_Curl_Bracket,q_2/2] |
| [q_0/0,Atom,q_1/0] → NUMBER | [q_2/1,Small_Stmts,q_2/2] → break | [q_1/1,Small_Stmts,q_2/2] → ... |
| [q_0/0,Atom,q_1/0] → [q_0/0,Atom,q_1/0] ε+ | [q_2/1,Small_Stmts,q_2/2] → raise | [q_1/1,Small_Stmts,q_2/2] → pass |
| [q_0/0,Atom,q_1/0] → ε+ [q_0/0,Atom,q_1/0] | [q_2/1,Small_Stmts,q_2/2] → False | [q_1/1,Small_Stmts,q_2/2] → NAME |
| [q_0/0,Expr,q_1/0] → NUMBER | [q_2/1,Small_Stmts,q_2/2] → yield | [q_1/1,Small_Stmts,q_2/2] → None |
| [q_0/0,Expr,q_1/0] → [q_0/0,Expr,q_1/0] ε+ | [q_2/1,Small_Stmts,q_2/2] → return | [q_1/1,Small_Stmts,q_2/2] → True |
| [q_0/0,Expr,q_1/0] → ε+ [q_0/0,Expr,q_1/0] | [q_2/1,Small_Stmts,q_2/2] → NUMBER | [q_1/1,Small_Stmts,q_2/2] → break |
| [q_0/0,Term,q_1/0] → NUMBER | [q_2/1,Small_Stmts,q_2/2] → STRING | [q_1/1,Small_Stmts,q_2/2] → raise |
| [q_0/0,Term,q_1/0] → [q_0/0,Term,q_1/0] ε+ | [q_2/1,Small_Stmts,q_2/2] → continue | [q_1/1,Small_Stmts,q_2/2] → False |
| [q_0/0,Term,q_1/0] → ε+ [q_0/0,Term,q_1/0] | [q_2/1,Small_Stmts,q_2/2] → [q_2/1,Small_Stmts,q_2/2] ε+ | [q_1/1,Small_Stmts,q_2/2] → yield |
| [q_0/1,Atom,q_1/1] → NUMBER | [q_2/1,Small_Stmts,q_2/2] → ε+ [q_2/1,Small_Stmts,q_2/2] | [q_1/1,Small_Stmts,q_2/2] → return |
| [q_0/1,Atom,q_1/1] → [q_0/1,Atom,q_1/1] ε+ | [q_0/0,Del_Keyword,q_0/1] → del | [q_1/1,Small_Stmts,q_2/2] → NUMBER |
| [q_0/1,Atom,q_1/1] → ε+ [q_0/1,Atom,q_1/1] | [q_0/0,Del_Keyword,q_0/1] → [q_0/0,Del_Keyword,q_0/1] ε+ | [q_1/1,Small_Stmts,q_2/2] → STRING |
| [q_0/1,Expr,q_1/1] → NUMBER | [q_0/0,Del_Keyword,q_0/1] → ε+ [q_0/0,Del_Keyword,q_0/1] | [q_1/1,Small_Stmts,q_2/2] → continue |
| [q_0/1,Expr,q_1/1] → [q_0/1,Expr,q_1/1] ε+ | [q_0/0,Del_Keyword,q_1/1] → del | [q_1/1,Small_Stmts,q_2/2] → [q_1/1,Small_Stmts,q_2/2] ε+ |
| [q_0/1,Expr,q_1/1] → ε+ [q_0/1,Expr,q_1/1] | [q_0/0,Del_Keyword,q_1/1] → [q_0/0,Del_Keyword,q_1/1] ε+ | [q_1/1,Small_Stmts,q_2/2] → ε+ [q_1/1,Small_Stmts,q_2/2] |
| [q_0/1,Test,q_1/1] → NUMBER | [q_0/0,Del_Keyword,q_1/1] → ε+ [q_0/0,Del_Keyword,q_1/1] | [q_1/1,Small_Stmts,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_0/1,Test,q_1/1] → [q_0/1,Test,q_1/1] ε+ | [q_0/0,Not_Bool_Op,q_0/1] → not | [q_1/0,Annotated_Assign,q_2/2] → [q_1/0,Annotated_Assign,q_2/2] ε+ |
| [q_0/1,Test,q_1/1] → ε+ [q_0/1,Test,q_1/1] | [q_0/0,Not_Bool_Op,q_0/1] → [q_0/0,Not_Bool_Op,q_0/1] ε+ | [q_1/0,Annotated_Assign,q_2/2] → ε+ [q_1/0,Annotated_Assign,q_2/2] |
| [q_1/0,Colon,q_1/1] → : | [q_0/0,Not_Bool_Op,q_0/1] → ε+ [q_0/0,Not_Bool_Op,q_0/1] | [q_1/0,Annotated_Assign,q_2/2] → [q_1/0,Colon,q_1/1] [q_1/1,Test,q_2/2] |
| [q_1/0,Colon,q_1/1] → [q_1/0,Colon,q_1/1] ε+ | [q_0/0,Not_Bool_Op,q_1/1] → not | [q_1/0,Annotated_Assign,q_2/2] → [q_1/0,Colon,q_2/1] [q_2/1,Test,q_2/2] |
| [q_1/0,Colon,q_1/1] → ε+ [q_1/0,Colon,q_1/1] | [q_0/0,Not_Bool_Op,q_1/1] → [q_0/0,Not_Bool_Op,q_1/1] ε+ | [q_1/0,Arith_Op.Term,q_2/2] → [q_1/0,Arith_Op,q_1/1] [q_1/1,Term,q_2/2] |
| [q_1/0,Colon,q_2/1] → : | [q_0/0,Not_Bool_Op,q_1/1] → ε+ [q_0/0,Not_Bool_Op,q_1/1] | [q_1/0,Arith_Op.Term,q_2/2] → [q_1/0,Arith_Op,q_2/0] [q_2/0,Term,q_2/2] |
| [q_1/0,Colon,q_2/1] → [q_1/0,Colon,q_2/1] ε+ | [q_0/0,Small_Stmts,q_1/0] → NUMBER | [q_1/0,Arith_Op.Term,q_2/2] → [q_1/0,Arith_Op,q_2/1] [q_2/1,Term,q_2/2] |
| [q_1/0,Colon,q_2/1] → ε+ [q_1/0,Colon,q_2/1] | [q_0/0,Small_Stmts,q_1/0] → [q_0/0,Small_Stmts,q_1/0] ε+ | [q_1/0,Arith_Op.Term,q_2/1] → [q_1/0,Arith_Op,q_2/0] [q_2/0,Term,q_2/1] |
| [q_1/0,Comma,q_1/1] → , | [q_0/0,Small_Stmts,q_1/0] → ε+ [q_0/0,Small_Stmts,q_1/0] | [q_1/0,Arith_Op.Term,q_3/1] → [q_1/0,Arith_Op,q_2/0] [q_2/0,Term,q_3/1] |
| [q_1/0,Comma,q_1/1] → [q_1/0,Comma,q_1/1] ε+ | [q_0/1,Small_Stmts,q_1/1] → NUMBER | [q_1/1,Arith_Op.Term,q_2/2] → [q_1/1,Arith_Op,q_2/1] [q_2/1,Term,q_2/2] |
| [q_1/0,Comma,q_1/1] → ε+ [q_1/0,Comma,q_1/1] | [q_0/1,Small_Stmts,q_1/1] → [q_0/1,Small_Stmts,q_1/1] ε+ | [q_0/0,Arith_Expr,q_1/1] → ... |
| [q_1/0,Comma,q_2/1] → , | [q_0/1,Small_Stmts,q_1/1] → ε+ [q_0/1,Small_Stmts,q_1/1] | [q_0/0,Arith_Expr,q_1/1] → NAME |
| [q_1/0,Comma,q_2/1] → [q_1/0,Comma,q_2/1] ε+ | [q_1/0,And_Bool_Op,q_1/1] → and | [q_0/0,Arith_Expr,q_1/1] → None |
| [q_1/0,Comma,q_2/1] → ε+ [q_1/0,Comma,q_2/1] | [q_1/0,And_Bool_Op,q_1/1] → [q_1/0,And_Bool_Op,q_1/1] ε+ | [q_0/0,Arith_Expr,q_1/1] → True |
| [q_1/0,Or_Op,q_1/1] → OR | [q_1/0,And_Bool_Op,q_1/1] → ε+ [q_1/0,And_Bool_Op,q_1/1] | [q_0/0,Arith_Expr,q_1/1] → False |
| [q_1/0,Or_Op,q_1/1] → [q_1/0,Or_Op,q_1/1] ε+ | [q_1/0,And_Bool_Op,q_2/1] → and | [q_0/0,Arith_Expr,q_1/1] → STRING |
| [q_1/0,Or_Op,q_1/1] → ε+ [q_1/0,Or_Op,q_1/1] | [q_1/0,And_Bool_Op,q_2/1] → [q_1/0,And_Bool_Op,q_2/1] ε+ | [q_0/0,Arith_Expr,q_1/1] → [q_0/0,Arith_Expr,q_1/1] ε+ |
| [q_1/0,Or_Op,q_2/1] → OR | [q_1/0,And_Bool_Op,q_2/1] → ε+ [q_1/0,And_Bool_Op,q_2/1] | [q_0/0,Arith_Expr,q_1/1] → ε+ [q_0/0,Arith_Expr,q_1/1] |
| [q_1/0,Or_Op,q_2/1] → [q_1/0,Or_Op,q_2/1] ε+ | [q_1/1,Close_Paren,q_2/2] → ) | [q_0/0,Arith_Expr,q_1/1] → [q_0/0,Unary_Op,q_0/1] [q_0/1,Factor,q_1/1] |
| [q_1/0,Or_Op,q_2/1] → ε+ [q_1/0,Or_Op,q_2/1] | [q_1/1,Close_Paren,q_2/2] → [q_1/1,Close_Paren,q_2/2] ε+ | [q_0/0,Arith_Expr,q_1/1] → [q_0/0,Await_Keyword,q_0/1] [q_0/1,Atom,q_1/1] |
| [q_1/1,Comma,q_2/2] → , | [q_1/1,Close_Paren,q_2/2] → ε+ [q_1/1,Close_Paren,q_2/2] | [q_0/1,Expr,q_2/2] → [q_0/1,Expr,q_2/2] ε+ |
| [q_1/1,Comma,q_2/2] → [q_1/1,Comma,q_2/2] ε+ | [q_1/1,Simple_Name,q_2/2] → NAME | [q_0/1,Expr,q_2/2] → ε+ [q_0/1,Expr,q_2/2] |
| [q_1/1,Comma,q_2/2] → ε+ [q_1/1,Comma,q_2/2] | [q_1/1,Simple_Name,q_2/2] → [q_1/1,Simple_Name,q_2/2] ε+ | [q_0/1,Expr,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_2/1,Comma,q_2/2] → , | [q_1/1,Simple_Name,q_2/2] → ε+ [q_1/1,Simple_Name,q_2/2] | [q_0/1,Test,q_2/2] → [q_0/1,Test,q_2/2] ε+ |
| [q_2/1,Comma,q_2/2] → [q_2/1,Comma,q_2/2] ε+ | [q_2/1,Close_Paren,q_2/2] → ) | [q_0/1,Test,q_2/2] → ε+ [q_0/1,Test,q_2/2] |
| [q_2/1,Comma,q_2/2] → ε+ [q_2/1,Comma,q_2/2] | [q_2/1,Close_Paren,q_2/2] → [q_2/1,Close_Paren,q_2/2] ε+ | [q_0/1,Test,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_2/1,Factor,q_2/2] → ... | [q_2/1,Close_Paren,q_2/2] → ε+ [q_2/1,Close_Paren,q_2/2] | [q_1/0,Or_Op.Xor_Expr,q_2/2] → [q_1/0,Or_Op,q_1/1] [q_1/1,Xor_Expr,q_2/2] |
| [q_2/1,Factor,q_2/2] → NAME | [q_2/1,F.Endmarker,q_3/2] → Endmarker | [q_1/0,Or_Op.Xor_Expr,q_2/2] → [q_1/0,Or_Op,q_2/1] [q_2/1,Xor_Expr,q_2/2] |
| [q_2/1,Factor,q_2/2] → None | [q_2/1,F.Endmarker,q_3/2] → [q_2/1,F.Endmarker,q_3/2] ε+ | [q_1/0,Xor_Op.And_Expr,q_2/2] → [q_1/0,Xor_Op,q_1/1] [q_1/1,And_Expr,q_2/2] |
| [q_2/1,Factor,q_2/2] → True | [q_2/1,F.Endmarker,q_3/2] → ε+ [q_2/1,F.Endmarker,q_3/2] | [q_1/0,Xor_Op.And_Expr,q_2/2] → [q_1/0,Xor_Op,q_2/1] [q_2/1,And_Expr,q_2/2] |
| [q_2/1,Factor,q_2/2] → False | [q_2/1,Simple_Name,q_2/2] → NAME | [q_1/1,Testlist_Endcomma,q_2/2] → ... |
| [q_2/1,Factor,q_2/2] → NUMBER | [q_2/1,Simple_Name,q_2/2] → [q_2/1,Simple_Name,q_2/2] ε+ | [q_1/1,Testlist_Endcomma,q_2/2] → NAME |
| [q_2/1,Factor,q_2/2] → STRING | [q_2/1,Simple_Name,q_2/2] → ε+ [q_2/1,Simple_Name,q_2/2] | [q_1/1,Testlist_Endcomma,q_2/2] → None |
| [q_2/1,Factor,q_2/2] → [q_2/1,Factor,q_2/2] ε+ | [q_3/1,F.Endmarker,q_3/2] → Endmarker | [q_1/1,Testlist_Endcomma,q_2/2] → True |
| [q_2/1,Factor,q_2/2] → ε+ [q_2/1,Factor,q_2/2] | [q_3/1,F.Endmarker,q_3/2] → [q_3/1,F.Endmarker,q_3/2] ε+ | [q_1/1,Testlist_Endcomma,q_2/2] → False |
| [q_0/1,Factor,q_1/1] → NUMBER | [q_3/1,F.Endmarker,q_3/2] → ε+ [q_3/1,F.Endmarker,q_3/2] | [q_1/1,Testlist_Endcomma,q_2/2] → NUMBER |
| [q_0/1,Factor,q_1/1] → [q_0/1,Factor,q_1/1] ε+ | [q_3/1,F.Endmarker,q_4/2] → Endmarker | [q_1/1,Testlist_Endcomma,q_2/2] → STRING |
| [q_0/1,Factor,q_1/1] → ε+ [q_0/1,Factor,q_1/1] | [q_3/1,F.Endmarker,q_4/2] → [q_3/1,F.Endmarker,q_4/2] ε+ | [q_1/1,Testlist_Endcomma,q_2/2] → [q_1/1,Testlist_Endcomma,q_2/2] ε+ |
| [q_1/0,And_Op,q_1/1] → & | [q_3/1,F.Endmarker,q_4/2] → ε+ [q_3/1,F.Endmarker,q_4/2] | [q_1/1,Testlist_Endcomma,q_2/2] → ε+ [q_1/1,Testlist_Endcomma,q_2/2] |
| [q_1/0,And_Op,q_1/1] → [q_1/0,And_Op,q_1/1] ε+ | [q_0/0,Await_Keyword,q_0/1] → await | [q_1/1,Testlist_Endcomma,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_1/0,And_Op,q_1/1] → ε+ [q_1/0,And_Op,q_1/1] | [q_0/0,Await_Keyword,q_0/1] → [q_0/0,Await_Keyword,q_0/1] ε+ | [q_0/1,Exprlist,q_2/2] → [q_0/1,Exprlist,q_2/2] ε+ |
| [q_1/0,And_Op,q_2/1] → & | [q_0/0,Await_Keyword,q_0/1] → ε+ [q_0/0,Await_Keyword,q_0/1] | [q_0/1,Exprlist,q_2/2] → ε+ [q_0/1,Exprlist,q_2/2] |
| [q_1/0,And_Op,q_2/1] → [q_1/0,And_Op,q_2/1] ε+ | [q_0/0,Await_Keyword,q_1/1] → await | [q_0/1,Exprlist,q_2/2] → [q_0/1,Generic_Exprs,q_1/1] [q_1/1,Comma,q_2/2] |
| [q_1/0,And_Op,q_2/1] → ε+ [q_1/0,And_Op,q_2/1] | [q_0/0,Await_Keyword,q_1/1] → [q_0/0,Await_Keyword,q_1/1] ε+ | [q_0/1,Exprlist,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_1/0,Xor_Op,q_1/1] → ^ | [q_0/0,Await_Keyword,q_1/1] → ε+ [q_0/0,Await_Keyword,q_1/1] | [q_0/1,Not_Test,q_2/2] → [q_0/1,Not_Test,q_2/2] ε+ |
| [q_1/0,Xor_Op,q_1/1] → [q_1/0,Xor_Op,q_1/1] ε+ | [q_0/0,Raise_Keyword,q_0/1] → raise | [q_0/1,Not_Test,q_2/2] → ε+ [q_0/1,Not_Test,q_2/2] |
| [q_1/0,Xor_Op,q_1/1] → ε+ [q_1/0,Xor_Op,q_1/1] | [q_0/0,Raise_Keyword,q_0/1] → [q_0/0,Raise_Keyword,q_0/1] ε+ | [q_0/1,Not_Test,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_1/0,Xor_Op,q_2/1] → ^ | [q_0/0,Raise_Keyword,q_0/1] → ε+ [q_0/0,Raise_Keyword,q_0/1] | [q_1/0,MulDiv_Op.Factor,q_2/2] → [q_1/0,MulDiv_Op,q_1/1] [q_1/1,Factor,q_2/2] |
| [q_1/0,Xor_Op,q_2/1] → [q_1/0,Xor_Op,q_2/1] ε+ | [q_0/0,Raise_Keyword,q_1/1] → raise | [q_1/0,MulDiv_Op.Factor,q_2/2] → [q_1/0,MulDiv_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_1/0,Xor_Op,q_2/1] → ε+ [q_1/0,Xor_Op,q_2/1] | [q_0/0,Raise_Keyword,q_1/1] → [q_0/0,Raise_Keyword,q_1/1] ε+ | [q_1/1,Test_Or_Star_Exprs,q_2/2] → ... |
| [q_1/0,Comp_Op,q_1/1] → < | [q_0/0,Raise_Keyword,q_1/1] → ε+ [q_0/0,Raise_Keyword,q_1/1] | [q_1/1,Test_Or_Star_Exprs,q_2/2] → NAME |
| [q_1/0,Comp_Op,q_1/1] → > | [q_0/0,Yield_Keyword,q_0/1] → yield | [q_1/1,Test_Or_Star_Exprs,q_2/2] → None |
| [q_1/0,Comp_Op,q_1/1] → == | [q_0/0,Yield_Keyword,q_0/1] → [q_0/0,Yield_Keyword,q_0/1] ε+ | [q_1/1,Test_Or_Star_Exprs,q_2/2] → True |
| [q_1/0,Comp_Op,q_1/1] → >= | [q_0/0,Yield_Keyword,q_0/1] → ε+ [q_0/0,Yield_Keyword,q_0/1] | [q_1/1,Test_Or_Star_Exprs,q_2/2] → False |
| [q_1/0,Comp_Op,q_1/1] → <= | [q_0/0,Yield_Keyword,q_1/1] → yield | [q_1/1,Test_Or_Star_Exprs,q_2/2] → NUMBER |
| [q_1/0,Comp_Op,q_1/1] → <> | [q_0/0,Yield_Keyword,q_1/1] → [q_0/0,Yield_Keyword,q_1/1] ε+ | [q_1/1,Test_Or_Star_Exprs,q_2/2] → STRING |
| [q_1/0,Comp_Op,q_1/1] → != | [q_0/0,Yield_Keyword,q_1/1] → ε+ [q_0/0,Yield_Keyword,q_1/1] | [q_1/1,Test_Or_Star_Exprs,q_2/2] → [q_1/1,Test_Or_Star_Exprs,q_2/2] ε+ |
| [q_1/0,Comp_Op,q_1/1] → in | [q_0/1,Generic_Exprs,q_1/1] → NUMBER | [q_1/1,Test_Or_Star_Exprs,q_2/2] → ε+ [q_1/1,Test_Or_Star_Exprs,q_2/2] |
| [q_1/0,Comp_Op,q_1/1] → is | [q_0/1,Generic_Exprs,q_1/1] → [q_0/1,Generic_Exprs,q_1/1] ε+ | [q_1/1,Test_Or_Star_Exprs,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_1/0,Comp_Op,q_1/1] → not_in | [q_0/1,Generic_Exprs,q_1/1] → ε+ [q_0/1,Generic_Exprs,q_1/1] | [q_1/1,Testlist_Star_Expr,q_2/2] → ... |
| [q_1/0,Comp_Op,q_1/1] → is_not | [q_0/1,Testlist_Comp,q_1/1] → NUMBER | [q_1/1,Testlist_Star_Expr,q_2/2] → NAME |
| [q_1/0,Comp_Op,q_1/1] → [q_1/0,Comp_Op,q_1/1] ε+ | [q_0/1,Testlist_Comp,q_1/1] → [q_0/1,Testlist_Comp,q_1/1] ε+ | [q_1/1,Testlist_Star_Expr,q_2/2] → None |
| [q_1/0,Comp_Op,q_1/1] → ε+ [q_1/0,Comp_Op,q_1/1] | [q_0/1,Testlist_Comp,q_1/1] → ε+ [q_0/1,Testlist_Comp,q_1/1] | [q_1/1,Testlist_Star_Expr,q_2/2] → True |
| [q_1/0,Comp_Op,q_2/1] → < | [q_2/0,Await_Keyword,q_2/1] → await | [q_1/1,Testlist_Star_Expr,q_2/2] → False |
| [q_1/0,Comp_Op,q_2/1] → > | [q_2/0,Await_Keyword,q_2/1] → [q_2/0,Await_Keyword,q_2/1] ε+ | [q_1/1,Testlist_Star_Expr,q_2/2] → NUMBER |
| [q_1/0,Comp_Op,q_2/1] → == | [q_2/0,Await_Keyword,q_2/1] → ε+ [q_2/0,Await_Keyword,q_2/1] | [q_1/1,Testlist_Star_Expr,q_2/2] → STRING |
| [q_1/0,Comp_Op,q_2/1] → >= | [q_0/0,Assert_Keyword,q_0/1] → assert | [q_1/1,Testlist_Star_Expr,q_2/2] → [q_1/1,Testlist_Star_Expr,q_2/2] ε+ |
| [q_1/0,Comp_Op,q_2/1] → <= | [q_0/0,Assert_Keyword,q_0/1] → [q_0/0,Assert_Keyword,q_0/1] ε+ | [q_1/1,Testlist_Star_Expr,q_2/2] → ε+ [q_1/1,Testlist_Star_Expr,q_2/2] |
| [q_1/0,Comp_Op,q_2/1] → <> | [q_0/0,Assert_Keyword,q_0/1] → ε+ [q_0/0,Assert_Keyword,q_0/1] | [q_1/1,Testlist_Star_Expr,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_1/0,Comp_Op,q_2/1] → != | [q_0/0,Assert_Keyword,q_1/1] → assert | [q_0/1,Yield_Arg,q_2/2] → [q_0/1,Yield_Arg,q_2/2] ε+ |
| [q_1/0,Comp_Op,q_2/1] → in | [q_0/0,Assert_Keyword,q_1/1] → [q_0/0,Assert_Keyword,q_1/1] ε+ | [q_0/1,Yield_Arg,q_2/2] → ε+ [q_0/1,Yield_Arg,q_2/2] |
| [q_1/0,Comp_Op,q_2/1] → is | [q_0/0,Assert_Keyword,q_1/1] → ε+ [q_0/0,Assert_Keyword,q_1/1] | [q_0/1,Yield_Arg,q_2/2] → [q_0/1,Test,q_1/1] [q_1/1,Comma,q_2/2] |
| [q_1/0,Comp_Op,q_2/1] → not_in | [q_0/0,Global_Keyword,q_1/1] → global | [q_0/1,Yield_Arg,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_1/0,Comp_Op,q_2/1] → is_not | [q_0/0,Global_Keyword,q_1/1] → [q_0/0,Global_Keyword,q_1/1] ε+ | [q_0/0,Stmt_Or_Newline,q_1/1] → NEWLINE |
| [q_1/0,Comp_Op,q_2/1] → [q_1/0,Comp_Op,q_2/1] ε+ | [q_0/0,Global_Keyword,q_1/1] → ε+ [q_0/0,Global_Keyword,q_1/1] | [q_0/0,Stmt_Or_Newline,q_1/1] → [q_0/0,Stmt_Or_Newline,q_1/1] ε+ |
| [q_1/0,Comp_Op,q_2/1] → ε+ [q_1/0,Comp_Op,q_2/1] | [q_0/0,Import_Keyword,q_1/1] → import | [q_0/0,Stmt_Or_Newline,q_1/1] → ε+ [q_0/0,Stmt_Or_Newline,q_1/1] |
| [q_0/0,Or_Test,q_1/0] → NUMBER | [q_0/0,Import_Keyword,q_1/1] → [q_0/0,Import_Keyword,q_1/1] ε+ | [q_0/0,Stmt_Or_Newline,q_1/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_1/1] |
| [q_0/0,Or_Test,q_1/0] → [q_0/0,Or_Test,q_1/0] ε+ | [q_0/0,Import_Keyword,q_1/1] → ε+ [q_0/0,Import_Keyword,q_1/1] | [q_0/0,Stmt_Or_Newline,q_2/1] → [q_0/0,Stmt_Or_Newline,q_2/1] ε+ |
| [q_0/0,Or_Test,q_1/0] → ε+ [q_0/0,Or_Test,q_1/0] | [q_0/0,Return_Keyword,q_0/1] → return | [q_0/0,Stmt_Or_Newline,q_2/1] → ε+ [q_0/0,Stmt_Or_Newline,q_2/1] |
| [q_0/0,Star_Op,q_0/1] → * | [q_0/0,Return_Keyword,q_0/1] → [q_0/0,Return_Keyword,q_0/1] ε+ | [q_0/0,Stmt_Or_Newline,q_2/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_2/1] |
| [q_0/0,Star_Op,q_0/1] → [q_0/0,Star_Op,q_0/1] ε+ | [q_0/0,Return_Keyword,q_0/1] → ε+ [q_0/0,Return_Keyword,q_0/1] | [q_0/1,Stmt_Or_Newline,q_2/2] → [q_0/1,Stmt_Or_Newline,q_2/2] ε+ |
| [q_0/0,Star_Op,q_0/1] → ε+ [q_0/0,Star_Op,q_0/1] | [q_0/0,Return_Keyword,q_1/1] → return | [q_0/1,Stmt_Or_Newline,q_2/2] → ε+ [q_0/1,Stmt_Or_Newline,q_2/2] |
| [q_0/0,Star_Op,q_1/1] → * | [q_0/0,Return_Keyword,q_1/1] → [q_0/0,Return_Keyword,q_1/1] ε+ | [q_0/1,Stmt_Or_Newline,q_2/2] → [q_0/1,Small_Stmts,q_1/1] [q_1/1,Newline,q_2/2] |
| [q_0/0,Star_Op,q_1/1] → [q_0/0,Star_Op,q_1/1] ε+ | [q_0/0,Return_Keyword,q_1/1] → ε+ [q_0/0,Return_Keyword,q_1/1] | [q_1/0,And_Op.Shift_Expr,q_2/2] → [q_1/0,And_Op,q_1/1] [q_1/1,Shift_Expr,q_2/2] |
| [q_0/0,Star_Op,q_1/1] → ε+ [q_0/0,Star_Op,q_1/1] | [q_1/0,Double_Star_Op,q_1/1] → ** | [q_1/0,And_Op.Shift_Expr,q_2/2] → [q_1/0,And_Op,q_2/1] [q_2/1,Shift_Expr,q_2/2] |
| [q_1/0,Newline,q_1/1] → NEWLINE | [q_1/0,Double_Star_Op,q_1/1] → [q_1/0,Double_Star_Op,q_1/1] ε+ | [q_1/0,Semicolon.Newline,q_2/2] → [q_1/0,Semicolon,q_1/1] [q_1/1,Newline,q_2/2] |
| [q_1/0,Newline,q_1/1] → [q_1/0,Newline,q_1/1] ε+ | [q_1/0,Double_Star_Op,q_1/1] → ε+ [q_1/0,Double_Star_Op,q_1/1] | [q_1/0,Semicolon.Newline,q_3/1] → [q_1/0,Semicolon,q_2/1] [q_2/1,Newline,q_3/1] |
| [q_1/0,Newline,q_1/1] → ε+ [q_1/0,Newline,q_1/1] | [q_1/0,Double_Star_Op,q_2/1] → ** | [q_1/0,Semicolon.Newline,q_3/2] → [q_1/0,Semicolon,q_1/1] [q_1/1,Newline,q_3/2] |
| [q_1/0,Newline,q_2/1] → NEWLINE | [q_1/0,Double_Star_Op,q_2/1] → [q_1/0,Double_Star_Op,q_2/1] ε+ | [q_1/1,Semicolon.Newline,q_3/2] → [q_1/1,Semicolon,q_2/2] [q_2/2,Newline,q_3/2] |
| [q_1/0,Newline,q_2/1] → [q_1/0,Newline,q_2/1] ε+ | [q_1/0,Double_Star_Op,q_2/1] → ε+ [q_1/0,Double_Star_Op,q_2/1] | [q_2/1,Semicolon.Newline,q_3/2] → [q_2/1,Semicolon,q_2/2] [q_2/2,Newline,q_3/2] |
| [q_1/0,Newline,q_2/1] → ε+ [q_1/0,Newline,q_2/1] | [q_1/1,Expr,q_2/2] → ... | [q_1/0,Many_Trailers,q_2/2] → [q_1/0,Many_Trailers,q_2/2] ε+ |
| [q_1/0,Newline,q_3/1] → NEWLINE | [q_1/1,Expr,q_2/2] → NAME | [q_1/0,Many_Trailers,q_2/2] → ε+ [q_1/0,Many_Trailers,q_2/2] |
| [q_1/0,Newline,q_3/1] → [q_1/0,Newline,q_3/1] ε+ | [q_1/1,Expr,q_2/2] → None | [q_1/0,Many_Trailers,q_2/2] → [q_1/0,Dot,q_1/1] [q_1/1,Simple_Name,q_2/2] |
| [q_1/0,Newline,q_3/1] → ε+ [q_1/0,Newline,q_3/1] | [q_1/1,Expr,q_2/2] → True | [q_1/0,Many_Trailers,q_2/2] → [q_1/0,Dot,q_2/1] [q_2/1,Simple_Name,q_2/2] |
| [q_1/1,Newline,q_2/2] → NEWLINE | [q_1/1,Expr,q_2/2] → False | [q_1/0,Many_Trailers,q_2/2] → [q_1/0,Open_Paren,q_1/1] [q_1/1,Close_Paren,q_2/2] |
| [q_1/1,Newline,q_2/2] → [q_1/1,Newline,q_2/2] ε+ | [q_1/1,Expr,q_2/2] → NUMBER | [q_1/0,Many_Trailers,q_2/2] → [q_1/0,Open_Paren,q_2/1] [q_2/1,Close_Paren,q_2/2] |
| [q_1/1,Newline,q_2/2] → ε+ [q_1/1,Newline,q_2/2] | [q_1/1,Expr,q_2/2] → STRING | [q_0/0,Small_Stmts,q_2/1] → [q_0/0,Small_Stmts,q_2/1] ε+ |
| [q_1/1,Newline,q_3/2] → NEWLINE | [q_1/1,Expr,q_2/2] → [q_1/1,Expr,q_2/2] ε+ | [q_0/0,Small_Stmts,q_2/1] → ε+ [q_0/0,Small_Stmts,q_2/1] |
| [q_1/1,Newline,q_3/2] → [q_1/1,Newline,q_3/2] ε+ | [q_1/1,Expr,q_2/2] → ε+ [q_1/1,Expr,q_2/2] | [q_0/0,Small_Stmts,q_2/1] → [q_0/0,Test_Or_Star_Exprs,q_1/0] [q_1/0,Comma,q_2/1] |
| [q_1/1,Newline,q_3/2] → ε+ [q_1/1,Newline,q_3/2] | [q_1/1,Expr,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/0,Small_Stmts,q_2/1] → [q_0/0,Arith_Expr,q_1/0] [q_1/0,Arith_Op.Term,q_2/1] |
| [q_2/1,Newline,q_3/1] → NEWLINE | [q_1/1,Term,q_2/2] → ... | [q_0/1,Small_Stmts,q_2/2] → [q_0/1,Small_Stmts,q_2/2] ε+ |
| [q_2/1,Newline,q_3/1] → [q_2/1,Newline,q_3/1] ε+ | [q_1/1,Term,q_2/2] → NAME | [q_0/1,Small_Stmts,q_2/2] → ε+ [q_0/1,Small_Stmts,q_2/2] |
| [q_2/1,Newline,q_3/1] → ε+ [q_2/1,Newline,q_3/1] | [q_1/1,Term,q_2/2] → None | [q_0/1,Small_Stmts,q_2/2] → [q_0/1,Test_Or_Star_Exprs,q_1/1] [q_1/1,Comma,q_2/2] |
| [q_2/2,Newline,q_3/2] → NEWLINE | [q_1/1,Term,q_2/2] → True | [q_0/1,Small_Stmts,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_2/2,Newline,q_3/2] → [q_2/2,Newline,q_3/2] ε+ | [q_1/1,Term,q_2/2] → False | [q_0/0,Small_Stmts,q_3/1] → [q_0/0,Small_Stmts,q_3/1] ε+ |
| [q_2/2,Newline,q_3/2] → ε+ [q_2/2,Newline,q_3/2] | [q_1/1,Term,q_2/2] → NUMBER | [q_0/0,Small_Stmts,q_3/1] → ε+ [q_0/0,Small_Stmts,q_3/1] |
| [q_3/1,Newline,q_3/2] → NEWLINE | [q_1/1,Term,q_2/2] → STRING | [q_0/0,Small_Stmts,q_3/1] → [q_0/0,Arith_Expr,q_1/0] [q_1/0,Arith_Op.Term,q_3/1] |
| [q_3/1,Newline,q_3/2] → [q_3/1,Newline,q_3/2] ε+ | [q_1/1,Term,q_2/2] → [q_1/1,Term,q_2/2] ε+ | [q_0/0,Stmts_Or_Newlines,q_2/1] → [q_0/0,Stmts_Or_Newlines,q_2/1] ε+ |
| [q_3/1,Newline,q_3/2] → ε+ [q_3/1,Newline,q_3/2] | [q_1/1,Term,q_2/2] → ε+ [q_1/1,Term,q_2/2] | [q_0/0,Stmts_Or_Newlines,q_2/1] → ε+ [q_0/0,Stmts_Or_Newlines,q_2/1] |
| [q_3/1,Newline,q_4/2] → NEWLINE | [q_1/1,Term,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/0,Stmts_Or_Newlines,q_2/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_2/1] |
| [q_3/1,Newline,q_4/2] → [q_3/1,Newline,q_4/2] ε+ | [q_1/1,Test,q_2/2] → ... | [q_0/0,Test_Or_Star_Exprs,q_1/1] → ... |
| [q_3/1,Newline,q_4/2] → ε+ [q_3/1,Newline,q_4/2] | [q_1/1,Test,q_2/2] → NAME | [q_0/0,Test_Or_Star_Exprs,q_1/1] → NAME |
| [q_2/1,And_Expr,q_2/2] → ... | [q_1/1,Test,q_2/2] → None | [q_0/0,Test_Or_Star_Exprs,q_1/1] → None |
| [q_2/1,And_Expr,q_2/2] → NAME | [q_1/1,Test,q_2/2] → True | [q_0/0,Test_Or_Star_Exprs,q_1/1] → True |
| [q_2/1,And_Expr,q_2/2] → None | [q_1/1,Test,q_2/2] → False | [q_0/0,Test_Or_Star_Exprs,q_1/1] → False |
| [q_2/1,And_Expr,q_2/2] → True | [q_1/1,Test,q_2/2] → NUMBER | [q_0/0,Test_Or_Star_Exprs,q_1/1] → STRING |
| [q_2/1,And_Expr,q_2/2] → False | [q_1/1,Test,q_2/2] → STRING | [q_0/0,Test_Or_Star_Exprs,q_1/1] → [q_0/0,Test_Or_Star_Exprs,q_1/1] ε+ |
| [q_2/1,And_Expr,q_2/2] → NUMBER | [q_1/1,Test,q_2/2] → [q_1/1,Test,q_2/2] ε+ | [q_0/0,Test_Or_Star_Exprs,q_1/1] → ε+ [q_0/0,Test_Or_Star_Exprs,q_1/1] |
| [q_2/1,And_Expr,q_2/2] → STRING | [q_1/1,Test,q_2/2] → ε+ [q_1/1,Test,q_2/2] | [q_0/0,Test_Or_Star_Exprs,q_1/1] → [q_0/0,Star_Op,q_0/1] [q_0/1,Expr,q_1/1] |
| [q_2/1,And_Expr,q_2/2] → [q_2/1,And_Expr,q_2/2] ε+ | [q_1/1,Test,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/0,Test_Or_Star_Exprs,q_1/1] → [q_0/0,Unary_Op,q_0/1] [q_0/1,Factor,q_1/1] |
| [q_2/1,And_Expr,q_2/2] → ε+ [q_2/1,And_Expr,q_2/2] | [q_0/0,Open_Sq_Bracket,q_0/1] → [ | [q_0/0,Test_Or_Star_Exprs,q_1/1] → [q_0/0,Await_Keyword,q_0/1] [q_0/1,Atom,q_1/1] |
| [q_2/1,And_Test,q_2/2] → ... | [q_0/0,Open_Sq_Bracket,q_0/1] → [q_0/0,Open_Sq_Bracket,q_0/1] ε+ | [q_0/0,Test_Or_Star_Exprs,q_1/1] → [q_0/0,Not_Bool_Op,q_0/1] [q_0/1,Not_Test,q_1/1] |
| [q_2/1,And_Test,q_2/2] → NAME | [q_0/0,Open_Sq_Bracket,q_0/1] → ε+ [q_0/0,Open_Sq_Bracket,q_0/1] | [q_1/0,Or_Bool_Op.And_Test,q_2/2] → [q_1/0,Or_Bool_Op,q_1/1] [q_1/1,And_Test,q_2/2] |
| [q_2/1,And_Test,q_2/2] → None | [q_0/0,Open_Sq_Bracket,q_1/1] → [ | [q_1/0,Or_Bool_Op.And_Test,q_2/2] → [q_1/0,Or_Bool_Op,q_2/1] [q_2/1,And_Test,q_2/2] |
| [q_2/1,And_Test,q_2/2] → True | [q_0/0,Open_Sq_Bracket,q_1/1] → [q_0/0,Open_Sq_Bracket,q_1/1] ε+ | [q_1/0,Shift_Op.Arith_Expr,q_2/2] → [q_1/0,Shift_Op,q_1/1] [q_1/1,Arith_Expr,q_2/2] |
| [q_2/1,And_Test,q_2/2] → False | [q_0/0,Open_Sq_Bracket,q_1/1] → ε+ [q_0/0,Open_Sq_Bracket,q_1/1] | [q_1/0,Shift_Op.Arith_Expr,q_2/2] → [q_1/0,Shift_Op,q_2/1] [q_2/1,Arith_Expr,q_2/2] |
| [q_2/1,And_Test,q_2/2] → NUMBER | [q_0/0,Stmt_Or_Newline,q_0/1] → NEWLINE | [q_2/0,Term,q_2/2] → [q_2/0,Term,q_2/2] ε+ |
| [q_2/1,And_Test,q_2/2] → STRING | [q_0/0,Stmt_Or_Newline,q_0/1] → [q_0/0,Stmt_Or_Newline,q_0/1] ε+ | [q_2/0,Term,q_2/2] → ε+ [q_2/0,Term,q_2/2] |
| [q_2/1,And_Test,q_2/2] → [q_2/1,And_Test,q_2/2] ε+ | [q_0/0,Stmt_Or_Newline,q_0/1] → ε+ [q_0/0,Stmt_Or_Newline,q_0/1] | [q_2/0,Term,q_2/2] → [q_2/0,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_2/1,And_Test,q_2/2] → ε+ [q_2/1,And_Test,q_2/2] | [q_1/1,Dotted_As_Names,q_2/2] → NAME | [q_2/0,Term,q_2/2] → [q_2/0,Await_Keyword,q_2/1] [q_2/1,Atom,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → ... | [q_1/1,Dotted_As_Names,q_2/2] → [q_1/1,Dotted_As_Names,q_2/2] ε+ | [q_2/0,Term,q_2/2] → [q_2/0,Open_Paren,q_2/1] [q_2/1,Close_Paren,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → NAME | [q_1/1,Dotted_As_Names,q_2/2] → ε+ [q_1/1,Dotted_As_Names,q_2/2] | [q_2/0,Term,q_2/2] → [q_2/0,Open_Sq_Bracket,q_2/1] [q_2/1,Close_Sq_Bracket,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → None | [q_1/1,Stmt_Or_Newline,q_2/2] → NEWLINE | [q_2/0,Term,q_2/2] → [q_2/0,Open_Curl_Bracket,q_2/1] [q_2/1,Close_Curl_Bracket,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → True | [q_1/1,Stmt_Or_Newline,q_2/2] → [q_1/1,Stmt_Or_Newline,q_2/2] ε+ | [q_1/0,And_Bool_Op.Not_Test,q_2/2] → [q_1/0,And_Bool_Op,q_1/1] [q_1/1,Not_Test,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → False | [q_1/1,Stmt_Or_Newline,q_2/2] → ε+ [q_1/1,Stmt_Or_Newline,q_2/2] | [q_1/0,And_Bool_Op.Not_Test,q_2/2] → [q_1/0,And_Bool_Op,q_2/1] [q_2/1,Not_Test,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → NUMBER | [q_2/0,Open_Sq_Bracket,q_2/1] → [ | [q_0/1,Testlist_Endcomma,q_2/2] → [q_0/1,Testlist_Endcomma,q_2/2] ε+ |
| [q_2/1,Not_Test,q_2/2] → STRING | [q_2/0,Open_Sq_Bracket,q_2/1] → [q_2/0,Open_Sq_Bracket,q_2/1] ε+ | [q_0/1,Testlist_Endcomma,q_2/2] → ε+ [q_0/1,Testlist_Endcomma,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → [q_2/1,Not_Test,q_2/2] ε+ | [q_2/0,Open_Sq_Bracket,q_2/1] → ε+ [q_2/0,Open_Sq_Bracket,q_2/1] | [q_0/1,Testlist_Endcomma,q_2/2] → [q_0/1,Test,q_1/1] [q_1/1,Comma,q_2/2] |
| [q_2/1,Not_Test,q_2/2] → ε+ [q_2/1,Not_Test,q_2/2] | [q_2/1,Stmt_Or_Newline,q_3/1] → NEWLINE | [q_0/1,Testlist_Endcomma,q_2/2] → [q_0/1,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_2/1,Xor_Expr,q_2/2] → ... | [q_2/1,Stmt_Or_Newline,q_3/1] → [q_2/1,Stmt_Or_Newline,q_3/1] ε+ | [q_0/0,Test_Or_Star_Exprs,q_2/1] → [q_0/0,Test_Or_Star_Exprs,q_2/1] ε+ |
| [q_2/1,Xor_Expr,q_2/2] → NAME | [q_2/1,Stmt_Or_Newline,q_3/1] → ε+ [q_2/1,Stmt_Or_Newline,q_3/1] | [q_0/0,Test_Or_Star_Exprs,q_2/1] → ε+ [q_0/0,Test_Or_Star_Exprs,q_2/1] |
| [q_2/1,Xor_Expr,q_2/2] → None | [q_1/1,Factor,q_2/2] → ... | [q_0/0,Test_Or_Star_Exprs,q_2/1] → [q_0/0,Arith_Expr,q_1/0] [q_1/0,Arith_Op.Term,q_2/1] |
| [q_2/1,Xor_Expr,q_2/2] → True | [q_1/1,Factor,q_2/2] → NAME | [q_1/0,Aug_Assign.Yield_Expr,q_2/2] → [q_1/0,Aug_Assign,q_1/1] [q_1/1,Yield_Expr,q_2/2] |
| [q_2/1,Xor_Expr,q_2/2] → False | [q_1/1,Factor,q_2/2] → None | [q_1/0,Aug_Assign.Yield_Expr,q_2/2] → [q_1/0,Aug_Assign,q_2/1] [q_2/1,Yield_Expr,q_2/2] |
| [q_2/1,Xor_Expr,q_2/2] → NUMBER | [q_1/1,Factor,q_2/2] → True | [q_1/0,Double_Star_Op.Factor,q_2/2] → [q_1/0,Double_Star_Op,q_1/1] [q_1/1,Factor,q_2/2] |
| [q_2/1,Xor_Expr,q_2/2] → STRING | [q_1/1,Factor,q_2/2] → False | [q_1/0,Double_Star_Op.Factor,q_2/2] → [q_1/0,Double_Star_Op,q_2/1] [q_2/1,Factor,q_2/2] |
| [q_2/1,Xor_Expr,q_2/2] → [q_2/1,Xor_Expr,q_2/2] ε+ | [q_1/1,Factor,q_2/2] → NUMBER | [q_1/0,Semicolon.Small_Stmts,q_2/2] → [q_1/0,Semicolon,q_1/1] [q_1/1,Small_Stmts,q_2/2] |
| [q_2/1,Xor_Expr,q_2/2] → ε+ [q_2/1,Xor_Expr,q_2/2] | [q_1/1,Factor,q_2/2] → STRING | [q_1/0,Semicolon.Small_Stmts,q_2/2] → [q_1/0,Semicolon,q_2/1] [q_2/1,Small_Stmts,q_2/2] |
| [q_0/0,Unary_Op,q_0/1] → + | [q_1/1,Factor,q_2/2] → [q_1/1,Factor,q_2/2] ε+ | [q_0/0,Small_Stmts,q_1/1] → ... |
| [q_0/0,Unary_Op,q_0/1] → - | [q_1/1,Factor,q_2/2] → ε+ [q_1/1,Factor,q_2/2] | [q_0/0,Small_Stmts,q_1/1] → pass |
| [q_0/0,Unary_Op,q_0/1] → ~ | [q_1/1,Factor,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/0,Small_Stmts,q_1/1] → NAME |
| [q_0/0,Unary_Op,q_0/1] → [q_0/0,Unary_Op,q_0/1] ε+ | [q_0/0,Nonlocal_Keyword,q_1/1] → nonlocal | [q_0/0,Small_Stmts,q_1/1] → None |
| [q_0/0,Unary_Op,q_0/1] → ε+ [q_0/0,Unary_Op,q_0/1] | [q_0/0,Nonlocal_Keyword,q_1/1] → [q_0/0,Nonlocal_Keyword,q_1/1] ε+ | [q_0/0,Small_Stmts,q_1/1] → True |
| [q_0/0,Unary_Op,q_1/1] → + | [q_0/0,Nonlocal_Keyword,q_1/1] → ε+ [q_0/0,Nonlocal_Keyword,q_1/1] | [q_0/0,Small_Stmts,q_1/1] → break |
| [q_0/0,Unary_Op,q_1/1] → - | [q_1/1,Close_Sq_Bracket,q_2/2] → ] | [q_0/0,Small_Stmts,q_1/1] → raise |
| [q_0/0,Unary_Op,q_1/1] → ~ | [q_1/1,Close_Sq_Bracket,q_2/2] → [q_1/1,Close_Sq_Bracket,q_2/2] ε+ | [q_0/0,Small_Stmts,q_1/1] → False |
| [q_0/0,Unary_Op,q_1/1] → [q_0/0,Unary_Op,q_1/1] ε+ | [q_1/1,Close_Sq_Bracket,q_2/2] → ε+ [q_1/1,Close_Sq_Bracket,q_2/2] | [q_0/0,Small_Stmts,q_1/1] → yield |
| [q_0/0,Unary_Op,q_1/1] → ε+ [q_0/0,Unary_Op,q_1/1] | [q_2/1,Close_Sq_Bracket,q_2/2] → ] | [q_0/0,Small_Stmts,q_1/1] → return |
| [q_2/0,Unary_Op,q_2/1] → + | [q_2/1,Close_Sq_Bracket,q_2/2] → [q_2/1,Close_Sq_Bracket,q_2/2] ε+ | [q_0/0,Small_Stmts,q_1/1] → STRING |
| [q_2/0,Unary_Op,q_2/1] → - | [q_2/1,Close_Sq_Bracket,q_2/2] → ε+ [q_2/1,Close_Sq_Bracket,q_2/2] | [q_0/0,Small_Stmts,q_1/1] → continue |
| [q_2/0,Unary_Op,q_2/1] → ~ | [q_1/1,And_Expr,q_2/2] → ... | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Small_Stmts,q_1/1] ε+ |
| [q_2/0,Unary_Op,q_2/1] → [q_2/0,Unary_Op,q_2/1] ε+ | [q_1/1,And_Expr,q_2/2] → NAME | [q_0/0,Small_Stmts,q_1/1] → ε+ [q_0/0,Small_Stmts,q_1/1] |
| [q_2/0,Unary_Op,q_2/1] → ε+ [q_2/0,Unary_Op,q_2/1] | [q_1/1,And_Expr,q_2/2] → None | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Star_Op,q_0/1] [q_0/1,Expr,q_1/1] |
| [q_1/0,Shift_Op,q_1/1] → << | [q_1/1,And_Expr,q_2/2] → True | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Unary_Op,q_0/1] [q_0/1,Factor,q_1/1] |
| [q_1/0,Shift_Op,q_1/1] → >> | [q_1/1,And_Expr,q_2/2] → False | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Raise_Keyword,q_0/1] [q_0/1,Test,q_1/1] |
| [q_1/0,Shift_Op,q_1/1] → [q_1/0,Shift_Op,q_1/1] ε+ | [q_1/1,And_Expr,q_2/2] → NUMBER | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Await_Keyword,q_0/1] [q_0/1,Atom,q_1/1] |
| [q_1/0,Shift_Op,q_1/1] → ε+ [q_1/0,Shift_Op,q_1/1] | [q_1/1,And_Expr,q_2/2] → STRING | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Assert_Keyword,q_0/1] [q_0/1,Test,q_1/1] |
| [q_1/0,Shift_Op,q_2/1] → << | [q_1/1,And_Expr,q_2/2] → [q_1/1,And_Expr,q_2/2] ε+ | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Del_Keyword,q_0/1] [q_0/1,Exprlist,q_1/1] |
| [q_1/0,Shift_Op,q_2/1] → >> | [q_1/1,And_Expr,q_2/2] → ε+ [q_1/1,And_Expr,q_2/2] | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Not_Bool_Op,q_0/1] [q_0/1,Not_Test,q_1/1] |
| [q_1/0,Shift_Op,q_2/1] → [q_1/0,Shift_Op,q_2/1] ε+ | [q_1/1,And_Expr,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Yield_Keyword,q_0/1] [q_0/1,Yield_Arg,q_1/1] |
| [q_1/0,Shift_Op,q_2/1] → ε+ [q_1/0,Shift_Op,q_2/1] | [q_1/1,And_Test,q_2/2] → ... | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Test_Or_Star_Exprs,q_1/0] [q_1/0,Comma,q_1/1] |
| [q_0/0,And_Expr,q_1/0] → NUMBER | [q_1/1,And_Test,q_2/2] → NAME | [q_0/0,Small_Stmts,q_1/1] → [q_0/0,Return_Keyword,q_0/1] [q_0/1,Testlist_Endcomma,q_1/1] |
| [q_0/0,And_Expr,q_1/0] → [q_0/0,And_Expr,q_1/0] ε+ | [q_1/1,And_Test,q_2/2] → None | [q_0/0,Stmt_Or_Newline,q_3/1] → [q_0/0,Stmt_Or_Newline,q_3/1] ε+ |
| [q_0/0,And_Expr,q_1/0] → ε+ [q_0/0,And_Expr,q_1/0] | [q_1/1,And_Test,q_2/2] → True | [q_0/0,Stmt_Or_Newline,q_3/1] → ε+ [q_0/0,Stmt_Or_Newline,q_3/1] |
| [q_0/0,And_Test,q_1/0] → NUMBER | [q_1/1,And_Test,q_2/2] → False | [q_0/0,Stmt_Or_Newline,q_3/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_3/1] |
| [q_0/0,And_Test,q_1/0] → [q_0/0,And_Test,q_1/0] ε+ | [q_1/1,And_Test,q_2/2] → NUMBER | [q_0/0,Stmt_Or_Newline,q_3/1] → [q_0/0,Small_Stmts,q_2/1] [q_2/1,Newline,q_3/1] |
| [q_0/0,And_Test,q_1/0] → ε+ [q_0/0,And_Test,q_1/0] | [q_1/1,And_Test,q_2/2] → STRING | [q_0/0,Stmt_Or_Newline,q_3/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Semicolon.Newline,q_3/1] |
| [q_0/0,Xor_Expr,q_1/0] → NUMBER | [q_1/1,And_Test,q_2/2] → [q_1/1,And_Test,q_2/2] ε+ | [q_0/0,Stmt_Or_Newline,q_2/2] → [q_0/0,Stmt_Or_Newline,q_2/2] ε+ |
| [q_0/0,Xor_Expr,q_1/0] → [q_0/0,Xor_Expr,q_1/0] ε+ | [q_1/1,And_Test,q_2/2] → ε+ [q_1/1,And_Test,q_2/2] | [q_0/0,Stmt_Or_Newline,q_2/2] → ε+ [q_0/0,Stmt_Or_Newline,q_2/2] |
| [q_0/0,Xor_Expr,q_1/0] → ε+ [q_0/0,Xor_Expr,q_1/0] | [q_1/1,And_Test,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/0,Stmt_Or_Newline,q_2/2] → [q_0/0,Small_Stmts,q_1/1] [q_1/1,Newline,q_2/2] |
| [q_0/1,Exprlist,q_1/1] → NUMBER | [q_1/1,Exprlist,q_2/2] → ... | [q_0/0,Stmt_Or_Newline,q_2/2] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Semicolon.Newline,q_2/2] |
| [q_0/1,Exprlist,q_1/1] → [q_0/1,Exprlist,q_1/1] ε+ | [q_1/1,Exprlist,q_2/2] → NAME | [q_1/0,Comma.Test_Or_Star_Exprs,q_2/2] → [q_1/0,Comma,q_1/1] [q_1/1,Test_Or_Star_Exprs,q_2/2] |
| [q_0/1,Exprlist,q_1/1] → ε+ [q_0/1,Exprlist,q_1/1] | [q_1/1,Exprlist,q_2/2] → None | [q_1/0,Comma.Test_Or_Star_Exprs,q_2/2] → [q_1/0,Comma,q_2/1] [q_2/1,Test_Or_Star_Exprs,q_2/2] |
| [q_0/1,Not_Test,q_1/1] → NUMBER | [q_1/1,Exprlist,q_2/2] → True | [q_0/0,Stmts_Or_Newlines,q_3/1] → [q_0/0,Stmts_Or_Newlines,q_3/1] ε+ |
| [q_0/1,Not_Test,q_1/1] → [q_0/1,Not_Test,q_1/1] ε+ | [q_1/1,Exprlist,q_2/2] → False | [q_0/0,Stmts_Or_Newlines,q_3/1] → ε+ [q_0/0,Stmts_Or_Newlines,q_3/1] |
| [q_0/1,Not_Test,q_1/1] → ε+ [q_0/1,Not_Test,q_1/1] | [q_1/1,Exprlist,q_2/2] → NUMBER | [q_0/0,Stmts_Or_Newlines,q_3/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_3/1] |
| [q_1/0,Arith_Op,q_1/1] → - | [q_1/1,Exprlist,q_2/2] → STRING | [q_0/0,Stmts_Or_Newlines,q_3/1] → [q_0/0,Small_Stmts,q_2/1] [q_2/1,Newline,q_3/1] |
| [q_1/0,Arith_Op,q_1/1] → [q_1/0,Arith_Op,q_1/1] ε+ | [q_1/1,Exprlist,q_2/2] → [q_1/1,Exprlist,q_2/2] ε+ | [q_0/0,Stmts_Or_Newlines,q_3/1] → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Semicolon.Newline,q_3/1] |
| [q_1/0,Arith_Op,q_1/1] → ε+ [q_1/0,Arith_Op,q_1/1] | [q_1/1,Exprlist,q_2/2] → ε+ [q_1/1,Exprlist,q_2/2] | [q_0/0,Stmts_Or_Newlines,q_3/1] → [q_0/0,Stmt_Or_Newline,q_2/1] [q_2/1,Stmts_Or_Newlines,q_3/1] |
| [q_1/0,Arith_Op,q_2/0] → + | [q_1/1,Exprlist,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_0/1,Stmts_Or_Newlines,q_3/2] → [q_0/1,Stmts_Or_Newlines,q_3/2] ε+ |
| [q_1/0,Arith_Op,q_2/0] → [q_1/0,Arith_Op,q_2/0] ε+ | [q_1/1,Not_Test,q_2/2] → ... | [q_0/1,Stmts_Or_Newlines,q_3/2] → ε+ [q_0/1,Stmts_Or_Newlines,q_3/2] |
| [q_1/0,Arith_Op,q_2/0] → ε+ [q_1/0,Arith_Op,q_2/0] | [q_1/1,Not_Test,q_2/2] → NAME | [q_0/1,Stmts_Or_Newlines,q_3/2] → [q_0/1,Small_Stmts,q_1/1] [q_1/1,Newline,q_3/2] |
| [q_1/0,Arith_Op,q_2/1] → - | [q_1/1,Not_Test,q_2/2] → None | [q_0/1,Stmts_Or_Newlines,q_3/2] → [q_0/1,Small_Stmts,q_2/2] [q_2/2,Newline,q_3/2] |
| [q_1/0,Arith_Op,q_2/1] → [q_1/0,Arith_Op,q_2/1] ε+ | [q_1/1,Not_Test,q_2/2] → True | [q_0/1,Stmts_Or_Newlines,q_3/2] → [q_0/1,Small_Stmts,q_1/1] [q_1/1,Semicolon.Newline,q_3/2] |
| [q_1/0,Arith_Op,q_2/1] → ε+ [q_1/0,Arith_Op,q_2/1] | [q_1/1,Not_Test,q_2/2] → False | [q_0/1,Stmts_Or_Newlines,q_3/2] → [q_0/1,Stmt_Or_Newline,q_2/2] [q_2/2,Stmts_Or_Newlines,q_3/2] |
| [q_1/1,Arith_Op,q_2/1] → + | [q_1/1,Not_Test,q_2/2] → NUMBER | [q_1/1,Stmts_Or_Newlines,q_3/2] → NEWLINE |
| [q_1/1,Arith_Op,q_2/1] → [q_1/1,Arith_Op,q_2/1] ε+ | [q_1/1,Not_Test,q_2/2] → STRING | [q_1/1,Stmts_Or_Newlines,q_3/2] → [q_1/1,Stmts_Or_Newlines,q_3/2] ε+ |
| [q_1/1,Arith_Op,q_2/1] → ε+ [q_1/1,Arith_Op,q_2/1] | [q_1/1,Not_Test,q_2/2] → [q_1/1,Not_Test,q_2/2] ε+ | [q_1/1,Stmts_Or_Newlines,q_3/2] → ε+ [q_1/1,Stmts_Or_Newlines,q_3/2] |
| [q_1/1,Unary_Op,q_2/1] → + | [q_1/1,Not_Test,q_2/2] → ε+ [q_1/1,Not_Test,q_2/2] | [q_1/1,Stmts_Or_Newlines,q_3/2] → [q_1/1,Small_Stmts,q_2/2] [q_2/2,Newline,q_3/2] |
| [q_1/1,Unary_Op,q_2/1] → [q_1/1,Unary_Op,q_2/1] ε+ | [q_1/1,Not_Test,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_1/1,Stmts_Or_Newlines,q_3/2] → [q_1/1,Stmt_Or_Newline,q_2/2] [q_2/2,Stmts_Or_Newlines,q_3/2] |
| [q_1/1,Unary_Op,q_2/1] → ε+ [q_1/1,Unary_Op,q_2/1] | [q_1/1,Xor_Expr,q_2/2] → ... | [q_2/1,Stmts_Or_Newlines,q_3/2] → [q_2/1,Stmts_Or_Newlines,q_3/2] ε+ |
| [q_1/0,MulDiv_Op,q_1/1] → * | [q_1/1,Xor_Expr,q_2/2] → NAME | [q_2/1,Stmts_Or_Newlines,q_3/2] → ε+ [q_2/1,Stmts_Or_Newlines,q_3/2] |
| [q_1/0,MulDiv_Op,q_1/1] → @ | [q_1/1,Xor_Expr,q_2/2] → None | [q_2/1,Stmts_Or_Newlines,q_3/2] → [q_2/1,Small_Stmts,q_2/2] [q_2/2,Newline,q_3/2] |
| [q_1/0,MulDiv_Op,q_1/1] → / | [q_1/1,Xor_Expr,q_2/2] → True | [q_2/1,Stmts_Or_Newlines,q_3/2] → [q_2/1,Stmt_Or_Newline,q_3/1] [q_3/1,Stmts_Or_Newlines,q_3/2] |
| [q_1/0,MulDiv_Op,q_1/1] → % | [q_1/1,Xor_Expr,q_2/2] → False | [q_2/1,Stmts_Or_Newlines,q_4/2] → [q_2/1,Stmts_Or_Newlines,q_4/2] ε+ |
| [q_1/0,MulDiv_Op,q_1/1] → // | [q_1/1,Xor_Expr,q_2/2] → NUMBER | [q_2/1,Stmts_Or_Newlines,q_4/2] → ε+ [q_2/1,Stmts_Or_Newlines,q_4/2] |
| [q_1/0,MulDiv_Op,q_1/1] → [q_1/0,MulDiv_Op,q_1/1] ε+ | [q_1/1,Xor_Expr,q_2/2] → STRING | [q_2/1,Stmts_Or_Newlines,q_4/2] → [q_2/1,Stmt_Or_Newline,q_3/1] [q_3/1,Stmts_Or_Newlines,q_4/2] |
| [q_1/0,MulDiv_Op,q_1/1] → ε+ [q_1/0,MulDiv_Op,q_1/1] | [q_1/1,Xor_Expr,q_2/2] → [q_1/1,Xor_Expr,q_2/2] ε+ | [q_0/1,Testlist_Comp.Close_Paren,q_2/2] → [q_0/1,Testlist_Comp,q_1/1] [q_1/1,Close_Paren,q_2/2] |
| [q_1/0,MulDiv_Op,q_2/1] → * | [q_1/1,Xor_Expr,q_2/2] → ε+ [q_1/1,Xor_Expr,q_2/2] | [q_1/0,Aug_Assign.Testlist_Endcomma,q_2/2] → [q_1/0,Aug_Assign,q_1/1] [q_1/1,Testlist_Endcomma,q_2/2] |
| [q_1/0,MulDiv_Op,q_2/1] → @ | [q_1/1,Xor_Expr,q_2/2] → [q_1/1,Unary_Op,q_2/1] [q_2/1,Factor,q_2/2] | [q_1/0,Aug_Assign.Testlist_Endcomma,q_2/2] → [q_1/0,Aug_Assign,q_2/1] [q_2/1,Testlist_Endcomma,q_2/2] |
| [q_1/0,MulDiv_Op,q_2/1] → / | [q_2/1,Testlist_Endcomma,q_2/2] → ... | [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] → [q_1/0,Assign_Op,q_1/1] [q_1/1,Yield_Expr,q_2/2] |
| [q_1/0,MulDiv_Op,q_2/1] → % | [q_2/1,Testlist_Endcomma,q_2/2] → NAME | [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] → [q_1/0,Assign_Op,q_2/1] [q_2/1,Yield_Expr,q_2/2] |
| [q_1/0,MulDiv_Op,q_2/1] → // | [q_2/1,Testlist_Endcomma,q_2/2] → None | [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] → [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] ε+ |
| [q_1/0,MulDiv_Op,q_2/1] → [q_1/0,MulDiv_Op,q_2/1] ε+ | [q_2/1,Testlist_Endcomma,q_2/2] → True | [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] → ε+ [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] |
| [q_1/0,MulDiv_Op,q_2/1] → ε+ [q_1/0,MulDiv_Op,q_2/1] | [q_2/1,Testlist_Endcomma,q_2/2] → False | [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] → [q_1/0,Assign_Op,q_1/1] [q_1/1,Testlist_Star_Expr,q_2/2] |
| [q_0/0,Atom_Expr,q_1/0] → NUMBER | [q_2/1,Testlist_Endcomma,q_2/2] → NUMBER | [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] → [q_1/0,Assign_Op,q_2/1] [q_2/1,Testlist_Star_Expr,q_2/2] |
| [q_0/0,Atom_Expr,q_1/0] → [q_0/0,Atom_Expr,q_1/0] ε+ | [q_2/1,Testlist_Endcomma,q_2/2] → STRING | [q_0/1,Testlist_Comp.Close_Sq_Bracket,q_2/2] → [q_0/1,Testlist_Comp,q_1/1] [q_1/1,Close_Sq_Bracket,q_2/2] |
| [q_0/0,Atom_Expr,q_1/0] → ε+ [q_0/0,Atom_Expr,q_1/0] | [q_2/1,Testlist_Endcomma,q_2/2] → [q_2/1,Testlist_Endcomma,q_2/2] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Small_Stmts,q_2/2] ε+ |
| [q_0/1,Yield_Arg,q_1/1] → NUMBER | [q_2/1,Testlist_Endcomma,q_2/2] → ε+ [q_2/1,Testlist_Endcomma,q_2/2] | [q_0/0,Small_Stmts,q_2/2] → ε+ [q_0/0,Small_Stmts,q_2/2] |
| [q_0/1,Yield_Arg,q_1/1] → [q_0/1,Yield_Arg,q_1/1] ε+ | [q_0/0,Open_Curl_Bracket,q_0/1] → { | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Star_Op,q_0/1] [q_0/1,Expr,q_2/2] |
| [q_0/1,Yield_Arg,q_1/1] → ε+ [q_0/1,Yield_Arg,q_1/1] | [q_0/0,Open_Curl_Bracket,q_0/1] → [q_0/0,Open_Curl_Bracket,q_0/1] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Star_Op,q_1/1] [q_1/1,Expr,q_2/2] |
| [q_1/0,Assign_Op,q_1/1] → = | [q_0/0,Open_Curl_Bracket,q_0/1] → ε+ [q_0/0,Open_Curl_Bracket,q_0/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Unary_Op,q_1/1] [q_1/1,Factor,q_2/2] |
| [q_1/0,Assign_Op,q_1/1] → [q_1/0,Assign_Op,q_1/1] ε+ | [q_0/0,Open_Curl_Bracket,q_1/1] → { | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Raise_Keyword,q_0/1] [q_0/1,Test,q_2/2] |
| [q_1/0,Assign_Op,q_1/1] → ε+ [q_1/0,Assign_Op,q_1/1] | [q_0/0,Open_Curl_Bracket,q_1/1] → [q_0/0,Open_Curl_Bracket,q_1/1] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Raise_Keyword,q_1/1] [q_1/1,Test,q_2/2] |
| [q_1/0,Assign_Op,q_2/1] → = | [q_0/0,Open_Curl_Bracket,q_1/1] → ε+ [q_0/0,Open_Curl_Bracket,q_1/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Atom,q_1/0] [q_1/0,Many_Trailers,q_2/2] |
| [q_1/0,Assign_Op,q_2/1] → [q_1/0,Assign_Op,q_2/1] ε+ | [q_0/0,Test_Or_Star_Expr,q_1/0] → NUMBER | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Await_Keyword,q_1/1] [q_1/1,Atom,q_2/2] |
| [q_1/0,Assign_Op,q_2/1] → ε+ [q_1/0,Assign_Op,q_2/1] | [q_0/0,Test_Or_Star_Expr,q_1/0] → [q_0/0,Test_Or_Star_Expr,q_1/0] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Assert_Keyword,q_0/1] [q_0/1,Test,q_2/2] |
| [q_1/0,Semicolon,q_1/1] → ; | [q_0/0,Test_Or_Star_Expr,q_1/0] → ε+ [q_0/0,Test_Or_Star_Expr,q_1/0] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Assert_Keyword,q_1/1] [q_1/1,Test,q_2/2] |
| [q_1/0,Semicolon,q_1/1] → [q_1/0,Semicolon,q_1/1] ε+ | [q_0/1,Dict_Or_Set_Maker,q_1/1] → NUMBER | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Expr,q_1/0] [q_1/0,Or_Op.Xor_Expr,q_2/2] |
| [q_1/0,Semicolon,q_1/1] → ε+ [q_1/0,Semicolon,q_1/1] | [q_0/1,Dict_Or_Set_Maker,q_1/1] → [q_0/1,Dict_Or_Set_Maker,q_1/1] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Del_Keyword,q_0/1] [q_0/1,Exprlist,q_2/2] |
| [q_1/0,Semicolon,q_2/1] → ; | [q_0/1,Dict_Or_Set_Maker,q_1/1] → ε+ [q_0/1,Dict_Or_Set_Maker,q_1/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Del_Keyword,q_1/1] [q_1/1,Exprlist,q_2/2] |
| [q_1/0,Semicolon,q_2/1] → [q_1/0,Semicolon,q_2/1] ε+ | [q_0/1,Testlist_Endcomma,q_1/1] → NUMBER | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Not_Bool_Op,q_0/1] [q_0/1,Not_Test,q_2/2] |
| [q_1/0,Semicolon,q_2/1] → ε+ [q_1/0,Semicolon,q_2/1] | [q_0/1,Testlist_Endcomma,q_1/1] → [q_0/1,Testlist_Endcomma,q_1/1] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Not_Bool_Op,q_1/1] [q_1/1,Not_Test,q_2/2] |
| [q_1/1,Semicolon,q_2/2] → ; | [q_0/1,Testlist_Endcomma,q_1/1] → ε+ [q_0/1,Testlist_Endcomma,q_1/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Term,q_1/0] [q_1/0,MulDiv_Op.Factor,q_2/2] |
| [q_1/1,Semicolon,q_2/2] → [q_1/1,Semicolon,q_2/2] ε+ | [q_2/0,Open_Curl_Bracket,q_2/1] → { | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Open_Paren,q_1/1] [q_1/1,Close_Paren,q_2/2] |
| [q_1/1,Semicolon,q_2/2] → ε+ [q_1/1,Semicolon,q_2/2] | [q_2/0,Open_Curl_Bracket,q_2/1] → [q_2/0,Open_Curl_Bracket,q_2/1] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Yield_Keyword,q_0/1] [q_0/1,Yield_Arg,q_2/2] |
| [q_2/1,Semicolon,q_2/2] → ; | [q_2/0,Open_Curl_Bracket,q_2/1] → ε+ [q_2/0,Open_Curl_Bracket,q_2/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Yield_Keyword,q_1/1] [q_1/1,Yield_Arg,q_2/2] |
| [q_2/1,Semicolon,q_2/2] → [q_2/1,Semicolon,q_2/2] ε+ | [q_2/1,Stmts_Or_Newlines,q_3/1] → NEWLINE | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Comparison,q_1/0] [q_1/0,Comp_Op.Expr,q_2/2] |
| [q_2/1,Semicolon,q_2/2] → ε+ [q_2/1,Semicolon,q_2/2] | [q_2/1,Stmts_Or_Newlines,q_3/1] → [q_2/1,Stmts_Or_Newlines,q_3/1] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Test_Or_Star_Exprs,q_1/1] [q_1/1,Comma,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → += | [q_2/1,Stmts_Or_Newlines,q_3/1] → ε+ [q_2/1,Stmts_Or_Newlines,q_3/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Test_Or_Star_Exprs,q_2/1] [q_2/1,Comma,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → -= | [q_2/2,Stmts_Or_Newlines,q_3/2] → NEWLINE | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Xor_Expr,q_1/0] [q_1/0,Xor_Op.And_Expr,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → *= | [q_2/2,Stmts_Or_Newlines,q_3/2] → [q_2/2,Stmts_Or_Newlines,q_3/2] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Arith_Expr,q_1/0] [q_1/0,Arith_Op.Term,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → @= | [q_2/2,Stmts_Or_Newlines,q_3/2] → ε+ [q_2/2,Stmts_Or_Newlines,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Arith_Expr,q_1/1] [q_1/1,Arith_Op.Term,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → /= | [q_3/1,Stmts_Or_Newlines,q_3/2] → NEWLINE | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Global_Keyword,q_1/1] [q_1/1,Many_Names,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → %= | [q_3/1,Stmts_Or_Newlines,q_3/2] → [q_3/1,Stmts_Or_Newlines,q_3/2] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,And_Expr,q_1/0] [q_1/0,And_Op.Shift_Expr,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → &= | [q_3/1,Stmts_Or_Newlines,q_3/2] → ε+ [q_3/1,Stmts_Or_Newlines,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Nonlocal_Keyword,q_1/1] [q_1/1,Many_Names,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → |= | [q_3/1,Stmts_Or_Newlines,q_4/2] → NEWLINE | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Or_Test,q_1/0] [q_1/0,Or_Bool_Op.And_Test,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → ^= | [q_3/1,Stmts_Or_Newlines,q_4/2] → [q_3/1,Stmts_Or_Newlines,q_4/2] ε+ | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,And_Test,q_1/0] [q_1/0,And_Bool_Op.Not_Test,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → <<= | [q_3/1,Stmts_Or_Newlines,q_4/2] → ε+ [q_3/1,Stmts_Or_Newlines,q_4/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Import_Keyword,q_1/1] [q_1/1,Dotted_As_Names,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → >>= | START → START F.ε | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Shift_Expr,q_1/0] [q_1/0,Shift_Op.Arith_Expr,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → **= | START → [q_0/0,Small_Stmts,q_1/1] [q_1/1,Newline,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Atom_Expr,q_1/0] [q_1/0,Double_Star_Op.Factor,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → //= | START → [q_0/0,Small_Stmts,q_2/2] [q_2/2,Newline,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Return_Keyword,q_0/1] [q_0/1,Testlist_Endcomma,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → [q_1/0,Aug_Assign,q_1/1] ε+ | START → [q_0/0,Small_Stmts,q_3/1] [q_3/1,Newline,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Return_Keyword,q_1/1] [q_1/1,Testlist_Endcomma,q_2/2] |
| [q_1/0,Aug_Assign,q_1/1] → ε+ [q_1/0,Aug_Assign,q_1/1] | START → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_3/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Open_Sq_Bracket,q_1/1] [q_1/1,Close_Sq_Bracket,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → += | START → [q_0/0,Small_Stmts,q_2/1] [q_2/1,Newline,q_3/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Small_Stmt,q_1/0] [q_1/0,Semicolon.Small_Stmts,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → -= | START → [q_0/0,Small_Stmts,q_3/1] [q_3/1,Newline,q_4/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Testlist_Star_Expr,q_1/0] [q_1/0,Annotated_Assign,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → *= | START → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Newline,q_2/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Open_Curl_Bracket,q_1/1] [q_1/1,Close_Curl_Bracket,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → @= | START → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Semicolon.Newline,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Open_Paren,q_0/1] [q_0/1,Testlist_Comp.Close_Paren,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → /= | START → [q_0/0,Small_Stmts,q_1/1] [q_1/1,Semicolon.Newline,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Testlist_Star_Expr,q_1/0] [q_1/0,Aug_Assign.Yield_Expr,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → %= | START → [q_0/0,Small_Stmts,q_2/1] [q_2/1,Semicolon.Newline,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Test_Or_Star_Expr,q_1/0] [q_1/0,Comma.Test_Or_Star_Exprs,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → &= | START → [q_0/0,Stmts_Or_Newlines,q_2/1] [q_2/1,F.Endmarker,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Open_Sq_Bracket,q_0/1] [q_0/1,Testlist_Comp.Close_Sq_Bracket,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → |= | START → [q_0/0,Stmts_Or_Newlines,q_3/1] [q_3/1,F.Endmarker,q_3/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Testlist_Star_Expr,q_1/0] [q_1/0,Aug_Assign.Testlist_Endcomma,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → ^= | START → [q_0/0,Small_Stmts,q_1/0] [q_1/0,Semicolon.Newline,q_3/1] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Testlist_Star_Expr,q_1/0] [q_1/0,Yield_Testlist_Star_Assign_Exprs,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → <<= | START → [q_0/0,Stmts_Or_Newlines,q_3/1] [q_3/1,F.Endmarker,q_4/2] | [q_0/0,Small_Stmts,q_2/2] → [q_0/0,Open_Curl_Bracket,q_0/1] [q_0/1,Dict_Or_Set_Maker.Close_Curl_Bracket,q_2/2] |
| [q_1/0,Aug_Assign,q_2/1] → >>= | START → [q_0/0,Stmt_Or_Newline,q_0/1] [q_0/1,Stmts_Or_Newlines,q_3/2] | [q_0/1,Dict_Or_Set_Maker.Close_Curl_Bracket,q_2/2] → [q_0/1,Dict_Or_Set_Maker,q_1/1] [q_1/1,Close_Curl_Bracket,q_2/2] |
Time to compute parse forest: 176.783834ms
Total trees in PTree: 19713
NUMBER ; NEWLINE
NUMBER NEWLINE NEWLINE
NUMBER NEWLINE
( NUMBER ) NEWLINE
NUMBER ; NEWLINE NEWLINE
NUMBER NEWLINE NEWLINE Endmarker
NUMBER + STRING NEWLINE
await None NEWLINE
NUMBER , NEWLINE
NUMBER NEWLINE None NEWLINE
break NEWLINE
NUMBER , ; NEWLINE
NEWLINE NUMBER NEWLINE
NUMBER NEWLINE Endmarker
assert NUMBER NEWLINE
NEWLINE NEWLINE
NUMBER NEWLINE yield NEWLINE
NEWLINE continue NEWLINE
NEWLINE NUMBER ; NEWLINE
break ; NEWLINE
return NUMBER NEWLINE
not NUMBER NEWLINE NEWLINE
not NUMBER ; NEWLINE
NUMBER NEWLINE NEWLINE NEWLINE
assert NUMBER ; NEWLINE
not NUMBER NEWLINE
break NEWLINE NEWLINE
NUMBER = False NEWLINE
NUMBER , NEWLINE NEWLINE
NUMBER + ... NEWLINE
global NAME NEWLINE
True NEWLINE
* NUMBER NEWLINE
True ; NEWLINE
yield NUMBER NEWLINE
{ } NEWLINE
NEWLINE NEWLINE NEWLINE
* NUMBER ; NEWLINE
True NEWLINE NEWLINE
... NEWLINE NEWLINE
raise NAME NEWLINE
NUMBER + True NEWLINE
continue NEWLINE
NUMBER + NUMBER NEWLINE
NUMBER NEWLINE continue NEWLINE
NEWLINE NUMBER , NEWLINE
continue ; NEWLINE
await NUMBER NEWLINE
del ... NEWLINE
await NUMBER ; NEWLINE
NUMBER + NUMBER ; NEWLINE
NUMBER + False NEWLINE
return NUMBER ; NEWLINE
continue NEWLINE NEWLINE
( ) NEWLINE
NUMBER , NEWLINE Endmarker
del NUMBER , NEWLINE
raise NEWLINE
raise NUMBER NEWLINE
raise ; NEWLINE
- NUMBER NEWLINE
... , NEWLINE
raise NUMBER ; NEWLINE
NUMBER ; NEWLINE Endmarker
raise NEWLINE NEWLINE
assert NUMBER NEWLINE NEWLINE
not NUMBER + False NEWLINE
NUMBER + None NEWLINE
assert True NEWLINE
return NEWLINE
return ; NEWLINE
return NEWLINE NEWLINE
{ NUMBER } NEWLINE
NUMBER = ... NEWLINE
NAME NEWLINE
NAME ; NEWLINE
not False NEWLINE
NEWLINE + True NEWLINE
NAME NEWLINE NEWLINE
NUMBER + NAME NEWLINE
STRING NEWLINE
NEWLINE NUMBER NEWLINE NEWLINE
... NEWLINE
STRING ; NEWLINE
nonlocal NAME NEWLINE
NEWLINE raise NEWLINE
... ; NEWLINE
STRING NEWLINE NEWLINE
await NAME NEWLINE
NUMBER & STRING NEWLINE
yield NEWLINE
yield ; NEWLINE
[ ] NEWLINE
NUMBER + None ; NEWLINE
yield NEWLINE NEWLINE
NUMBER <= False NEWLINE
yield + False NEWLINE
None NEWLINE
NUMBER NEWLINE True NEWLINE
None ; NEWLINE
del NUMBER ; NEWLINE
del NUMBER NEWLINE
None NEWLINE NEWLINE
* NUMBER , NEWLINE
return False NEWLINE
pass NEWLINE
pass ; NEWLINE
import NAME NEWLINE
False NEWLINE NEWLINE
- NUMBER ; NEWLINE
pass NEWLINE NEWLINE
return NUMBER , NEWLINE
yield STRING NEWLINE
NUMBER NEWLINE pass NEWLINE
* True NEWLINE
await NUMBER NEWLINE NEWLINE
yield NUMBER ; NEWLINE
assert + True NEWLINE
NUMBER ** True NEWLINE
False NEWLINE
False ; NEWLINE
~ NUMBER NEWLINE
- True NEWLINE
not True NEWLINE
NUMBER |= False NEWLINE
raise True NEWLINE
NUMBER + NAME ; NEWLINE
* NUMBER NEWLINE NEWLINE
yield NAME NEWLINE
NUMBER ; continue NEWLINE
NUMBER NEWLINE NAME NEWLINE
NUMBER : True NEWLINE
del NAME NEWLINE
return + False NEWLINE
return STRING NEWLINE
NUMBER + STRING ; NEWLINE
NUMBER - STRING NEWLINE
* + False NEWLINE
NUMBER NEWLINE STRING NEWLINE
del None NEWLINE
NEWLINE None NEWLINE
not NUMBER , NEWLINE
yield NUMBER , NEWLINE
True , NEWLINE
await False NEWLINE
NUMBER NEWLINE False NEWLINE
await True NEWLINE
raise NUMBER NEWLINE NEWLINE
assert NUMBER + False NEWLINE
raise False NEWLINE
+ NUMBER ; NEWLINE
NEWLINE + False NEWLINE
+ NUMBER NEWLINE
return NUMBER NEWLINE NEWLINE
NUMBER + False ; NEWLINE
NUMBER + NUMBER NEWLINE NEWLINE
None + STRING NEWLINE
NEWLINE NUMBER + False NEWLINE
NEWLINE True NEWLINE
NUMBER . NAME NEWLINE
NUMBER , True NEWLINE
* False NEWLINE
raise NUMBER + False NEWLINE
+ True NEWLINE
NUMBER + ... ; NEWLINE
NUMBER @ NAME NEWLINE
* + True NEWLINE
assert False NEWLINE
yield False NEWLINE
NEWLINE False NEWLINE
NEWLINE pass NEWLINE
NUMBER + NUMBER , NEWLINE
* NAME NEWLINE
NUMBER NEWLINE ... NEWLINE
return True NEWLINE
NUMBER + True ; NEWLINE
NUMBER & None NEWLINE
NUMBER - False NEWLINE
~ NUMBER ; NEWLINE
NUMBER + NUMBER NEWLINE Endmarker
* NUMBER + False NEWLINE
del True NEWLINE
NUMBER and NAME NEWLINE
- + False NEWLINE
False , NEWLINE
NUMBER -= yield NEWLINE
NUMBER and STRING NEWLINE
NUMBER or NUMBER NEWLINE
not STRING NEWLINE
NUMBER |= yield NEWLINE
del NUMBER NEWLINE NEWLINE
return NUMBER + False NEWLINE
~ True NEWLINE
NUMBER ^ NAME NEWLINE
* None NEWLINE
NEWLINE ... NEWLINE
- NAME NEWLINE
NUMBER * False NEWLINE
NUMBER NEWLINE + True NEWLINE
raise STRING NEWLINE
- NUMBER NEWLINE NEWLINE
NUMBER < NAME NEWLINE
assert STRING NEWLINE
[ NUMBER ] NEWLINE
NUMBER OR False NEWLINE
NEWLINE yield NEWLINE
NUMBER : None NEWLINE
NUMBER %= yield NEWLINE
NUMBER NEWLINE NUMBER NEWLINE
yield NUMBER NEWLINE NEWLINE
NUMBER , None NEWLINE
None , NEWLINE
NUMBER and True NEWLINE
await ... NEWLINE
del + True NEWLINE
not NAME NEWLINE
NUMBER or False NEWLINE
NEWLINE STRING NEWLINE
NUMBER >> False NEWLINE
NUMBER NEWLINE break NEWLINE
NUMBER OR ... NEWLINE
NUMBER ^ False NEWLINE
NUMBER %= NUMBER NEWLINE
* ... NEWLINE
NUMBER - + True NEWLINE
- ... NEWLINE
assert + False NEWLINE
NUMBER NEWLINE return NEWLINE
NUMBER = None NEWLINE
NUMBER << ... NEWLINE
return None NEWLINE
NUMBER & ... NEWLINE
NUMBER ; None NEWLINE
STRING , NEWLINE
assert NAME NEWLINE
NUMBER NEWLINE raise NEWLINE
NUMBER ** False NEWLINE
NUMBER %= False NEWLINE
NUMBER >> None NEWLINE
NUMBER ; yield NEWLINE
NUMBER // NAME NEWLINE
+ ... NEWLINE
raise None NEWLINE
del NUMBER + False NEWLINE
yield ... NEWLINE
raise + True NEWLINE
NUMBER + None NEWLINE NEWLINE
yield NUMBER + False NEWLINE
assert None NEWLINE
raise + False NEWLINE
return ... NEWLINE
... + STRING NEWLINE
NUMBER , ... NEWLINE
del False NEWLINE
None + False NEWLINE
NAME , NEWLINE
NUMBER OR None NEWLINE
not None NEWLINE
NUMBER in False NEWLINE
NEWLINE NUMBER + ... NEWLINE
~ ... NEWLINE
+ + False NEWLINE
yield None NEWLINE
NEWLINE + NUMBER NEWLINE
NUMBER or STRING NEWLINE
return NAME NEWLINE
del STRING NEWLINE
NUMBER + None NEWLINE Endmarker
NUMBER ( ) NEWLINE
await STRING NEWLINE
- NUMBER + False NEWLINE
NUMBER // True NEWLINE
not ... NEWLINE
NEWLINE return NEWLINE
~ NAME NEWLINE
NUMBER is False NEWLINE
+ NUMBER NEWLINE NEWLINE
NUMBER OR True NEWLINE
* STRING NEWLINE
NUMBER : False NEWLINE
- STRING NEWLINE
raise ... NEWLINE
not NUMBER + ... NEWLINE
yield True NEWLINE
assert ... NEWLINE
NUMBER < False NEWLINE
NUMBER << STRING NEWLINE
await NUMBER , NEWLINE
NEWLINE break NEWLINE
NUMBER NEWLINE + False NEWLINE
NUMBER = NAME NEWLINE
NUMBER : NAME NEWLINE
NUMBER = yield NEWLINE
+ STRING NEWLINE
assert NUMBER + ... NEWLINE
NUMBER ** ... NEWLINE
NUMBER ** NAME NEWLINE
NEWLINE + None NEWLINE
NUMBER ; True NEWLINE
raise NUMBER + ... NEWLINE
NUMBER + NAME NEWLINE NEWLINE
NUMBER + None , NEWLINE
* NUMBER + ... NEWLINE
NAME + STRING NEWLINE
~ STRING NEWLINE
del + False NEWLINE
+ NAME NEWLINE
return + True NEWLINE
NUMBER - NUMBER NEWLINE
NEWLINE NAME NEWLINE
~ + False NEWLINE
NUMBER or ... NEWLINE
NEWLINE NUMBER + True NEWLINE
NUMBER // False NEWLINE
not + False NEWLINE
NUMBER > NAME NEWLINE
NUMBER + NAME NEWLINE Endmarker
NUMBER OR NAME NEWLINE
NUMBER : NUMBER NEWLINE
~ NUMBER NEWLINE NEWLINE
NEWLINE + STRING NEWLINE
NUMBER >> + True NEWLINE
NUMBER << False NEWLINE
NUMBER ^ True NEWLINE
NUMBER & False NEWLINE
yield + True NEWLINE
NUMBER += False NEWLINE
... + False NEWLINE
NUMBER + STRING NEWLINE NEWLINE
NUMBER NEWLINE + None NEWLINE
NUMBER ^ None NEWLINE
STRING + STRING NEWLINE
NEWLINE + NAME NEWLINE
- None NEWLINE
- NUMBER , NEWLINE
NUMBER or True NEWLINE
NUMBER += yield NEWLINE
not NUMBER + True NEWLINE
NUMBER @ True NEWLINE
NUMBER < + True NEWLINE
NEWLINE NUMBER + NAME NEWLINE
+ None NEWLINE
NUMBER OR STRING NEWLINE
NUMBER : + True NEWLINE
NUMBER + STRING NEWLINE Endmarker
NUMBER >> STRING NEWLINE
assert NUMBER + True NEWLINE
~ None NEWLINE
raise NUMBER + True NEWLINE
NEWLINE + ... NEWLINE
NUMBER + NAME , NEWLINE
NUMBER + False NEWLINE NEWLINE
NUMBER ** None NEWLINE
* NUMBER + True NEWLINE
NUMBER &= False NEWLINE
- False NEWLINE
False + STRING NEWLINE
NUMBER , False NEWLINE
NUMBER NEWLINE + NAME NEWLINE
+ False NEWLINE
NUMBER and NUMBER NEWLINE
NUMBER &= yield NEWLINE
NUMBER -= NUMBER NEWLINE
NUMBER % False NEWLINE
NUMBER <> NAME NEWLINE
NUMBER >> ... NEWLINE
NEWLINE NUMBER + STRING NEWLINE
~ False NEWLINE
NUMBER * True NEWLINE
not + True NEWLINE
NAME + False NEWLINE
NUMBER + False NEWLINE Endmarker
NUMBER = True NEWLINE
NUMBER & NUMBER NEWLINE
NUMBER + ... NEWLINE NEWLINE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment