GNU bug report logs -
#72131
29.3; peg.el: syntax class character for symbol is '_', not 's'
Previous Next
Reported by: Jeff Trull <edaskel <at> att.net>
Date: Mon, 15 Jul 2024 22:29:02 UTC
Severity: normal
Found in version 29.3
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 72131 <at> debbugs.gnu.org (full text, mbox):
On Tue, Jul 16 2024, Eli Zaretskii wrote:
>> From: Jeff Trull <edaskel <at> att.net>
>> Date: Mon, 15 Jul 2024 15:26:02 -0700
>>
>> (require 'peg)
>> (with-temp-buffer
>> (save-excursion (insert "_"))
>> (peg-parse (syntax-class symbol)))
>>
>> results in the message
>> "No merge-error method for: (syntax-class symbol)".
>>
>> The root cause seems to be line 703 of peg.el where the syntax class
>> characters are defined. peg uses "s" for symbols instead of
>> "_". Correcting this results in a successful parse in the given code.
>
> Stefan and Helmut, any comments or suggestions?
Yes, looks like "_" would the correct. A method like
(cl-defmethod peg--merge-error (merged (_ (eql syntax-class)) x)
(cl-adjoin `(syntax-class ,x) merged :test #'equal))
is also missing and error messages like
peg-signal-failure: Parse error at %d (expecting %S): 1, ("abc")
don't look right either.
The first thing to do would be to write a test.
This bug report was last modified 303 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.