# -*- Mode: Python -*-
import sys
import Parsing
T = Parsing.Token
NT = Parsing.Nonterm
class t_DEDENT (T):
"%token DEDENT [p1]"
class t_and (T):
"%token and [p1]"
class t_elif (T):
"%token elif [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_comma (T):
"%token comma [p1]"
class t_vbar (T):
"%token vbar [p1]"
class t_lshift (T):
"%token lshift [p1]"
class t_in (T):
"%token in [p1]"
class t_rshift (T):
"%token rshift [p1]"
class t_if (T):
"%token if [p1]"
class t_caret (T):
"%token caret [p1]"
class t_raise (T):
"%token raise [p1]"
class t_for (T):
"%token for [p1]"
class t_NEWLINE (T):
"%token NEWLINE [p1]"
class t_percent (T):
"%token percent [p1]"
class t_ampersand (T):
"%token ampersand [p1]"
class t_slash (T):
"%token slash [p1]"
class t_splatsplat (T):
"%token splatsplat [p1]"
class t_pass (T):
"%token pass [p1]"
class t_return (T):
"%token return [p1]"
class t_STRING (T):
"%token STRING [p1]"
class t_equals (T):
"%token equals [p1]"
class t_else (T):
"%token else [p1]"
class t_lbracket (T):
"%token lbracket [p1]"
class t_lparen (T):
"%token lparen [p1]"
class t_not (T):
"%token not [p1]"
class t_rparen (T):
"%token rparen [p1]"
class t_splat (T):
"%token splat [p1]"
class t_break (T):
"%token break [p1]"
class t_COMP_OP (T):
"%token COMP_OP [p1]"
class t_INDENT (T):
"%token INDENT [p1]"
class t_NAME (T):
"%token NAME [p1]"
class t_or (T):
"%token or [p1]"
class t_while (T):
"%token while [p1]"
class t_continue (T):
"%token continue [p1]"
class t_plus (T):
"%token plus [p1]"
class t_def (T):
"%token def [p1]"
class t_colon (T):
"%token colon [p1]"
class t_rbracket (T):
"%token rbracket [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 xor_expr_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce caret and_expr xor_expr_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class testlist_c_2_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class small_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce expr_stmt [p1]"
def r_1 (self, *args):
"%reduce pass_stmt [p1]"
def r_2 (self, *args):
"%reduce flow_stmt [p1]"
class exprlist_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma expr exprlist_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class atom (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce NAME [p1]"
def r_1 (self, *args):
"%reduce NUMBER [p1]"
def r_2 (self, *args):
"%reduce atom_o_2_c_0_s1 [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]"
class subscript_o_2_c_3_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce sliceop [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class and_expr (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce shift_expr and_expr_c_1_s1 [p1]"
class suite (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce simple_stmt [p1]"
def r_1 (self, *args):
"%reduce NEWLINE INDENT suite_o_1_c_2_s1 DEDENT [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 subscriptlist (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce subscript subscriptlist_c_1_s1 subscriptlist_c_2_q [p1]"
class testlist (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce test testlist_c_1_s1 testlist_c_2_q [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 trailer power_c_1_s1 [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 and_test_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce and not_test and_test_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class arglist_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma argument arglist_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class expr_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce testlist expr_stmt_c_1_s1 [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 or_test (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce and_test or_test_c_1_s1 [p1]"
class testlist_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma test testlist_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class subscript_o_2_c_0_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce test [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class trailer (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce lparen trailer_o_0_c_1_q rparen [p1]"
def r_1 (self, *args):
"%reduce lbracket subscriptlist rbracket [p1]"
def r_2 (self, *args):
"%reduce dot 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 arglist (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce argument arglist_c_1_s1 arglist_c_2_q [p1]"
class factor (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce factor_o_0_c_0_o factor [p1]"
def r_1 (self, *args):
"%reduce power [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 funcdef [p1]"
class expr_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce vbar xor_expr expr_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [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 shift_expr (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce arith_expr shift_expr_c_1_s1 [p1]"
class subscript_o_2_c_2_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce test [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_s1 [p1]"
class arglist_c_2_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class factor_o_0_c_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 simple_stmt_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce semicolon small_stmt simple_stmt_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class xor_expr (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce and_expr xor_expr_c_1_s1 [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 pass_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce pass [p1]"
class arith_expr (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce term arith_expr_c_1_s1 [p1]"
class shift_expr_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce shift_expr_c_1_s_c_0_o arith_expr shift_expr_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class funcdef_c_3_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce varargslist [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class lambdef_c_1_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce varargslist [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class suite_o_1_c_2_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce stmt suite_o_1_c_2_s1 [p1]"
def r_1 (self, *args):
"%reduce stmt [p1]"
class atom_o_2_c_0_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce STRING atom_o_2_c_0_s1 [p1]"
def r_1 (self, *args):
"%reduce STRING [p1]"
class subscript (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce dot dot dot [p1]"
def r_1 (self, *args):
"%reduce test [p1]"
def r_2 (self, *args):
"%reduce subscript_o_2_c_0_q colon subscript_o_2_c_2_q subscript_o_2_c_3_q [p1]"
class return_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce return return_stmt_c_1_q [p1]"
class exprlist_c_2_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class and_expr_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce ampersand shift_expr and_expr_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class continue_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce continue [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 power_c_2_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce splatsplat factor power_c_2_s1 [p1]"
def r_1 (self, *args):
"%reduce [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 trailer_o_0_c_1_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce arglist [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class not_test (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce not not_test [p1]"
def r_1 (self, *args):
"%reduce comparison [p1]"
class varargslist_c_2_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class subscriptlist_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma subscript subscriptlist_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class comparison_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comp_op expr comparison_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class funcdef (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce def NAME lparen funcdef_c_3_q rparen colon suite [p1]"
class raise_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce raise raise_stmt_c_1_q [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 argument_c_0_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce NAME equals [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 expr_stmt_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce equals testlist expr_stmt_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class if_stmt_c_4_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce elif test colon suite if_stmt_c_4_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class term_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce term_c_1_s_c_0_o factor term_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class argument (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce argument_c_0_q test [p1]"
class arith_expr_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce arith_expr_c_1_s_c_0_o term arith_expr_c_1_s1 [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 in [p1]"
def r_3 (self, *args):
"%reduce is [p1]"
def r_4 (self, *args):
"%reduce is not [p1]"
class or_test_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce or and_test or_test_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class break_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce break [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]"
class varargslist_c_1_s1 (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma NAME varargslist_c_1_s1 [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class file_input (NT):
"%start"
def r_0 (self, *args):
"%reduce file_input_c_0_s_o file_input [p1]"
def r_1 (self, *args):
"%reduce [p1]"
class test (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce or_test [p1]"
def r_1 (self, *args):
"%reduce lambdef [p1]"
class stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce simple_stmt [p1]"
def r_1 (self, *args):
"%reduce compound_stmt [p1]"
class and_test (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce not_test and_test_c_1_s1 [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 raise_stmt_c_1_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce testlist [p1]"
def r_1 (self, *args):
"%reduce [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 while_stmt (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce while test colon suite while_stmt_c_4_q [p1]"
class varargslist (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce NAME varargslist_c_1_s1 varargslist_c_2_q [p1]"
class subscriptlist_c_2_q (NT):
"%nonterm"
def r_0 (self, *args):
"%reduce comma [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="t2.log", verbose=True)