branch: master commit b3fcbf3fe75f6f5bf32c7d492204720c409c4a72 Author: Stefan Monnier <monn...@iro.umontreal.ca> Commit: Stefan Monnier <monn...@iro.umontreal.ca>
* packages/wisi: Use lexical binding. Fix dos EOL. Fix EOB markers * packages/wisi/wisi-compat-24.2.el: Use lexical-binding. Fix EOB convention. * packages/wisi/wisi-compile.el: Use lexical-binding. Fix EOB convention. (wisi-compile-grammar): Declare dyn-bound variables. * packages/wisi/wisi.el: Use lexical-binding. Fix EOB convention. (wisi-number-p): Remove unused var `end'. --- packages/wisi/wisi-compat-24.2.el | 7 +++---- packages/wisi/wisi-compile.el | 21 +++++++++++++++------ packages/wisi/wisi-parse.el | 4 ++-- packages/wisi/wisi.el | 31 +++++++++++++++---------------- 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/packages/wisi/NEWS b/packages/wisi/NEWS old mode 100755 new mode 100644 diff --git a/packages/wisi/README b/packages/wisi/README old mode 100755 new mode 100644 diff --git a/packages/wisi/wisi-compat-24.2.el b/packages/wisi/wisi-compat-24.2.el old mode 100755 new mode 100644 index e4300d7..03bae80 --- a/packages/wisi/wisi-compat-24.2.el +++ b/packages/wisi/wisi-compat-24.2.el @@ -1,6 +1,6 @@ -;;; wisi-compat-24.2.el --- Implement current Emacs features not present in Emacs 24.2 +;;; wisi-compat-24.2.el --- Implement current Emacs features not present in Emacs 24.2 -*- lexical-binding:t -*- -;; Copyright (C) 2014 Free Software Foundation, Inc. +;; Copyright (C) 2014-2015 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -31,5 +31,4 @@ buffer-local wherever it is set." ) (provide 'wisi-compat-24.2) - -;; end of file +;;; wisi-compat-24.2.el ends here diff --git a/packages/wisi/wisi-compile.el b/packages/wisi/wisi-compile.el old mode 100755 new mode 100644 index 2b8807a..463fb01 --- a/packages/wisi/wisi-compile.el +++ b/packages/wisi/wisi-compile.el @@ -1,4 +1,4 @@ -;;; Grammar compiler for the wisent LALR parser, integrating Wisi OpenToken output. +;;; Grammar compiler for the wisent LALR parser, integrating Wisi OpenToken output. -*- lexical-binding:t -*- ;; ;; Copyright (C) 2012, 2013, 2015 Free Software Foundation, Inc. ;; @@ -135,6 +135,13 @@ side-effects only." (list (car (aref actn 2)) action-symbol n))) (defun wisi-compile-grammar (grammar) + ;; FIXME: This docstring is full of ambiguities making it unclear whether + ;; we're talking for example about data that includes the symbol `nonterm' as + ;; opposed to data that includes some non terminal object we denote + ;; with the meta-variable "nonterm". + ;; The convention in Elisp's docstrings is to use all-caps for metavariables + ;; (and `...' quoting as opposed to the '... quoting used below in a few + ;; spots). "Compile the LALR(1) GRAMMAR; return the automaton for wisi-parse. GRAMMAR is a list TERMINALS NONTERMS ACTIONS GOTOS, where: @@ -169,10 +176,10 @@ state. The automaton is an array with 3 elements: parser-actions is a copy of the input ACTIONS, with reduction -actions replaced by a list (nonterm action-symbol token-count), -where `nonterm' is a symbol from NONTERMS, and is the -non-terminal to reduce to, token-count is the number of tokens in -the reduction, action-symbol is nil if there is no user action, +actions replaced by a list (NONTERM ACTION-SYMBOL TOKEN-COUNT), +where NONTERM is a symbol from NONTERMS, and is the +non-terminal to reduce to, TOKEN-COUNT is the number of tokens in +the reduction, ACTION-SYMBOL is nil if there is no user action, or a symbol from semantic-actions (below). gotos is a copy of GOTOS. @@ -180,6 +187,8 @@ gotos is a copy of GOTOS. semantic-actions is an obarray containing functions that implement the user action for each nonterminal; the function names have the format nonterm:index." + (defvar nrules) (defvar ptable) (defvar rcode) (defvar rlhs) (defvar tags) + (defvar token-list) (defvar var-list) (let (nrules ptable rcode rlhs tags token-list var-list) (wisent-parse-grammar;; set global vars used by wisent-semantic-action (cons @@ -214,4 +223,4 @@ names have the format nonterm:index." (provide 'wisi-compile) -;;;; end of file +;;; wisi-compile.el ends here diff --git a/packages/wisi/wisi-parse.el b/packages/wisi/wisi-parse.el old mode 100755 new mode 100644 index 852ecdc..4fa300e --- a/packages/wisi/wisi-parse.el +++ b/packages/wisi/wisi-parse.el @@ -1,6 +1,6 @@ -;;; wisi-parse.el --- Wisi parser +;;; wisi-parse.el --- Wisi parser -*- lexical-binding:t -*- -;; Copyright (C) 2013, 2014 Free Software Foundation, Inc. +;; Copyright (C) 2013-2015 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/packages/wisi/wisi.el b/packages/wisi/wisi.el old mode 100755 new mode 100644 index 5a7c17d..a748f62 --- a/packages/wisi/wisi.el +++ b/packages/wisi/wisi.el @@ -1,4 +1,4 @@ -;;; wisi.el --- Utilities for implementing an indentation/navigation engine using a generalized LALR parser +;;; wisi.el --- Utilities for implementing an indentation/navigation engine using a generalized LALR parser -*- lexical-binding:t -*- ;; ;; Copyright (C) 2012 - 2015 Free Software Foundation, Inc. ;; @@ -204,25 +204,24 @@ (defun wisi-number-p (token-text) "Return t if TOKEN-TEXT plus text after point matches the -syntax for a real literal; otherwise nil. point is after +syntax for a real literal; otherwise nil. Point is after TOKEN-TEXT; move point to just past token." - ;; typical literals: + ;; Typical literals: ;; 1234 ;; 1234.5678 ;; _not_ including non-decimal base, or underscores (see ada-wisi-number-p) ;; - (let ((end (point))) - ;; starts with a simple integer - (when (string-match "^[0-9]+$" token-text) - (when (looking-at "\\.[0-9]+") - ;; real number - (goto-char (setq end (match-end 0))) - (when (looking-at "[Ee][+-][0-9]+") - ;; exponent - (goto-char (setq end (match-end 0))))) - - t - ))) + ;; Starts with a simple integer + (when (string-match "^[0-9]+$" token-text) + (when (looking-at "\\.[0-9]+") + ;; real number + (goto-char (match-end 0)) + (when (looking-at "[Ee][+-][0-9]+") + ;; exponent + (goto-char (match-end 0)))) + + t + )) (defun wisi-forward-token () "Move point forward across one token, skipping leading whitespace and comments. @@ -720,7 +719,7 @@ If accessing cache at a marker for a token as set by `wisi-cache-tokens', POS mu (message "%s done" msg))) ))) -(defun wisi-fontify-region (begin end) +(defun wisi-fontify-region (_begin end) "For `jit-lock-functions'." (when (< (point-max) wisi-size-threshold) (wisi-validate-cache end)))