reduce  <none> --> @1
        [ (@1 nil) ]

goto    2
        [ 0 2 ]

read    :tIDENTIFIER(tIDENTIFIER) "puts"

shift   tIDENTIFIER
        [ (@1 nil) (tIDENTIFIER "puts") ]

goto    55
        [ 0 2 55 ]

read    :tINTEGER(tINTEGER) Integer(value: 1)

reduce  tIDENTIFIER --> operation
        [ (@1 nil) (operation "puts") ]

goto    94
        [ 0 2 94 ]

reduce  <none> --> @8
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) ]

goto    312
        [ 0 2 94 312 ]

shift   tINTEGER
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (tINTEGER Integer(value: 1)) ]

goto    85
        [ 0 2 94 312 85 ]

reduce  tINTEGER --> numeric
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (numeric Integer(value: 1)) ]

goto    5
        [ 0 2 94 312 5 ]

reduce  numeric --> literal
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (literal Integer(value: 1)) ]

goto    59
        [ 0 2 94 312 59 ]

reduce  literal --> primary
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (primary Integer(value: 1)) ]

goto    84
        [ 0 2 94 312 84 ]

read    "+"("+") nil

reduce  primary --> arg
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ]

goto    125
        [ 0 2 94 312 125 ]

shift   "+"
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ("+" nil) ]

goto    286
        [ 0 2 94 312 125 286 ]

read    :tINTEGER(tINTEGER) Integer(value: 1)

shift   tINTEGER
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ("+" nil) (tINTEGER Integer(value: 1)) ]

goto    85
        [ 0 2 94 312 125 286 85 ]

reduce  tINTEGER --> numeric
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ("+" nil) (numeric Integer(value: 1)) ]

goto    5
        [ 0 2 94 312 125 286 5 ]

reduce  numeric --> literal
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ("+" nil) (literal Integer(value: 1)) ]

goto    59
        [ 0 2 94 312 125 286 59 ]

reduce  literal --> primary
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ("+" nil) (primary Integer(value: 1)) ]

goto    84
        [ 0 2 94 312 125 286 84 ]

read    "\n"("\n") nil

reduce  primary --> arg
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg Integer(value: 1)) ("+" nil) (arg Integer(value: 1)) ]

goto    456
        [ 0 2 94 312 125 286 456 ]

reduce  arg "+" arg --> arg
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg MethodCall(name: "+", can_be_local_var: false, role: nil)
  Integer(value: 1)
  CallParams
    Integer(value: 1)) ]

goto    125
        [ 0 2 94 312 125 ]

reduce  arg --> arg_value
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (arg_value MethodCall(name: "+", can_be_local_var: false, role: nil)
  Integer(value: 1)
  CallParams
    Integer(value: 1)) ]

goto    120
        [ 0 2 94 312 120 ]

reduce  arg_value --> args
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (args [MethodCall(name: "+", can_be_local_var: false, role: nil)
  Integer(value: 1)
  CallParams
    Integer(value: 1)]) ]

goto    135
        [ 0 2 94 312 135 ]

reduce  <none> --> none
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (args [MethodCall(name: "+", can_be_local_var: false, role: nil)
  Integer(value: 1)
  CallParams
    Integer(value: 1)]) (none nil) ]

goto    377
        [ 0 2 94 312 135 377 ]

reduce  none --> opt_block_arg
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (args [MethodCall(name: "+", can_be_local_var: false, role: nil)
  Integer(value: 1)
  CallParams
    Integer(value: 1)]) (opt_block_arg nil) ]

goto    388
        [ 0 2 94 312 135 388 ]

reduce  args opt_block_arg --> call_args
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (call_args CallParams
  MethodCall(name: "+", can_be_local_var: false, role: nil)
    Integer(value: 1)
    CallParams
      Integer(value: 1)) ]

goto    480
        [ 0 2 94 312 480 ]

reduce  call_args --> open_args
        [ (@1 nil) (operation "puts") (@8 BitStack(0)) (open_args CallParams
  MethodCall(name: "+", can_be_local_var: false, role: nil)
    Integer(value: 1)
    CallParams
      Integer(value: 1)) ]

goto    478
        [ 0 2 94 312 478 ]

reduce  @8 open_args --> command_args
        [ (@1 nil) (operation "puts") (command_args CallParams
  MethodCall(name: "+", can_be_local_var: false, role: nil)
    Integer(value: 1)
    CallParams
      Integer(value: 1)) ]

goto    352
        [ 0 2 94 352 ]

