Module: CodeMiner::TokenProcessor

Included in:
Parser
Defined in:
lib/codeminer/processors/token_processor.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.tokens(*attrs) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/codeminer/processors/token_processor.rb', line 5

def self.tokens(*attrs)
  attrs.each do |attr|
    define_method :"on_#{attr}" do |token|
      token
    end
  end
end

Instance Method Details

#on_kw(kw) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/codeminer/processors/token_processor.rb', line 20

def on_kw(kw)
  super.tap do |token|
    if %w(do class def if else unless return alias yield break next super begin rescue case when redo retry undef elsif
          until while for module defined? ensure).include?(kw.gsub(/[^a-z?]/, ''))
      @keywords.unshift(token)
    end
  end
end

#on_lbrace(token) ⇒ Object



15
16
17
18
# File 'lib/codeminer/processors/token_processor.rb', line 15

def on_lbrace(token)
  @lbrace << super
  token
end

#on_lbracket(value) ⇒ Object



29
30
31
# File 'lib/codeminer/processors/token_processor.rb', line 29

def on_lbracket(value)
  @lbracket = super
end

#on_lparenObject



33
34
35
36
37
# File 'lib/codeminer/processors/token_processor.rb', line 33

def on_lparen(*)
  super.tap do |token|
    @parens_begin << token
  end
end