synvert-core 1.2.0 → 1.3.1
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/CHANGELOG.md +15 -0
 - data/Gemfile +9 -0
 - data/lib/synvert/core/node_ext.rb +14 -2
 - data/lib/synvert/core/node_query/compiler/attribute.rb +6 -18
 - data/lib/synvert/core/node_query/compiler/comparable.rb +26 -19
 - data/lib/synvert/core/node_query/compiler/expression.rb +8 -76
 - data/lib/synvert/core/node_query/compiler/identifier.rb +1 -1
 - data/lib/synvert/core/node_query/compiler/regexp.rb +2 -2
 - data/lib/synvert/core/node_query/compiler/selector.rb +102 -20
 - data/lib/synvert/core/node_query/compiler/simple_selector.rb +29 -0
 - data/lib/synvert/core/node_query/compiler/string.rb +1 -1
 - data/lib/synvert/core/node_query/compiler.rb +1 -0
 - data/lib/synvert/core/node_query/lexer.rex +19 -16
 - data/lib/synvert/core/node_query/lexer.rex.rb +34 -27
 - data/lib/synvert/core/node_query/parser.racc.rb +118 -287
 - data/lib/synvert/core/node_query/parser.y +17 -36
 - data/lib/synvert/core/node_query.rb +7 -7
 - data/lib/synvert/core/rewriter/action/delete_action.rb +4 -2
 - data/lib/synvert/core/rewriter/action/remove_action.rb +5 -2
 - data/lib/synvert/core/rewriter/instance.rb +8 -4
 - data/lib/synvert/core/version.rb +1 -1
 - data/spec/synvert/core/node_ext_spec.rb +7 -5
 - data/spec/synvert/core/node_query/lexer_spec.rb +48 -48
 - data/spec/synvert/core/node_query/parser_spec.rb +139 -107
 - data/spec/synvert/core/rewriter/instance_spec.rb +12 -7
 - data/spec/synvert/core/rewriter/scope/query_scope_spec.rb +3 -3
 - data/synvert-core-ruby.gemspec +0 -10
 - metadata +3 -128
 
| 
         @@ -1,3 +1,4 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # typed: false
         
     | 
| 
       1 
2 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
3 
     | 
    
         
             
            # encoding: UTF-8
         
     | 
| 
       3 
4 
     | 
    
         
             
            #--
         
     | 
| 
         @@ -35,8 +36,8 @@ class Synvert::Core::NodeQuery::Lexer 
     | 
|
| 
       35 
36 
     | 
    
         
             
              REGEXP                  = /\/(#{REGEXP_BODY})(?<!\\)\/([imxo]*)/
         
     | 
| 
       36 
37 
     | 
    
         
             
              SYMBOL                  = /:[\w!\?<>=]+/
         
     | 
| 
       37 
38 
     | 
    
         
             
              TRUE                    = /true/
         
     | 
| 
       38 
     | 
    
         
            -
              SINGLE_QUOTE_STRING     = /' 
     | 
| 
       39 
     | 
    
         
            -
              DOUBLE_QUOTE_STRING     = /" 
     | 
| 
      
 39 
     | 
    
         
            +
              SINGLE_QUOTE_STRING     = /'.*?'/
         
     | 
| 
      
 40 
     | 
    
         
            +
              DOUBLE_QUOTE_STRING     = /".*?"/
         
     | 
| 
       40 
41 
     | 
    
         
             
              # :startdoc:
         
     | 
| 
       41 
42 
     | 
    
         
             
              # :stopdoc:
         
     | 
| 
       42 
43 
     | 
    
         
             
              class LexerError < StandardError ; end
         
     | 
| 
         @@ -142,11 +143,11 @@ class Synvert::Core::NodeQuery::Lexer 
     | 
|
| 
       142 
143 
     | 
    
         
             
                      when text = ss.scan(/#{NODE_TYPE}/) then
         
     | 
| 
       143 
144 
     | 
    
         
             
                        action { [:tNODE_TYPE, text[1..]] }
         
     | 
| 
       144 
145 
     | 
    
         
             
                      when text = ss.scan(/>/) then
         
     | 
| 
       145 
     | 
    
         
            -
                        action { [: 
     | 
| 
      
 146 
     | 
    
         
            +
                        action { [:tRELATIONSHIP, text] }
         
     | 
| 
       146 
147 
     | 
    
         
             
                      when text = ss.scan(/~/) then
         
     | 
| 
       147 
     | 
    
         
            -
                        action { [: 
     | 
| 
      
 148 
     | 
    
         
            +
                        action { [:tRELATIONSHIP, text] }
         
     | 
| 
       148 
149 
     | 
    
         
             
                      when text = ss.scan(/\+/) then
         
     | 
| 
       149 
     | 
    
         
            -
                        action { [: 
     | 
| 
      
 150 
     | 
    
         
            +
                        action { [:tRELATIONSHIP, text] }
         
     | 
| 
       150 
151 
     | 
    
         
             
                      when text = ss.scan(/#{OPEN_SELECTOR}/) then
         
     | 
| 
       151 
152 
     | 
    
         
             
                        action { [:tOPEN_SELECTOR, text] }
         
     | 
| 
       152 
153 
     | 
    
         
             
                      when text = ss.scan(/#{CLOSE_SELECTOR}/) then
         
     | 
| 
         @@ -175,28 +176,34 @@ class Synvert::Core::NodeQuery::Lexer 
     | 
|
| 
       175 
176 
     | 
    
         
             
                      case
         
     | 
| 
       176 
177 
     | 
    
         
             
                      when ss.skip(/\s+/) then
         
     | 
| 
       177 
178 
     | 
    
         
             
                        # do nothing
         
     | 
| 
       178 
     | 
    
         
            -
                      when  
     | 
| 
       179 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       180 
     | 
    
         
            -
                      when  
     | 
| 
       181 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       182 
     | 
    
         
            -
                      when  
     | 
| 
       183 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       184 
     | 
    
         
            -
                      when  
     | 
| 
       185 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       186 
     | 
    
         
            -
                      when  
     | 
| 
       187 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       188 
     | 
    
         
            -
                      when  
     | 
| 
       189 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       190 
     | 
    
         
            -
                      when  
     | 
| 
       191 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       192 
     | 
    
         
            -
                      when  
     | 
| 
       193 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       194 
     | 
    
         
            -
                      when  
     | 
| 
       195 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       196 
     | 
    
         
            -
                      when  
     | 
| 
       197 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
       198 
     | 
    
         
            -
                      when  
     | 
| 
       199 
     | 
    
         
            -
                        action { @state = :VALUE; [: 
     | 
| 
      
 179 
     | 
    
         
            +
                      when ss.skip(/\^=/) then
         
     | 
| 
      
 180 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '^='] }
         
     | 
| 
      
 181 
     | 
    
         
            +
                      when ss.skip(/\$=/) then
         
     | 
| 
      
 182 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '$='] }
         
     | 
| 
      
 183 
     | 
    
         
            +
                      when ss.skip(/\*=/) then
         
     | 
| 
      
 184 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '*='] }
         
     | 
| 
      
 185 
     | 
    
         
            +
                      when ss.skip(/!=/) then
         
     | 
| 
      
 186 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '!='] }
         
     | 
| 
      
 187 
     | 
    
         
            +
                      when ss.skip(/=~/) then
         
     | 
| 
      
 188 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '=~'] }
         
     | 
| 
      
 189 
     | 
    
         
            +
                      when ss.skip(/!~/) then
         
     | 
| 
      
 190 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '!~'] }
         
     | 
