Class: AdLint::Cpp::InDefineDirective

Inherits:
LexerState
  • Object
show all
Defined in:
lib/adlint/cpp/lexer.rb

Direct Known Subclasses

InUndefDirective

Instance Method Summary collapse

Constructor Details

#initialize(lexer) ⇒ InDefineDirective

Returns a new instance of InDefineDirective.



674
675
676
677
# File 'lib/adlint/cpp/lexer.rb', line 674

def initialize(lexer)
  super
  @tokens = []
end

Instance Method Details

#next_tokenObject



679
680
681
682
683
684
685
686
687
688
# File 'lib/adlint/cpp/lexer.rb', line 679

def next_token
  if @tokens.empty?
    tokenize_macro_name(@lexer.content)
    tokenize_pp_tokens(@lexer.content)
  end

  tok = @tokens.shift
  @lexer.transit(Initial.new(@lexer)) if @tokens.empty?
  tok
end