Class: Text::Gen::Segment::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/text/gen/segment/parser.rb

Defined Under Namespace

Classes: SegmentParseError

Class Method Summary collapse

Class Method Details

.parse(str) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/text/gen/segment/parser.rb', line 14

def parse(str)
  segments = []
  scanner = StringScanner.new(str)
  until scanner.eos?
    seg = Dice.scan(scanner) || Reference.scan(scanner) || Number.scan(scanner) || Constant.scan(scanner)
    raise SegmentParseError, "Invalid segment: #{scanner.rest}" unless seg

    segments << seg
  end
  segments
end