| 
      
 191 
     | 
    
         
            +
                      when ss.skip(/>=/) then
         
     | 
| 
      
 192 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '>='] }
         
     | 
| 
      
 193 
     | 
    
         
            +
                      when ss.skip(/<=/) then
         
     | 
| 
      
 194 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '<='] }
         
     | 
| 
      
 195 
     | 
    
         
            +
                      when ss.skip(/>/) then
         
     | 
| 
      
 196 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '>'] }
         
     | 
| 
      
 197 
     | 
    
         
            +
                      when ss.skip(/</) then
         
     | 
| 
      
 198 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '<'] }
         
     | 
| 
      
 199 
     | 
    
         
            +
                      when ss.skip(/=/) then
         
     | 
| 
      
 200 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, '=='] }
         
     | 
| 
      
 201 
     | 
    
         
            +
                      when ss.skip(/includes/i) then
         
     | 
| 
      
 202 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, 'includes'] }
         
     | 
| 
      
 203 
     | 
    
         
            +
                      when ss.skip(/not in/i) then
         
     | 
| 
      
 204 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, 'not_in'] }
         
     | 
| 
      
 205 
     | 
    
         
            +
                      when ss.skip(/in/i) then
         
     | 
| 
      
 206 
     | 
    
         
            +
                        action { @state = :VALUE; [:tOPERATOR, 'in'] }
         
     | 
| 
       200 
207 
     | 
    
         
             
                      when text = ss.scan(/#{IDENTIFIER}/) then
         
     | 
| 
       201 
208 
     | 
    
         
             
                        action { [:tKEY, text] }
         
     | 
| 
       202 
209 
     | 
    
         
             
                      else
         
     | 
| 
         @@ -1,3 +1,4 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # typed: true
         
     | 
| 
       1 
2 
     | 
    
         
             
            #
         
     | 
| 
       2 
3 
     | 
    
         
             
            # DO NOT MODIFY!!!!
         
     | 
| 
       3 
4 
     | 
    
         
             
            # This file is automatically generated by Racc 1.6.0
         
     | 
| 
         @@ -25,167 +26,88 @@ module Synvert 
     | 
|
| 
       25 
26 
     | 
    
         
             
            ##### State transition tables begin ###
         
     | 
| 
       26 
27 
     | 
    
         | 
| 
       27 
28 
     | 
    
         
             
            racc_action_table = [
         
     | 
| 
       28 
     | 
    
         
            -
                 8, 
     | 
| 
       29 
     | 
    
         
            -
                 
     | 
| 
       30 
     | 
    
         
            -
                 
     | 
| 
       31 
     | 
    
         
            -
                 
     | 
| 
       32 
     | 
    
         
            -
                 
     | 
| 
       33 
     | 
    
         
            -
                 
     | 
| 
       34 
     | 
    
         
            -
                 
     | 
| 
       35 
     | 
    
         
            -
                  
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                47,    48,    49,    50,    51,    52,    46,    47,    48,    49,
         
     | 
| 
       38 
     | 
    
         
            -
                50,    51,    52,    46,    47,    48,    49,    50,    51,    52,
         
     | 
| 
       39 
     | 
    
         
            -
                 8,   nil,   nil,   nil,    53,   nil,   nil,     8,   nil,   nil,
         
     | 
| 
       40 
     | 
    
         
            -
                10,    53,    45,   nil,     8,   nil,   nil,    10,    53,    45,
         
     | 
| 
       41 
     | 
    
         
            -
               nil,    61,   nil,   nil,    10,   nil,    45,   nil,   nil,   nil,
         
     | 
| 
       42 
     | 
    
         
            -
               nil,   nil,   nil,    46,    47,    48,    49,    50,    51,    52,
         
     | 
| 
       43 
     | 
    
         
            -
                46,    47,    48,    49,    50,    51,    52,    46,    47,    48,
         
     | 
| 
       44 
     | 
    
         
            -
                49,    50,    51,    52,     8,   nil,   nil,   nil,    53,   nil,
         
     | 
| 
       45 
     | 
    
         
            -
               nil,     8,   nil,   nil,    10,    53,    45,   nil,     8,    65,
         
     | 
| 
       46 
     | 
    
         
            -
               nil,    10,    53,    45,   nil,   nil,    69,   nil,    10,   nil,
         
     | 
| 
       47 
     | 
    
         
            -
                45,   nil,   nil,    71,   nil,   nil,   nil,    46,    47,    48,
         
     | 
| 
       48 
     | 
    
         
            -
                49,    50,    51,    52,    46,    47,    48,    49,    50,    51,
         
     | 
| 
       49 
     | 
    
         
            -
                52,    46,    47,    48,    49,    50,    51,    52,     8,   nil,
         
     | 
| 
       50 
     | 
    
         
            -
               nil,   nil,    53,   nil,   nil,     8,   nil,   nil,    10,    53,
         
     | 
| 
       51 
     | 
    
         
            -
                45,   nil,     8,    73,   nil,    10,   nil,    45,     6,     2,
         
     | 
| 
       52 
     | 
    
         
            -
                 3,     4,    10,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         
     | 
| 
       53 
     | 
    
         
            -
                 5,    46,    47,    48,    49,    50,    51,    52,    46,    47,
         
     | 
| 
       54 
     | 
    
         
            -
                48,    49,    50,    51,    52,     8,   nil,   nil,   nil,   nil,
         
     | 
| 
       55 
     | 
    
         
            -
                 8,     6,     2,     3,     4,    10,     6,     2,     3,     4,
         
     | 
| 
       56 
     | 
    
         
            -
                10,   nil,   nil,     5,     8,   nil,   nil,   nil,     5,     8,
         
     | 
| 
       57 
     | 
    
         
            -
                 6,     2,     3,     4,    10,     6,     2,     3,     4,    10,
         
     | 
| 
       58 
     | 
    
         
            -
               nil,   nil,     5,     8,   nil,   nil,   nil,     5,     8,     6,
         
     | 
| 
       59 
     | 
    
         
            -
                 2,     3,     4,    10,     6,     2,     3,     4,    10,   nil,
         
     | 
| 
       60 
     | 
    
         
            -
               nil,     5,   nil,   nil,   nil,   nil,     5,    35,    28,    30,
         
     | 
| 
       61 
     | 
    
         
            -
                29,    32,    31,    34,    33,    38,    37,    36 ]
         
     | 
| 
      
 29 
     | 
    
         
            +
                 7,     8,     7,    12,    41,    10,    11,     7,     4,     5,
         
     | 
| 
      
 30 
     | 
    
         
            +
                33,    41,    31,    14,    16,    17,    18,    33,     6,    20,
         
     | 
| 
      
 31 
     | 
    
         
            +
                42,    34,    35,    36,    37,    38,    39,    40,    34,    35,
         
     | 
| 
      
 32 
     | 
    
         
            +
                36,    37,    38,    39,    40,     7,     7,    22,    24,    41,
         
     | 
| 
      
 33 
     | 
    
         
            +
                26,    27,     4,     5,    28,    33,    16,     7,    45,    46,
         
     | 
| 
      
 34 
     | 
    
         
            +
                48,   nil,     6,     4,     5,   nil,    34,    35,    36,    37,
         
     | 
| 
      
 35 
     | 
    
         
            +
                38,    39,    40,     6,     7,   nil,     7,   nil,     7,   nil,
         
     | 
| 
      
 36 
     | 
    
         
            +
                 4,     5,     4,     5,     4,     5,   nil,   nil,   nil,   nil,
         
     | 
| 
      
 37 
     | 
    
         
            +
                 6,   nil,     6,   nil,     6 ]
         
     | 
