[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r104594: * src/eval.c (Fdefvaralias):
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r104594: * src/eval.c (Fdefvaralias): Also mark the target as variable-special-p. |
Date: |
Wed, 15 Jun 2011 14:36:00 -0400 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 104594
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2011-06-15 14:36:00 -0400
message:
* src/eval.c (Fdefvaralias): Also mark the target as variable-special-p.
modified:
lisp/emacs-lisp/smie.el
src/ChangeLog
src/eval.c
=== modified file 'lisp/emacs-lisp/smie.el'
--- a/lisp/emacs-lisp/smie.el 2011-03-11 20:04:22 +0000
+++ b/lisp/emacs-lisp/smie.el 2011-06-15 18:36:00 +0000
@@ -84,6 +84,26 @@
;; - Maybe accept two juxtaposed non-terminals in the BNF under the condition
;; that the first always ends with a terminal, or that the second always
;; starts with a terminal.
+;; - Permit EBNF-style notation.
+;; - If the grammar has conflicts, the only way is to make the lexer return
+;; different tokens for the different cases. This extra work performed by
+;; the lexer can be costly and unnecessary: we perform this extra work every
+;; time we find the conflicting token, regardless of whether or not the
+;; difference between the various situations is relevant to the current
+;; situation. E.g. we may try to determine whether a ";" is a ";-operator"
+;; or a ";-separator" in a case where we're skipping over a "begin..end" pair
+;; where the difference doesn't matter. For frequently occurring tokens and
+;; rarely occurring conflicts, this can be a significant performance problem.
+;; We could try and let the lexer return a "set of possible tokens
+;; plus a refinement function" and then let parser call the refinement
+;; function if needed.
+;; - Make it possible to better specify the behavior in the face of
+;; syntax errors. IOW provide some control over the choice of precedence
+;; levels within the limits of the constraints. E.g. make it possible for
+;; the grammar to specify that "begin..end" has lower precedence than
+;; "Module..EndModule", so that if a "begin" is missing, scanning from the
+;; "end" will stop at "Module" rather than going past it (and similarly,
+;; scanning from "Module" should not stop at a spurious "end").
;;; Code:
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2011-06-14 21:08:20 +0000
+++ b/src/ChangeLog 2011-06-15 18:36:00 +0000
@@ -1,3 +1,7 @@
+2011-06-15 Stefan Monnier <address@hidden>
+
+ * eval.c (Fdefvaralias): Also mark the target as variable-special-p.
+
2011-06-14 Jan Djärv <address@hidden>
* xfns.c (x_set_scroll_bar_default_width): Remove argument to
=== modified file 'src/eval.c'
--- a/src/eval.c 2011-06-06 19:43:39 +0000
+++ b/src/eval.c 2011-06-15 18:36:00 +0000
@@ -772,6 +772,7 @@
}
sym->declared_special = 1;
+ XSYMBOL (base_variable)->declared_special = 1;
sym->redirect = SYMBOL_VARALIAS;
SET_SYMBOL_ALIAS (sym, XSYMBOL (base_variable));
sym->constant = SYMBOL_CONSTANT_P (base_variable);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r104594: * src/eval.c (Fdefvaralias): Also mark the target as variable-special-p.,
Stefan Monnier <=