# -*- Mode: Python -*-

import sys
import Parsing

T = Parsing.Token
NT = Parsing.Nonterm

class t_and (T):
    "%token and [p1]"

class t_elif (T):
    "%token elif [p1]"

class t_NEWLINE (T):
    "%token NEWLINE [p1]"

class t_ENDMARKER (T):
    "%token ENDMARKER [p1]"

class t_rbrace (T):
    "%token rbrace [p1]"

class t_semicolon (T):
    "%token semicolon [p1]"

class t_is (T):
    "%token is [p1]"

class t_tilde (T):
    "%token tilde [p1]"

class t_NUMBER (T):
    "%token NUMBER [p1]"

class t_as (T):
    "%token as [p1]"

class t_colon (T):
    "%token colon [p1]"

class t_vbar (T):
    "%token vbar [p1]"

class t_lshift (T):
    "%token lshift [p1]"

class t_in (T):
    "%token in [p1]"

class t_return (T):
    "%token return [p1]"

class t_if (T):
    "%token if [p1]"

class t_caret (T):
    "%token caret [p1]"

class t_from (T):
    "%token from [p1]"

class t_raise (T):
    "%token raise [p1]"

class t_for (T):
    "%token for [p1]"

class t_continue_stmt (T):
    "%token continue_stmt [p1]"

class t_AUGASSIGN (T):
    "%token AUGASSIGN [p1]"

class t_percent (T):
    "%token percent [p1]"

class t_except (T):
    "%token except [p1]"

class t_splat (T):
    "%token splat [p1]"

class t_finally (T):
    "%token finally [p1]"

class t_ampersand (T):
    "%token ampersand [p1]"

class t_slash (T):
    "%token slash [p1]"

class t_print (T):
    "%token print [p1]"

class t_import (T):
    "%token import [p1]"

class t_splatsplat (T):
    "%token splatsplat [p1]"

class t_slashslash (T):
    "%token slashslash [p1]"

class t_break_stmt (T):
    "%token break_stmt [p1]"

class t_global (T):
    "%token global [p1]"

class t_rshift (T):
    "%token rshift [p1]"

class t_STRING (T):
    "%token STRING [p1]"

class t_del (T):
    "%token del [p1]"

class t_exec (T):
    "%token exec [p1]"

class t_equals (T):
    "%token equals [p1]"

class t_else (T):
    "%token else [p1]"

class t_assert (T):
    "%token assert [p1]"

class t_lparen (T):
    "%token lparen [p1]"

class t_not (T):
    "%token not [p1]"

class t_with (T):
    "%token with [p1]"

class t_class (T):
    "%token class [p1]"

class t_pass_stmt (T):
    "%token pass_stmt [p1]"

class t_lbracket (T):
    "%token lbracket [p1]"

class t_COMP_OP (T):
    "%token COMP_OP [p1]"

class t_lbrace (T):
    "%token lbrace [p1]"

class t_rparen (T):
    "%token rparen [p1]"

class t_NAME (T):
    "%token NAME [p1]"

class t_yield (T):
    "%token yield [p1]"

class t_or (T):
    "%token or [p1]"

class t_try (T):
    "%token try [p1]"

class t_while (T):
    "%token while [p1]"

class t_plus (T):
    "%token plus [p1]"

class t_def (T):
    "%token def [p1]"

class t_backquote (T):
    "%token backquote [p1]"

class t_comma (T):
    "%token comma [p1]"

class t_atsign (T):
    "%token atsign [p1]"

class t_minus (T):
    "%token minus [p1]"

class t_dot (T):
    "%token dot [p1]"

class t_lambda (T):
    "%token lambda [p1]"

class p1 (Parsing.Precedence):
    "%right p1"
class expr_stmt_c_1_o_1_s_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce yield_stmt [p1]"
    def r_1 (self, *args):
        "%reduce testlist [p1]"
