gql 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/Rakefile +4 -4
- data/gql.gemspec +1 -1
- data/lib/gql.rb +2 -2
- data/lib/gql/array.rb +3 -11
- data/lib/gql/call.rb +16 -49
- data/lib/gql/config.rb +1 -1
- data/lib/gql/connection.rb +5 -20
- data/lib/gql/executor.rb +5 -5
- data/lib/gql/field.rb +3 -15
- data/lib/gql/node.rb +91 -32
- data/lib/gql/number.rb +1 -1
- data/lib/gql/object.rb +3 -9
- data/lib/gql/parser.rb +206 -193
- data/lib/gql/parser.y +31 -11
- data/lib/gql/schema/call.rb +4 -12
- data/lib/gql/schema/field.rb +4 -12
- data/lib/gql/schema/node.rb +3 -11
- data/lib/gql/schema/parameter.rb +4 -6
- data/lib/gql/string.rb +3 -3
- data/lib/gql/version.rb +1 -1
- metadata +3 -4
    
        data/lib/gql/number.rb
    CHANGED
    
    
    
        data/lib/gql/object.rb
    CHANGED
    
    | @@ -5,20 +5,14 @@ module GQL | |
| 5 5 | 
             
                class_attribute :node_class, instance_accessor: false, instance_predicate: false
         | 
| 6 6 |  | 
| 7 7 | 
             
                class << self
         | 
