codeminer 0.1.0
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 +7 -0
 - data/codeminer.gemspec +28 -0
 - data/lib/codeminer.rb +112 -0
 - data/lib/codeminer/expression_processor.rb +29 -0
 - data/lib/codeminer/expressions/alias_expression.rb +23 -0
 - data/lib/codeminer/expressions/ambiguous_operator_expression.rb +27 -0
 - data/lib/codeminer/expressions/aref_assign_expression.rb +23 -0
 - data/lib/codeminer/expressions/aref_field_expression.rb +28 -0
 - data/lib/codeminer/expressions/arguments_expression.rb +29 -0
 - data/lib/codeminer/expressions/array_expression.rb +22 -0
 - data/lib/codeminer/expressions/attribute_assign_expression.rb +35 -0
 - data/lib/codeminer/expressions/backref_variable_expression.rb +22 -0
 - data/lib/codeminer/expressions/begin_expression.rb +38 -0
 - data/lib/codeminer/expressions/binary_expression.rb +31 -0
 - data/lib/codeminer/expressions/block_expression.rb +24 -0
 - data/lib/codeminer/expressions/block_param_expression.rb +24 -0
 - data/lib/codeminer/expressions/body_expression.rb +35 -0
 - data/lib/codeminer/expressions/bodystmt_expression.rb +25 -0
 - data/lib/codeminer/expressions/break_expression.rb +22 -0
 - data/lib/codeminer/expressions/call_expression.rb +35 -0
 - data/lib/codeminer/expressions/case_expression.rb +27 -0
 - data/lib/codeminer/expressions/class_expression.rb +28 -0
 - data/lib/codeminer/expressions/class_variable_assign_expression.rb +27 -0
 - data/lib/codeminer/expressions/class_variable_expression.rb +22 -0
 - data/lib/codeminer/expressions/colon2_assign_expression.rb +23 -0
 - data/lib/codeminer/expressions/colon2_expression.rb +27 -0
 - data/lib/codeminer/expressions/colon3_assign_expression.rb +23 -0
 - data/lib/codeminer/expressions/colon3_expression.rb +26 -0
 - data/lib/codeminer/expressions/command_expression.rb +30 -0
 - data/lib/codeminer/expressions/condition_expression.rb +25 -0
 - data/lib/codeminer/expressions/constant_assign_expression.rb +27 -0
 - data/lib/codeminer/expressions/constant_variable_expression.rb +24 -0
 - data/lib/codeminer/expressions/defined_expression.rb +22 -0
 - data/lib/codeminer/expressions/defn_expression.rb +24 -0
 - data/lib/codeminer/expressions/defs_expression.rb +29 -0
 - data/lib/codeminer/expressions/destructured_param_expression.rb +24 -0
 - data/lib/codeminer/expressions/dynamic_string_expression.rb +36 -0
 - data/lib/codeminer/expressions/dynamic_symbol_expression.rb +22 -0
 - data/lib/codeminer/expressions/else_expression.rb +26 -0
 - data/lib/codeminer/expressions/empty_expression.rb +19 -0
 - data/lib/codeminer/expressions/ensure_expression.rb +22 -0
 - data/lib/codeminer/expressions/expression.rb +24 -0
 - data/lib/codeminer/expressions/expression_container.rb +41 -0
 - data/lib/codeminer/expressions/false_expression.rb +22 -0
 - data/lib/codeminer/expressions/field_expression.rb +27 -0
 - data/lib/codeminer/expressions/for_expression.rb +24 -0
 - data/lib/codeminer/expressions/global_variable_assign_expression.rb +27 -0
 - data/lib/codeminer/expressions/global_variable_expression.rb +22 -0
 - data/lib/codeminer/expressions/hash_expression.rb +22 -0
 - data/lib/codeminer/expressions/hash_pair_expression.rb +23 -0
 - data/lib/codeminer/expressions/instance_variable_assign_expression.rb +27 -0
 - data/lib/codeminer/expressions/instance_variable_expression.rb +22 -0
 - data/lib/codeminer/expressions/int_expression.rb +24 -0
 - data/lib/codeminer/expressions/keyword_param_expression.rb +31 -0
 - data/lib/codeminer/expressions/lambda_expression.rb +25 -0
 - data/lib/codeminer/expressions/local_assign_expression.rb +35 -0
 - data/lib/codeminer/expressions/local_variable_expression.rb +24 -0
 - data/lib/codeminer/expressions/magic_comment_expression.rb +23 -0
 - data/lib/codeminer/expressions/module_expression.rb +27 -0
 - data/lib/codeminer/expressions/multiple_assignment_expression.rb +25 -0
 - data/lib/codeminer/expressions/next_expression.rb +22 -0
 - data/lib/codeminer/expressions/nil_expression.rb +22 -0
 - data/lib/codeminer/expressions/op_assign_expression.rb +26 -0
 - data/lib/codeminer/expressions/optional_param_expression.rb +31 -0
 - data/lib/codeminer/expressions/params_expression.rb +67 -0
 - data/lib/codeminer/expressions/positional_param_expression.rb +32 -0
 - data/lib/codeminer/expressions/range_expression.rb +28 -0
 - data/lib/codeminer/expressions/redo_expression.rb +21 -0
 - data/lib/codeminer/expressions/regexp_expression.rb +26 -0
 - data/lib/codeminer/expressions/rescue_body_expression.rb +22 -0
 - data/lib/codeminer/expressions/rescue_expression.rb +25 -0
 - data/lib/codeminer/expressions/retry_expression.rb +21 -0
 - data/lib/codeminer/expressions/return_expression.rb +26 -0
 - data/lib/codeminer/expressions/root_expression.rb +22 -0
 - data/lib/codeminer/expressions/sclass_expression.rb +23 -0
 - data/lib/codeminer/expressions/self_expression.rb +22 -0
 - data/lib/codeminer/expressions/splat_expression.rb +24 -0
 - data/lib/codeminer/expressions/string_content_expression.rb +29 -0
 - data/lib/codeminer/expressions/string_embedded_expression.rb +22 -0
 - data/lib/codeminer/expressions/string_expression.rb +45 -0
 - data/lib/codeminer/expressions/super_expression.rb +26 -0
 - data/lib/codeminer/expressions/symbol_expression.rb +32 -0
 - data/lib/codeminer/expressions/true_expression.rb +22 -0
 - data/lib/codeminer/expressions/unary_expression.rb +23 -0
 - data/lib/codeminer/expressions/undef_expression.rb +22 -0
 - data/lib/codeminer/expressions/unknown_expression.rb +35 -0
 - data/lib/codeminer/expressions/until_expression.rb +23 -0
 - data/lib/codeminer/expressions/variable_expression.rb +20 -0
 - data/lib/codeminer/expressions/void_expression.rb +21 -0
 - data/lib/codeminer/expressions/when_expression.rb +24 -0
 - data/lib/codeminer/expressions/while_expression.rb +23 -0
 - data/lib/codeminer/expressions/xstring_expression.rb +24 -0
 - data/lib/codeminer/expressions/yield_expression.rb +22 -0
 - data/lib/codeminer/parser.rb +215 -0
 - data/lib/codeminer/processors/argument_processor.rb +25 -0
 - data/lib/codeminer/processors/array_processor.rb +86 -0
 - data/lib/codeminer/processors/assignment_processor.rb +42 -0
 - data/lib/codeminer/processors/binary_processor.rb +12 -0
 - data/lib/codeminer/processors/call_processor.rb +32 -0
 - data/lib/codeminer/processors/class_processor.rb +19 -0
 - data/lib/codeminer/processors/command_processor.rb +15 -0
 - data/lib/codeminer/processors/condition_processor.rb +59 -0
 - data/lib/codeminer/processors/default_processor.rb +33 -0
 - data/lib/codeminer/processors/hash_processor.rb +27 -0
 - data/lib/codeminer/processors/loop_processor.rb +30 -0
 - data/lib/codeminer/processors/method_processor.rb +58 -0
 - data/lib/codeminer/processors/params_processor.rb +97 -0
 - data/lib/codeminer/processors/range_processor.rb +15 -0
 - data/lib/codeminer/processors/regexp_processor.rb +27 -0
 - data/lib/codeminer/processors/return_processor.rb +15 -0
 - data/lib/codeminer/processors/string_processor.rb +79 -0
 - data/lib/codeminer/processors/symbol_processor.rb +31 -0
 - data/lib/codeminer/processors/token_processor.rb +41 -0
 - data/lib/codeminer/processors/variable_processor.rb +70 -0
 - data/lib/codeminer/source_extract.rb +120 -0
 - data/lib/codeminer/substitution.rb +48 -0
 - data/lib/codeminer/token.rb +19 -0
 - metadata +172 -0
 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class GlobalVariableExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(value, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @value = value
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def type
         
     | 
| 
      
 13 
     | 
    
         
            +
                  :global_variable
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def each
         
     | 
| 
      
 17 
     | 
    
         
            +
                  []
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class HashExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :pairs, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(pairs, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @pairs = pairs
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def type
         
     | 
| 
      
 13 
     | 
    
         
            +
                  :hash
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def each
         
     | 
| 
      
 17 
     | 
    
         
            +
                  @pairs.flat_map(&:each)
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class HashPairExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :key, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(key, value, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @key = key
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @value = value
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :hash_pair
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def each
         
     | 
| 
      
 18 
     | 
    
         
            +
                  [key, value]
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class InstanceVariableAssignExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :body
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(token, body, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @token = token
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @body = body
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :instance_variable_assign
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def value
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @token.value
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def each
         
     | 
| 
      
 22 
     | 
    
         
            +
                  [@body]
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class InstanceVariableExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(value, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @value = value
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def type
         
     | 
| 
      
 13 
     | 
    
         
            +
                  :instance_variable
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def each
         
     | 
| 
      
 17 
     | 
    
         
            +
                  []
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class IntExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(token, src)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  @token = token
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                def type
         
     | 
| 
      
 11 
     | 
    
         
            +
                  :int
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def value
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @token.value
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def each
         
     | 
| 
      
 19 
     | 
    
         
            +
                  []
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class KeywordParamExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :token, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(token, value, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @token = token
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @value = value
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :keyword_param
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def variable
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @token.value
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def default
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @value
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def each
         
     | 
| 
      
 26 
     | 
    
         
            +
                  [@token, @value]
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class LambdaExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :args, :body, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(args, body, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @args = args
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @body = body
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :lambda
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def each
         
     | 
| 
      
 18 
     | 
    
         
            +
                  [@args, @body]
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                alias params args
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,35 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class LocalAssignExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :receiver, :body
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(receiver, body, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @receiver = receiver
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @body = body
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :assign
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def value
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @receiver.value
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def line
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @receiver.line
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def column
         
     | 
| 
      
 26 
     | 
    
         
            +
                  @receiver.column
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                def each
         
     | 
| 
      
 30 
     | 
    
         
            +
                  [body]
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class LocalVariableExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(token, src)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  @token = token
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                def type
         
     | 
| 
      
 11 
     | 
    
         
            +
                  :local_variable
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def value
         
     | 
| 
      
 15 
     | 
    
         
            +
                  @token.value
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def each
         
     | 
| 
      
 19 
     | 
    
         
            +
                  []
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class MagicCommentExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :value, :key
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(key, value, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @key = key
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @value = value
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :magic_comment
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def each
         
     | 
| 
      
 18 
     | 
    
         
            +
                  []
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class ModuleExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :body
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(token, body, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @token = token
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @body = body
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :module
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def value
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @token.value
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def each
         
     | 
| 
      
 22 
     | 
    
         
            +
                  [body]
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class MultipleAssignmentExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :params, :values, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(params, values, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @params = params
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @values = values
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :massign
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def each
         
     | 
| 
      
 18 
     | 
    
         
            +
                  [params, values]
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                alias lhs params
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class OpAssignExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :variable, :op, :body, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(variable, op, body, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @variable = variable
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @op = op
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @body = body
         
     | 
| 
      
 11 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                def type
         
     | 
| 
      
 15 
     | 
    
         
            +
                  :op_assign
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                def each
         
     | 
| 
      
 19 
     | 
    
         
            +
                  [variable, op, body]
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                alias receiver variable
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CodeMiner
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              class OptionalParamExpression < Expression
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :token, :value
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(token, value, src)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @token = token
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @value = value
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @src = src
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def type
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :optional_param
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def variable
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @token.value
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def default
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @value
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def each
         
     | 
| 
      
 26 
     | 
    
         
            +
                  [@token, @value]
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            end
         
     |