class import_as_name (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce NAME import_as_name_c_1_q [p1]"
class try_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce try colon suite try_stmt_c_0_c_3_o [p1]"
class decorated_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce classdef [p1]"
    def r_1 (self, *args):
        "%reduce funcdef [p1]"
class testlist_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_from (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce from import_from_c_0_c_1_o import import_from_c_0_c_3_o [p1]"
class exprlist_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce exprlist_c_1_s1 comma expr [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class funcdef (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce def NAME parameters colon suite [p1]"
class and_test_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce and_test_c_1_s1 and not_test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_from_c_0_c_1_o_0_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_c_0_c_1_o_0_s1 dot [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class parameters (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lparen parameters_c_1_q rparen [p1]"
class flow_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce break_stmt [p1]"
    def r_1 (self, *args):
        "%reduce continue_stmt [p1]"
    def r_2 (self, *args):
        "%reduce return_stmt [p1]"
    def r_3 (self, *args):
        "%reduce raise_stmt [p1]"
    def r_4 (self, *args):
        "%reduce yield_stmt [p1]"
class decorators (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce decorators decorator [p1]"
    def r_1 (self, *args):
        "%reduce decorator [p1]"
class old_lambdef (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lambda old_lambdef_c_1_q colon old_test [p1]"
class testlist_safe_c_1_q_c_0_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist_safe_c_1_q_c_0_s1 comma old_test [p1]"
    def r_1 (self, *args):
        "%reduce comma old_test [p1]"
class xor_expr_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce xor_expr_c_1_s1 caret and_expr [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_as_names_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_as_names_c_1_s1 comma import_as_name [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class varargslist_c_0_o_0_s_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce equals test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class suite (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce simple_stmt [p1]"
    def r_1 (self, *args):
        "%reduce NEWLINE [p1]"
class fplist_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class simple_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce small_stmt simple_stmt_c_1_s1 simple_stmt_c_2_q NEWLINE [p1]"
class atom_c_0_o_10_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce atom_c_0_o_10_s1 STRING [p1]"
    def r_1 (self, *args):
        "%reduce STRING [p1]"
class expr_stmt_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce AUGASSIGN [p1]"
    def r_1 (self, *args):
        "%reduce expr_stmt_c_1_o_1_s1 [p1]"
class fplist_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce fplist_c_1_s1 comma fpdef [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class testlist (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test testlist_c_1_s1 testlist_c_2_q [p1]"
class classdef (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce class NAME classdef_c_2_q colon suite [p1]"
class assert_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce assert test assert_stmt_c_2_q [p1]"
class import_as_name_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce as NAME [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class for_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce for exprlist in testlist colon suite for_stmt_c_6_q [p1]"
class lambdef (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lambda lambdef_c_1_q colon test [p1]"
class exec_stmt_c_2_q_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class expr_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist expr_stmt_c_1_o [p1]"
class decorator (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce atsign dotted_name decorator_c_2_q NEWLINE [p1]"
class print_stmt_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce print_stmt_c_1_o_0_q [p1]"
    def r_1 (self, *args):
        "%reduce rshift [p1]"
class term (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce factor term_c_1_s1 [p1]"
class if_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce if test colon suite if_stmt_c_4_s1 if_stmt_c_5_q [p1]"
class print_stmt_c_1_o_0_q_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce print_stmt_c_1_o_0_q_c_1_s1 comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class or_test (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce and_test or_test_c_1_s1 [p1]"
class subscript_o_5_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce sliceop [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class with_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce with test with_stmt_c_2_q colon suite [p1]"
class global_stmt_c_2_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce global_stmt_c_2_s1 comma NAME [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class testlist_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist_c_1_s1 comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class expr (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce xor_expr expr_c_1_s1 [p1]"
class try_stmt_c_0_c_3_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce try_stmt_c_0_c_3_o_0_s1 [p1]"
    def r_1 (self, *args):
        "%reduce finally [p1]"
class trailer (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lparen [p1]"
    def r_1 (self, *args):
        "%reduce lbracket [p1]"
    def r_2 (self, *args):
        "%reduce dot [p1]"
    def r_3 (self, *args):
        "%reduce NAME [p1]"
class sliceop_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class listmaker (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test listmaker_c_1_o [p1]"
class decorator_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lparen decorator_c_2_q_c_1_q rparen [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dictmaker_c_4_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class factor (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce factor_o_0_o [p1]"
    def r_1 (self, *args):
        "%reduce power [p1]"
class classdef_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lparen classdef_c_2_q_c_1_q rparen [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class compound_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce if_stmt [p1]"
    def r_1 (self, *args):
        "%reduce while_stmt [p1]"
    def r_2 (self, *args):
        "%reduce for_stmt [p1]"
    def r_3 (self, *args):
        "%reduce try_stmt [p1]"
    def r_4 (self, *args):
        "%reduce with_stmt [p1]"
    def r_5 (self, *args):
        "%reduce funcdef [p1]"
    def r_6 (self, *args):
        "%reduce classdef [p1]"
    def r_7 (self, *args):
        "%reduce decorated [p1]"
class yield_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce yield yield_expr_c_1_q [p1]"
class testlist_safe_c_1_q_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class expr_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce expr_c_1_s1 vbar xor_expr [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class power (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce atom power_c_1_s1 power_c_2_q [p1]"
class small_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce expr_stmt [p1]"
    def r_1 (self, *args):
        "%reduce print_stmt [p1]"
    def r_2 (self, *args):
        "%reduce del_stmt [p1]"
    def r_3 (self, *args):
        "%reduce pass_stmt [p1]"
    def r_4 (self, *args):
        "%reduce flow_stmt [p1]"
    def r_5 (self, *args):
        "%reduce import_stmt [p1]"
    def r_6 (self, *args):
        "%reduce global_stmt [p1]"
    def r_7 (self, *args):
        "%reduce exec_stmt [p1]"
    def r_8 (self, *args):
        "%reduce assert_stmt [p1]"
class shift_expr (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce arith_expr shift_expr_c_1_s1 [p1]"
class exec_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce exec expr exec_stmt_c_2_q [p1]"
class print_stmt_c_1_o_0_q_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dotted_name (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce NAME dotted_name_c_1_s1 [p1]"
class for_stmt_c_6_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce else colon suite [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class power_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce splatsplat factor [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class fpdef (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce NAME [p1]"
    def r_1 (self, *args):
        "%reduce lparen [p1]"
class simple_stmt_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce simple_stmt_c_1_s1 semicolon small_stmt [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class subscript_o_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class yield_expr_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class classdef_c_2_q_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dotted_as_name_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce as NAME [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dictmaker_c_3_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dictmaker_c_3_s1 comma test colon test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class sliceop (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce colon sliceop_c_1_q [p1]"
class comparison (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce expr comparison_c_1_s1 [p1]"
class subscript_o_4_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class arith_expr (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce term arith_expr_c_1_s1 [p1]"
class dotted_as_names_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dotted_as_names_c_1_s1 comma dotted_as_name [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class shift_expr_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce shift_expr_c_1_s1 shift_expr_c_1_s_c_0_o arith_expr [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_from_c_0_c_1_o_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_c_0_c_1_o_1_s1 dot [p1]"
    def r_1 (self, *args):
        "%reduce dot [p1]"
class lambdef_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce varargslist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class parameters_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce varargslist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class factor_o_0_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce plus [p1]"
    def r_1 (self, *args):
        "%reduce minus [p1]"
    def r_2 (self, *args):
        "%reduce tilde [p1]"
class dotted_as_names (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dotted_as_name dotted_as_names_c_1_s1 [p1]"
class raise_stmt_c_1_q_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma test raise_stmt_c_1_q_c_1_q_c_2_q [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_from_c_0_c_3_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce splat [p1]"
    def r_1 (self, *args):
        "%reduce lparen [p1]"
    def r_2 (self, *args):
        "%reduce import_as_names [p1]"
class arglist_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce argument [p1]"
    def r_1 (self, *args):
        "%reduce splat [p1]"
    def r_2 (self, *args):
        "%reduce splatsplat [p1]"
    def r_3 (self, *args):
        "%reduce test [p1]"
class expr_stmt_c_1_o_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce expr_stmt_c_1_o_1_s1 equals expr_stmt_c_1_o_1_s_c_1_o [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class subscript (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dot [p1]"
    def r_1 (self, *args):
        "%reduce test [p1]"
    def r_2 (self, *args):
        "%reduce subscript_o_2_q [p1]"
    def r_3 (self, *args):
        "%reduce colon [p1]"
    def r_4 (self, *args):
        "%reduce subscript_o_4_q [p1]"
    def r_5 (self, *args):
        "%reduce subscript_o_5_q [p1]"
class atom (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lparen [p1]"
    def r_1 (self, *args):
        "%reduce lbracket [p1]"
    def r_2 (self, *args):
        "%reduce lbrace [p1]"
    def r_3 (self, *args):
        "%reduce atom_c_0_o_3_q [p1]"
    def r_4 (self, *args):
        "%reduce rbrace [p1]"
    def r_5 (self, *args):
        "%reduce backquote [p1]"
    def r_6 (self, *args):
        "%reduce testlist1 [p1]"
    def r_7 (self, *args):
        "%reduce backquote [p1]"
    def r_8 (self, *args):
        "%reduce NAME [p1]"
    def r_9 (self, *args):
        "%reduce NUMBER [p1]"
    def r_10 (self, *args):
        "%reduce atom_c_0_o_10_s1 [p1]"
class return_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce return return_stmt_c_1_q [p1]"
class testlist_safe_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist_safe_c_1_q_c_0_s1 testlist_safe_c_1_q_c_1_q [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_from_c_0_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_from_c_0_c_1_o_0_s1 [p1]"
    def r_1 (self, *args):
        "%reduce import_from_c_0_c_1_o_1_s1 [p1]"
class gen_iter (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce gen_for [p1]"
    def r_1 (self, *args):
        "%reduce gen_if [p1]"
class exprlist_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dictmaker (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test colon test dictmaker_c_3_s1 dictmaker_c_4_q [p1]"
class xor_expr (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce and_expr xor_expr_c_1_s1 [p1]"
class and_expr_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce and_expr_c_1_s1 ampersand shift_expr [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class arglist_c_0_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce arglist_c_0_s1 argument comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class dotted_as_name (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dotted_name dotted_as_name_c_1_q [p1]"
class return_stmt_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_name [p1]"
    def r_1 (self, *args):
        "%reduce import_from [p1]"
class while_stmt_c_4_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce else colon suite [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class list_iter (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce list_for [p1]"
    def r_1 (self, *args):
        "%reduce list_if [p1]"
class not_test (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce not [p1]"
    def r_1 (self, *args):
        "%reduce comparison [p1]"
class print_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce print print_stmt_c_1_o [p1]"
class list_for (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce for exprlist in testlist_safe list_for_c_4_q [p1]"
class subscriptlist_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce subscriptlist_c_1_s1 comma subscript [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class testlist_gexp_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce gen_for [p1]"
    def r_1 (self, *args):
        "%reduce testlist_gexp_c_1_o_1_s1 [p1]"
class gen_if (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce if old_test gen_if_c_2_q [p1]"
class comparison_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comparison_c_1_s1 comp_op expr [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class testlist_safe (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce old_test testlist_safe_c_1_q [p1]"
class import_as_names (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import_as_name import_as_names_c_1_s1 import_as_names_c_2_q [p1]"
class raise_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce raise raise_stmt_c_1_q [p1]"
class varargslist_c_0_o_0_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce varargslist_c_0_o_0_s1 fpdef varargslist_c_0_o_0_s_c_1_q comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class exprlist (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce expr exprlist_c_1_s1 exprlist_c_2_q [p1]"
class file_input_c_0_s_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce NEWLINE [p1]"
    def r_1 (self, *args):
        "%reduce stmt [p1]"
class dotted_name_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dotted_name_c_1_s1 dot NAME [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class old_lambdef_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce varargslist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class exec_stmt_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce in test exec_stmt_c_2_q_c_2_q [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class print_stmt_c_1_o_0_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test print_stmt_c_1_o_0_q_c_1_s1 print_stmt_c_1_o_0_q_c_2_q [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class file_input (NT):
    "%start"
    def r_0 (self, *args):
        "%reduce file_input_c_0_s1 ENDMARKER [p1]"
class varargslist (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce varargslist_c_0_o_0_s1 [p1]"
    def r_1 (self, *args):
        "%reduce fpdef [p1]"
class if_stmt_c_4_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce if_stmt_c_4_s1 elif test colon suite [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class except_clause (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce except except_clause_c_1_q [p1]"
class except_clause_c_1_q_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce except_clause_c_1_q_c_1_q_c_0_o test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class argument (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test [p1]"
    def r_1 (self, *args):
        "%reduce test [p1]"
class and_expr (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce shift_expr and_expr_c_1_s1 [p1]"
class term_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce term_c_1_s1 term_c_1_s_c_0_o factor [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_as_names_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class with_var (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce as expr [p1]"
class shift_expr_c_1_s_c_0_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce lshift [p1]"
    def r_1 (self, *args):
        "%reduce rshift [p1]"
class fplist (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce fpdef fplist_c_1_s1 fplist_c_2_q [p1]"
class arith_expr_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce arith_expr_c_1_s1 arith_expr_c_1_s_c_0_o term [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class comp_op (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce COMP_OP [p1]"
    def r_1 (self, *args):
        "%reduce in [p1]"
    def r_2 (self, *args):
        "%reduce not [p1]"
    def r_3 (self, *args):
        "%reduce in [p1]"
    def r_4 (self, *args):
        "%reduce is [p1]"
    def r_5 (self, *args):
        "%reduce is [p1]"
    def r_6 (self, *args):
        "%reduce not [p1]"
class or_test_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce or_test_c_1_s1 or and_test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class atom_c_0_o_3_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce dictmaker [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class arglist (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce arglist_c_0_s1 arglist_c_1_o [p1]"
class term_c_1_s_c_0_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce splat [p1]"
    def r_1 (self, *args):
        "%reduce slash [p1]"
    def r_2 (self, *args):
        "%reduce percent [p1]"
    def r_3 (self, *args):
        "%reduce slashslash [p1]"
class listmaker_c_1_o_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce listmaker_c_1_o_1_s1 comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class testlist_gexp (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test testlist_gexp_c_1_o [p1]"
class list_if (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce if old_test list_if_c_2_q [p1]"
class list_if_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce list_iter [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class global_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce global NAME global_stmt_c_2_s1 [p1]"
class file_input_c_0_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce file_input_c_0_s1 file_input_c_0_s_o [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class import_name (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce import dotted_as_names [p1]"
class subscriptlist (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce subscript subscriptlist_c_1_s1 subscriptlist_c_2_q [p1]"
class old_test (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce or_test [p1]"
    def r_1 (self, *args):
        "%reduce old_lambdef [p1]"
class test (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce or_test [p1]"
    def r_1 (self, *args):
        "%reduce lambdef [p1]"
class with_stmt_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce with_var [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce simple_stmt [p1]"
    def r_1 (self, *args):
        "%reduce compound_stmt [p1]"
class listmaker_c_1_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce list_for [p1]"
    def r_1 (self, *args):
        "%reduce listmaker_c_1_o_1_s1 [p1]"
class gen_for (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce for exprlist in or_test gen_for_c_4_q [p1]"
class raise_stmt_c_1_q_c_1_q_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class and_test (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce not_test and_test_c_1_s1 [p1]"
class testlist1_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist1_c_1_s1 comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class list_for_c_4_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce list_iter [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class arith_expr_c_1_s_c_0_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce plus [p1]"
    def r_1 (self, *args):
        "%reduce minus [p1]"
class decorated (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce decorators decorated_c_1_o [p1]"
class gen_for_c_4_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce gen_iter [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class gen_if_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce gen_iter [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class testlist_gexp_c_1_o_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce testlist_gexp_c_1_o_1_s1 comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class simple_stmt_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce semicolon [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class power_c_1_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce power_c_1_s1 trailer [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class except_clause_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test except_clause_c_1_q_c_1_q [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class raise_stmt_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test raise_stmt_c_1_q_c_1_q [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class try_stmt_c_0_c_3_o_0_s1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce try_stmt_c_0_c_3_o_0_s1 except_clause colon suite [p1]"
    def r_1 (self, *args):
        "%reduce except_clause colon suite [p1]"
class del_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce del exprlist [p1]"
class except_clause_c_1_q_c_1_q_c_0_o (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce as [p1]"
    def r_1 (self, *args):
        "%reduce comma [p1]"
class while_stmt (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce while test colon suite while_stmt_c_4_q [p1]"
class testlist1 (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce test testlist1_c_1_s1 [p1]"
class decorator_c_2_q_c_1_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce arglist [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class subscriptlist_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class assert_stmt_c_2_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce comma test [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"
class if_stmt_c_5_q (NT):
    "%nonterm"
    def r_0 (self, *args):
        "%reduce else colon suite [p1]"
    def r_1 (self, *args):
        "%reduce  [p1]"


spec = Parsing.Spec (sys.modules[__name__], skinny=False, logFile="grammar.log", verbose=True)