Class: Aurum::Grammar::DSL::CharacterClassesBuilder
- Inherits:
-
Object
- Object
- Aurum::Grammar::DSL::CharacterClassesBuilder
- Defined in:
- lib/aurum/grammar/dsl/lexical_definition.rb
Instance Attribute Summary collapse
-
#__named_character_classes__ ⇒ Object
readonly
Returns the value of attribute named_character_classes.
Instance Method Summary collapse
- #enum(literal) ⇒ Object
-
#initialize ⇒ CharacterClassesBuilder
constructor
A new instance of CharacterClassesBuilder.
- #method_missing(name, char_set = nil) ⇒ Object
- #range(first, last = first) ⇒ Object
Constructor Details
#initialize ⇒ CharacterClassesBuilder
Returns a new instance of CharacterClassesBuilder.
8 9 10 11 12 13 |
# File 'lib/aurum/grammar/dsl/lexical_definition.rb', line 8 def initialize @__named_character_classes__ = {'any' => Aurum::Grammar::LexicalRules::CharacterSet.any, 'underscore' => enum('_'),'single_quote' => enum("'"), 'double_quote' => enum('"'), 'ascii' => range(0, 255), 'decimal_number' => range(?0, ?9), 'ascii_punctuation' => range(33, 47) + range(58, 64) + range(91, 96) + range(123, 126)} end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, char_set = nil) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/aurum/grammar/dsl/lexical_definition.rb', line 23 def method_missing name, char_set = nil name = name.to_s return @__named_character_classes__[name] unless char_set raise "already defined character class: #{name}" if @__named_character_classes__.has_key? name @__named_character_classes__[name] = char_set.kind_of?(Aurum::Grammar::LexicalRules::CharacterSet) ? char_set : enum(char_set.to_s) end |
Instance Attribute Details
#__named_character_classes__ ⇒ Object (readonly)
Returns the value of attribute named_character_classes.
6 7 8 |
# File 'lib/aurum/grammar/dsl/lexical_definition.rb', line 6 def __named_character_classes__ @__named_character_classes__ end |