Class: TDPUtils::BasicStringTokenizer
- Inherits:
-
Object
- Object
- TDPUtils::BasicStringTokenizer
- Defined in:
- lib/tdp/utils.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
- #generate(str) ⇒ Object
-
#initialize(rule, ignore = nil) ⇒ BasicStringTokenizer
constructor
A new instance of BasicStringTokenizer.
Constructor Details
#initialize(rule, ignore = nil) ⇒ BasicStringTokenizer
Returns a new instance of BasicStringTokenizer.
31 32 33 34 35 36 |
# File 'lib/tdp/utils.rb', line 31 def initialize(rule, ignore=nil) require("strscan") @rule = rule @scan_pattern = Regexp.new(@rule.keys.join("|")) @ignore_pattern = ignore end |
Class Method Details
.[](rule, ignore = nil) ⇒ Object
27 28 29 |
# File 'lib/tdp/utils.rb', line 27 def self.[](rule, ignore=nil) self.new(rule, ignore) end |
Instance Method Details
#generate(str) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/tdp/utils.rb', line 38 def generate(str) scanner = StringScanner.new(str) TDParser::TokenGenerator.new{|x| while(!scanner.empty?) if (@ignore_pattern) while(scanner.scan(@ignore_pattern)) end end sstr = scanner.scan(@scan_pattern) if (sstr) @rule.each{|reg,kind| if (reg =~ sstr) x.yield(Token.new(kind, sstr)) yielded = true break end } else c = scanner.scan(/./) x.yield(c) end end } end |