Class: LexerKit::DFA::RegexParser
- Inherits:
-
Object
- Object
- LexerKit::DFA::RegexParser
- Includes:
- RegexAST
- Defined in:
- lib/lexer_kit/dfa/regex_parser.rb
Overview
RegexParser parses a subset of regular expressions into an AST. Supported features:
-
Literal characters
-
Character classes: [a-z], [^abc], ., d, w, s, D, W, S
-
Quantifiers: *, +, ?, n, n,, n,m
-
Alternation: |
-
Grouping: (), (?:…)
-
Escapes: \, ., [, etc.
Instance Method Summary collapse
-
#initialize(source) ⇒ RegexParser
constructor
A new instance of RegexParser.
- #parse ⇒ Object
Constructor Details
#initialize(source) ⇒ RegexParser
Returns a new instance of RegexParser.
17 18 19 20 |
# File 'lib/lexer_kit/dfa/regex_parser.rb', line 17 def initialize(source) @source = source.is_a?(Regexp) ? source.source : source @pos = 0 end |
Instance Method Details
#parse ⇒ Object
22 23 24 25 26 27 |
# File 'lib/lexer_kit/dfa/regex_parser.rb', line 22 def parse result = parse_alternation error("unexpected character at position #{@pos}") unless eof? result end |