Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 23 Oct 2009 08:38:28 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n9N6cQR0030102 for ; Fri, 23 Oct 2009 08:38:26 +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 n9N6Z2fk022650 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 23 Oct 2009 08:35:03 +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 n9N65fdx000756; Fri, 23 Oct 2009 08:34:58 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 339304 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 23 Oct 2009 08:34:58 +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 n9N6YwP6002902 for ; Fri, 23 Oct 2009 08:34:58 +0200 Received: from mail-qy0-f199.google.com (mail-qy0-f199.google.com [209.85.221.199]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n9N6Yrg9022403 for ; Fri, 23 Oct 2009 08:34:57 +0200 Received: by qyk37 with SMTP id 37so5157789qyk.18 for ; Thu, 22 Oct 2009 23:34:53 -0700 (PDT) Received: by 10.224.73.79 with SMTP id p15mr5178568qaj.228.1256279693484; Thu, 22 Oct 2009 23:34:53 -0700 (PDT) Received: from ?10.0.1.103? (219-90-216-167.ip.adam.com.au [219.90.216.167]) by mx.google.com with ESMTPS id 7sm7461025qwb.5.2009.10.22.23.34.50 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 22 Oct 2009 23:34:52 -0700 (PDT) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v936) References: <4AE0BFB3.7080905@morningstar2.co.uk> <8A015AE0-022B-4462-B8D5-CC1010E49205@gmail.com> <4AE1475B.9070905@morningstar2.co.uk> X-Mailer: Apple Mail (2.936) X-Spam-Whitelist: Message-ID: <9F7B8982-D3C7-4678-B260-F6A758971860@gmail.com> Date: Fri, 23 Oct 2009 17:04:46 +1030 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Will Robertson Subject: Re: xparse processors To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <4AE1475B.9070905@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: 23 Oct 2009 06:38:28.0528 (UTC) FILETIME=[6E1B5B00:01CA53AB] Status: R X-Status: X-Keywords: X-UID: 6109 On 23/10/2009, at 4:34 PM, Joseph Wright wrote: > Will Robertson wrote: >> On 23/10/2009, at 6:55 AM, Joseph Wright wrote: >>> This would allow things like: >>> >>> > \ReturnVariable { \MakeHarmless\ReturnVariable } >>> % Will absorb one more argument, as required >>> >>> (using \MakeHarmless from xdoc). That doesn't work at present as >>> the return has to be in a toks. >>> >>> As Lars points out, that is quite a bit more flexible at the cost >>> of a little complexity in the syntax. >> I'm not sure that I see how this is any more flexible? >> Oh, simply that your argument processor doesn't have to be hard- >> coded to use \l_xparse_arg_toks. >> But hang on, can't you do the same thing at present by just writing >> > { \MakeHarmless\l_xparse_arg_toks } >> ? > > No. \MakeHarmless has the syntax: > > \MakeHarmless > > where is used for the output. So if you try to use a toks > here, it will fail to work correctly. You'd need a wrapper function, > which is what Lars is suggesting we should avoid. Ah, and then I guess you use V expansion to get the output from \ReturnVariable regardless of whether it's a toks or a macro. Hmmm. Well. I suppose it's out of the question to have both options, where ">{\processor}" is a shorthand for, say, ">> \l_xparse_arg_toks {\processor}". Or have ">*{\processor}" that uses \l_xparse_arg_tl instead. Both of these solutions seem to be more like avoiding the issue than solving it :) They certainly don't help simplify the situation. -- Will