# File die.rb, line 49 def parse_primary(cast) entry = cast re_name = Regexp.new(/\s+=(.*)=\s+/) re_regexp = Regexp.new(/\s*\/(.*)\/\s+/) re_datatype = Regexp.new(/\s+:(.*):\s+/) re_range = Regexp.new(/\s+#(\d+)(\.\.\.?)([\d]+|[*]?)#\s*/) md = re_name.match(entry) @name = md[1].strip if md md = re_regexp.match(entry) @regexp = Regexp.new(md[1].strip) if md md = re_datatype.match(entry) @datatype = md[1].strip if md md = re_range.match(entry) if md # continue parsing range atleast = md[1].to_i if md[3] == "*" # open ended atmost = (1.0/0.0) # infinite else if md[2] == ".." atmost = md[3].to_i else #... atmost = md[3].to_i - 1 end end if not atleast > atmost then # good range @range = Range.new(atleast, atmost) end end end