| 
       62 
38 
     | 
    
         | 
| 
       63 
39 
     | 
    
         
             
            racc_action_check = [
         
     | 
| 
       64 
     | 
    
         
            -
                 
     | 
| 
       65 
     | 
    
         
            -
                 
     | 
| 
       66 
     | 
    
         
            -
                 
     | 
| 
       67 
     | 
    
         
            -
                 
     | 
| 
       68 
     | 
    
         
            -
                 
     | 
| 
       69 
     | 
    
         
            -
                 
     | 
| 
       70 
     | 
    
         
            -
                 
     | 
| 
       71 
     | 
    
         
            -
                 
     | 
| 
       72 
     | 
    
         
            -
                 
     | 
| 
       73 
     | 
    
         
            -
                31,    31,    31,    31,    31,    31,    32,    32,    32,    32,
         
     | 
| 
       74 
     | 
    
         
            -
                32,    32,    32,    33,    33,    33,    33,    33,    33,    33,
         
     | 
| 
       75 
     | 
    
         
            -
                34,   nil,   nil,   nil,    34,   nil,   nil,    35,   nil,   nil,
         
     | 
| 
       76 
     | 
    
         
            -
                34,    35,    34,   nil,    36,   nil,   nil,    35,    36,    35,
         
     | 
| 
       77 
     | 
    
         
            -
               nil,    35,   nil,   nil,    36,   nil,    36,   nil,   nil,   nil,
         
     | 
| 
       78 
     | 
    
         
            -
               nil,   nil,   nil,    34,    34,    34,    34,    34,    34,    34,
         
     | 
| 
       79 
     | 
    
         
            -
                35,    35,    35,    35,    35,    35,    35,    36,    36,    36,
         
     | 
| 
       80 
     | 
    
         
            -
                36,    36,    36,    36,    43,   nil,   nil,   nil,    43,   nil,
         
     | 
| 
       81 
     | 
    
         
            -
               nil,    61,   nil,   nil,    43,    61,    43,   nil,    63,    43,
         
     | 
| 
       82 
     | 
    
         
            -
               nil,    61,    63,    61,   nil,   nil,    61,   nil,    63,   nil,
         
     | 
| 
       83 
     | 
    
         
            -
                63,   nil,   nil,    63,   nil,   nil,   nil,    43,    43,    43,
         
     | 
| 
       84 
     | 
    
         
            -
                43,    43,    43,    43,    61,    61,    61,    61,    61,    61,
         
     | 
| 
       85 
     | 
    
         
            -
                61,    63,    63,    63,    63,    63,    63,    63,    64,   nil,
         
     | 
| 
       86 
     | 
    
         
            -
               nil,   nil,    64,   nil,   nil,    67,   nil,   nil,    64,    67,
         
     | 
| 
       87 
     | 
    
         
            -
                64,   nil,     0,    64,   nil,    67,   nil,    67,     0,     0,
         
     | 
| 
       88 
     | 
    
         
            -
                 0,     0,     0,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         
     | 
| 
       89 
     | 
    
         
            -
                 0,    64,    64,    64,    64,    64,    64,    64,    67,    67,
         
     | 
| 
       90 
     | 
    
         
            -
                67,    67,    67,    67,    67,     2,   nil,   nil,   nil,   nil,
         
     | 
| 
       91 
     | 
    
         
            -
                 3,     2,     2,     2,     2,     2,     3,     3,     3,     3,
         
     | 
| 
       92 
     | 
    
         
            -
                 3,   nil,   nil,     2,     4,   nil,   nil,   nil,     3,     7,
         
     | 
| 
       93 
     | 
    
         
            -
                 4,     4,     4,     4,     4,     7,     7,     7,     7,     7,
         
     | 
| 
       94 
     | 
    
         
            -
               nil,   nil,     4,    16,   nil,   nil,   nil,     7,    24,    16,
         
     | 
| 
       95 
     | 
    
         
            -
                16,    16,    16,    16,    24,    24,    24,    24,    24,   nil,
         
     | 
| 
       96 
     | 
    
         
            -
               nil,    16,   nil,   nil,   nil,   nil,    24,    22,    22,    22,
         
     | 
| 
       97 
     | 
    
         
            -
                22,    22,    22,    22,    22,    22,    22,    22 ]
         
     | 
| 
      
 40 
     | 
    
         
            +
                27,     1,     0,     4,    27,     3,     3,    31,     0,     0,
         
     | 
| 
      
 41 
     | 
    
         
            +
                27,    31,    27,     6,     7,     8,    11,    31,     0,    14,
         
     | 
| 
      
 42 
     | 
    
         
            +
                31,    27,    27,    27,    27,    27,    27,    27,    31,    31,
         
     | 
| 
      
 43 
     | 
    
         
            +
                31,    31,    31,    31,    31,    44,     2,    16,    19,    44,
         
     | 
| 
      
 44 
     | 
    
         
            +
                21,    22,     2,     2,    23,    44,    26,     5,    33,    43,
         
     | 
| 
      
 45 
     | 
    
         
            +
                45,   nil,     2,     5,     5,   nil,    44,    44,    44,    44,
         
     | 
| 
      
 46 
     | 
    
         
            +
                44,    44,    44,     5,    12,   nil,    18,   nil,    20,   nil,
         
     | 
| 
      
 47 
     | 
    
         
            +
                12,    12,    18,    18,    20,    20,   nil,   nil,   nil,   nil,
         
     | 
| 
      
 48 
     | 
    
         
            +
                12,   nil,    18,   nil,    20 ]
         
     | 
| 
       98 
49 
     | 
    
         | 
| 
       99 
50 
     | 
    
         
             
            racc_action_pointer = [
         
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
                  
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
               nil,   nil,   nil, 
     | 
| 
       105 
     | 
    
         
            -
               nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
         
     | 
| 
       106 
     | 
    
         
            -
               nil,   169,   nil,   176,   216,   nil,    12,   223,    15,   nil,
         
     | 
| 
       107 
     | 
    
         
            -
                14,   nil,    15,   nil,    30,   nil,   nil,   nil,   nil,   nil,
         
     | 
| 
       108 
     | 
    
         
            -
               nil ]
         
     | 
