def parse_document_ruleset
assert unless @token == :document
scan()
unless @token == '{''{'
raise parse_error("'#{@value}': document requires '{'.")
end
ruleset = Ruleset.new
while @token
scan()
case @token
when :global ; has_space? ; ruleset.set_global _parse_list()
when :local ; has_space? ; ruleset.set_local _parse_list()
when :fixture ; has_space? ; ruleset.set_fixture _parse_block()
when :before ; has_space? ; ruleset.set_before _parse_block()
when :after ; has_space? ; ruleset.set_after _parse_block()
when '}''}' ; break
else ; raise parse_error("'#{@value}': invalid token.")
end
end
unless @token == '}''}'
raise parse_error("'#{@value}': document is not closed by '}'.")
end
scan()
return DocumentRuleset.new(hash)
end