From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id MKbnKPyyll+EUQAA0tVLHw (envelope-from ) for ; Mon, 26 Oct 2020 11:29:00 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id WBLfJPyyll/ZSAAA1q6Kng (envelope-from ) for ; Mon, 26 Oct 2020 11:29:00 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1FEE9940366 for ; Mon, 26 Oct 2020 11:29:00 +0000 (UTC) Received: from localhost ([::1]:51054 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kX0gM-00073b-VS for larch@yhetil.org; Mon, 26 Oct 2020 07:28:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59340) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kX0bX-0008RK-D7 for emacs-orgmode@gnu.org; Mon, 26 Oct 2020 07:23:59 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:35070) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kX0bV-0001R9-Bq; Mon, 26 Oct 2020 07:23:59 -0400 Received: by mail-pj1-x102a.google.com with SMTP id h4so2933657pjk.0; Mon, 26 Oct 2020 04:23:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=LnoaFJYJu3t/kK5Gt2VzYYVMNUpcxFcGq+P7vyugasw=; b=BPf+kKFJ58ppu4lroQtHtZkkEeA6EZjPgXBVRzFxw6VcQ2I/YDNGfHkb5Bhtl505/p gqSHnst31LCgGXAB80qjBgtjsdXNSHNx1LdEbERcHL5F3waXBhOntdGpPcIdv/69xe4x Tww8FNS1olFzV43DJuBlOg7Hs9hO3ImD5Z3ypf1KP9lIgRghvxpjyX7KEX7t/YGl9lXe GfnKe8tiFom6GYAZcMvFS5nitbBB2GUHhoH1kMmiEidYiHaIMUBX/Wdgnag5NBfJ/OaZ 057jBPxYx3TBgWl4zi4OCCKl7UWMf2A8/nKBBj2n06lwu79dmCyJV5Ldj+A/qfcbsTfT FO9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=LnoaFJYJu3t/kK5Gt2VzYYVMNUpcxFcGq+P7vyugasw=; b=N8wB2PohhTi9Op1ttCmrjTofiLsV03MOpVisTZA2NfJVQHDPfH7P8z05KcgnkPhVcI px/Xikt1bYggE/bhHeMkvkEpc9+oZzXmuT/pf9hRFZMa3R9m8+77XsDcNE3cKMIHmZZt rt+NO+KwGM1ao+3KvAZacwoamU33K5UW/NeQ1wc8OeRfFvESYXBB9t1AnU0QpER433Ff BoW177un4RGQZPZlDdsFomeAb06wWNp0BK0+f9xXY4mpYX6BEtNwRazhYyM4jwJxyO1U ekNFAKnGX0Ja0JfEcRsRKXa85bgMPyDuaqmIGf7E8r948K+vDmr2U9rqei+NNDUxeFF5 PR/A== X-Gm-Message-State: AOAM533R7wYOZBwdskeUebyrJ0hDQyc1TVGuAXp8B1aCXlNL77Vahlzu rCD+3pEFkaogC0MeBOirS55wDJOyLDc= X-Google-Smtp-Source: ABdhPJxYuJ4PVtzmcHcgyxTsj4+ZqD/g/SSnMDeUPKv32yOLXxnrj9AXoZkY3bx2zEOoCdGpCsH55g== X-Received: by 2002:a17:902:64c8:b029:d3:c693:8ce8 with SMTP id y8-20020a17090264c8b02900d3c6938ce8mr16938583pli.27.1603711433127; Mon, 26 Oct 2020 04:23:53 -0700 (PDT) Received: from geus3064linuxwsm (97-126-80-198.tukw.qwest.net. [97.126.80.198]) by smtp.gmail.com with ESMTPSA id z7sm12229868pfz.5.2020.10.26.04.23.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2020 04:23:52 -0700 (PDT) References: <68dc1ea1-52e8-7d9e-fb2d-bcf08c111eca@intrepidus.pl> <874kno7w3v.fsf@gnu.org> User-agent: mu4e 1.4.3; emacs 27.1 From: Ken Mankoff To: Bastien Subject: Re: official orgmode parser In-reply-to: <874kno7w3v.fsf@gnu.org> Date: Mon, 26 Oct 2020 04:23:51 -0700 Message-ID: <87k0vdkz7c.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=mankoff@gmail.com; helo=mail-pj1-x102a.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?Q?Przemys=C5=82aw_Kami=C5=84ski?= , emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=BPf+kKFJ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -1.71 X-TUID: Gzf6I1/0qPV3 Hello, On 2020-09-23 at 01:09 -07, Bastien wrote... > I disagree that a parser is too difficult to maintain because Org is a > moving target. Org core syntax is not moving anymore, a parser can > reasonably target it. That's what is done with the Ruby parser, in use > in this small project called github.com :) Do you think it would be useful (or possible) to represent the current Org syntax in EBNF form so that people can use the EBNF to build parsers or graphically understand the form? I'm thinking of a nice page of railroad diagrams from this tool: https://github.com/GuntherRademacher/rr I question if this is possible because EBNF is for context-free grammars, but I *think* Org syntax is context-free. Even if not, I think those railroad diagrams might be useful for parser-writers and can still describe 99 % of the syntax, even if a few extra sentences are needed to clarify some edge case. -k.