Re: [tap] ANNOUNCE: TAP::Spec::Parser - a TAP parser based on the draft grammar

Andrew Rodland <> Tue, 29 June 2010 02:14 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 215833A6801 for <>; Mon, 28 Jun 2010 19:14:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.892
X-Spam-Status: No, score=-1.892 tagged_above=-999 required=5 tests=[AWL=0.707, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id YYkIH11OowGB for <>; Mon, 28 Jun 2010 19:14:28 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id CEE1A3A68B7 for <>; Mon, 28 Jun 2010 19:14:23 -0700 (PDT)
Received: from (unknown []) by (Postfix) with ESMTP id E1185B22D3; Mon, 28 Jun 2010 22:14:33 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed;; h=from:to :subject:date:references:in-reply-to:cc:mime-version :content-type:content-transfer-encoding:message-id; s=sasl; bh=C B0Bi4nyG2Rlo+E0/P1oTq1/HDM=; b=BFiqv+eIaMf9U1en46nlnHH3fh/XNZbSj Lo98a3+6qWUnK7+Om0FlITtBcWFVW9LFOLOoH6nqRzP0m6T2HO9q27W7wfUSnVUV 2KXyouSsRmRZq9bkUgdbj0tm4pIPKe1HCSJUS9lIaP8w0P5TLCtf2AblvpubB+bS id7xMwJ3bc=
Received: from b-pb-sasl-quonix. (unknown []) by (Postfix) with ESMTP id CDB57B22D2; Mon, 28 Jun 2010 22:14:32 -0400 (EDT)
Received: from goron.localnet (unknown []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 8CC77B22D1; Mon, 28 Jun 2010 22:14:31 -0400 (EDT)
From: Andrew Rodland <>
Date: Mon, 28 Jun 2010 21:14:23 -0500
User-Agent: KMail/1.13.2 (Linux/2.6.32-22-generic; KDE/4.4.2; x86_64; ; )
References: <>
In-Reply-To: <>
MIME-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <>
X-Pobox-Relay-ID: 0E680830-8324-11DF-B71A-DA91016DD5F0-16769786!
Subject: Re: [tap] ANNOUNCE: TAP::Spec::Parser - a TAP parser based on the draft grammar
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Test Anything Protocol WG discussions <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 29 Jun 2010 02:14:31 -0000

On Monday, June 28, 2010 06:49:35 am you wrote:
> I haven't looked at this too closely, but one thing you might want to
> consider it that TAP is stream-oriented, not document-oriented.  When I
> wrote the parser for new the Test::Harness, I was going to use a full
> lexer/grammar solution, only to realize that the nature of a stream means
> I wouldn't have the full document up front.  This is a deliberate design
> feature of TAP to allow results to be output as they occur, rather than
> waiting for the end of the test run (such as requiring a full XML document
> requires).
> Does Regexp::Grammars allow you to handle that case? I didn't think so, but
> I could be mistaken.
Appreciated, and no, Regexp::Grammars doesn't do streaming, but I don't think 
that's the most important concern here. The idea of the parser is to act as a 
tool to validate the correctness of the grammar in the draft spec (and perhaps 
later, if it does the job, to validate the correctness of others parsers 
*against* the spec). I'm not overly concerned for its usefulness as a parser 
in production. And the Regexp::Grammars syntax parallels the ABNF in the spec 
really well.