Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Thu, 13 Aug 2009 09:02:35 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7D72YVc029633 for ; Thu, 13 Aug 2009 09:02:35 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n7D6wSWH032138 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 13 Aug 2009 08:58:28 +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 n7CM1PSB012738; Thu, 13 Aug 2009 08:58:28 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 285485 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 13 Aug 2009 08:58:28 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n7D6wSu4021125 for ; Thu, 13 Aug 2009 08:58:28 +0200 Received: from ueamailgate01.uea.ac.uk (ueamailgate01.uea.ac.uk [139.222.131.184]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7D6wDMY009843 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 13 Aug 2009 08:58:17 +0200 Received: from ueams02.uea.ac.uk (ueams02.uea.ac.uk [139.222.131.131]) by ueamailgate01.uea.ac.uk (8.13.1/8.13.1) with ESMTP id n7D6wDHi022408 for ; Thu, 13 Aug 2009 07:58:13 +0100 Received: from [139.222.114.191] by ueams02.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1MbUGH-0006T7-ER for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 13 Aug 2009 07:58:09 +0100 User-Agent: Thunderbird 2.0.0.22 (Windows/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> <4A81C3D2.9040607@residenset.net> <4A826F15.8050606@morningstar2.co.uk> <4A83A103.7020507@morningstar2.co.uk> <464C43D2-9841-45F6-9CEF-130C98A7CC86@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Canit-CHI2: 0.00 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN, outgoing) X-CanItPRO-Stream: UEA:outgoing (inherits from UEA:default,base:default) X-Canit-Stats-ID: 28107292 - e1d2c3b6ef2c X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 X-Scanned-By: CanIt (www . roaringpenguin . com) on 139.222.131.184 Message-ID: <4A83B985.8030809@morningstar2.co.uk> Date: Thu, 13 Aug 2009 07:58:13 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <464C43D2-9841-45F6-9CEF-130C98A7CC86@gmail.com> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 13 Aug 2009 07:02:35.0965 (UTC) FILETIME=[098476D0:01CA1BE4] Status: R X-Status: X-Keywords: X-UID: 5923 Will Robertson wrote: > Hi, > > On 13/08/2009, at 2:43 PM, Joseph Wright wrote: > >> Are we approaching a consensus on this (if not what everyone considers >> ideal, at least on something most of us can live with)? > > Seems great to me. I think it strikes a good balance. > I'll be interested in hearing Morten's and Frank's views (although I > understand they might not get the opportunity). We haven't really deviated far from the xparse model as written by Frank et al., so I'd hope he at least will be reasonably happy. It is more a question of refinement and getting at least some parts finalised (to be agreed once there is an implementation based on this discussion: perhaps next week). > As far as the definition of the processors is concerned, I think I > prefer using a pre-determined toks variable rather than a more abstract > "#1". That is, to write > > { >{\my_sanitise:n} m } > \cs_set:Nn \my_sanitise:n { > \toks_set:Nn \l_xparse_arg_toks { } > } > > rather than > > { >{\my_sanitise:Nn} m } > \cs_set:Nn \my_sanitise:Nn { > \toks_set:Nn #1 { } > } > > It looks better, to me, that processor functions have a single-letter > signature in their simplest form. (It seems pretty clear that we should > be using functions with expl3 names here?) I'm fine with that. On the naming of functions, xparse provides stuff at design level, such as \IfNoValueTF. So we might consider a small set of design-level functions, with the assumption that any extras would be in internal namespace. I'm thinking of a wrapper for \detokenize, and perhaps a de-babel one (to remove active punctuation at the outer level). > Also, I think this is about as simple as we can get. We could > theoretically have a function like > \xparse_return_arg:n { } > instead of the \toks_set:Nn, but this would still require scratch > variables to manipulate #1 in the first place. So no gain. Yes, we don't really gain much. -- Joseph Wright