Class: Lrama::Lexer

Inherits:
Object
  • Object
show all
Includes:
Report::Duration
Defined in:
lib/lrama/lexer.rb

Overview

Lexer for parse.y

Defined Under Namespace

Classes: Token

Constant Summary collapse

Initial =
0
Prologue =
1
BisonDeclarations =
2
GrammarRules =
3
Epilogue =
4

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Report::Duration

enable, enabled?, #report_duration

Constructor Details

#initialize(text) ⇒ Lexer

Returns a new instance of Lexer.



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/lrama/lexer.rb', line 70

def initialize(text)
  @text = text
  @state = Initial
  # Array of texts
  @prologue = []
  @bison_declarations = []
  @grammar_rules = []
  @epilogue = []

  # 
  @bison_declarations_tokens = []
  @grammar_rules_tokens = []

  @debug = false

  report_duration(:lex) do
    lex_text
    lex_bison_declarations_tokens
    lex_grammar_rules_tokens
  end
end

Instance Attribute Details

#bison_declarationsObject (readonly)

Token types



67
68
69
# File 'lib/lrama/lexer.rb', line 67

def bison_declarations
  @bison_declarations
end

#bison_declarations_tokensObject (readonly)

Token types



67
68
69
# File 'lib/lrama/lexer.rb', line 67

def bison_declarations_tokens
  @bison_declarations_tokens
end

#epilogueObject (readonly)

Token types



67
68
69
# File 'lib/lrama/lexer.rb', line 67

def epilogue
  @epilogue
end

#grammar_rulesObject (readonly)

Token types



67
68
69
# File 'lib/lrama/lexer.rb', line 67

def grammar_rules
  @grammar_rules
end

#grammar_rules_tokensObject (readonly)

Token types



67
68
69
# File 'lib/lrama/lexer.rb', line 67

def grammar_rules_tokens
  @grammar_rules_tokens
end

#prologueObject (readonly)

Token types



67
68
69
# File 'lib/lrama/lexer.rb', line 67

def prologue
  @prologue
end