| 
      
 51 
     | 
    
         
            +
                 0,     1,    34,    -2,   -13,    45,     8,     4,    15,   nil,
         
     | 
| 
      
 52 
     | 
    
         
            +
               nil,     0,    62,   nil,     0,   nil,    33,   nil,    64,    21,
         
     | 
| 
      
 53 
     | 
    
         
            +
                66,    29,    21,    27,   nil,   nil,    36,    -2,   nil,   nil,
         
     | 
| 
      
 54 
     | 
    
         
            +
               nil,     5,   nil,    26,   nil,   nil,   nil,   nil,   nil,   nil,
         
     | 
| 
      
 55 
     | 
    
         
            +
               nil,   nil,   nil,    34,    33,    37,   nil,   nil,   nil ]
         
     | 
| 
       109 
56 
     | 
    
         | 
| 
       110 
57 
     | 
    
         
             
            racc_action_default = [
         
     | 
| 
       111 
     | 
    
         
            -
               - 
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
               - 
     | 
| 
       114 
     | 
    
         
            -
               - 
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
               -41,   -42,   -43,   -44,   -17,   -18,   -19,   -20,   -21,   -22,
         
     | 
| 
       117 
     | 
    
         
            -
               -23,   -45,   -24,   -45,   -45,   -25,   -45,   -34,   -45,   -26,
         
     | 
| 
       118 
     | 
    
         
            -
               -45,   -27,   -45,   -28,   -45,   -29,   -33,   -36,   -30,   -31,
         
     | 
| 
       119 
     | 
    
         
            -
               -32 ]
         
     | 
| 
      
 58 
     | 
    
         
            +
               -28,   -28,    -2,    -3,   -28,   -28,   -28,    -9,   -28,    -1,
         
     | 
| 
      
 59 
     | 
    
         
            +
                -4,   -28,   -28,    -7,   -28,   -10,   -28,    49,   -28,   -28,
         
     | 
| 
      
 60 
     | 
    
         
            +
               -28,   -28,   -28,   -28,    -6,    -8,   -12,   -28,    -5,   -11,
         
     | 
| 
      
 61 
     | 
    
         
            +
               -13,   -28,   -18,   -28,   -20,   -21,   -22,   -23,   -24,   -25,
         
     | 
| 
      
 62 
     | 
    
         
            +
               -26,   -27,   -14,   -28,   -17,   -28,   -15,   -16,   -19 ]
         
     | 
| 
       120 
63 
     | 
    
         | 
| 
       121 
64 
     | 
    
         
             
            racc_goto_table = [
         
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
                41,   nil,     7,    70,    39,    72,    74,   nil,   nil,    76,
         
     | 
| 
       125 
     | 
    
         
            -
                 7,    42,    54,    55,    56,    57,    58,    59,    60,    62 ]
         
     | 
| 
      
 65 
     | 
    
         
            +
                15,    32,    13,    43,     1,    32,     9,    21,    30,    19,
         
     | 
| 
      
 66 
     | 
    
         
            +
               nil,   nil,   nil,   nil,   nil,    23,    47,    25,    32,    29 ]
         
     | 
| 
       126 
67 
     | 
    
         | 
| 
       127 
68 
     | 
    
         
             
            racc_goto_check = [
         
     | 
| 
       128 
     | 
    
         
            -
                  
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
     | 
    
         
            -
                 3,   nil,     2,     6,     1,     6,     6,   nil,   nil,     6,
         
     | 
| 
       131 
     | 
    
         
            -
                 2,     5,     5,     5,     5,     5,     5,     5,     5,     5 ]
         
     | 
| 
      
 69 
     | 
    
         
            +
                 4,     3,     2,     7,     1,     3,     1,     5,     6,     2,
         
     | 
| 
      
 70 
     | 
    
         
            +
               nil,   nil,   nil,   nil,   nil,     2,     7,     2,     3,     4 ]
         
     | 
| 
       132 
71 
     | 
    
         | 
| 
       133 
72 
     | 
    
         
             
            racc_goto_pointer = [
         
     | 
| 
       134 
     | 
    
         
            -
               nil,      
     | 
| 
      
 73 
     | 
    
         
            +
               nil,     4,    -3,   -26,    -7,    -9,   -19,   -28 ]
         
     | 
| 
       135 
74 
     | 
    
         | 
| 
       136 
75 
     | 
    
         
             
            racc_goto_default = [
         
     | 
| 
       137 
     | 
    
         
            -
               nil,   nil, 
     | 
| 
      
 76 
     | 
    
         
            +
               nil,   nil,     2,     3,   nil,   nil,    44,   nil ]
         
     | 
| 
       138 
77 
     | 
    
         | 
| 
       139 
78 
     | 
    
         
             
            racc_reduce_table = [
         
     | 
| 
       140 
79 
     | 
    
         
             
              0, 0, :racc_error,
         
     | 
| 
       141 
     | 
    
         
            -
              2,  
     | 
| 
       142 
     | 
    
         
            -
               
     | 
| 
       143 
     | 
    
         
            -
               
     | 
| 
       144 
     | 
    
         
            -
               
     | 
| 
       145 
     | 
    
         
            -
               
     | 
| 
       146 
     | 
    
         
            -
               
     | 
| 
       147 
     | 
    
         
            -
               
     | 
| 
       148 
     | 
    
         
            -
               
     | 
| 
       149 
     | 
    
         
            -
               
     | 
| 
       150 
     | 
    
         
            -
              2,  
     | 
| 
       151 
     | 
    
         
            -
               
     | 
| 
       152 
     | 
    
         
            -
               
     | 
| 
       153 
     | 
    
         
            -
               
     | 
| 
       154 
     | 
    
         
            -
              4,  
     | 
| 
       155 
     | 
    
         
            -
               
     | 
| 
       156 
     | 
    
         
            -
               
     | 
| 
       157 
     | 
    
         
            -
               
     | 
| 
       158 
     | 
    
         
            -
               
     | 
| 
       159 
     | 
    
         
            -
              3,  
     | 
| 
       160 
     | 
    
         
            -
               
     | 
| 
       161 
     | 
    
         
            -
               
     | 
| 
       162 
     | 
    
         
            -
               
     | 
| 
       163 
     | 
    
         
            -
               
     | 
| 
       164 
     | 
    
         
            -
               
     | 
| 
       165 
     | 
    
         
            -
               
     | 
| 
       166 
     | 
    
         
            -
               
     | 
| 
       167 
     | 
    
         
            -
               
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
             
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
       172 
     | 
    
         
            -
              5, 46, :_reduce_32,
         
     | 
| 
       173 
     | 
    
         
            -
              2, 48, :_reduce_33,
         
     | 
| 
       174 
     | 
    
         
            -
              1, 48, :_reduce_34,
         
     | 
| 
       175 
     | 
    
         
            -
              1, 47, :_reduce_none,
         
     | 
| 
       176 
     | 
    
         
            -
              3, 47, :_reduce_36,
         
     | 
| 
       177 
     | 
    
         
            -
              1, 47, :_reduce_37,
         
     | 
| 
       178 
     | 
    
         
            -
              1, 47, :_reduce_38,
         
     | 
| 
       179 
     | 
    
         
            -
              1, 47, :_reduce_39,
         
     | 
| 
       180 
     | 
    
         
            -
              1, 47, :_reduce_40,
         
     | 
| 
       181 
     | 
    
         
            -
              1, 47, :_reduce_41,
         
     | 
| 
       182 
     | 
    
         
            -
              1, 47, :_reduce_42,
         
     | 
| 
       183 
     | 
    
         
            -
              1, 47, :_reduce_43,
         
     | 
| 
       184 
     | 
    
         
            -
              1, 47, :_reduce_44 ]
         
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
            racc_reduce_n = 45
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
            racc_shift_n = 81
         
     | 