| 8 | 
            -
                  def build_class(id,  | 
| 8 | 
            +
                  def build_class(id, proc, options = {})
         | 
| 9 9 | 
             
                    node_class = options[:node_class] || self.node_class
         | 
| 10 10 |  | 
| 11 | 
            -
                     | 
| 12 | 
            -
                      raise Errors::UndefinedNodeClass.new(self, 'node')
         | 
| 13 | 
            -
                    end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                    unless node_class <= Node
         | 
| 16 | 
            -
                      raise Errors::InvalidNodeClass.new(node_class, Node)
         | 
| 17 | 
            -
                    end
         | 
| 11 | 
            +
                    Node.validate_is_subclass! node_class, 'node'
         | 
| 18 12 |  | 
| 19 13 | 
             
                    Class.new(self).tap do |field_class|
         | 
| 20 14 | 
             
                      field_class.id = id.to_s
         | 
| 21 | 
            -
                      field_class. | 
| 15 | 
            +
                      field_class.proc = proc
         | 
| 22 16 | 
             
                      field_class.node_class = node_class
         | 
| 23 17 | 
             
                    end
         | 
| 24 18 | 
             
                  end
         | 
    
        data/lib/gql/parser.rb
    CHANGED
    
    | @@ -7,24 +7,45 @@ | |
| 7 7 | 
             
            require 'racc/parser.rb'
         | 
| 8 8 |  | 
| 9 9 |  | 
| 10 | 
            -
            require 'json'
         | 
| 10 | 
            +
            require 'active_support/json'
         | 
| 11 11 | 
             
            require 'active_support/core_ext/object/blank'
         | 
| 12 | 
            +
            require 'active_support/core_ext/object/try'
         | 
| 13 | 
            +
            require 'active_support/core_ext/object/json'
         | 
| 12 14 |  | 
| 13 15 | 
             
            module GQL
         | 
| 14 16 | 
             
              class Parser < Racc::Parser
         | 
| 15 17 |  | 
| 16 | 
            -
            module_eval(<<'...end parser.y/module_eval...', 'parser.y',  | 
| 18 | 
            +
            module_eval(<<'...end parser.y/module_eval...', 'parser.y', 134)
         | 
| 17 19 |  | 
| 18 | 
            -
              class  | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 20 | 
            +
              class Query < Struct.new(:root, :variables)
         | 
| 21 | 
            +
                def as_json(*)
         | 
| 22 | 
            +
                  {
         | 
| 23 | 
            +
                    root:       root.as_json,
         | 
| 24 | 
            +
                    variables:  variables
         | 
| 25 | 
            +
                  }
         | 
| 26 | 
            +
                end
         | 
| 22 27 | 
             
              end
         | 
| 23 28 |  | 
| 24 29 | 
             
              class Field < Struct.new(:id, :alias_id, :call, :fields)
         | 
| 30 | 
            +
                def as_json(*)
         | 
| 31 | 
            +
                  {
         | 
| 32 | 
            +
                    id:         id,
         | 
| 33 | 
            +
                    alias_id:   alias_id,
         | 
| 34 | 
            +
                    call:       call.as_json,
         | 
| 35 | 
            +
                    fields:     fields.as_json
         | 
| 36 | 
            +
                  }
         | 
| 37 | 
            +
                end
         | 
| 25 38 | 
             
              end
         | 
| 26 39 |  | 
| 27 40 | 
             
              class Call < Struct.new(:id, :arguments, :call, :fields)
         | 
| 41 | 
            +
                def as_json(*)
         | 
| 42 | 
            +
                  {
         | 
| 43 | 
            +
                    id:         id,
         | 
| 44 | 
            +
                    arguments:  arguments,
         | 
| 45 | 
            +
                    call:       call.as_json,
         | 
| 46 | 
            +
                    fields:     fields.as_json
         | 
| 47 | 
            +
                  }
         | 
| 48 | 
            +
                end
         | 
| 28 49 | 
             
              end
         | 
| 29 50 |  | 
| 30 51 | 
             
              UNESCAPE_MAP = Hash.new { |h, k| h[k] = k.chr }
         | 
| @@ -97,130 +118,129 @@ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 133) | |
| 97 118 | 
             
            ##### State transition tables begin ###
         | 
| 98 119 |  | 
| 99 120 | 
             
            racc_action_table = [
         | 
| 100 | 
            -
                 | 
| 101 | 
            -
                 | 
| 102 | 
            -
                 | 
| 103 | 
            -
                46,     | 
| 104 | 
            -
                 | 
| 105 | 
            -
                 | 
| 106 | 
            -
                 | 
| 107 | 
            -
                 | 
| 108 | 
            -
                 | 
| 121 | 
            +
                35,    31,    32,    33,    34,    35,     6,    28,    35,    31,
         | 
| 122 | 
            +
                32,    33,    34,    51,    39,    28,    45,    29,    55,    35,
         | 
| 123 | 
            +
                31,    32,    33,    34,     7,    29,    28,    37,    71,     6,
         | 
| 124 | 
            +
                46,    38,    14,     6,    70,    12,    29,    35,    31,    32,
         | 
| 125 | 
            +
                33,    34,    12,    10,    28,    35,    31,    32,    33,    34,
         | 
| 126 | 
            +
                16,     6,    28,    12,    29,    59,    35,    31,    32,    33,
         | 
| 127 | 
            +
                34,    67,    29,    28,    43,    68,    39,    72,    41,    65,
         | 
| 128 | 
            +
                66,    38,     6,    29,    12,    22,    36,    12,    43,    12,
         | 
| 129 | 
            +
                12,    12,    69,    43,    35 ]
         | 
| 109 130 |  | 
| 110 131 | 
             
            racc_action_check = [
         | 
| 111 | 
            -
                 | 
| 112 | 
            -
                 | 
| 113 | 
            -
                 | 
| 114 | 
            -
                22,     | 
| 115 | 
            -
                 | 
| 116 | 
            -
                 | 
| 117 | 
            -
             | 
| 118 | 
            -
                 | 
| 119 | 
            -
                 | 
| 132 | 
            +
                29,    29,    29,    29,    29,    28,     0,    29,    14,    14,
         | 
| 133 | 
            +
                14,    14,    14,    28,    21,    14,    21,    29,    29,    22,
         | 
| 134 | 
            +
                22,    22,    22,    22,     1,    14,    22,    18,    56,     3,
         | 
| 135 | 
            +
                22,    18,     5,    22,    56,     6,    22,    66,    66,    66,
         | 
| 136 | 
            +
                66,    66,     2,     2,    66,    69,    69,    69,    69,    69,
         | 
| 137 | 
            +
                 7,    66,    69,    39,    66,    39,    71,    71,    71,    71,
         | 
| 138 | 
            +
                71,    52,    69,    71,    20,    52,    20,    60,    20,    47,
         | 
| 139 | 
            +
                47,    60,     8,    71,    10,    11,    15,    38,    40,    41,
         | 
| 140 | 
            +
                43,    45,    54,    62,    68 ]
         | 
| 120 141 |  | 
| 121 142 | 
             
            racc_action_pointer = [
         | 
| 122 | 
            -
             | 
| 123 | 
            -
             | 
| 124 | 
            -
                 | 
| 125 | 
            -
             | 
| 126 | 
            -
                 | 
| 127 | 
            -
               nil,     | 
| 128 | 
            -
               nil,     | 
| 129 | 
            -
                 | 
| 143 | 
            +
               -10,    24,    34,    13,   nil,    17,    27,    50,    56,   nil,
         | 
| 144 | 
            +
                66,    63,   nil,   nil,     6,    59,   nil,   nil,    17,   nil,
         | 
| 145 | 
            +
                57,     5,    17,   nil,   nil,   nil,   nil,   nil,     3,    -2,
         | 
| 146 | 
            +
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    69,    45,
         | 
| 147 | 
            +
                71,    71,   nil,    72,   nil,    73,   nil,    56,   nil,   nil,
         | 
| 148 | 
            +
               nil,   nil,    51,   nil,    64,   nil,    14,   nil,   nil,   nil,
         | 
| 149 | 
            +
                57,   nil,    76,   nil,   nil,   nil,    35,   nil,    82,    43,
         | 
| 150 | 
            +
               nil,    54,   nil,   nil,   nil,   nil,   nil,   nil ]
         | 
| 130 151 |  | 
| 131 152 | 
             
            racc_action_default = [
         | 
| 132 | 
            -
               - | 
| 133 | 
            -
             | 
| 134 | 
            -
               - | 
| 135 | 
            -
               - | 
| 136 | 
            -
               - | 
| 137 | 
            -
               - | 
| 138 | 
            -
               - | 
| 139 | 
            -
               - | 
| 153 | 
            +
               -25,   -51,   -51,   -26,   -27,   -51,   -51,   -51,   -25,    -2,
         | 
| 154 | 
            +
               -51,    -7,   -50,   -28,   -51,   -51,    78,    -1,   -51,   -17,
         | 
| 155 | 
            +
               -23,    -6,   -51,   -29,   -31,   -32,   -33,   -34,   -51,   -51,
         | 
| 156 | 
            +
               -44,   -45,   -46,   -47,   -48,   -49,   -30,    -3,   -51,   -51,
         | 
| 157 | 
            +
               -21,   -51,   -20,   -51,    -4,   -51,    -8,   -51,   -11,   -12,
         | 
| 158 | 
            +
               -13,   -35,   -51,   -38,   -51,   -40,   -51,   -43,   -16,   -14,
         | 
| 159 | 
            +
               -51,   -18,   -22,   -24,    -5,    -9,   -51,   -36,   -51,   -51,
         | 
| 160 | 
            +
               -41,   -51,   -15,   -19,   -10,   -37,   -39,   -42 ]
         | 
| 140 161 |  | 
| 141 162 | 
             
            racc_goto_table = [
         | 
| 142 | 
            -
                 | 
| 143 | 
            -
                 1,     8,     | 
| 144 | 
            -
                 | 
| 145 | 
            -
             | 
| 146 | 
            -
               nil,   nil,     | 
| 147 | 
            -
                 | 
| 163 | 
            +
                24,    48,    49,    15,     9,    18,    42,    20,     2,    53,
         | 
| 164 | 
            +
                54,    40,    44,     1,     8,    57,    17,    21,    47,    58,
         | 
| 165 | 
            +
                13,    23,    52,    56,   nil,   nil,    61,   nil,   nil,   nil,
         | 
| 166 | 
            +
               nil,   nil,   nil,   nil,    60,    20,    20,   nil,   nil,   nil,
         | 
| 167 | 
            +
                63,   nil,   nil,    62,   nil,    74,    49,    64,    73,    75,
         | 
| 168 | 
            +
                54,   nil,   nil,   nil,   nil,    76,   nil,    77 ]
         | 
| 148 169 |  | 
| 149 170 | 
             
            racc_goto_check = [
         | 
| 150 | 
            -
                11,      | 
| 151 | 
            -
             | 
| 152 | 
            -
                17,    21,    24,   nil, | 
| 153 | 
            -
             | 
| 154 | 
            -
               nil,   nil, | 
| 155 | 
            -
                 | 
| 171 | 
            +
                12,    10,    11,     6,     4,     5,    14,     6,     2,    22,
         | 
| 172 | 
            +
                23,     8,     8,     1,     3,    12,     2,     7,     9,    13,
         | 
| 173 | 
            +
                16,    17,    21,    24,   nil,   nil,    14,   nil,   nil,   nil,
         | 
| 174 | 
            +
               nil,   nil,   nil,   nil,     5,     6,     6,   nil,   nil,   nil,
         | 
| 175 | 
            +
                 6,   nil,   nil,     4,   nil,    10,    11,     4,    14,    22,
         | 
| 176 | 
            +
                23,   nil,   nil,   nil,   nil,    12,   nil,    12 ]
         | 
| 156 177 |  | 
| 157 178 | 
             
            racc_goto_pointer = [
         | 
| 158 | 
            -
               nil,     | 
| 159 | 
            -
               - | 
| 160 | 
            -
               nil,    - | 
| 179 | 
            +
               nil,    13,     8,    12,     2,    -5,    -3,     6,    -9,    -4,
         | 
| 180 | 
            +
               -21,   -20,   -14,   -19,   -14,   nil,    17,     7,   nil,   nil,
         | 
| 181 | 
            +
               nil,    -6,   -19,   -18,    -6 ]
         | 
| 161 182 |  | 
| 162 183 | 
             
            racc_goto_default = [
         | 
| 163 184 | 
             
               nil,   nil,   nil,   nil,   nil,   nil,    11,   nil,   nil,   nil,
         | 
| 164 | 
            -
                 5,     | 
| 165 | 
            -
                 | 
| 185 | 
            +
               nil,     5,    50,    19,   nil,     3,     4,   nil,    25,    26,
         | 
| 186 | 
            +
                27,   nil,   nil,    30,   nil ]
         | 
| 166 187 |  | 
| 167 188 | 
             
            racc_reduce_table = [
         | 
| 168 189 | 
             
              0, 0, :racc_error,
         | 
| 169 190 | 
             
              3, 22, :_reduce_1,
         | 
| 170 | 
            -
              1,  | 
| 171 | 
            -
               | 
| 172 | 
            -
               | 
| 173 | 
            -
               | 
| 174 | 
            -
               | 
| 175 | 
            -
               | 
| 176 | 
            -
               | 
| 177 | 
            -
               | 
| 178 | 
            -
              3,  | 
| 179 | 
            -
               | 
| 180 | 
            -
              1,  | 
| 181 | 
            -
              1,  | 
| 182 | 
            -
               | 
| 183 | 
            -
               | 
| 191 | 
            +
              1, 24, :_reduce_2,
         | 
| 192 | 
            +
              3, 24, :_reduce_3,
         | 
| 193 | 
            +
              3, 25, :_reduce_4,
         | 
| 194 | 
            +
              4, 25, :_reduce_5,
         | 
| 195 | 
            +
              2, 25, :_reduce_6,
         | 
| 196 | 
            +
              0, 28, :_reduce_7,
         | 
| 197 | 
            +
              2, 28, :_reduce_8,
         | 
| 198 | 
            +
              3, 28, :_reduce_9,
         | 
| 199 | 
            +
              3, 30, :_reduce_10,
         | 
| 200 | 
            +
              1, 30, :_reduce_11,
         | 
| 201 | 
            +
              1, 31, :_reduce_none,
         | 
| 202 | 
            +
              1, 31, :_reduce_none,
         | 
| 203 | 
            +
              2, 29, :_reduce_14,
         | 
| 204 | 
            +
              3, 29, :_reduce_15,
         | 
| 184 205 | 
             
              3, 26, :_reduce_16,
         | 
| 185 | 
            -
               | 
| 186 | 
            -
               | 
| 187 | 
            -
               | 
| 188 | 
            -
               | 
| 206 | 
            +
              1, 26, :_reduce_17,
         | 
| 207 | 
            +
              3, 34, :_reduce_18,
         | 
| 208 | 
            +
              4, 34, :_reduce_19,
         | 
| 209 | 
            +
              2, 34, :_reduce_20,
         | 
| 189 210 | 
             
              2, 34, :_reduce_21,
         | 
| 190 | 
            -
               | 
| 191 | 
            -
               | 
| 192 | 
            -
               | 
| 193 | 
            -
               | 
| 194 | 
            -
              0, 23, :_reduce_26,
         | 
| 211 | 
            +
              3, 34, :_reduce_22,
         | 
| 212 | 
            +
              1, 34, :_reduce_23,
         | 
| 213 | 
            +
              2, 35, :_reduce_24,
         | 
| 214 | 
            +
              0, 23, :_reduce_25,
         | 
| 195 215 | 
             
              1, 23, :_reduce_none,
         | 
| 196 216 | 
             
              1, 36, :_reduce_none,
         | 
| 197 | 
            -
              2, 36, : | 
| 198 | 
            -
              3, 37, : | 
| 199 | 
            -
              3,  | 
| 217 | 
            +
              2, 36, :_reduce_28,
         | 
| 218 | 
            +
              3, 37, :_reduce_29,
         | 
| 219 | 
            +
              3, 32, :_reduce_30,
         | 
| 200 220 | 
             
              1, 38, :_reduce_none,
         | 
| 201 | 
            -
              1,  | 
| 202 | 
            -
              1,  | 
| 203 | 
            -
              1,  | 
| 204 | 
            -
              2, 39, : | 
| 205 | 
            -
              3, 39, : | 
| 206 | 
            -
              3, 42, : | 
| 221 | 
            +
              1, 33, :_reduce_none,
         | 
| 222 | 
            +
              1, 33, :_reduce_none,
         | 
| 223 | 
            +
              1, 33, :_reduce_none,
         | 
| 224 | 
            +
              2, 39, :_reduce_35,
         | 
| 225 | 
            +
              3, 39, :_reduce_36,
         | 
| 226 | 
            +
              3, 42, :_reduce_37,
         | 
| 207 227 | 
             
              1, 42, :_reduce_none,
         | 
| 208 | 
            -
              3, 43, : | 
| 209 | 
            -
              2, 40, : | 
| 210 | 
            -
              3, 40, : | 
| 211 | 
            -
              3, 45, : | 
| 212 | 
            -
              1, 45, : | 
| 228 | 
            +
              3, 43, :_reduce_39,
         | 
| 229 | 
            +
              2, 40, :_reduce_40,
         | 
| 230 | 
            +
              3, 40, :_reduce_41,
         | 
| 231 | 
            +
              3, 45, :_reduce_42,
         | 
| 232 | 
            +
              1, 45, :_reduce_43,
         | 
| 213 233 | 
             
              1, 41, :_reduce_none,
         | 
| 234 | 
            +
              1, 41, :_reduce_45,
         | 
| 214 235 | 
             
              1, 41, :_reduce_46,
         | 
| 215 236 | 
             
              1, 41, :_reduce_47,
         | 
| 216 237 | 
             
              1, 41, :_reduce_48,
         | 
| 217 | 
            -
              1,  | 
| 218 | 
            -
              1,  | 
| 219 | 
            -
              1, 27, :_reduce_51 ]
         | 
| 238 | 
            +
              1, 44, :_reduce_49,
         | 
| 239 | 
            +
              1, 27, :_reduce_50 ]
         | 
