|Subject:||Re: Emacs-devel Digest, Vol 148, Issue 12|
|Date:||Tue, 7 Jun 2016 15:01:47 -0400|
Hmm... this seems to be clearly an interaction with sml-mode.> (require 'smie)
> (defconst sml-smie-grammar
> ("local" exp "in" exp "end"))
> (defun sml-smie-rules (kind token)
> (pcase (cons kind token)
> (`(:elem . basic) 4)
> (`(:elem . args) 2)
> (define-derived-mode my-sml-mode sml-mode "My SML"
> indented test.sml:
I just tried it with my local copy of sml-mode (straight from elpa.git)
and don't see the above indentation behavior. I also tried it after
replacing `sml-mode' with `prog-mode' as the parent, and that doesn't
show the problematic behavior either.
> Does the equivalent S-_expression_ representing the parse tree have terminals
> in order, or are they moved to the front - i.e. does 1 + 2 for grammar
> (number "+" number) become (1 + 2) or (+ 1 2)?
The tree is never created, so the question doesn't really have an answer.
The grammar is only used for navigation (e.g. to jump over the "+ 2 * z"
in "x + 2 * z + y" when moving forward).
> What does smie-rule-parent-p use to determine the parent of a token? Is it
> the first token above the S-_expression_ the current token is contained in,
> e.g. in ("a" "b" ("c" "d" "e") "f"), the parent of "d" is "b"?
I think it would be "c".
|[Prev in Thread]||Current Thread||[Next in Thread]|