From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.help Subject: Re: Using syntax tables to parse buffer content Date: Tue, 18 May 2021 17:26:45 -0700 Message-ID: <87o8d7va9m.fsf@ericabrahamsen.net> References: <875yzfwyak.fsf@ericabrahamsen.net> <87wnrvvekv.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40935"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed May 19 02:30:54 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ljA6v-000ATf-7c for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 19 May 2021 02:30:53 +0200 Original-Received: from localhost ([::1]:60732 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ljA6u-0000FF-6C for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 18 May 2021 20:30:52 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58840) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ljA3B-00038K-Dp for help-gnu-emacs@gnu.org; Tue, 18 May 2021 20:27:03 -0400 Original-Received: from ericabrahamsen.net ([52.70.2.18]:36894 helo=mail.ericabrahamsen.net) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ljA36-0006Ve-HP for help-gnu-emacs@gnu.org; Tue, 18 May 2021 20:27:01 -0400 Original-Received: from localhost (c-71-197-184-122.hsd1.wa.comcast.net [71.197.184.122]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 60B6BFA02E for ; Wed, 19 May 2021 00:26:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1621384007; bh=NNoizFQ83AxP1eY24c2ScsQxZYahSnlbtrYjw4Kb8eU=; h=From:To:Subject:References:Date:In-Reply-To:From; b=R3q0A6QPD9cCMS9GS5IRmUfPDPN0ubqaVOrd4weB1TLcn6r3Wrj5gKMWIZRAA2ewl fvGCYLBia17kyydBgB6tNVcSVoyPzZAup8O/kp6ZhKzJceCbuykN8rFIpqiTqCiM6J 639DODIcqmMVqK0wz2pfl5sP7itZOmTGRwSViIqI= In-Reply-To: (Jean Louis's message of "Wed, 19 May 2021 02:21:13 +0300") Received-SPF: pass client-ip=52.70.2.18; envelope-from=eric@ericabrahamsen.net; helo=mail.ericabrahamsen.net X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:129911 Archived-At: Jean Louis writes: > * Eric Abrahamsen [2021-05-19 01:54]: >> Jean Louis writes: >> >> > * Eric Abrahamsen [2021-05-19 00:04]: >> >> My main problem now is escaping: I don't know how to treat escaped >> >> special characters as non-special. The simplest example is in vCard >> >> parsing. A property line might look like this: >> >> >> >> URL;TYPE=homepage:https\://mygreatpage.com/ >> > >> > That is when important "standards" like vCard are written by people >> > that lack global knowledge of data structures. Would they write it in >> > LISP data or at least XML, we could all easily parse it, including by >> > using other programming languages. But no... >> >> There have been further efforts based on XML and JSON, but nothing has >> quite gained the currency of vCard, so here we are... > > Is it vCard that you wish to parse? > > I have made some vCard exporting functions. But I would need > importing. Some packages already exist. I've actually already written the package! https://elpa.gnu.org/packages/vcard.html There were some existing things, but all seemingly part of other packages. I needed something for EBDB, and wanted to write a library that was pure vcard->lisp, so it would be useful to other people, as well. The library parses to elisp structures that can be consumed by whomever. I'm doing it with (very ugly) regular expressions now, and want to move to syntax parsing, which I suspect will be much faster. I'd also just like to learn this technique, as I suspect it would also be very useful in several places in Gnus.