emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/tNFA 5f3bdf7 21/23: Enable lexical binding, and fix iss


From: Stefan Monnier
Subject: [elpa] externals/tNFA 5f3bdf7 21/23: Enable lexical binding, and fix issues it picks up.
Date: Mon, 14 Dec 2020 12:08:32 -0500 (EST)

branch: externals/tNFA
commit 5f3bdf70531c0e2463f740601b3e5b752ae9f962
Author: Toby S. Cubitt <toby-predictive@dr-qubit.org>
Commit: Toby S. Cubitt <toby-predictive@dr-qubit.org>

    Enable lexical binding, and fix issues it picks up.
---
 tNFA.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/tNFA.el b/tNFA.el
index cb43f7d..7605481 100644
--- a/tNFA.el
+++ b/tNFA.el
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t; -*-
 ;;; tNFA.el --- Tagged non-deterministic finite-state automata
 
 ;; Copyright (C) 2008-2010, 2012   Free Software Foundation, Inc
@@ -322,7 +323,7 @@
   ;; create DFA state and add it to the state pool
   (let ((DFA-state (tNFA--DFA-state--create
                    state-list state-pool :test test))
-       tmp-list)
+       transition)
     (puthash state-list DFA-state (tNFA--DFA-state-pool DFA-state))
 
     (dolist (state state-list)
@@ -330,16 +331,20 @@
       (cond
        ;; literal state: add literal transition
        ((eq (tNFA--state-type state) 'literal)
-       (setq tmp-list (tNFA--DFA-state-transitions DFA-state))
-       (add-to-list 'tmp-list (cons (tNFA--state-label state) t))
-       (setf (tNFA--DFA-state-transitions DFA-state) tmp-list))
+       (setq transition (cons (tNFA--state-label state) t))
+       (unless (member transition (tNFA--DFA-state-transitions DFA-state))
+         (setf (tNFA--DFA-state-transitions DFA-state)
+               (append (tNFA--DFA-state-transitions DFA-state)
+                       (list transition)))))
 
        ;; character alternative: add transitions for all alternatives
        ((eq (tNFA--state-type state) 'char-alt)
        (dolist (c (tNFA--state-label state))
-         (setq tmp-list (tNFA--DFA-state-transitions DFA-state))
-         (add-to-list 'tmp-list (cons c t))
-         (setf (tNFA--DFA-state-transitions DFA-state) tmp-list)))
+         (setq transition (cons c t))
+         (unless (member transition (tNFA--DFA-state-transitions DFA-state))
+           (setf (tNFA--DFA-state-transitions DFA-state)
+                 (append (tNFA--DFA-state-transitions DFA-state)
+                       (list transition))))))
 
        ;; wildcard or negated character alternative: add wildcard
        ;; transistion



reply via email to

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