# -*- 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)