| 
      
 80 
     | 
    
         
            +
              2, 31, :_reduce_1,
         
     | 
| 
      
 81 
     | 
    
         
            +
              1, 31, :_reduce_2,
         
     | 
| 
      
 82 
     | 
    
         
            +
              1, 32, :_reduce_3,
         
     | 
| 
      
 83 
     | 
    
         
            +
              2, 32, :_reduce_4,
         
     | 
| 
      
 84 
     | 
    
         
            +
              5, 32, :_reduce_5,
         
     | 
| 
      
 85 
     | 
    
         
            +
              4, 32, :_reduce_6,
         
     | 
| 
      
 86 
     | 
    
         
            +
              2, 32, :_reduce_7,
         
     | 
| 
      
 87 
     | 
    
         
            +
              4, 32, :_reduce_8,
         
     | 
| 
      
 88 
     | 
    
         
            +
              1, 33, :_reduce_9,
         
     | 
| 
      
 89 
     | 
    
         
            +
              2, 33, :_reduce_10,
         
     | 
| 
      
 90 
     | 
    
         
            +
              4, 34, :_reduce_11,
         
     | 
| 
      
 91 
     | 
    
         
            +
              3, 34, :_reduce_12,
         
     | 
| 
      
 92 
     | 
    
         
            +
              3, 35, :_reduce_13,
         
     | 
| 
      
 93 
     | 
    
         
            +
              4, 35, :_reduce_14,
         
     | 
| 
      
 94 
     | 
    
         
            +
              5, 35, :_reduce_15,
         
     | 
| 
      
 95 
     | 
    
         
            +
              2, 37, :_reduce_16,
         
     | 
| 
      
 96 
     | 
    
         
            +
              1, 37, :_reduce_17,
         
     | 
| 
      
 97 
     | 
    
         
            +
              1, 36, :_reduce_none,
         
     | 
| 
      
 98 
     | 
    
         
            +
              3, 36, :_reduce_19,
         
     | 
| 
      
 99 
     | 
    
         
            +
              1, 36, :_reduce_20,
         
     | 
| 
      
 100 
     | 
    
         
            +
              1, 36, :_reduce_21,
         
     | 
| 
      
 101 
     | 
    
         
            +
              1, 36, :_reduce_22,
         
     | 
| 
      
 102 
     | 
    
         
            +
              1, 36, :_reduce_23,
         
     | 
| 
      
 103 
     | 
    
         
            +
              1, 36, :_reduce_24,
         
     | 
| 
      
 104 
     | 
    
         
            +
              1, 36, :_reduce_25,
         
     | 
| 
      
 105 
     | 
    
         
            +
              1, 36, :_reduce_26,
         
     | 
| 
      
 106 
     | 
    
         
            +
              1, 36, :_reduce_27 ]
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            racc_reduce_n = 28
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            racc_shift_n = 49
         
     | 
| 
       189 
111 
     | 
    
         | 
| 
       190 
112 
     | 
    
         
             
            racc_token_table = {
         
     | 
| 
       191 
113 
     | 
    
         
             
              false => 0,
         
     | 
| 
         @@ -197,41 +119,29 @@ racc_token_table = { 
     | 
|
| 
       197 
119 
     | 
    
         
             
              :tIDENTIFIER_VALUE => 6,
         
     | 
| 
       198 
120 
     | 
    
         
             
              :tINDEX => 7,
         
     | 
| 
       199 
121 
     | 
    
         
             
              :tPSEUDO_CLASS => 8,
         
     | 
| 
       200 
     | 
    
         
            -
              : 
     | 
| 
       201 
     | 
    
         
            -
              : 
     | 
| 
       202 
     | 
    
         
            -
              : 
     | 
| 
       203 
     | 
    
         
            -
              : 
     | 
| 
       204 
     | 
    
         
            -
              : 
     | 
| 
       205 
     | 
    
         
            -
              : 
     | 
| 
       206 
     | 
    
         
            -
              : 
     | 
| 
       207 
     | 
    
         
            -
              : 
     | 
| 
       208 
     | 
    
         
            -
              : 
     | 
| 
       209 
     | 
    
         
            -
              : 
     | 
| 
       210 
     | 
    
         
            -
              : 
     | 
| 
       211 
     | 
    
         
            -
              : 
     | 
| 
       212 
     | 
    
         
            -
              : 
     | 
| 
       213 
     | 
    
         
            -
              : 
     | 
| 
       214 
     | 
    
         
            -
              : 
     | 
| 
       215 
     | 
    
         
            -
              : 
     | 
| 
       216 
     | 
    
         
            -
              : 
     | 
| 
       217 
     | 
    
         
            -
              : 
     | 
| 
       218 
     | 
    
         
            -
              : 
     | 
| 
       219 
     | 
    
         
            -
              : 
     | 
| 
       220 
     | 
    
         
            -
              : 
     | 
| 
       221 
     | 
    
         
            -
             
     | 
| 
       222 
     | 
    
         
            -
             
     | 
| 
       223 
     | 
    
         
            -
              :tINCLUDES => 32,
         
     | 
| 
       224 
     | 
    
         
            -
              :tARRAY_VALUE => 33,
         
     | 
| 
       225 
     | 
    
         
            -
              :tDYNAMIC_ATTRIBUTE => 34,
         
     | 
| 
       226 
     | 
    
         
            -
              :tBOOLEAN => 35,
         
     | 
| 
       227 
     | 
    
         
            -
              :tFLOAT => 36,
         
     | 
| 
       228 
     | 
    
         
            -
              :tINTEGER => 37,
         
     | 
| 
       229 
     | 
    
         
            -
              :tNIL => 38,
         
     | 
| 
       230 
     | 
    
         
            -
              :tREGEXP => 39,
         
     | 
| 
       231 
     | 
    
         
            -
              :tSTRING => 40,
         
     | 
| 
       232 
     | 
    
         
            -
              :tSYMBOL => 41 }
         
     | 
| 
       233 
     | 
    
         
            -
             
     | 
| 
       234 
     | 
    
         
            -
            racc_nt_base = 42
         
     | 
| 
      
 122 
     | 
    
         
            +
              :tRELATIONSHIP => 9,
         
     | 
| 
      
 123 
     | 
    
         
            +
              :tOPEN_ATTRIBUTE => 10,
         
     | 
| 
      
 124 
     | 
    
         
            +
              :tCLOSE_ATTRIBUTE => 11,
         
     | 
| 
      
 125 
     | 
    
         
            +
              :tOPEN_DYNAMIC_ATTRIBUTE => 12,
         
     | 
| 
      
 126 
     | 
    
         
            +
              :tCLOSE_DYNAMIC_ATTRIBUTE => 13,
         
     | 
| 
      
 127 
     | 
    
         
            +
              :tOPEN_ARRAY => 14,
         
     | 
| 
      
 128 
     | 
    
         
            +
              :tCLOSE_ARRAY => 15,
         
     | 
| 
      
 129 
     | 
    
         
            +
              :tOPEN_SELECTOR => 16,
         
     | 
| 
      
 130 
     | 
    
         
            +
              :tCLOSE_SELECTOR => 17,
         
     | 
| 
      
 131 
     | 
    
         
            +
              :tOPEN_GOTO_SCOPE => 18,
         
     | 
| 
      
 132 
     | 
    
         
            +
              :tCLOSE_GOTO_SCOPE => 19,
         
     | 
| 
      
 133 
     | 
    
         
            +
              :tOPERATOR => 20,
         
     | 
| 
      
 134 
     | 
    
         
            +
              :tARRAY_VALUE => 21,
         
     | 
| 
      
 135 
     | 
    
         
            +
              :tDYNAMIC_ATTRIBUTE => 22,
         
     | 
| 
      
 136 
     | 
    
         
            +
              :tBOOLEAN => 23,
         
     | 
| 
      
 137 
     | 
    
         
            +
              :tFLOAT => 24,
         
     | 
| 
      
 138 
     | 
    
         
            +
              :tINTEGER => 25,
         
     | 
| 
      
 139 
     | 
    
         
            +
              :tNIL => 26,
         
     | 
| 
      
 140 
     | 
    
         
            +
              :tREGEXP => 27,
         
     | 
| 
      
 141 
     | 
    
         
            +
              :tSTRING => 28,
         
     | 
| 
      
 142 
     | 
    
         
            +
              :tSYMBOL => 29 }
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            racc_nt_base = 30
         
     | 
