Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t6P8jBgM003849 for ; Sat, 25 Jul 2015 10:45:12 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx109) with ESMTPS (Nemesis) id 0LlYKZ-1Yk8I90puh-00bNkt for ; Sat, 25 Jul 2015 10:45:06 +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 t6P8hExX021773 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 25 Jul 2015 10:43:14 +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 t6OM13ea011543; Sat, 25 Jul 2015 10:43:13 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12448535 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 25 Jul 2015 10:43:13 +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 t6P8hDxm015393 for ; Sat, 25 Jul 2015 10:43:13 +0200 Received: from nov-007-i625.relay.mailchannels.net (nov-007-i625.relay.mailchannels.net [46.232.183.179]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t6P8h47j021706 for ; Sat, 25 Jul 2015 10:43:09 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp1.easily.co.uk (ip-10-204-4-183.us-west-2.compute.internal [10.204.4.183]) by relay.mailchannels.net (Postfix) with ESMTPA id 5B6DC1206B7 for ; Sat, 25 Jul 2015 08:42:57 +0000 (UTC) X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp1.easily.co.uk (smtp1.easily.co.uk [10.45.8.167]) (using TLSv1 with cipher DHE-RSA-AES256-SHA) by 0.0.0.0:2500 (trex/5.5.1); Sat, 25 Jul 2015 08:42:58 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: netnames|x-authuser|joseph.wright@morningstar2.co.uk X-MailChannels-Auth-Id: netnames X-MC-Loop-Signature: 1437813777912:207232680 X-MC-Ingress-Time: 1437813777912 Received: from [81.146.10.144] (port=50307 helo=palladium.local) by smtp1.easily.co.uk with esmtpa (Exim 4.43) id 1ZIv2l-0007GT-1x for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 25 Jul 2015 09:42:55 +0100 References: X-Enigmail-Draft-Status: N1110 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-AuthUser: joseph.wright@morningstar2.co.uk X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id t6P8hDxm015394 Message-ID: <55B34C0E.2070606@morningstar2.co.uk> Date: Sat, 25 Jul 2015 09:42:54 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: expl3 and input parsing To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-MIME-Autoconverted: from 8bit to quoted-printable by relay.uni-heidelberg.de id t6P8hExX021773 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:vCdup3NRQ+4=:8XrbETvfbKA2DBNQP0Mm4+g9o8 mtHrRVTMqOvWSR0ilEtVdUf8ANZ3jfNyPekFYx7KJ1ViWn+vgxns1btlQQHst8JKNo2RG6xjh +xI3BsHYd6krPVo0LKN2orptvPmkZTzNYMG1/tLdpg6gT9AN8a8Xcl5QkQYFUe+RYnFG9II6e NEAuSYSM87rMSwo9XgYg8xyM40tUbuDOIzeEfMBkn229DKpYJ4+vBx/f+XpgCgjJinjUea3jh fzxoygyIxlLC3jNznTrjm3HnyK6WOgKVb+bc7TZPVx4pVS6YZbZeeylzFutXMobyP4dpATZgt udlxjYUAhxB+91iCyEltb9/QeT9HfbazmjlA6a69kb4sq10pv+BVCcopbzd6CWHMd5ew3fCGY +wWJQIUNWpBuX8bzZhX0qSPKZwdVn/miwZwCTVKsbOW5mq6qUfCk1GSxWKaWtgBoEhuKegVER ukVkC7xdPbeK+Kj8c6A1/S7RD3wp3ijnpEYn6ASva5zAc15AGwuoJChhp9Rt5A4NJEl08P22z mFmq1U+Qilz49l/jSSRfeF5FuDDCF1Blbe0opEfyTvIaBSTn2isMsb3B7QA1fHi48rwew9PmZ FYJbSx9FDtlckLMsc5yPuAHJ3QUK19oFBS0UgCr8wd5azAbq8L1Xx22MwBBpnGfH/HpXuWyn2 lp1bPJGEIOK8eAuvJ2+f21kr71If1AVoEOTR3moKkPX4avGLtnWXbyKWHIMHI9AWTq31VnUpl bGirO/bKb5LbyHEAttKVeFd182CGmHz4PF/XF11GMquzCqNAsIoYhRkkxtUoWaglDTmpPzV7d dub2Jf1uV/oq8VuGh97sh5wQWPSn57EdmyfUipptdL8MpjUqzRidXPSvYkTq17tFFlTmNPfiZ 2/H4vzkr8smFraVTiyTU47ub0bcp8bStxKG3TTqGIdFlQ7/DP42lzH5wieiZMaPL/ik3HFaLs dgMfaVWKdIZ9EFAQEp7FddFOi4O3rK9pm+OCvWNH8zEGUcadVl3Rq/M3g0QKq3RtjpOxHt5Zl c4rcXCZ06G2PYdwSlwuh7QP8NiibuG6GIkdElf84kRNknIalAsHPnanGy7fs4VstS8BJBxHBL kV9kASrkKipFtKbMO50kvYmTMDnq7IRe5bCCEKapyq9IwT7yTEDCAnPvKxjrn56HfCSVmYr67 z+mAAHtVLXzfUKWvoSGpjM6x87MCf3uj5xprWNbpkUjlk30xAFiDFccWC0Eky3KKEHdKppe4D xciyuZpGuhuKHg/cgxbTPrV+O4v2X8vXGKRkMCp4OqklU0b2HCpgLbA6LvKss9XJhDyGYCBTX mzap9Fn+esnM3JXCQbl14FYc7g3vVCKzbx6uOmdtZ/oAaaxBkfn9Qi3z3OWGLo927Wca3XNwC q4SmFpTjo3HjzhJrbjRI7EtCPXaJ4utONvnd1S5Evm+dMgyWetm5NfliyRO5NY+HonGwUNd+p 14BKbOBc3hvzIu1xsREz9S5c8cfhgW/GYA7ebegno6XV1Llmfi8Hz3KmzqzMN5thRdr1ec+A= = X-UI-Loop:V01:aLLehW86fc0=:8jyrbuWG+beaifzIse50/8efhMSrPuQqwQ6oW5VyYGo= X-UI-Out-Filterresults: notjunk:1;V01:K0:LotTHnm1XCE=:FHSqph7B3w7HbJTqDlV0T5 6jjfVLMZr30MP9EH+hIV5LyhX1WLEBU0O0UtUXK/UZu866OG/vxM5hzNNR4etd5/iVMN9h1PJ 9/N5W76z0aboIoMDHCa9WYRm5M/jwYqFBwfE2C78g922BrW/5DepGJA43mMZ0SaSocqCHPe4Y i2DvCgaK7N2fsEQKKwM/gjLCtMEqnYuS3QPcXl8KToX39WQBKmPL9fxrISqLLUu4DeViwqtFf +gMBg3fj/i2AFlx1LMOZmXkbcMoAN7fa6c3tGR2UgqGa65C1E/CqWFkNvE5bN1++uz4f9YpOF mJmg9dLfgjJKzkicRXf4PapoN6qlig8T8NqVO2Ub5LWU+61RD5Uwl5KgLjo9Qp50lPBsPccI6 87jXt9baqZ8qZ/zCCaURLW46FTpkQUdkWHv6H66by6EeR9JrU9dd+MDnGUWcW3OBKSnJXU2K/ aDpKn08mCF41oWm9gk9oBlMo0S5p35uJEdc6xiuF/9Jags8IKyqp X-Scanned-By: MIMEDefang 2.71 on 85.214.41.38 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by h1439878.stratoserver.net id t6P8jBgM003849 Status: R X-Status: X-Keywords: X-UID: 7805 On 03/07/2015 02:29, Sean Allred wrote: > Hello all, > > Long story short, I’ve written a general parser for the > > key: type [= default], […] > > format that xtemplate uses. Since this seems to be what at least LaTeX3 is heading toward, I wrote the parser so that it could be applied to a multitude of situations (even xtemplate itself, I think). In a sense, it is generic in that it can handle any input of this type, but is specialized *to this type* of input. I’ve named the function \parse_dictionary:nn, which takes the input as #1 and the parsing logic as #2: > > \parse_dictionary:nn > { > key-1: type-1 = default-1, > key-2: type-2 = default-2, > } > { > \tl_show:N \l_parse_dictionary_key_tl > \tl_show:N \l_parse_dictionary_type_tl > \tl_show:N \l_parse_dictionary_value_tl > } We are pretty sure xtemplate is 'wrong'. Parsing more generally may or may not be useful, but I think at this stage it's best not to add this to the kernel. I'm mindful of the need to tackle 'big issues' and we already have quite a list :-) > Does the kernel have philosophical room for a ‘parsing’ module, or should this be relegated to a separate expl3 module (like termmenu, lt3graph, etc.)? This I ask because, from my perspective, the kernel tends toward pure programming and low-level typesetting (from a ‘physical world’ perspective; i.e. doing what l3coffin does in the real world isn’t that difficult, but convincing TeX to do it is nothing short of a world-wonder). Input parsing doesn’t really fit that scope. On the other hand, separate talks of what l3color will be (someday) make it seem like such functionality would prove useful in the kernel. I suspect this is just a misunderstanding on my part, though — I don’t think complex input parsing should be a part of the core expl3 language. Important note: the aim is that all functionality will have a code level interface from which higher-level constructs will be built. -- Joseph Wright