emacs-diffs
[Top][All Lists]
Advanced

[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);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]