From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id HD7hJsF0YF+JZgAA0tVLHw (envelope-from ) for ; Tue, 15 Sep 2020 08:01:05 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id OHnEIMF0YF8SIwAAbx9fmQ (envelope-from ) for ; Tue, 15 Sep 2020 08:01:05 +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 10DB1940390 for ; Tue, 15 Sep 2020 08:01:04 +0000 (UTC) Received: from localhost ([::1]:60788 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI5te-0000RB-9Z for larch@yhetil.org; Tue, 15 Sep 2020 04:01:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44306) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI5r2-0000Q5-6S for emacs-orgmode@gnu.org; Tue, 15 Sep 2020 03:58:20 -0400 Received: from dal2relay152.mxroute.com ([64.40.26.152]:38801) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kI5r0-00087b-8B for emacs-orgmode@gnu.org; Tue, 15 Sep 2020 03:58:19 -0400 Received: from filter003.mxroute.com ([168.235.111.26] 168-235-111-26.cloud.ramnode.com) (Authenticated sender: mN4UYu2MZsgR) by dal2relay152.mxroute.com (ZoneMTA) with ESMTPSA id 17490c5788c000352a.001 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Tue, 15 Sep 2020 07:58:14 +0000 X-Zone-Loop: a06ce00efe39a51d362545d0fb5e81adfc62575211d3 X-Originating-IP: [168.235.111.26] Received: from friday.mxlogin.com (friday.mxlogin.com [159.69.65.104]) by filter003.mxroute.com (Postfix) with ESMTPS id C3083600B2 for ; Tue, 15 Sep 2020 07:58:13 +0000 (UTC) To: emacs-orgmode@gnu.org From: =?UTF-8?B?UHJ6ZW15c8WCYXcgS2FtacWEc2tp?= Subject: official orgmode parser Message-ID: <68dc1ea1-52e8-7d9e-fb2d-bcf08c111eca@intrepidus.pl> Date: Tue, 15 Sep 2020 09:58:12 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-AuthUser: pk@mmksoft.uk Received-SPF: pass client-ip=64.40.26.152; envelope-from=pk@intrepidus.pl; helo=dal2relay152.mxroute.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 03:58:15 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, 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: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; 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.01 X-TUID: YAhRYYQIz+7v Hello, I oftentimes find myself needing to parse org files with some external tools (to generate reports for customers or sum up clock times for given month, etc). Looking through the list https://orgmode.org/worg/org-tools/ and having tested some of these, I must say they are lacking. The Haskell ones seem to be done best, but then the compile overhead of Haskell and difficulty in embedding this into other languages is a drawback. I think it might benefit the community when such an official parser would exist (and maybe could be hooked into org mode directly). I was thinking picking some scheme like chicken or guile, which could be later easily embedded into C or whatever. Then use that parser in org mode itself. This way some important part of org mode would be outside of the small world of elisp. This is just an idea, what do you think? :) Best, Przemek