Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Thu, 13 Aug 2009 01:59:45 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7CNximF031823 for ; Thu, 13 Aug 2009 01:59:45 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7CNuMql025181 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 13 Aug 2009 01:56:23 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7CM1P2X012738; Thu, 13 Aug 2009 01:56:14 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 284009 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 13 Aug 2009 01:56:12 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7CNuCVm021439 for ; Thu, 13 Aug 2009 01:56:12 +0200 Received: from av9-1-sn3.vrr.skanova.net (av9-1-sn3.vrr.skanova.net [81.228.9.185]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n7CNu5Bd016284 for ; Thu, 13 Aug 2009 01:56:08 +0200 Received: by av9-1-sn3.vrr.skanova.net (Postfix, from userid 502) id DF8F83806E; Wed, 12 Aug 2009 23:45:00 +0200 (CEST) Received: from smtp3-1-sn3.vrr.skanova.net (smtp3-1-sn3.vrr.skanova.net [81.228.9.101]) by av9-1-sn3.vrr.skanova.net (Postfix) with ESMTP id 88F2E37EBB for ; Wed, 12 Aug 2009 23:45:00 +0200 (CEST) Received: from Kuben.local (90-230-192-94-no86.tbcn.telia.com [90.230.192.94]) by smtp3-1-sn3.vrr.skanova.net (Postfix) with ESMTP id 6B1A137E43 for ; Wed, 12 Aug 2009 23:45:00 +0200 (CEST) User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 References: <4A7921CF.5020803@morningstar2.co.uk> <4A7A1505.4040604@residenset.net> <4A7AD930.2090106@residenset.net> <8516B615-51AA-4D90-BB7D-A9E122AA0335@gmail.com> <4A804317.6050909@morningstar2.co.uk> <4A80508F.3030904@elzevir.fr> <0C83E480-14E3-4CD8-924E-3B9EA602E004@gmail.com> <4A810D6E.5050207@morningstar2.co.uk> <13962923-07A3-4C66-B144-E728DBC10183@gmail.com> <4A82BC12.5050901@residenset.net> <4A8318FB.5030507@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id n7CNuCVm021440 Message-ID: <4A8337DE.6070204@residenset.net> Date: Wed, 12 Aug 2009 23:45:02 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: =?ISO-8859-1?Q?Lars_Hellstr=F6m?= Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <4A8318FB.5030507@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 12 Aug 2009 23:59:45.0714 (UTC) FILETIME=[F7AB6120:01CA1BA8] Status: R X-Status: X-Keywords: X-UID: 5914 Joseph Wright skrev: > Lars Hellström wrote: >> Since it was a while ago I'm not so sure, but I think I arrived at the >> unified processor model only after I started coding. The seemingly less >> complex idea of a separate processing stage turned out to be more >> complex once you got down to do it. > > This partly depends on your point of view! In this case, my point of view was that of _implementing_ an xparse with argument processing. > In most cases, > post-processing is not needed, so under any of the xparse-like > implementations you end you with an arg spec. which doesn't look too > intimidating: > > { O{default} m o m } > > or similar. I'd say that something like: > > { >{ \preprocessora \preprocessorb }O{default} m o m } > > is not too bad in comparison to > > { @{ \preprocessora \preprocessorb O{default} } @{} @{o} @{} } For the record, the syntax I'd currently prefer (with one argspec per line, for clarity) for that is { @{ @{\preprocessorb} @{\preprocessora} O{default} } m o m } It was *always* the intention that m, o, s, etc. should be available as argspecs! Back in 2008, I just /hadn't gotten around to/ do that in xdoc2l3, so I used the functionally equivalent @{}, @{o}, @{S{*}}, etc. in examples. Lars Hellström