reduce  operation command_args --> command
        [ (@1 nil) (command MethodCall(name: "puts", can_be_local_var: false, role: nil)
  CallParams
    MethodCall(name: "+", can_be_local_var: false, role: nil)
      Integer(value: 1)
      CallParams
        Integer(value: 1)) ]

goto    43
        [ 0 2 43 ]

reduce  command --> command_call
        [ (@1 nil) (command_call MethodCall(name: "puts", can_be_local_var: false, role: nil)
  CallParams
    MethodCall(name: "+", can_be_local_var: false, role: nil)
      Integer(value: 1)
      CallParams
        Integer(value: 1)) ]

goto    78
        [ 0 2 78 ]

reduce  command_call --> expr
        [ (@1 nil) (expr MethodCall(name: "puts", can_be_local_var: false, role: nil)
  CallParams
    MethodCall(name: "+", can_be_local_var: false, role: nil)
      Integer(value: 1)
      CallParams
        Integer(value: 1)) ]

goto    28
        [ 0 2 28 ]

reduce  expr --> stmt
        [ (@1 nil) (stmt MethodCall(name: "puts", can_be_local_var: false, role: nil)
  CallParams
    MethodCall(name: "+", can_be_local_var: false, role: nil)
      Integer(value: 1)
      CallParams
        Integer(value: 1)) ]

goto    47
        [ 0 2 47 ]

reduce  stmt --> stmts
        [ (@1 nil) (stmts Statements
  MethodCall(name: "puts", can_be_local_var: false, role: nil)
    CallParams
      MethodCall(name: "+", can_be_local_var: false, role: nil)
        Integer(value: 1)
        CallParams
          Integer(value: 1)) ]

goto    35
        [ 0 2 35 ]

shift   "\n"
        [ (@1 nil) (stmts Statements
  MethodCall(name: "puts", can_be_local_var: false, role: nil)
    CallParams
      MethodCall(name: "+", can_be_local_var: false, role: nil)
        Integer(value: 1)
        CallParams
          Integer(value: 1)) ("\n" nil) ]

goto    258
        [ 0 2 35 258 ]

reduce  "\n" --> term
        [ (@1 nil) (stmts Statements
  MethodCall(name: "puts", can_be_local_var: false, role: nil)
    CallParams
      MethodCall(name: "+", can_be_local_var: false, role: nil)
        Integer(value: 1)
        CallParams
          Integer(value: 1)) (term nil) ]

goto    257
        [ 0 2 35 257 ]

reduce  term --> terms
        [ (@1 nil) (stmts Statements
  MethodCall(name: "puts", can_be_local_var: false, role: nil)
    CallParams
      MethodCall(name: "+", can_be_local_var: false, role: nil)
        Integer(value: 1)
        CallParams
          Integer(value: 1)) (terms nil) ]

goto    256
        [ 0 2 35 256 ]

read    false($end) false

reduce  terms --> opt_terms
        [ (@1 nil) (stmts Statements
  MethodCall(name: "puts", can_be_local_var: false, role: nil)
    CallParams
      MethodCall(name: "+", can_be_local_var: false, role: nil)
        Integer(value: 1)
        CallParams
          Integer(value: 1)) (opt_terms nil) ]

goto    259
        [ 0 2 35 259 ]

reduce  stmts opt_terms --> compstmt
        [ (@1 nil) (compstmt Statements
  MethodCall(name: "puts", can_be_local_var: false, role: nil)
    CallParams
      MethodCall(name: "+", can_be_local_var: false, role: nil)
        Integer(value: 1)
        CallParams
          Integer(value: 1)) ]

goto    8
        [ 0 2 8 ]

reduce  @1 compstmt --> program
        [ (program Program
  Statements
    MethodCall(name: "puts", can_be_local_var: false, role: nil)
      CallParams
        MethodCall(name: "+", can_be_local_var: false, role: nil)
          Integer(value: 1)
          CallParams
            Integer(value: 1)) ]

goto    1
        [ 0 1 ]

shift   $end
        [ (program Program
  Statements
    MethodCall(name: "puts", can_be_local_var: false, role: nil)
      CallParams
        MethodCall(name: "+", can_be_local_var: false, role: nil)
          Integer(value: 1)
          CallParams
            Integer(value: 1)) ($end false) ]

goto    3
        [ 0 1 3 ]

shift   $end
        [ (program Program
  Statements
    MethodCall(name: "puts", can_be_local_var: false, role: nil)
      CallParams
        MethodCall(name: "+", can_be_local_var: false, role: nil)
          Integer(value: 1)
          CallParams
            Integer(value: 1)) ($end false) ($end false) ]

goto    96
        [ 0 1 3 96 ]

accept

