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

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

[nongnu] elpa/haskell-tng-mode cfbdae1 084/385: simplify the lexer asser


From: ELPA Syncer
Subject: [nongnu] elpa/haskell-tng-mode cfbdae1 084/385: simplify the lexer assertion language
Date: Tue, 5 Oct 2021 23:59:06 -0400 (EDT)

branch: elpa/haskell-tng-mode
commit cfbdae1f66d040bdded70b5325712c760aa17e2b
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>

    simplify the lexer assertion language
---
 haskell-tng-lexer.el           |   1 +
 test/haskell-tng-lexer-test.el |  49 ++++++++++---------
 test/src/layout.hs.lexer       |  18 +++----
 test/src/medley.hs.lexer       | 106 ++++++++++++++++++++---------------------
 4 files changed, 89 insertions(+), 85 deletions(-)

diff --git a/haskell-tng-lexer.el b/haskell-tng-lexer.el
index f2a5973..98023e5 100644
--- a/haskell-tng-lexer.el
+++ b/haskell-tng-lexer.el
@@ -89,6 +89,7 @@ the lexer."
            ((looking-at haskell-tng:regexp:conid)
             (haskell-tng-lexer:last-match nil "CONID"))
            ;; TODO symid
+           ;; TODO literals
 
            ((or
              ;; known identifiers
diff --git a/test/haskell-tng-lexer-test.el b/test/haskell-tng-lexer-test.el
index 1128761..fba496a 100644
--- a/test/haskell-tng-lexer-test.el
+++ b/test/haskell-tng-lexer-test.el
@@ -29,7 +29,7 @@
     (goto-char 317)
     (should (equal (haskell-tng-lexer-test:indent-forward-token) ";"))
     (should (equal (haskell-tng-lexer-test:indent-forward-token) "VARID"))
-    (should (equal (haskell-tng-lexer-test:indent-forward-token) "_("))
+    (should (equal (haskell-tng-lexer-test:indent-forward-token) "«"))
 
     ;; repeating the above, but with a user edit, should reset the state
     (goto-char 317)
@@ -39,7 +39,7 @@
       (insert " "))
     (should (equal (haskell-tng-lexer-test:indent-forward-token) ";"))
     (should (equal (haskell-tng-lexer-test:indent-forward-token) "VARID"))
-    (should (equal (haskell-tng-lexer-test:indent-forward-token) "_("))
+    (should (equal (haskell-tng-lexer-test:indent-forward-token) "«"))
 
     ;; repeating again, but jumping the lexer, should reset the state
     (goto-char 317)
@@ -49,13 +49,13 @@
     (goto-char 317)
     (should (equal (haskell-tng-lexer-test:indent-forward-token) ";"))
     (should (equal (haskell-tng-lexer-test:indent-forward-token) "VARID"))
-    (should (equal (haskell-tng-lexer-test:indent-forward-token) "_("))
+    (should (equal (haskell-tng-lexer-test:indent-forward-token) "«"))
 
     ;; repeating those tests, but for the backward lexer
     (goto-char 317)
     (should (equal (haskell-tng-lexer-test:indent-backward-token) ";"))
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_]"))
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_["))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "»"))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "«"))
 
     (goto-char 317)
     (should (equal (haskell-tng-lexer-test:indent-backward-token) ";"))
@@ -63,17 +63,17 @@
       (goto-char (point-max))
       (insert " "))
     (should (equal (haskell-tng-lexer-test:indent-backward-token) ";"))
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_]"))
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_["))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "»"))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "«"))
 
     (goto-char 317)
     (should (equal (haskell-tng-lexer-test:indent-backward-token) ";"))
     (goto-char 327)
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_("))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "«"))
     (goto-char 317)
     (should (equal (haskell-tng-lexer-test:indent-backward-token) ";"))
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_]"))
-    (should (equal (haskell-tng-lexer-test:indent-backward-token) "_["))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "»"))
+    (should (equal (haskell-tng-lexer-test:indent-backward-token) "«"))
 
     ;; jumping between forward and backward at point should reset state
     (goto-char 317)