| 
       235 
145 
     | 
    
         | 
| 
       236 
146 
     | 
    
         
             
            racc_use_result_var = false
         
     | 
| 
       237 
147 
     | 
    
         | 
| 
         @@ -261,9 +171,7 @@ Racc_token_to_s_table = [ 
     | 
|
| 
       261 
171 
     | 
    
         
             
              "tIDENTIFIER_VALUE",
         
     | 
| 
       262 
172 
     | 
    
         
             
              "tINDEX",
         
     | 
| 
       263 
173 
     | 
    
         
             
              "tPSEUDO_CLASS",
         
     | 
| 
       264 
     | 
    
         
            -
              " 
     | 
| 
       265 
     | 
    
         
            -
              "tSUBSEQUENT_SIBLING",
         
     | 
| 
       266 
     | 
    
         
            -
              "tNEXT_SIBLING",
         
     | 
| 
      
 174 
     | 
    
         
            +
              "tRELATIONSHIP",
         
     | 
| 
       267 
175 
     | 
    
         
             
              "tOPEN_ATTRIBUTE",
         
     | 
| 
       268 
176 
     | 
    
         
             
              "tCLOSE_ATTRIBUTE",
         
     | 
| 
       269 
177 
     | 
    
         
             
              "tOPEN_DYNAMIC_ATTRIBUTE",
         
     | 
| 
         @@ -274,17 +182,7 @@ Racc_token_to_s_table = [ 
     | 
|
| 
       274 
182 
     | 
    
         
             
              "tCLOSE_SELECTOR",
         
     | 
| 
       275 
183 
     | 
    
         
             
              "tOPEN_GOTO_SCOPE",
         
     | 
| 
       276 
184 
     | 
    
         
             
              "tCLOSE_GOTO_SCOPE",
         
     | 
| 
       277 
     | 
    
         
            -
              " 
     | 
| 
       278 
     | 
    
         
            -
              "tNOT_EQUAL",
         
     | 
| 
       279 
     | 
    
         
            -
              "tMATCH",
         
     | 
| 
       280 
     | 
    
         
            -
              "tNOT_MATCH",
         
     | 
| 
       281 
     | 
    
         
            -
              "tGREATER_THAN",
         
     | 
| 
       282 
     | 
    
         
            -
              "tGREATER_THAN_OR_EQUAL",
         
     | 
| 
       283 
     | 
    
         
            -
              "tLESS_THAN",
         
     | 
| 
       284 
     | 
    
         
            -
              "tLESS_THAN_OR_EQUAL",
         
     | 
| 
       285 
     | 
    
         
            -
              "tIN",
         
     | 
| 
       286 
     | 
    
         
            -
              "tNOT_IN",
         
     | 
| 
       287 
     | 
    
         
            -
              "tINCLUDES",
         
     | 
| 
      
 185 
     | 
    
         
            +
              "tOPERATOR",
         
     | 
| 
       288 
186 
     | 
    
         
             
              "tARRAY_VALUE",
         
     | 
| 
       289 
187 
     | 
    
         
             
              "tDYNAMIC_ATTRIBUTE",
         
     | 
| 
       290 
188 
     | 
    
         
             
              "tBOOLEAN",
         
     | 
| 
         @@ -297,6 +195,7 @@ Racc_token_to_s_table = [ 
     | 
|
| 
       297 
195 
     | 
    
         
             
              "$start",
         
     | 
| 
       298 
196 
     | 
    
         
             
              "expression",
         
     | 
| 
       299 
197 
     | 
    
         
             
              "selector",
         
     | 
| 
      
 198 
     | 
    
         
            +
              "simple_selector",
         
     | 
| 
       300 
199 
     | 
    
         
             
              "attribute_list",
         
     | 
| 
       301 
200 
     | 
    
         
             
              "attribute",
         
     | 
| 
       302 
201 
     | 
    
         
             
              "value",
         
     | 
| 
         @@ -309,176 +208,108 @@ Racc_debug_parser = false 
     | 
|
| 
       309 
208 
     | 
    
         
             
            # reduce 0 omitted
         
     | 
| 
       310 
209 
     | 
    
         | 
| 
       311 
210 
     | 
    
         
             
            def _reduce_1(val, _values)
         
     | 
| 
       312 
     | 
    
         
            -
             Compiler::Expression.new( 
     | 
| 
      
 211 
     | 
    
         
            +
             Compiler::Expression.new(selector: val[0], rest: val[1])
         
     | 
| 
       313 
212 
     | 
    
         
             
            end
         
     | 
| 
       314 
213 
     | 
    
         | 
| 
       315 
214 
     | 
    
         
             
            def _reduce_2(val, _values)
         
     | 
| 
       316 
     | 
    
         
            -
             Compiler::Expression.new( 
     | 
| 
      
 215 
     | 
    
         
            +
             Compiler::Expression.new(selector: val[0])
         
     | 
| 
       317 
216 
     | 
    
         
             
            end
         
     | 
| 
       318 
217 
     | 
    
         | 
| 
       319 
218 
     | 
    
         
             
            def _reduce_3(val, _values)
         
     | 
| 
       320 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 219 
     | 
    
         
            +
             Compiler::Selector.new(simple_selector: val[0])
         
     | 
| 
       321 
220 
     | 
    
         
             
            end
         
     | 
| 
       322 
221 
     | 
    
         | 
| 
       323 
222 
     | 
    
         
             
            def _reduce_4(val, _values)
         
     | 
| 
       324 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 223 
     | 
    
         
            +
             Compiler::Selector.new(simple_selector: val[0], index: val[1])
         
     | 
| 
       325 
224 
     | 
    
         
             
            end
         
     | 
| 
       326 
225 
     | 
    
         | 
| 
       327 
226 
     | 
    
         
             
            def _reduce_5(val, _values)
         
     | 
| 
       328 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 227 
     | 
    
         
            +
             Compiler::Selector.new(simple_selector: val[0], pseudo_class: val[1], pseudo_selector: val[3])
         
     | 
| 
       329 
228 
     | 
    
         
             
            end
         
     | 
| 
       330 
229 
     | 
    
         | 
| 
       331 
230 
     | 
    
         
             
            def _reduce_6(val, _values)
         
     | 
| 
       332 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 231 
     | 
    
         
            +
             Compiler::Selector.new(pseudo_class: val[0], pseudo_selector: val[2])
         
     | 
| 
       333 
232 
     | 
    
         
             
            end
         
     | 
| 
       334 
233 
     | 
    
         | 
| 
       335 
234 
     | 
    
         
             
            def _reduce_7(val, _values)
         
     | 
| 
       336 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 235 
     | 
    
         
            +
             Compiler::Selector.new(relationship: val[0], rest: val[1])
         
     | 
| 
       337 
236 
     | 
    
         
             
            end
         
     | 
| 
       338 
237 
     | 
    
         | 
| 
       339 
238 
     | 
    
         
             
            def _reduce_8(val, _values)
         
     | 
| 
       340 
     | 
    
         
            -
             Compiler::Selector.new( 
     | 
| 
      
 239 
     | 
    
         
            +
             Compiler::Selector.new(goto_scope: val[1], rest: val[3])
         
     | 
| 
       341 
240 
     | 
    
         
             
            end
         
     | 
| 
       342 
241 
     | 
    
         | 
| 
       343 
242 
     | 
    
         
             
            def _reduce_9(val, _values)
         
     | 
| 
       344 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 243 
     | 
    
         
            +
             Compiler::SimpleSelector.new(node_type: val[0])
         
     | 
| 
       345 
244 
     | 
    
         
             
            end
         
     | 
| 
       346 
245 
     | 
    
         | 
| 
       347 
246 
     | 
    
         
             
            def _reduce_10(val, _values)
         
     | 
| 
       348 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 247 
     | 
    
         
            +
             Compiler::SimpleSelector.new(node_type: val[0], attribute_list: val[1])
         
     | 
| 
       349 
248 
     | 
    
         
             
            end
         
     | 
| 
       350 
249 
     | 
    
         | 
| 
       351 
250 
     | 
    
         
             
            def _reduce_11(val, _values)
         
     | 
| 
       352 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 251 
     | 
    
         
            +
             Compiler::AttributeList.new(attribute: val[1], rest: val[3])
         
     | 
| 
       353 
252 
     | 
    
         
             
            end
         
     | 
| 
       354 
253 
     | 
    
         | 
| 
       355 
254 
     | 
    
         
             
            def _reduce_12(val, _values)
         
     | 
| 
       356 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 255 
     | 
    
         
            +
             Compiler::AttributeList.new(attribute: val[1])
         
     | 
| 
       357 
256 
     | 
    
         
             
            end
         
     | 
| 
       358 
257 
     | 
    
         | 
| 
       359 
258 
     | 
    
         
             
            def _reduce_13(val, _values)
         
     | 
| 
       360 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 259 
     | 
    
         
            +
             Compiler::Attribute.new(key: val[0], value: val[2], operator: val[1])
         
     | 
| 
       361 
260 
     | 
    
         
             
            end
         
     | 
| 
       362 
261 
     | 
    
         | 
| 
       363 
262 
     | 
    
         
             
            def _reduce_14(val, _values)
         
     | 
| 
       364 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 263 
     | 
    
         
            +
             Compiler::Attribute.new(key: val[0], value: Compiler::Array.new, operator: val[1])
         
     | 
| 
       365 
264 
     | 
    
         
             
            end
         
     | 
| 
       366 
265 
     | 
    
         | 
| 
       367 
266 
     | 
    
         
             
            def _reduce_15(val, _values)
         
     | 
| 
       368 
     | 
    
         
            -
             Compiler:: 
     | 
| 
      
 267 
     | 
    
         
            +
             Compiler::Attribute.new(key: val[0], value: val[3], operator: val[1])
         
     | 
| 
       369 
268 
     | 
    
         
             
            end
         
     | 
| 
       370 
269 
     | 
    
         | 
| 
       371 
270 
     | 
    
         
             
            def _reduce_16(val, _values)
         
     | 
| 
       372 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :!=)
         
     | 
| 
       373 
     | 
    
         
            -
            end
         
     | 
| 
       374 
     | 
    
         
            -
             
     | 
| 
       375 
     | 
    
         
            -
            def _reduce_17(val, _values)
         
     | 
| 
       376 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :!~)
         
     | 
| 
       377 
     | 
    
         
            -
            end
         
     | 
| 
       378 
     | 
    
         
            -
             
     | 
| 
       379 
     | 
    
         
            -
            def _reduce_18(val, _values)
         
     | 
| 
       380 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :=~)
         
     | 
| 
       381 
     | 
    
         
            -
            end
         
     | 
| 
       382 
     | 
    
         
            -
             
     | 
| 
       383 
     | 
    
         
            -
            def _reduce_19(val, _values)
         
     | 
| 
       384 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :>=)
         
     | 
| 
       385 
     | 
    
         
            -
            end
         
     | 
| 
       386 
     | 
    
         
            -
             
     | 
| 
       387 
     | 
    
         
            -
            def _reduce_20(val, _values)
         
     | 
| 
       388 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :>)
         
     | 
| 
       389 
     | 
    
         
            -
            end
         
     | 
| 
       390 
     | 
    
         
            -
             
     | 
| 
       391 
     | 
    
         
            -
            def _reduce_21(val, _values)
         
     | 
| 
       392 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :<=)
         
     | 
