Sha256: a29c52f3f49a52fc3ee3143f307df817e113ee6033ad80e6a8482d6eb9b33e95

Contents?: true

Size: 992 Bytes

Versions: 3

Compression:

Stored size: 992 Bytes

Contents

#!/usr/bin/env ruby
# AnalyisParse -- AnonymousListParser -- 10.11.2005 -- hwyss@ywesee.com

require 'parser'

module ODDB
	module AnalysisParse
		class AnonymousListParser < Parser
			LINE_PTRN = /^([CNS]|N,\s*ex|TP)?\s*\d{4}\.\d{2,}\s*\d+\s*\w/u
			grammar = <<-EOG
Grammar AnalysisList
	Tokens
		SPACE						= /\\s+/u [:Skip]
		ARROW						= /\\.*\\s*\\?/u
		GROUP						=	/[0-9]{4}/u
		POSITION				=	/[0-9]{2}/u
		REVISION				= /^[CS]|N(,\\s*ex)?|TP/u
		TAXPOINTS				=	/[0-9]+/u
		WORD						=	/(\\S(?!\\.))+[^.]|\\w|(\\d\\.)/u
		DOTS						=	/\\./u
	Productions
		Line				->	REVISION? GROUP '.' POSITION 
										TAXPOINTS Description DOTS* 
										ARROW GROUP '.' POSITION 
										[: revision, group, _, position,
											taxpoints, description, _, 
											_, anonymousgroup , _, anonymouspos ]
		Description	->	WORD+ 
										[^: description ]
			EOG
			PARSER = Parse.generate_parser grammar
			def parse_line(src)
				src.gsub!(/\s+/,' ')
				super
			end
		end
	end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
oddb.org-1.0.2 ext/analysisparse/src/anonymous_list_parser.rb
oddb.org-1.0.1 ext/analysisparse/src/anonymous_list_parser.rb
oddb.org-1.0.0 ext/analysisparse/src/anonymous_list_parser.rb