Class: Rouge::RegexLexer::StateDSL
- Inherits:
-
Object
- Object
- Rouge::RegexLexer::StateDSL
- Defined in:
- lib/rouge/regex_lexer.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
Instance Method Summary collapse
- #appended(&defn) ⇒ Object
-
#initialize(name, &defn) ⇒ StateDSL
constructor
A new instance of StateDSL.
- #prepended(&defn) ⇒ Object
- #to_state(lexer_class) ⇒ Object
Constructor Details
#initialize(name, &defn) ⇒ StateDSL
Returns a new instance of StateDSL.
81 82 83 84 85 86 87 |
# File 'lib/rouge/regex_lexer.rb', line 81 def initialize(name, &defn) @name = name @defn = defn @rules = [] @loaded = false @closed = false end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
80 81 82 |
# File 'lib/rouge/regex_lexer.rb', line 80 def name @name end |
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
80 81 82 |
# File 'lib/rouge/regex_lexer.rb', line 80 def rules @rules end |
Instance Method Details
#appended(&defn) ⇒ Object
105 106 107 108 109 110 111 |
# File 'lib/rouge/regex_lexer.rb', line 105 def appended(&defn) parent_defn = @defn StateDSL.new(@name) do instance_eval(&parent_defn) instance_eval(&defn) end end |
#prepended(&defn) ⇒ Object
97 98 99 100 101 102 103 |
# File 'lib/rouge/regex_lexer.rb', line 97 def prepended(&defn) parent_defn = @defn StateDSL.new(@name) do instance_eval(&defn) instance_eval(&parent_defn) end end |
#to_state(lexer_class) ⇒ Object
89 90 91 92 93 94 95 |
# File 'lib/rouge/regex_lexer.rb', line 89 def to_state(lexer_class) load! rules = @rules.map do |rule| rule.is_a?(String) ? lexer_class.get_state(rule) : rule end State.new(@name, rules) end |