| 
       393 
     | 
    
         
            -
            end
         
     | 
| 
       394 
     | 
    
         
            -
             
     | 
| 
       395 
     | 
    
         
            -
            def _reduce_22(val, _values)
         
     | 
| 
       396 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :<)
         
     | 
| 
       397 
     | 
    
         
            -
            end
         
     | 
| 
       398 
     | 
    
         
            -
             
     | 
| 
       399 
     | 
    
         
            -
            def _reduce_23(val, _values)
         
     | 
| 
       400 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :==)
         
     | 
| 
       401 
     | 
    
         
            -
            end
         
     | 
| 
       402 
     | 
    
         
            -
             
     | 
| 
       403 
     | 
    
         
            -
            def _reduce_24(val, _values)
         
     | 
| 
       404 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[2], operator: :includes)
         
     | 
| 
       405 
     | 
    
         
            -
            end
         
     | 
| 
       406 
     | 
    
         
            -
             
     | 
| 
       407 
     | 
    
         
            -
            def _reduce_25(val, _values)
         
     | 
| 
       408 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: Compiler::Array.new, operator: :!=)
         
     | 
| 
       409 
     | 
    
         
            -
            end
         
     | 
| 
       410 
     | 
    
         
            -
             
     | 
| 
       411 
     | 
    
         
            -
            def _reduce_26(val, _values)
         
     | 
