]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'fuel' of git://github.com/dmsh/factor
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 16 Jun 2010 21:05:50 +0000 (17:05 -0400)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 16 Jun 2010 21:05:50 +0000 (17:05 -0400)
misc/fuel/fuel-font-lock.el
misc/fuel/fuel-syntax.el

index 8d3990fcd8efddbfbe02ee98aee82235f327a84b..d54b0cd337972cfd09f955e1e6f90373e24c0032 100644 (file)
@@ -59,6 +59,7 @@
   (ratio constant  "ratios")
   (declaration keyword "declaration words")
   (ebnf-form constant "EBNF: ... ;EBNF form")
+  (error-form warning "ERROR: ... ; form")
   (parsing-word keyword  "parsing words")
   (postpone-body comment "postponed form")
   (setter-word function-name "setter words (>>foo)")
     (,fuel-syntax--brace-words-regex 1 'factor-font-lock-parsing-word)
     (,fuel-syntax--alien-function-regex (1 'factor-font-lock-type-name)
                                         (2 'factor-font-lock-word))
+    (,fuel-syntax--alien-function-alias-regex (1 'factor-font-lock-word)
+                                              (2 'factor-font-lock-type-name)
+                                              (3 'factor-font-lock-word))
     (,fuel-syntax--alien-callback-regex (1 'factor-font-lock-type-name)
                                         (2 'factor-font-lock-word))
     (,fuel-syntax--vocab-ref-regexp  2 'factor-font-lock-vocabulary-name)
     (,fuel-syntax--typedef-regex (1 'factor-font-lock-type-name)
                                  (2 'factor-font-lock-type-name)
                                  (3 'factor-font-lock-invalid-syntax nil t))
+    (,fuel-syntax--c-global-regex (1 'factor-font-lock-type-name)
+                                  (2 'factor-font-lock-word)
+                                  (3 'factor-font-lock-invalid-syntax nil t))
+    (,fuel-syntax--c-type-regex (1 'factor-font-lock-type-name)
+                                (2 'factor-font-lock-invalid-syntax nil t))
     (,fuel-syntax--rename-regex (1 'factor-font-lock-word)
                                 (2 'factor-font-lock-vocabulary-name)
                                 (3 'factor-font-lock-word)
     (,fuel-syntax--float-regex . 'factor-font-lock-number)
     (,fuel-syntax--ratio-regex . 'factor-font-lock-ratio)
     (,fuel-syntax--type-definition-regex 2 'factor-font-lock-type-name)
+    (,fuel-syntax--error-regex 2 'factor-font-lock-error-form)
     (,fuel-syntax--method-definition-regex (1 'factor-font-lock-type-name)
                                            (2 'factor-font-lock-word))
     (,fuel-syntax--before-definition-regex (1 'factor-font-lock-type-name)
index 80010235b1c1c6dcffd826ff3e1eb4ca97f75ad7..e2db30db3d0b1a5487d2477deb9e679541054643 100644 (file)
   '(":" "::" ";" "&:" "<<" "<PRIVATE" ">>"\r
     "ABOUT:" "AFTER:" "ALIAS:" "ALIEN:" "ARTICLE:"\r
     "B" "BEFORE:" "BIN:"\r
-    "C:" "CALLBACK:" "ENUM:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method"\r
-    "DEFER:"\r
-    "EBNF:" ";EBNF" "ERROR:" "EXCLUDE:"\r
-    "f" "FORGET:" "FROM:" "FUNCTION:"\r
+    "C:" "CALLBACK:" "C-GLOBAL:" "C-TYPE:" "CHAR:" "COM-INTERFACE:" "CONSTANT:" "CONSULT:" "call-next-method"\r
+    "DEFER:" "DESTRUCTOR:"\r
+    "EBNF:" ";EBNF" "ENUM:" "ERROR:" "EXCLUDE:"\r
+    "f" "FORGET:" "FROM:" "FUNCTION:" "FUNCTION-ALIAS:"\r
     "GAME:" "GENERIC#" "GENERIC:"\r
     "GLSL-SHADER:" "GLSL-PROGRAM:"\r
     "HELP:" "HEX:" "HOOK:"\r
   (fuel-syntax--second-word-regex\r
    '("C-STRUCT:" "C-UNION:" "COM-INTERFACE:" "MIXIN:" "TUPLE:" "SINGLETON:" "SPECIALIZED-ARRAY:" "STRUCT:" "UNION:" "UNION-STRUCT:")))\r
 \r
+(defconst fuel-syntax--error-regex\r
+  (fuel-syntax--second-word-regex '("ERROR:")))\r
+\r
 (defconst fuel-syntax--tuple-decl-regex\r
   "^TUPLE: +\\([^ \n]+\\) +< +\\([^ \n]+\\)\\_>")\r
 \r
 (defconst fuel-syntax--sub-vocab-regex "^<\\([^ \n]+\\) *$")\r
 \r
 (defconst fuel-syntax--alien-function-regex\r
-  "\\_<FUNCTION: \\(\\w+\\) \\(\\w+\\)")\r
+  "\\_<FUNCTION: +\\(\\w+\\)[\n ]+\\(\\w+\\)")\r
+\r
+(defconst fuel-syntax--alien-function-alias-regex\r
+  "\\_<FUNCTION-ALIAS: +\\(\\w+\\)[\n ]+\\(\\w+\\)[\n ]+\\(\\w+\\)")\r
 \r
 (defconst fuel-syntax--alien-callback-regex\r
-  "\\_<CALLBACK: \\(\\w+\\) \\(\\w+\\)")\r
+  "\\_<CALLBACK: +\\(\\w+\\) +\\(\\w+\\)")\r
 \r
 (defconst fuel-syntax--indent-def-starts '("" ":"\r
                                            "AFTER" "BEFORE"\r
-                                           "ENUM" "COM-INTERFACE" "CONSULT"\r
-                                           "FROM" "FUNCTION:"\r
+                                           "COM-INTERFACE" "CONSULT"\r
+                                           "ENUM" "ERROR"\r
+                                           "FROM" "FUNCTION:" "FUNCTION-ALIAS:"\r
                                            "INTERSECTION:"\r
                                            "M" "M:" "MACRO" "MACRO:"\r
                                            "MEMO" "MEMO:" "METHOD"\r
 (defconst fuel-syntax--single-liner-regex\r
   (regexp-opt '("ABOUT:"\r
                 "ALIAS:"\r
-                "CONSTANT:" "C:" "C-TYPE:"\r
-                "DEFER:"\r
+                "CONSTANT:" "C:" "C-GLOBAL:" "C-TYPE:"\r
+                "DEFER:" "DESTRUCTOR:"\r
                 "FORGET:"\r
-                "GAME:" "GENERIC:" "GENERIC#" "GLSL-PROGRAM:" \r
+                "GAME:" "GENERIC:" "GENERIC#" "GLSL-PROGRAM:"\r
                 "HEX:" "HOOK:"\r
                 "IN:" "INSTANCE:"\r
                 "LIBRARY:"\r
 (defconst fuel-syntax--typedef-regex\r
   "\\_<TYPEDEF: +\\(\\w+\\) +\\(\\w+\\)\\( .*\\)?$")\r
 \r
+(defconst fuel-syntax--c-global-regex\r
+  "\\_<C-GLOBAL: +\\(\\w+\\) +\\(\\w+\\)\\( .*\\)?$")\r
+\r
+(defconst fuel-syntax--c-type-regex\r
+  "\\_<C-TYPE: +\\(\\w+\\)\\( .*\\)?$")\r
+\r
 (defconst fuel-syntax--rename-regex\r
   "\\_<RENAME: +\\(\\w+\\) +\\(\\w+\\) +=> +\\(\\w+\\)\\( .*\\)?$")\r
 \r