]> gitweb.factorcode.org Git - factor.git/commitdiff
FUEL: makes accessors and tuple slots with backslashes highlight correctly
authorBjörn Lindqvist <bjourne@gmail.com>
Thu, 30 Jun 2016 00:42:23 +0000 (02:42 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Thu, 30 Jun 2016 00:42:23 +0000 (02:42 +0200)
misc/fuel/factor-mode.el
misc/fuel/strange-syntax.factor

index 3610afe2d22bf13e92031263241558ff7726bbd4..ecde6c1ae9a9f68bf9ce9f6b48b8c15a7a0745d0 100644 (file)
@@ -183,7 +183,8 @@ these lines in your .emacs:
 ;;; Regexps galore:
 
 ;; Utility regexp used by other regexps to match a Factor symbol name
-(setq-local symbol "\\(\\(?:\\sw\\|\\s_\\|\\s(\\|\\s)\\|\\s\\\\)+\\)")
+(setq-local symbol-nc "\\(?:\\sw\\|\\s_\\|\\s(\\|\\s)\\|\\s\\\\)+")
+(setq-local symbol (format "\\(%s\\)" symbol-nc))
 (setq-local ws+ "[ \n\t]+")
 (setq-local symbols-to-semicolon "\\([^;\t]*\\)\\(;\\)")
 
@@ -320,10 +321,10 @@ these lines in your .emacs:
   (one-symbol "<[^ >]+>"))
 
 (defconst factor-getter-regex
-  (one-symbol "\\(?:\\sw\\|\\s_\\)+>>"))
+  (one-symbol (concat symbol-nc ">>")))
 
 (defconst factor-setter-regex
-  (one-symbol ">>\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+<<"))
+  (one-symbol (format ">>%s\\|%s<<" symbol-nc symbol-nc)))
 
 (defconst factor-stack-effect-regex
   "\\( ( [^)]* )\\)\\|\\( (( [^)]* ))\\)")
@@ -502,7 +503,8 @@ these lines in your .emacs:
      (4 'factor-font-lock-type-name nil t)
      ;; A slot is either a single symbol or a sequence along the
      ;; lines: { foo initial: "bar }
-     ("\\(\\(?:\\sw\\|\\s_\\)+\\)\\|\\(?:{[ \n]+\\(\\(?:\\sw\\|\\s_\\)+\\)[^}]+\\)"
+     (,(format
+        "\\(?:{[ \n]+%s[^}]+\\)}\\|%s" symbol symbol)
       (factor-find-end-of-def)
       nil
       (1 'factor-font-lock-symbol nil t)
index c527c49b1f32382bd761a4a7efd11a15e43a2541..7a13ffd681fdb40b50046aa7d10e893137b4183d 100644 (file)
@@ -1,3 +1,8 @@
+USING: accessors ;
+IN: strange
+
+TUPLE: oh\no { and/again initial: "meh" } ;
+
 ! FUEL Syntax Demo
 !
 ! The purpose of this file is to test that corner cases are
@@ -18,12 +23,21 @@ TUPLE: a-tuple slot1 slot2 { slot3 integer } ;
 
 ! ! Symbol names
 
+TUPLE: tup
+    ko
+    get\it
+    { eh\ integer }
+    { oh'ho } ;
+
 ! All slashes are symbol constituents.
-: hack/slash ( -- x ) 10 ;
+: hack/slash ( t -- x ) ko>> ;
 
-: slash\hack ( -- y ) 20 ;
+: um ( x y -- ) get\it<< ;
 
-TUPLE: oh\no ;
+: slash\hack ( m -- y )
+    get\it>> dup >>get\it ;
+
+TUPLE: oh\no { and/again initial: "meh" } ;
 
 ! As are quotes
 : don't-do-that ( x -- y ) ;
@@ -56,3 +70,7 @@ ID-SYNTAX ID-SYNTAX
 
 ! ! Numbers
 { -55 -0x10 100,00 1,000,000 0x2000,0000 0b01 } drop
+
+! ! Containers
+V{ 1 2 3 } drop
+HS{ 9 8 3 } drop