| 
       412 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: Compiler::Array.new, operator: :==)
         
     | 
| 
       413 
     | 
    
         
            -
            end
         
     | 
| 
       414 
     | 
    
         
            -
             
     | 
| 
       415 
     | 
    
         
            -
            def _reduce_27(val, _values)
         
     | 
| 
       416 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: Compiler::Array.new, operator: :not_in)
         
     | 
| 
       417 
     | 
    
         
            -
            end
         
     | 
| 
       418 
     | 
    
         
            -
             
     | 
| 
       419 
     | 
    
         
            -
            def _reduce_28(val, _values)
         
     | 
| 
       420 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: Compiler::Array.new, operator: :in)
         
     | 
| 
       421 
     | 
    
         
            -
            end
         
     | 
| 
       422 
     | 
    
         
            -
             
     | 
| 
       423 
     | 
    
         
            -
            def _reduce_29(val, _values)
         
     | 
| 
       424 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[3], operator: :!=)
         
     | 
| 
       425 
     | 
    
         
            -
            end
         
     | 
| 
       426 
     | 
    
         
            -
             
     | 
| 
       427 
     | 
    
         
            -
            def _reduce_30(val, _values)
         
     | 
| 
       428 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[3], operator: :==)
         
     | 
| 
       429 
     | 
    
         
            -
            end
         
     | 
| 
       430 
     | 
    
         
            -
             
     | 
| 
       431 
     | 
    
         
            -
            def _reduce_31(val, _values)
         
     | 
| 
       432 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[3], operator: :not_in)
         
     | 
| 
       433 
     | 
    
         
            -
            end
         
     | 
| 
       434 
     | 
    
         
            -
             
     | 
| 
       435 
     | 
    
         
            -
            def _reduce_32(val, _values)
         
     | 
| 
       436 
     | 
    
         
            -
             Compiler::Attribute.new(key: val[0], value: val[3], operator: :in)
         
     | 
| 
       437 
     | 
    
         
            -
            end
         
     | 
| 
       438 
     | 
    
         
            -
             
     | 
| 
       439 
     | 
    
         
            -
            def _reduce_33(val, _values)
         
     | 
| 
       440 
271 
     | 
    
         
             
             Compiler::Array.new(value: val[0], rest: val[1])
         
     | 
| 
       441 
272 
     | 
    
         
             
            end
         
     | 
| 
       442 
273 
     | 
    
         | 
| 
       443 
     | 
    
         
            -
            def  
     | 
| 
      
 274 
     | 
    
         
            +
            def _reduce_17(val, _values)
         
     | 
| 
       444 
275 
     | 
    
         
             
             Compiler::Array.new(value: val[0])
         
     | 
| 
       445 
276 
     | 
    
         
             
            end
         
     | 
| 
       446 
277 
     | 
    
         | 
| 
       447 
     | 
    
         
            -
            # reduce  
     | 
| 
      
 278 
     | 
    
         
            +
            # reduce 18 omitted
         
     | 
| 
       448 
279 
     | 
    
         | 
| 
       449 
     | 
    
         
            -
            def  
     | 
| 
      
 280 
     | 
    
         
            +
            def _reduce_19(val, _values)
         
     | 
| 
       450 
281 
     | 
    
         
             
             Compiler::DynamicAttribute.new(value: val[1])
         
     | 
| 
       451 
282 
     | 
    
         
             
            end
         
     | 
| 
       452 
283 
     | 
    
         | 
| 
       453 
     | 
    
         
            -
            def  
     | 
| 
      
 284 
     | 
    
         
            +
            def _reduce_20(val, _values)
         
     | 
| 
       454 
285 
     | 
    
         
             
             Compiler::Boolean.new(value: val[0])
         
     | 
| 
       455 
286 
     | 
    
         
             
            end
         
     | 
| 
       456 
287 
     | 
    
         | 
| 
       457 
     | 
    
         
            -
            def  
     | 
| 
      
 288 
     | 
    
         
            +
            def _reduce_21(val, _values)
         
     | 
| 
       458 
289 
     | 
    
         
             
             Compiler::Float.new(value: val[0])
         
     | 
| 
       459 
290 
     | 
    
         
             
            end
         
     | 
| 
       460 
291 
     | 
    
         | 
| 
       461 
     | 
    
         
            -
            def  
     | 
| 
      
 292 
     | 
    
         
            +
            def _reduce_22(val, _values)
         
     | 
| 
       462 
293 
     | 
    
         
             
             Compiler::Integer.new(value: val[0])
         
     | 
| 
       463 
294 
     | 
    
         
             
            end
         
     | 
| 
       464 
295 
     | 
    
         | 
| 
       465 
     | 
    
         
            -
            def  
     | 
| 
      
 296 
     | 
    
         
            +
            def _reduce_23(val, _values)
         
     | 
| 
       466 
297 
     | 
    
         
             
             Compiler::Nil.new(value: val[0])
         
     | 
| 
       467 
298 
     | 
    
         
             
            end
         
     | 
| 
       468 
299 
     | 
    
         | 
| 
       469 
     | 
    
         
            -
            def  
     | 
| 
      
 300 
     | 
    
         
            +
            def _reduce_24(val, _values)
         
     | 
| 
       470 
301 
     | 
    
         
             
             Compiler::Regexp.new(value: val[0])
         
     | 
| 
       471 
302 
     | 
    
         
             
            end
         
     | 
| 
       472 
303 
     | 
    
         | 
| 
       473 
     | 
    
         
            -
            def  
     | 
| 
      
 304 
     | 
    
         
            +
            def _reduce_25(val, _values)
         
     | 
| 
       474 
305 
     | 
    
         
             
             Compiler::String.new(value: val[0])
         
     | 
| 
       475 
306 
     | 
    
         
             
            end
         
     | 
| 
       476 
307 
     | 
    
         | 
| 
       477 
     | 
    
         
            -
            def  
     | 
| 
      
 308 
     | 
    
         
            +
            def _reduce_26(val, _values)
         
     | 
| 
       478 
309 
     | 
    
         
             
             Compiler::Symbol.new(value: val[0])
         
     | 
| 
       479 
310 
     | 
    
         
             
            end
         
     | 
| 
       480 
311 
     | 
    
         | 
| 
       481 
     | 
    
         
            -
            def  
     | 
| 
      
 312 
     | 
    
         
            +
            def _reduce_27(val, _values)
         
     | 
| 
       482 
313 
     | 
    
         
             
             Compiler::Identifier.new(value: val[0])
         
     | 
| 
       483 
314 
     | 
    
         
             
            end
         
     | 
| 
       484 
315 
     | 
    
         |