[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/haskell-tng-mode bfe859a 095/385: notes about lexers
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/haskell-tng-mode bfe859a 095/385: notes about lexers |
Date: |
Tue, 5 Oct 2021 23:59:08 -0400 (EDT) |
branch: elpa/haskell-tng-mode
commit bfe859ad617629024aff6357331c4782c5c353fb
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>
notes about lexers
---
haskell-tng-lexer.el | 7 ++++++-
haskell-tng-smie.el | 1 +
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/haskell-tng-lexer.el b/haskell-tng-lexer.el
index c0c252c..e4740dd 100644
--- a/haskell-tng-lexer.el
+++ b/haskell-tng-lexer.el
@@ -10,10 +10,14 @@
;;
;;; Code:
-;; See also (other than the GHC alex lexer)
+;; See also
;;
+;; https://gitlab.haskell.org/ghc/ghc/blob/master/compiler/parser/Lexer.x
;;
https://github.com/carymrobbins/intellij-haskforce/blob/master/src/com/haskforce/parsing/_HaskellParsingLexer.flex
;;
https://github.com/typelead/intellij-eta/blob/eta-ide/plugin/src/main/eta/IntelliJ/Plugin/Eta/Lang/Lexer/EtaParsingLexer.hs
+;; https://www.haskell.org/hugs/downloads/2006-09/hugs98-Sep2006.tar.gz
(src/parser.y)
+;; https://github.com/haskell-lisp/yale-haskell/blob/master/parser/lexer.scm
+;; http://bnfc.digitalgrammars.com/
;;
;; We could potentially use FFI + Flex to do the lexing for us, giving us
access
;; to much more powerful regexp rules (Emacs doesn't support zero width
@@ -123,6 +127,7 @@ the lexer."
((looking-at haskell-tng:regexp:symid)
(haskell-tng-lexer:last-match nil "SYMID"))
;; TODO numeric literals
+ ;; TODO `infix_varid`
;; unknown things
((looking-at (rx (+ (| (syntax word) (syntax symbol)))))
diff --git a/haskell-tng-smie.el b/haskell-tng-smie.el
index 42fb3ad..5472934 100644
--- a/haskell-tng-smie.el
+++ b/haskell-tng-smie.el
@@ -26,6 +26,7 @@
;; https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#SMIE-Grammar
;; https://www.haskell.org/onlinereport/haskell2010/haskellch3.html
+;; https://gitlab.haskell.org/ghc/ghc/blob/master/compiler/parser/Parser.y
;;
;; Many of these grammar rules cannot be expressed in SMIE because Haskell uses
;; whitespace separators a lot, whereas the BNF must use non-terminals.
- [nongnu] elpa/haskell-tng-mode 0ffb885 071/385: a thought, (continued)
- [nongnu] elpa/haskell-tng-mode 0ffb885 071/385: a thought, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 79aeb82 076/385: most of the grammar, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 7eaef51 078/385: optimisation in the sexp test, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode cb0f3d2 082/385: starting indentation rules, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode cfbdae1 084/385: simplify the lexer assertion language, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 0c5acb7 087/385: lexer and grammar supports symid, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 6c520bc 093/385: fixes for type level lists, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode f085f16 097/385: indentation regression tests, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 01ea0b8 103/385: heuristic alternative indentation levels, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode c20ea4f 096/385: infix varid as symid, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode bfe859a 095/385: notes about lexers,
ELPA Syncer <=
- [nongnu] elpa/haskell-tng-mode 0506391 109/385: module ... where indents to 0, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode d9bbcdd 111/385: next steps, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 6cf67bf 105/385: indentation can't handle mismatched parens, don't test for it, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 25b15eb 102/385: indentation alternatives wiring, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode e023657 107/385: SMIE wishlist, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 497214b 119/385: syntax tests and bugfixes, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode df5d2c5 122/385: better whitespace gap detection, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 3b7cd02 123/385: some todos, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode fc4d3e3 127/385: compilation mode supports multiline error spans, ELPA Syncer, 2021/10/06
- [nongnu] elpa/haskell-tng-mode 88bad65 128/385: visually distinguish compile errors and warnings, ELPA Syncer, 2021/10/06