Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t7PBpHma010696 for ; Tue, 25 Aug 2015 13:51:18 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx101) with ESMTPS (Nemesis) id 0MOghO-1ZPEPh31sM-00636x for ; Tue, 25 Aug 2015 13:51:11 +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 t7PBnftj020004 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 25 Aug 2015 13:49:41 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t7PArm8o015547; Tue, 25 Aug 2015 13:49:41 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12533120 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 25 Aug 2015 13:49:41 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t7PBnfSb017530 for ; Tue, 25 Aug 2015 13:49:41 +0200 Received: from mail-ig0-f180.google.com (mail-ig0-f180.google.com [209.85.213.180]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t7PBnc6u019971 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Tue, 25 Aug 2015 13:49:41 +0200 Received: by igui7 with SMTP id i7so8836523igu.0 for ; Tue, 25 Aug 2015 04:49:38 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.50.143.37 with SMTP id sb5mr1762494igb.13.1440503377957; Tue, 25 Aug 2015 04:49:37 -0700 (PDT) Received: by 10.36.81.201 with HTTP; Tue, 25 Aug 2015 04:49:37 -0700 (PDT) References: <55DBB7F6.1070307@clear.net.nz> <55DABA1D.3050706@morningstar2.co.uk> <55DCFDF7.7080305@clear.net.nz> <9F80F164-248C-4E5D-B799-B42DE56A6016@gmail.com> <55DC289F.90001@morningstar2.co.uk> Content-Type: text/plain; charset=UTF-8 Message-ID: Date: Tue, 25 Aug 2015 13:49:37 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Bruno Le Floch Subject: Re: Catcode changes To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <55DC289F.90001@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:EiLeh+CTDS0=:j9asRf+YSi1higysJt3pPzuEh+ SqmkgSWC2AHLcJiKBOprWvgCuOpe91MiDmG4yYg0fR9mM7RNJU0SRbOmM6nuc5zZQvzR6OUTF vT3wjlZqq9SXVE959h23r5u308RFZ4LjwkxFl2o2WJsVYei5o67+YnbVbXkg2Fn+p4Yl1Yl66 AYOPXOPkkbwyqgSVLU1vUvamvqH1jw4297p8PaCeOTZzD9Ya3gAXgXms2BLq4GQMm6+s6Hfwa VozVwWtC1AXuylArUx20OFVCmFHWnlEEucbpOyWFfjd85VFxrkJf07YEAJ5HIB/UEInX0OP7n lM06Abb637tBU6/ONT+YZ0sjSJXmpU78XRlPrg4oG4sjmpV0j+Sv7dA4GOtD6/logh+A96C/V FcHoVp1KIsYwcW22fvCBBtbkWUFkniZfjSJl7gywTpxVxAIpu6c/1zXd0wreEmgG+GHuZ4iOu kqk5/VtT21OQuTrjmIzG1ieiewTJxOes8q8Bsm0diDSY2qjWGeHuDFrlFhot9s6Yf1JK8Umbf bmlBO+O8sWhb4Z7IztwFDPLQEu0VLk3vXR5FrRIk38geIN9GDmIwVFJaLjhyZf/O9wKEpsfL6 3BhlVbItDDUeDKx0zn4dubCk+fqxde04dJJu7a8H22PT77JWgkd3KaOYruDcOx5LBuFV5+K9r UShVUiQVMRVt8KRldFvZ2EqiEhlprGsEfDGJ1kuSWhX97E+334f5UpyiUQsAVGVqCaV0x1web R4MDMyqnajCc3jFZg3sNsHa/ppbngHgvf/pI/y8rqmy1tU+1dQHeG7DOzag1CFLL0MEymhjNp Huj344MTcSP+W4BdgGi1JfqMftZntXeObzIUtpF+JJa6lf0UCW7tOlsLP3NNODOrQ71fZF/pA DZhXsN/J/Rso9R9K4QZxOycrl+mnKyQVN532h86+LhzVFZTbPzmJ16SmVC/VG+8IoLY8zploT TdNv9z8Qa28/vRinJGz5C+QHciL+sHD8JhviHa+2Vhy+mcrvdh7Tg4pXfgs6uaNRVSjgjXgHX ic1zDKuGuo8MuWgSHTrCJhFyxNkp655sXLoELz6P2/RaMZJySsePx4SqJi+wKW1bNdTkWCo5Q poA5VVDE5Irq8yfL36oqIHPou783G1QWcuF+2zCVh+9tOyLxrJEUgT15EJDjFGuuv29Fnnzhk zL7CmNxu96nzqoS7TY7j0CwzjxuslwzvjBfBqXZ/8jmEsvGGR+VaaDi4jE1FeMzrryz8oN8ed u3cJdKxrf5o18oRV2qroLjZTGXs9JXfwzKhKvCvXF1ALBI8voXE+CuMRPwW0rUo8AJiczNowA vhBOsCPt9yt4Y0FDTuqubbXc7zvL1BcG/6IrraM/2ifurBVV2hFmXUVqUWJsdhQvhhKZCauX8 Qpq12QUp8WYip7EGfrWZ1rgi/GStt8D0WudSV12anJmsmGUizwHK/qREERIFcE8HJ+SMV18U8 fLqE/54l8eOHeemqrn8xfeG11TsrDcnIkBG8fS/dJ5X/ofh12F X-UI-Loop:V01:VDBcHvCdGjg=:dyVSdnFTfVriFDDmHmgA3Kl5Jne4C75n3o9L6N+J3ek= X-UI-Out-Filterresults: notjunk:1;V01:K0:OYWbpiQ2IUU=:iBSwTysShO/53Q5C9+iZ1t 6OftYf0ovb+n4B0TUn9KvJq9A58V21kuaGnSg9gFUY4U+JimrXvKfkCs4FncKsTZI3DosqgOS mpAfg6eeHq4MR1+HAnPr2zMk3VNLmZx/HbIeMLgcGVMC813f0Ca1Bu86ZuC1iLswU7l/3Sdy9 /1aAZX58OyM8YSspb7jIRlGyvFtoeMgq/egZbFxfnQtkZuBJ465gMxWWgBGWCsO0J/S4qUm4k ey6F2vofz6JqUA9ulQ+A2XHzSpGIkKjQ1EZGao7fdtUdU1aHuSGxfNjnXA9JmS0BVsKprOQBt NE03slsUjSdwrGFljuzd9C8zVua12pOMrj4PwO0eg2JuOkLeNuQvvA1s7U8wg1Juoe8EaCAc9 3ERjUsFyEKWOciZhjADmiWxjL+zoynKyF6XOqUhtPhZEmqqhsNCndAFhwKgDR6QIM/IUI8wmP 5hlt+rTYta3WXRUo+nHZnjA3B3RBqWB2WGx1jSS52CYPPY+0Xcul X-Scanned-By: MIMEDefang 2.71 on 85.214.41.38 Status: R X-Status: X-Keywords: X-UID: 7836 On 8/25/15, Joseph Wright wrote: > On 25/08/2015 06:16, Will Robertson wrote: >> On 26 Aug 2015, at 09:14, aparsloe wrote: >>> >>> (1) I wanted to use \tl_replace_all:Nnn on a token list that might >>> contain braced groups. >> >> We might want to consider a "nesting" map function that essentially >> disregards brace groups. This could be used to define a new >> \tl_replace_nested:Nnn or similar for exactly this purpose. >> >> I'm fairly sure Bruno already has code that does nested mapping as part of >> his "tl" extensions... What do others think? > > I guess I'd want to know a bit more about use cases. As I've said on > LaTeX-L, normally brace groups are an 'escape' mechanism from the > scanner, so I'm not sure I'd expect recursive replacement as a general > thing. I'm wondering if this is being used for something rather 'text > like', which might be handled by l3regex (slow but for a smaller number > of cases reasonable). I'm not completely sure that l3regex will be slower in all cases than an approach based on my nested mappings. Besides, if we find some common use-cases of regexes that can be optimized, I can work on that. For instance, I saw someone use \c{alpha}|\c{beta}|..., which is currently quite slow but can be optimized. For your information, "aparsloe", l3regex provides \u, to use the contents of a tl variable in the search or the replace part of a regular expression. Bruno