Return-Path: Delivered-To: rainer Received: from h2774747.stratoserver.net (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) by h2774747.stratoserver.net (Dovecot) with LMTP id TvELDwDlTF4ZXwAA4+3H6A for ; Wed, 19 Feb 2020 08:34:24 +0100 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id 01J7YM2f024337 for ; Wed, 19 Feb 2020 08:34:23 +0100 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx117 [212.227.17.5]) with ESMTP (Nemesis) id 1M9odB-1j7uN33Q3B-005q1v for ; Wed, 19 Feb 2020 08:34:16 +0100 Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay.uni-heidelberg.de with ESMTP; 19 Feb 2020 08:34:17 +0100 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 51ED1125454; Wed, 19 Feb 2020 08:25:00 +0100 (CET) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 17.0) with spool id 42030488 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 19 Feb 2020 08:25:00 +0100 Delivered-To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 2BFBF12623E for ; Wed, 19 Feb 2020 08:25:00 +0100 (CET) Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Message-ID: <3007331580715961.WA.kellysmith12.21gmail.com@listserv.uni-heidelberg.de> Date: Wed, 19 Feb 2020 08:25:00 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Kelly Smith Subject: Discussion: Specialized Syntax To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE 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-Spam-Flag: NO X-UI-Filterresults: notjunk:1;V03:K0:QqJ9WHXzFKs=:hpj3yRoaMaBXtL/gfZBSTlTTJE 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 X-UI-Loop:V01:sJORiaPWnjk=:WFume5tKfMK5fhGfAN38ttnJc5iVyqcAgrc2t4Dw9Is= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:N3+uSrzsdbk=:V3npcisnXVu4hjV931yHqZ IeHNRxIjGDbriNQDjv5f9+h/H1iX9vhdRbVP0xu2oiBYqOGUxkDRlnC4LzY3ot6jXBAGSalKZ rMkHE8Uk9Ixj9G4eJYxs2SwsUQu4A7fd74cRZkT4UA6hE7MIl25KITWcj9ja4lkaYUirTS98o dEwhQmoXOZ2UrczNiagpeirlNmMnfr91MKUUvrOAxu5qpdOlLWkfeNSwoehVm9AHgOHjwvmpq dT9Gm81chkyoF7xlotKp8SavXKO/3ratX24TSLYXQvX5X9B4h848yZfuwBIzLU+BTCfVKt9EI tqMGrXwuTVcldr/4JA/9KbGUWnrhHOEykIJFrPHvgrAUa6wRVvveoQnxqSLB5zH0GjsFYRHY3 TXwwg40/OWgo6J0eY+SqzUD+vYjIVvasysdjM9JOEG44kWBiaED98DZ1KUFeCDwNA4Slbooel JKiLb4VsZxCd1L47TxqnbQ6rxut6aXCJ4RA98eaGG5az57InIJgqV8EuAgdFFX7VhpDayyjQ/ rEFd767OhXfgv2Ug+Je+GQoB6A9zVFX6KQZ2Ed6pxTgKipg4gK4uzadW8BiDgYgtA== X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by h2774747.stratoserver.net id 01J7YM2f024337 Status: R X-Status: X-Keywords: X-UID: 8192 Hello! I’ve been considering an issue for over a year now: specialized syntax. Of course, uniformity is very valuable, but there are situations in which even the flexible xparse may result in an unfriendly interface. At those times, it can be tempting to use significantly different syntax. As an example: I’ve been toying with typesetting BNF-style grammars. I prefer to have a lot of control over the typesetting, so I’ll use more verbose syntax, if it is necessary for that control. Here are some of my thoughts on the BNF example: - Using standard xparse-style commands and environments is robust, but can be verbose and cluttered. - Defining an environment that sets up active characters to emulate traditional BNF syntax is very concise, but comes at the cost of delimited arguments and catcode madness. - Traditional BNF syntax could be read verbatim, then processed using a combination of tl and regex manipulations. This makes the syntax concise and is (perhaps) less dangerous than active characters but risks making the implementation complicated and slow. - Another consideration is special TeX’s characters: they could be read verbatim, but that limits the kind of syntax that can be used, or they could be escaped, using a regex or even a simple tl replacement. These considerations apply to any situation where general syntax could be replaced with something more specialized and concise. I’m very interested to know what thoughts people have on this matter. Warmly, Kelly