| 220 240 |  | 
| 221 | 
            -
            racc_reduce_n =  | 
| 241 | 
            +
            racc_reduce_n = 51
         | 
| 222 242 |  | 
| 223 | 
            -
            racc_shift_n =  | 
| 243 | 
            +
            racc_shift_n = 78
         | 
| 224 244 |  | 
| 225 245 | 
             
            racc_token_table = {
         | 
| 226 246 | 
             
              false => 0,
         | 
| @@ -232,12 +252,12 @@ racc_token_table = { | |
| 232 252 | 
             
              :NULL => 6,
         | 
| 233 253 | 
             
              :AS => 7,
         | 
| 234 254 | 
             
              :IDENT => 8,
         | 
| 235 | 
            -
              " | 
| 236 | 
            -
              " | 
| 237 | 
            -
              " | 
| 238 | 
            -
              " | 
| 239 | 
            -
              " | 
| 240 | 
            -
              " | 
| 255 | 
            +
              "{" => 9,
         | 
| 256 | 
            +
              "}" => 10,
         | 
| 257 | 
            +
              "." => 11,
         | 
| 258 | 
            +
              "(" => 12,
         | 
| 259 | 
            +
              ")" => 13,
         | 
| 260 | 
            +
              "," => 14,
         | 
| 241 261 | 
             
              "=" => 15,
         | 
| 242 262 | 
             
              "<" => 16,
         | 
| 243 263 | 
             
              ">" => 17,
         | 
| @@ -275,12 +295,12 @@ Racc_token_to_s_table = [ | |
| 275 295 | 
             
              "NULL",
         | 
| 276 296 | 
             
              "AS",
         | 
| 277 297 | 
             
              "IDENT",
         | 
| 298 | 
            +
              "\"{\"",
         | 
| 299 | 
            +
              "\"}\"",
         | 
| 278 300 | 
             
              "\".\"",
         | 
| 279 301 | 
             
              "\"(\"",
         | 
| 280 302 | 
             
              "\")\"",
         | 
| 281 303 | 
             
              "\",\"",
         | 
| 282 | 
            -
              "\"{\"",
         | 
| 283 | 
            -
              "\"}\"",
         | 
| 284 304 | 
             
              "\"=\"",
         | 
| 285 305 | 
             
              "\"<\"",
         | 
| 286 306 | 
             
              "\">\"",
         | 
| @@ -288,18 +308,18 @@ Racc_token_to_s_table = [ | |
| 288 308 | 
             
              "\"[\"",
         | 
| 289 309 | 
             
              "\"]\"",
         | 
| 290 310 | 
             
              "$start",
         | 
| 291 | 
            -
              " | 
| 311 | 
            +
              "query",
         | 
| 292 312 | 
             
              "variables",
         | 
| 293 | 
            -
              " | 
| 313 | 
            +
              "root",
         | 
| 294 314 | 
             
              "call",
         | 
| 295 | 
            -
              " | 
| 315 | 
            +
              "field_list",
         | 
| 296 316 | 
             
              "identifier",
         | 
| 297 317 | 
             
              "arguments",
         | 
| 318 | 
            +
              "fields",
         | 
| 298 319 | 
             
              "argument_list",
         | 
| 299 320 | 
             
              "argument",
         | 
| 300 321 | 
             
              "variable_identifier",
         | 
| 301 322 | 
             
              "json_value",
         | 
| 302 | 
            -
              "field_list",
         | 
| 303 323 | 
             
              "field",
         | 
| 304 324 | 
             
              "alias_identifier",
         | 
| 305 325 | 
             
              "variable_list",
         | 
| @@ -321,49 +341,49 @@ Racc_debug_parser = false | |
| 321 341 |  | 
| 322 342 | 
             
            module_eval(<<'.,.,', 'parser.y', 4)
         | 
| 323 343 | 
             
              def _reduce_1(val, _values, result)
         | 
| 324 | 
            -
                  result =  | 
| 344 | 
            +
                  result = Query.new(val[1], val[0].merge(val[2]))  
         | 
| 325 345 | 
             
                result
         | 
| 326 346 | 
             
              end
         | 
| 327 347 | 
             
            .,.,
         | 
| 328 348 |  | 
| 329 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 349 | 
            +
            module_eval(<<'.,.,', 'parser.y', 8)
         | 
| 330 350 | 
             
              def _reduce_2(val, _values, result)
         | 
| 331 | 
            -
                  result =  | 
| 351 | 
            +
                  result = Field.new(nil, nil, val[0], nil   )  
         | 
| 332 352 | 
             
                result
         | 
| 333 353 | 
             
              end
         | 
| 334 354 | 
             
            .,.,
         | 
| 335 355 |  | 
| 336 356 | 
             
            module_eval(<<'.,.,', 'parser.y', 9)
         | 
| 337 357 | 
             
              def _reduce_3(val, _values, result)
         | 
| 338 | 
            -
                  result =  | 
| 358 | 
            +
                  result = Field.new(nil, nil, nil,    val[1])  
         | 
| 339 359 | 
             
                result
         | 
| 340 360 | 
             
              end
         | 
| 341 361 | 
             
            .,.,
         | 
| 342 362 |  | 
| 343 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 363 | 
            +
            module_eval(<<'.,.,', 'parser.y', 13)
         | 
| 344 364 | 
             
              def _reduce_4(val, _values, result)
         | 
| 345 | 
            -
             | 
| 365 | 
            +
                   result = Call.new(val[0], val[1], nil,    val[2].presence)   
         | 
| 346 366 | 
             
                result
         | 
| 347 367 | 
             
              end
         | 
| 348 368 | 
             
            .,.,
         | 
| 349 369 |  | 
| 350 370 | 
             
            module_eval(<<'.,.,', 'parser.y', 14)
         | 
| 351 371 | 
             
              def _reduce_5(val, _values, result)
         | 
| 352 | 
            -
                   result = Call.new(val[0], val[1],  | 
| 372 | 
            +
                   result = Call.new(val[0], val[1], val[3], nil            )   
         | 
| 353 373 | 
             
                result
         | 
| 354 374 | 
             
              end
         | 
| 355 375 | 
             
            .,.,
         | 
| 356 376 |  | 
| 357 377 | 
             
            module_eval(<<'.,.,', 'parser.y', 15)
         | 
| 358 378 | 
             
              def _reduce_6(val, _values, result)
         | 
| 359 | 
            -
                   result = Call.new(val[0], val[1],  | 
| 379 | 
            +
                   result = Call.new(val[0], val[1], nil,    nil            )   
         | 
| 360 380 | 
             
                result
         | 
| 361 381 | 
             
              end
         | 
| 362 382 | 
             
            .,.,
         | 
| 363 383 |  | 
| 364 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 384 | 
            +
            module_eval(<<'.,.,', 'parser.y', 19)
         | 
| 365 385 | 
             
              def _reduce_7(val, _values, result)
         | 
| 366 | 
            -
                   result =  | 
| 386 | 
            +
                   result = []       
         | 
| 367 387 | 
             
                result
         | 
| 368 388 | 
             
              end
         | 
| 369 389 | 
             
            .,.,
         | 
| @@ -377,250 +397,243 @@ module_eval(<<'.,.,', 'parser.y', 20) | |
| 377 397 |  | 
| 378 398 | 
             
            module_eval(<<'.,.,', 'parser.y', 21)
         | 
| 379 399 | 
             
              def _reduce_9(val, _values, result)
         | 
| 380 | 
            -
                   result = [] | 
| 400 | 
            +
                   result = val[1]   
         | 
| 381 401 | 
             
                result
         | 
| 382 402 | 
             
              end
         | 
| 383 403 | 
             
            .,.,
         | 
| 384 404 |  | 
| 385 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 405 | 
            +
            module_eval(<<'.,.,', 'parser.y', 25)
         | 
| 386 406 | 
             
              def _reduce_10(val, _values, result)
         | 
| 387 | 
            -
                   result  | 
| 407 | 
            +
                   result.push val[2]    
         | 
| 388 408 | 
             
                result
         | 
| 389 409 | 
             
              end
         | 
| 390 410 | 
             
            .,.,
         | 
| 391 411 |  | 
| 392 412 | 
             
            module_eval(<<'.,.,', 'parser.y', 26)
         | 
| 393 413 | 
             
              def _reduce_11(val, _values, result)
         | 
| 394 | 
            -
                   result.push val[2]    
         | 
| 395 | 
            -
                result
         | 
| 396 | 
            -
              end
         | 
| 397 | 
            -
            .,.,
         | 
| 398 | 
            -
             | 
| 399 | 
            -
            module_eval(<<'.,.,', 'parser.y', 27)
         | 
| 400 | 
            -
              def _reduce_12(val, _values, result)
         | 
| 401 414 | 
             
                   result = val          
         | 
| 402 415 | 
             
                result
         | 
| 403 416 | 
             
              end
         | 
| 404 417 | 
             
            .,.,
         | 
| 405 418 |  | 
| 419 | 
            +
            # reduce 12 omitted
         | 
| 420 | 
            +
             | 
| 406 421 | 
             
            # reduce 13 omitted
         | 
| 407 422 |  | 
| 408 | 
            -
             | 
| 423 | 
            +
            module_eval(<<'.,.,', 'parser.y', 35)
         | 
| 424 | 
            +
              def _reduce_14(val, _values, result)
         | 
| 425 | 
            +
                   result = []       
         | 
| 426 | 
            +
                result
         | 
| 427 | 
            +
              end
         | 
| 428 | 
            +
            .,.,
         | 
| 409 429 |  | 
| 410 430 | 
             
            module_eval(<<'.,.,', 'parser.y', 36)
         | 
| 411 431 | 
             
              def _reduce_15(val, _values, result)
         | 
| 412 | 
            -
                   result = [] | 
| 432 | 
            +
                   result = val[1]   
         | 
| 413 433 | 
             
                result
         | 
| 414 434 | 
             
              end
         | 
| 415 435 | 
             
            .,.,
         | 
| 416 436 |  | 
| 417 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 437 | 
            +
            module_eval(<<'.,.,', 'parser.y', 40)
         | 
| 418 438 | 
             
              def _reduce_16(val, _values, result)
         | 
| 419 | 
            -
                   result  | 
| 439 | 
            +
                   result.push val[2]    
         | 
| 420 440 | 
             
                result
         | 
| 421 441 | 
             
              end
         | 
| 422 442 | 
             
            .,.,
         | 
| 423 443 |  | 
| 424 444 | 
             
            module_eval(<<'.,.,', 'parser.y', 41)
         | 
| 425 445 | 
             
              def _reduce_17(val, _values, result)
         | 
| 426 | 
            -
                   result | 
| 446 | 
            +
                   result = val          
         | 
| 427 447 | 
             
                result
         | 
| 428 448 | 
             
              end
         | 
| 429 449 | 
             
            .,.,
         | 
| 430 450 |  | 
| 431 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 451 | 
            +
            module_eval(<<'.,.,', 'parser.y', 45)
         | 
| 432 452 | 
             
              def _reduce_18(val, _values, result)
         | 
| 433 | 
            -
                   result = val | 
| 453 | 
            +
                   result = Field.new(val[0], val[2], nil,    val[1].presence)   
         | 
| 434 454 | 
             
                result
         | 
| 435 455 | 
             
              end
         | 
| 436 456 | 
             
            .,.,
         | 
| 437 457 |  | 
| 438 458 | 
             
            module_eval(<<'.,.,', 'parser.y', 46)
         | 
| 439 459 | 
             
              def _reduce_19(val, _values, result)
         | 
| 440 | 
            -
                   result = Field.new(val[0], val[ | 
| 460 | 
            +
                   result = Field.new(val[0], val[3], val[2], nil            )   
         | 
| 441 461 | 
             
                result
         | 
| 442 462 | 
             
              end
         | 
| 443 463 | 
             
            .,.,
         | 
| 444 464 |  | 
| 445 465 | 
             
            module_eval(<<'.,.,', 'parser.y', 47)
         | 
| 446 466 | 
             
              def _reduce_20(val, _values, result)
         | 
| 447 | 
            -
                   result = Field.new(val[0], val[ | 
| 467 | 
            +
                   result = Field.new(val[0], val[1], nil,    nil            )   
         | 
| 448 468 | 
             
                result
         | 
| 449 469 | 
             
              end
         | 
| 450 470 | 
             
            .,.,
         | 
| 451 471 |  | 
| 452 472 | 
             
            module_eval(<<'.,.,', 'parser.y', 48)
         | 
| 453 473 | 
             
              def _reduce_21(val, _values, result)
         | 
| 454 | 
            -
                   result = Field.new(val[0], val[1] | 
| 474 | 
            +
                   result = Field.new(val[0], nil,    nil,    val[1].presence)   
         | 
| 455 475 | 
             
                result
         | 
| 456 476 | 
             
              end
         | 
| 457 477 | 
             
            .,.,
         | 
| 458 478 |  | 
| 459 479 | 
             
            module_eval(<<'.,.,', 'parser.y', 49)
         | 
| 460 480 | 
             
              def _reduce_22(val, _values, result)
         | 
| 461 | 
            -
                   result = Field.new(val[0], nil,     | 
| 481 | 
            +
                   result = Field.new(val[0], nil,    val[2], nil            )   
         | 
| 462 482 | 
             
                result
         | 
| 463 483 | 
             
              end
         | 
| 464 484 | 
             
            .,.,
         | 
| 465 485 |  | 
| 466 486 | 
             
            module_eval(<<'.,.,', 'parser.y', 50)
         | 
| 467 487 | 
             
              def _reduce_23(val, _values, result)
         | 
| 468 | 
            -
                   result = Field.new(val[0], nil,    val[2], nil            )   
         | 
| 469 | 
            -
                result
         | 
| 470 | 
            -
              end
         | 
| 471 | 
            -
            .,.,
         | 
| 472 | 
            -
             | 
| 473 | 
            -
            module_eval(<<'.,.,', 'parser.y', 51)
         | 
| 474 | 
            -
              def _reduce_24(val, _values, result)
         | 
| 475 488 | 
             
                   result = Field.new(val[0], nil,    nil,    nil            )   
         | 
| 476 489 | 
             
                result
         | 
| 477 490 | 
             
              end
         | 
| 478 491 | 
             
            .,.,
         | 
| 479 492 |  | 
| 480 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 481 | 
            -
              def  | 
| 493 | 
            +
            module_eval(<<'.,.,', 'parser.y', 54)
         | 
| 494 | 
            +
              def _reduce_24(val, _values, result)
         | 
| 482 495 | 
             
                   result = val[1]   
         | 
| 483 496 | 
             
                result
         | 
| 484 497 | 
             
              end
         | 
| 485 498 | 
             
            .,.,
         | 
| 486 499 |  | 
| 487 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 488 | 
            -
              def  | 
| 500 | 
            +
            module_eval(<<'.,.,', 'parser.y', 58)
         | 
| 501 | 
            +
              def _reduce_25(val, _values, result)
         | 
| 489 502 | 
             
                   result = {}   
         | 
| 490 503 | 
             
                result
         | 
| 491 504 | 
             
              end
         | 
| 492 505 | 
             
            .,.,
         | 
| 493 506 |  | 
| 494 | 
            -
            # reduce  | 
| 507 | 
            +
            # reduce 26 omitted
         | 
| 495 508 |  | 
| 496 | 
            -
            # reduce  | 
| 509 | 
            +
            # reduce 27 omitted
         | 
| 497 510 |  | 
| 498 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 499 | 
            -
              def  | 
| 511 | 
            +
            module_eval(<<'.,.,', 'parser.y', 64)
         | 
| 512 | 
            +
              def _reduce_28(val, _values, result)
         | 
| 500 513 | 
             
                   result.update val[1]    
         | 
| 501 514 | 
             
                result
         | 
| 502 515 | 
             
              end
         | 
| 503 516 | 
             
            .,.,
         | 
| 504 517 |  | 
| 505 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 506 | 
            -
              def  | 
| 518 | 
            +
            module_eval(<<'.,.,', 'parser.y', 68)
         | 
| 519 | 
            +
              def _reduce_29(val, _values, result)
         | 
| 507 520 | 
             
                   result = { val[0] => val[2] }     
         | 
| 508 521 | 
             
                result
         | 
| 509 522 | 
             
              end
         | 
| 510 523 | 
             
            .,.,
         | 
| 511 524 |  | 
| 512 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 513 | 
            -
              def  | 
| 525 | 
            +
            module_eval(<<'.,.,', 'parser.y', 72)
         | 
| 526 | 
            +
              def _reduce_30(val, _values, result)
         | 
| 514 527 | 
             
                   result = val[1]   
         | 
| 515 528 | 
             
                result
         | 
| 516 529 | 
             
              end
         | 
| 517 530 | 
             
            .,.,
         | 
| 518 531 |  | 
| 532 | 
            +
            # reduce 31 omitted
         | 
| 533 | 
            +
             | 
| 519 534 | 
             
            # reduce 32 omitted
         | 
| 520 535 |  | 
| 521 536 | 
             
            # reduce 33 omitted
         | 
| 522 537 |  | 
| 523 538 | 
             
            # reduce 34 omitted
         | 
| 524 539 |  | 
| 525 | 
            -
             | 
| 526 | 
            -
             | 
| 527 | 
            -
            module_eval(<<'.,.,', 'parser.y', 87)
         | 
| 528 | 
            -
              def _reduce_36(val, _values, result)
         | 
| 540 | 
            +
            module_eval(<<'.,.,', 'parser.y', 86)
         | 
| 541 | 
            +
              def _reduce_35(val, _values, result)
         | 
| 529 542 | 
             
                   result = {}       
         | 
| 530 543 | 
             
                result
         | 
| 531 544 | 
             
              end
         | 
| 532 545 | 
             
            .,.,
         | 
| 533 546 |  | 
| 534 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 535 | 
            -
              def  | 
| 547 | 
            +
            module_eval(<<'.,.,', 'parser.y', 87)
         | 
| 548 | 
            +
              def _reduce_36(val, _values, result)
         | 
| 536 549 | 
             
                   result = val[1]   
         | 
| 537 550 | 
             
                result
         | 
| 538 551 | 
             
              end
         | 
| 539 552 | 
             
            .,.,
         | 
| 540 553 |  | 
| 541 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 542 | 
            -
              def  | 
| 554 | 
            +
            module_eval(<<'.,.,', 'parser.y', 91)
         | 
| 555 | 
            +
              def _reduce_37(val, _values, result)
         | 
| 543 556 | 
             
                   result.update val[2]    
         | 
| 544 557 | 
             
                result
         | 
| 545 558 | 
             
              end
         | 
| 546 559 | 
             
            .,.,
         | 
| 547 560 |  | 
| 548 | 
            -
            # reduce  | 
| 561 | 
            +
            # reduce 38 omitted
         | 
| 549 562 |  | 
| 550 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 551 | 
            -
              def  | 
| 563 | 
            +
            module_eval(<<'.,.,', 'parser.y', 96)
         | 
| 564 | 
            +
              def _reduce_39(val, _values, result)
         | 
| 552 565 | 
             
                   result = { val[0] => val[2] }    
         | 
| 553 566 | 
             
                result
         | 
| 554 567 | 
             
              end
         | 
| 555 568 | 
             
            .,.,
         | 
| 556 569 |  | 
| 557 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 558 | 
            -
              def  | 
| 570 | 
            +
            module_eval(<<'.,.,', 'parser.y', 100)
         | 
| 571 | 
            +
              def _reduce_40(val, _values, result)
         | 
| 559 572 | 
             
                   result = []       
         | 
| 560 573 | 
             
                result
         | 
| 561 574 | 
             
              end
         | 
| 562 575 | 
             
            .,.,
         | 
| 563 576 |  | 
| 564 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 565 | 
            -
              def  | 
| 577 | 
            +
            module_eval(<<'.,.,', 'parser.y', 101)
         | 
| 578 | 
            +
              def _reduce_41(val, _values, result)
         | 
| 566 579 | 
             
                   result = val[1]   
         | 
| 567 580 | 
             
                result
         | 
| 568 581 | 
             
              end
         | 
| 569 582 | 
             
            .,.,
         | 
| 570 583 |  | 
| 571 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 572 | 
            -
              def  | 
| 584 | 
            +
            module_eval(<<'.,.,', 'parser.y', 105)
         | 
| 585 | 
            +
              def _reduce_42(val, _values, result)
         | 
| 573 586 | 
             
                   result.push val[2]    
         | 
| 574 587 | 
             
                result
         | 
| 575 588 | 
             
              end
         | 
| 576 589 | 
             
            .,.,
         | 
| 577 590 |  | 
| 578 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 579 | 
            -
              def  | 
| 591 | 
            +
            module_eval(<<'.,.,', 'parser.y', 106)
         | 
| 592 | 
            +
              def _reduce_43(val, _values, result)
         | 
| 580 593 | 
             
                   result = val          
         | 
| 581 594 | 
             
                result
         | 
| 582 595 | 
             
              end
         | 
| 583 596 | 
             
            .,.,
         | 
| 584 597 |  | 
| 585 | 
            -
            # reduce  | 
| 598 | 
            +
            # reduce 44 omitted
         | 
| 586 599 |  | 
| 587 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 588 | 
            -
              def  | 
| 600 | 
            +
            module_eval(<<'.,.,', 'parser.y', 111)
         | 
| 601 | 
            +
              def _reduce_45(val, _values, result)
         | 
| 589 602 | 
             
                   result = convert_number(val[0])   
         | 
| 590 603 | 
             
                result
         | 
| 591 604 | 
             
              end
         | 
| 592 605 | 
             
            .,.,
         | 
| 593 606 |  | 
| 594 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 595 | 
            -
              def  | 
| 607 | 
            +
            module_eval(<<'.,.,', 'parser.y', 112)
         | 
| 608 | 
            +
              def _reduce_46(val, _values, result)
         | 
| 596 609 | 
             
                   result = true                     
         | 
| 597 610 | 
             
                result
         | 
| 598 611 | 
             
              end
         | 
| 599 612 | 
             
            .,.,
         | 
| 600 613 |  | 
| 601 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 602 | 
            -
              def  | 
| 614 | 
            +
            module_eval(<<'.,.,', 'parser.y', 113)
         | 
| 615 | 
            +
              def _reduce_47(val, _values, result)
         | 
| 603 616 | 
             
                   result = false                    
         | 
| 604 617 | 
             
                result
         | 
| 605 618 | 
             
              end
         | 
| 606 619 | 
             
            .,.,
         | 
| 607 620 |  | 
| 608 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 609 | 
            -
              def  | 
| 621 | 
            +
            module_eval(<<'.,.,', 'parser.y', 114)
         | 
| 622 | 
            +
              def _reduce_48(val, _values, result)
         | 
| 610 623 | 
             
                   result = nil                      
         | 
| 611 624 | 
             
                result
         | 
| 612 625 | 
             
              end
         | 
| 613 626 | 
             
            .,.,
         | 
| 614 627 |  | 
| 615 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 616 | 
            -
              def  | 
| 628 | 
            +
            module_eval(<<'.,.,', 'parser.y', 118)
         | 
| 629 | 
            +
              def _reduce_49(val, _values, result)
         | 
| 617 630 | 
             
                   result = unescape_string(val[0])  
         | 
| 618 631 | 
             
                result
         | 
| 619 632 | 
             
              end
         | 
| 620 633 | 
             
            .,.,
         | 
| 621 634 |  | 
| 622 | 
            -
            module_eval(<<'.,.,', 'parser.y',  | 
| 623 | 
            -
              def  | 
| 635 | 
            +
            module_eval(<<'.,.,', 'parser.y', 121)
         | 
| 636 | 
            +
              def _reduce_50(val, _values, result)
         | 
| 624 637 | 
             
                   result = val[0].to_sym    
         | 
| 625 638 | 
             
                result
         | 
| 626 639 | 
             
              end
         |