@@ -93,14 +93,16 @@
     (cond
      ((< 0 (length tok)) tok)
      ((eobp) nil)
-     ((looking-at (rx (| (syntax open-parenthesis)
-                         (syntax close-parenthesis))))
-      (concat "_" (haskell-tng-lexer:last-match)))
+     ((looking-at (rx (syntax open-parenthesis)))
+      (haskell-tng-lexer:last-match)
+      "«")
+     ((looking-at (rx (syntax close-parenthesis)))
+      (haskell-tng-lexer:last-match)
+      "»")
      ((looking-at (rx (| (syntax string-quote)
                          (syntax string-delimiter))))
-      (let ((start (point)))
-        (forward-sexp 1)
-        (concat "_" (buffer-substring-no-properties start (point)))))
+      (forward-sexp 1)
+      "§")
      (t (error "Bumped into unknown token")))))
 
 ;; same as above, but for `smie-indent-backward-token'
@@ -109,16 +111,17 @@
     (cond
      ((< 0 (length tok)) tok)
      ((bobp) nil)
-     ((looking-back (rx (| (syntax open-parenthesis)
-                           (syntax close-parenthesis)))
-                    (- (point) 1))
-      (concat "_" (haskell-tng-lexer:last-match 'reverse)))
+     ((looking-back (rx (syntax open-parenthesis)) (- (point) 1))
+      (haskell-tng-lexer:last-match 'reverse)
+      "«")
+     ((looking-back (rx (syntax close-parenthesis)) (- (point) 1))
+      (haskell-tng-lexer:last-match 'reverse)
+      "»")
      ((looking-back (rx (| (syntax string-quote)
                            (syntax string-delimiter)))
                     (- (point) 1))
-      (let ((start (point)))
-        (backward-sexp 1)
-        (concat "_" (buffer-substring-no-properties (point) start))))
+      (backward-sexp 1)
+      "§")
      (t (error "Bumped into unknown token")))))
 
 (defun haskell-tng-lexer-test:tokens (&optional reverse)
diff --git a/test/src/layout.hs.lexer b/test/src/layout.hs.lexer
index 96ba575..921d495 100644
--- a/test/src/layout.hs.lexer
+++ b/test/src/layout.hs.lexer
@@ -1,20 +1,20 @@
 
-module CONID _( CONID , VARID , VARID , VARID , VARID _) where
+module CONID « CONID , VARID , VARID , VARID , VARID » where
 { data CONID VARID = CONID
-| CONID VARID _( CONID VARID _)
+| CONID VARID « CONID VARID »
 
 ; VARID :: VARID -> CONID VARID -> CONID VARID
 ; VARID VARID VARID = CONID VARID VARID
 
 ; VARID :: CONID VARID -> CONID
-; VARID VARID = VARID _( VARID VARID _) where
-{ VARID CONID = _[ _]
-; VARID _( CONID VARID VARID _) = x:xs where { VARID = VARID VARID
+; VARID VARID = VARID « VARID VARID » where
+{ VARID CONID = « »
+; VARID « CONID VARID VARID » = x:xs where { VARID = VARID VARID
 
-} } ; VARID :: CONID VARID -> _( VARID , CONID VARID _)
-; VARID _( CONID VARID VARID _)
-= _( VARID , case VARID of { VARID -> VARID VARID where { VARID VARID = VARID 
} } _)
+} } ; VARID :: CONID VARID -> « VARID , CONID VARID »
+; VARID « CONID VARID VARID »
+= « VARID , case VARID of { VARID -> VARID VARID where { VARID VARID = VARID } 
} »
 
 ; VARID :: CONID VARID -> VARID
-; VARID _( CONID VARID VARID _) = VARID
+; VARID « CONID VARID VARID » = VARID
 }
diff --git a/test/src/medley.hs.lexer b/test/src/medley.hs.lexer
index 647ab47..7070521 100644
--- a/test/src/medley.hs.lexer
+++ b/test/src/medley.hs.lexer
@@ -3,64 +3,64 @@
 
 
 module CONID
-_( CONID _( .. _) , CONID _( CONID , _( !!! _) _) , CONID
+« CONID « .. » , CONID « CONID , « !!! » » , CONID
 
 , VARID , VARID
 , module CONID
-_) where
+» where
 
-{ import CONID _( VARID , VARID , VARID , _( <*> _) , _( <|> _) _)
-; import CONID _( VARID _)
-; import CONID _( _( <$> _) _)
-; import CONID _( VARID _)
-; import CONID _( _( <> _) _)
+{ import CONID « VARID , VARID , VARID , « <*> » , « <|> » »
+; import CONID « VARID »
+; import CONID « « <$> » »
+; import CONID « VARID »
+; import CONID « « <> » »
 ; import VARID CONID
 ; import VARID CONID VARID CONID
 ; import VARID CONID
 VARID CONID
-; import VARID CONID VARID _( VARID , VARID , VARID _)
-; import CONID _( VARID , VARID , VARID _)
-; import CONID VARID _( VARID , VARID , VARID _)
-; import VARID CONID _( VARID , VARID , VARID _)
-; import CONID _( CONID _( .. _) , VARID , VARID ,
+; import VARID CONID VARID « VARID , VARID , VARID »
+; import CONID « VARID , VARID , VARID »
+; import CONID VARID « VARID , VARID , VARID »
+; import VARID CONID « VARID , VARID , VARID »
+; import CONID « CONID « .. » , VARID , VARID ,
 CONID ,
 VARID ,
-CONID _)
-; import CONID _( VARID , CONID _( CONID , _( :< _) _)
-; import CONID _( CONID _( .. _) , VARID , VARID ,
+CONID »
+; import CONID « VARID , CONID « CONID , « :< » »
+; import CONID « CONID « .. » , VARID , VARID ,
 VARID , VARID , VARID , VARID ,
-VARID , CONID _)
-; import CONID _( CONID _( .. _) , CONID _( .. _) ,
-VARID , VARID , VARID _)
+VARID , CONID »
+; import CONID « CONID « .. » , CONID « .. » ,
+VARID , VARID , VARID »
 
 
-; VARID = _[ _'c' , _'\n' , _'\'' _]
+; VARID = « § , § , § »
 
-; VARID = _"wobble (wibble)"
+; VARID = §
 
 ; class CONID VARID VARID where
 { VARID :: CONID VARID -> VARID
 
-} ; instance CONID VARID _( VARID ': VARID _) where
-{ VARID _( CONID VARID _ _) = VARID
+} ; instance CONID VARID « VARID ': VARID » where
+{ VARID « CONID VARID _ » = VARID
 
-} ; instance CONID VARID VARID => CONID VARID _( VARID ': VARID _) where
-{ VARID _( CONID _ VARID _) = VARID VARID
+} ; instance CONID VARID VARID => CONID VARID « VARID ': VARID » where
+{ VARID « CONID _ VARID » = VARID VARID
 
 } ; data CONID = CONID
-_{ VARID :: CONID
+« VARID :: CONID
 , VARID :: CONID CONID
 , VARID :: CONID CONID
-, VARID :: _[ CONID _]
-_} deriving _( CONID , CONID _)
+, VARID :: « CONID »
+» deriving « CONID , CONID »
 
-; class _( CONID VARID _) => CONID VARID where
-{ _( < _) , _( <= _) , _( >= _) , _( > _) :: VARID -> VARID -> CONID
+; class « CONID VARID » => CONID VARID where
+{ « < » , « <= » , « >= » , « > » :: VARID -> VARID -> CONID
 ; VARID @Foo , VARID :: VARID -> VARID -> VARID
 
-} ; instance _( CONID VARID _) => CONID _( CONID VARID _) where
+} ; instance « CONID VARID » => CONID « CONID VARID » where
 { CONID VARID == CONID VARID = VARID == VARID
-; _( CONID VARID VARID _) == _( CONID VARID VARID _) = _( l1==l2 _) && _( 
r1==r2 _)
+; « CONID VARID VARID » == « CONID VARID VARID » = « l1==l2 » && « r1==r2 »
 ; _ == _ = CONID
 
 } ; data CONID = CONID
@@ -68,16 +68,16 @@ _} deriving _( CONID , CONID _)
 | CONID
 | CONID
 | CONID
-deriving _( CONID , CONID _)
+deriving « CONID , CONID »
 
 ; type VARID CONID VARID where
 { CONID CONID = CONID
 ; CONID VARID = CONID
 
 } ; data CONID = CONID
-deriving _( CONID _) VARID _( CONID _( CONID CONID _) _)
-deriving VARID _( CONID _)
-deriving VARID _( CONID , CONID _)
+deriving « CONID » VARID « CONID « CONID CONID » »
+deriving VARID « CONID »
+deriving VARID « CONID , CONID »
 
 ; newtype CONID = CONID
 
@@ -86,41 +86,41 @@ CONID
 -> CONID
 -> CONID
 -> CONID
--> _( VARID :: CONID _)
--> _( CONID
-VARID VARID VARID _)
+-> « VARID :: CONID »
+-> « CONID
+VARID VARID VARID »
 
-; _( VARID :: _( CONID CONID _) _) VARID
+; « VARID :: « CONID CONID » » VARID
 
 ; newtype CONID
-_( VARID :: CONID _)
-_( VARID :: CONID _)
+« VARID :: CONID »
+« VARID :: CONID »
 VARID
 VARID
 = CONID VARID
 
 ; VARID :: CONID CONID
 ; VARID = CONID
-<$> _( VARID CONID _( VARID _"alloc" <> VARID _"wibble" _)
-<|> VARID CONID _( VARID _"entry" <> VARID _"wobble" _)
-<|> VARID CONID _( VARID _"bytes" <> VARID _"i'm a fish" _) _)
+<$> « VARID CONID « VARID § <> VARID § »
+<|> VARID CONID « VARID § <> VARID § »
+<|> VARID CONID « VARID § <> VARID § » »
 <*> VARID
-_( VARID
-_( VARID _"MY-FILE" <>
-VARID _"meh" _) _)
+« VARID
+« VARID § <>
+VARID § » »
 
 ; type CONID
 
 ; type CONID =
-_"thing" :> CONID _"bar" CONID :> CONID _"wibble" CONID
-:> CONID _"wobble" CONID
+§ :> CONID § CONID :> CONID § CONID
+:> CONID § CONID
 :> CONID CONID CONID
 :> CONID
-:> CONID ' _[ CONID _] _( CONID CONID _)
-:<|> _"thing" :> CONID ' _[ CONID _] CONID
+:> CONID ' « CONID » « CONID CONID »
+:<|> § :> CONID ' « CONID » CONID
 :> CONID CONID CONID
 :> CONID
-:> CONID ' _[ CONID _] _( CONID CONID _)
+:> CONID ' « CONID » « CONID CONID »
 
 ; deriving instance CONID CONID
 ; deriving VARID instance CONID CONID
@@ -130,5 +130,5 @@ _"thing" :> CONID _"bar" CONID :> CONID _"wibble" CONID
 where { VARID = _
 
 
-; _( + _) = _
+; « + » = _
 } }



reply via email to

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