# 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