--- Begin Message ---
Subject: |
23.1; antlr-mode: antlr-indent-command broken for long grammars |
Date: |
Tue, 24 Nov 2009 09:58:52 -0500 |
Hello,
I am running into an antlr-mode bug when indenting long grammars.
Specifically, when the point in the grammar is higher than
antlr-slow-cache-diff-threshold indenting a grammar rule fails in
calling c-where-wrt-brace-construct through beginning-of-defun.
To trigger:
Write a longinsh grammar (more than 5k chars with the default setting)
or simply set antlr-slow-cache-diff-threshold to 0 and then try to
indent in a grammar rule.
See attached silly.g for an example.
Indentation breaks, with the following error:
c-where-wrt-brace-construct: c-beginning-of-decl-1 returned label
Backtrace:
c-where-wrt-brace-construct()
c-beginning-of-defun(1)
funcall(c-beginning-of-defun 1)
beginning-of-defun-raw(nil)
ad-Orig-beginning-of-defun(nil)
beginning-of-defun()
antlr-syntactic-context()
antlr-indent-line()
antlr-indent-command(nil)
call-interactively(antlr-indent-command nil nil)
Solution:
A simple solution (kludge) is to modify antlr-syntactic-context to not call
beginning-of-defun in antlr-mode.el.
See attached patch.
antlr-mode.el.patch
Description: Binary data
silly.g
Description: Binary data
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#5033: 23.1; antlr-mode: antlr-indent-command broken for long grammars |
Date: |
Tue, 1 Oct 2019 03:16:47 +0200 |
Andrew Hyatt <address@hidden> writes:
> I cannot reproduce this on Emacs 25. I loaded the provided silly.g, set
> the antrl-slow-cache-diff-threshold to 0, and indented each line without
> any issues, at many different points on the line.
>
> Someone can let me know if they can still reproduce this, otherwise I'll
> close this out.
It was never closed at the time, 3 years ago, so I'm closing this now.
If anyone can still reproduce this, please reopen the bug report.
Best regards,
Stefan Kangas
--- End Message ---