Module: CodeMiner::SymbolProcessor

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

Instance Method Summary collapse

Instance Method Details

#on_dyna_symbol(*body) ⇒ Object



13
14
15
16
# File 'lib/codeminer/processors/symbol_processor.rb', line 13

def on_dyna_symbol(*body)
  body.first.src = extract_src_by_tokens(@string_begin.pop, @string_end.pop)
  DynamicSymbolExpression.new(*body, extract_src_by_tokens(@symbol_begin.pop, body.last))
end

#on_symbeg(value) ⇒ Object



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

def on_symbeg(value)
  super.tap do |token|
    if value.end_with?('"', "'")
      @symbol_begin << Token.new(:symbeg, value.chomp('"').chomp("'"), extract_src_by_token(token, token.end_line, token.end_column - 1))
      @string_begin << Token.new(:tstring_beg, value.slice(1..-1), extract_src(token.line, token.column + 1, token.end_line, token.end_column - 1))
    else
      @symbol_begin << token
    end
  end
end

#on_symbol(token) ⇒ Object



9
10
11
# File 'lib/codeminer/processors/symbol_processor.rb', line 9

def on_symbol(token)
  SymbolExpression.new(token, extract_src_by_token(@symbol_begin.pop))
end

#on_symbol_literal(symbol) ⇒ Object



5
6
7
# File 'lib/codeminer/processors/symbol_processor.rb', line 5

def on_symbol_literal(symbol)
  SymbolExpression.convert(symbol)
end