Merge branch 'emacs' of http://git.hacks-galore.org/jao/factor
commit
c001cba448
|
@ -26,7 +26,7 @@ HELP: scaffold-undocumented
|
||||||
HELP: scaffold-vocab
|
HELP: scaffold-vocab
|
||||||
{ $values
|
{ $values
|
||||||
{ "vocab-root" "a vocabulary root string" } { "string" string } }
|
{ "vocab-root" "a vocabulary root string" } { "string" string } }
|
||||||
{ $description "Creates a direcory in the given root for a new vocabulary and adds a main .factor file, a tests file, and an authors.txt file." } ;
|
{ $description "Creates a directory in the given root for a new vocabulary and adds a main .factor file, a tests file, and an authors.txt file." } ;
|
||||||
|
|
||||||
HELP: using
|
HELP: using
|
||||||
{ $description "Stores the vocabularies that are pulled into the documentation file from looking up the stack effect types." } ;
|
{ $description "Stores the vocabularies that are pulled into the documentation file from looking up the stack effect types." } ;
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
USING: accessors arrays assocs classes.tuple combinators
|
USING: accessors arrays assocs classes.tuple combinators
|
||||||
compiler.units continuations debugger definitions help help.crossref
|
compiler.units continuations debugger definitions help help.crossref
|
||||||
help.markup help.topics io io.pathnames io.streams.string kernel lexer
|
help.markup help.topics io io.pathnames io.streams.string kernel lexer
|
||||||
make math math.order memoize namespaces parser quotations prettyprint
|
make math math.order memoize namespaces parser prettyprint quotations
|
||||||
sequences sets sorting source-files strings summary tools.crossref
|
sequences sets sorting source-files strings summary tools.crossref
|
||||||
tools.vocabs tools.vocabs.browser vectors vocabs vocabs.parser words ;
|
tools.scaffold tools.vocabs tools.vocabs.browser vectors vocabs
|
||||||
|
vocabs.loader vocabs.parser words ;
|
||||||
|
|
||||||
IN: fuel
|
IN: fuel
|
||||||
|
|
||||||
|
@ -69,13 +70,15 @@ M: integer fuel-pprint pprint ; inline
|
||||||
|
|
||||||
M: string fuel-pprint pprint ; inline
|
M: string fuel-pprint pprint ; inline
|
||||||
|
|
||||||
M: sequence fuel-pprint
|
: fuel-pprint-sequence ( seq open close -- )
|
||||||
"(" write [ " " write ] [ fuel-pprint ] interleave ")" write ; inline
|
[ write ] dip swap [ " " write ] [ fuel-pprint ] interleave write ; inline
|
||||||
|
|
||||||
|
M: sequence fuel-pprint "(" ")" fuel-pprint-sequence ; inline
|
||||||
|
|
||||||
|
M: quotation fuel-pprint "[" "]" fuel-pprint-sequence ; inline
|
||||||
|
|
||||||
M: tuple fuel-pprint tuple>array fuel-pprint ; inline
|
M: tuple fuel-pprint tuple>array fuel-pprint ; inline
|
||||||
|
|
||||||
M: quotation fuel-pprint pprint ; inline
|
|
||||||
|
|
||||||
M: continuation fuel-pprint drop ":continuation" write ; inline
|
M: continuation fuel-pprint drop ":continuation" write ; inline
|
||||||
|
|
||||||
M: restart fuel-pprint name>> fuel-pprint ; inline
|
M: restart fuel-pprint name>> fuel-pprint ; inline
|
||||||
|
@ -328,7 +331,7 @@ SYMBOL: vocab-list
|
||||||
[ describe-words ] with-string-writer \ describe-words swap 2array ; inline
|
[ describe-words ] with-string-writer \ describe-words swap 2array ; inline
|
||||||
|
|
||||||
: (fuel-vocab-help) ( name -- element )
|
: (fuel-vocab-help) ( name -- element )
|
||||||
\ article swap dup >vocab-link
|
dup require \ article swap dup >vocab-link
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
[ vocab-authors [ \ $authors prefix , ] when* ]
|
[ vocab-authors [ \ $authors prefix , ] when* ]
|
||||||
|
@ -358,13 +361,24 @@ MEMO: (fuel-get-vocabs/author) ( author -- element )
|
||||||
: fuel-get-vocabs/author ( author -- )
|
: fuel-get-vocabs/author ( author -- )
|
||||||
(fuel-get-vocabs/author) fuel-eval-set-result ;
|
(fuel-get-vocabs/author) fuel-eval-set-result ;
|
||||||
|
|
||||||
MEMO: (fuel-get-vocabs/tag ( tag -- element )
|
MEMO: (fuel-get-vocabs/tag) ( tag -- element )
|
||||||
[ "Vocabularies tagged " prepend \ $heading swap 2array ]
|
[ "Vocabularies tagged " prepend \ $heading swap 2array ]
|
||||||
[ tagged fuel-vocab-list ] bi 2array ;
|
[ tagged fuel-vocab-list ] bi 2array ;
|
||||||
|
|
||||||
: fuel-get-vocabs/tag ( tag -- )
|
: fuel-get-vocabs/tag ( tag -- )
|
||||||
(fuel-get-vocabs/tag fuel-eval-set-result ;
|
(fuel-get-vocabs/tag) fuel-eval-set-result ;
|
||||||
|
|
||||||
|
! Scaffold support
|
||||||
|
|
||||||
|
: fuel-scaffold-vocab ( root name devname -- )
|
||||||
|
developer-name set
|
||||||
|
[ scaffold-vocab ] 2keep [ (normalize-path) ] dip dup
|
||||||
|
append-path append-path ".factor" append fuel-eval-set-result ;
|
||||||
|
|
||||||
|
: fuel-scaffold-help ( name devname -- )
|
||||||
|
developer-name set
|
||||||
|
dup require dup scaffold-help vocab-docs-path
|
||||||
|
(normalize-path) fuel-eval-set-result ;
|
||||||
|
|
||||||
! -run=fuel support
|
! -run=fuel support
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,26 @@ beast.
|
||||||
Many aspects of the environment can be customized:
|
Many aspects of the environment can be customized:
|
||||||
M-x customize-group fuel will show you how many.
|
M-x customize-group fuel will show you how many.
|
||||||
|
|
||||||
|
*** Faster listener startup
|
||||||
|
|
||||||
|
On startup, run-factor loads the fuel vocabulary, which can take a
|
||||||
|
while. If you want to speedup the load process, type 'save' in the
|
||||||
|
listener prompt just after invoking run-factor. This will save a
|
||||||
|
factor image (overwriting the current one) with all the needed
|
||||||
|
vocabs.
|
||||||
|
|
||||||
|
*** Vocabulary creation
|
||||||
|
|
||||||
|
FUEL offers a basic interface with Factor's scaffolding utilities.
|
||||||
|
To create a new vocabulary directory and associated files:
|
||||||
|
|
||||||
|
M-x fuel-scaffold-vocab
|
||||||
|
|
||||||
|
and when in a vocab file, to create a docs file with boilerplate
|
||||||
|
for each word:
|
||||||
|
|
||||||
|
M-x fuel-scaffold-help
|
||||||
|
|
||||||
* Quick key reference
|
* Quick key reference
|
||||||
|
|
||||||
(Triple chords ending in a single letter <x> accept also C-<x> (e.g.
|
(Triple chords ending in a single letter <x> accept also C-<x> (e.g.
|
||||||
|
|
|
@ -111,7 +111,7 @@ code in the buffer."
|
||||||
(= (- be (point)) (current-indentation))
|
(= (- be (point)) (current-indentation))
|
||||||
(= ln (line-number-at-pos be)))
|
(= ln (line-number-at-pos be)))
|
||||||
(fuel-syntax--indentation-at bs))
|
(fuel-syntax--indentation-at bs))
|
||||||
((or (fuel-syntax--is-eol bs)
|
((or (fuel-syntax--is-last-char bs)
|
||||||
(not (eq ?\ (char-after (1+ bs)))))
|
(not (eq ?\ (char-after (1+ bs)))))
|
||||||
(fuel-syntax--increased-indentation
|
(fuel-syntax--increased-indentation
|
||||||
(fuel-syntax--indentation-at bs)))
|
(fuel-syntax--indentation-at bs)))
|
||||||
|
@ -238,15 +238,17 @@ code in the buffer."
|
||||||
|
|
||||||
;;; Keymap:
|
;;; Keymap:
|
||||||
|
|
||||||
(defun factor-mode-insert-and-indent (n)
|
(defun factor-mode--insert-and-indent (n)
|
||||||
(interactive "p")
|
(interactive "*p")
|
||||||
|
(let ((start (point)))
|
||||||
(self-insert-command n)
|
(self-insert-command n)
|
||||||
|
(save-excursion (font-lock-fontify-region start (point))))
|
||||||
(indent-according-to-mode))
|
(indent-according-to-mode))
|
||||||
|
|
||||||
(defvar factor-mode-map
|
(defvar factor-mode-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
(define-key map [?\]] 'factor-mode-insert-and-indent)
|
(define-key map [?\]] 'factor-mode--insert-and-indent)
|
||||||
(define-key map [?}] 'factor-mode-insert-and-indent)
|
(define-key map [?}] 'factor-mode--insert-and-indent)
|
||||||
(define-key map "\C-m" 'newline-and-indent)
|
(define-key map "\C-m" 'newline-and-indent)
|
||||||
(define-key map "\C-co" 'factor-mode-visit-other-file)
|
(define-key map "\C-co" 'factor-mode-visit-other-file)
|
||||||
(define-key map "\C-c\C-o" 'factor-mode-visit-other-file)
|
(define-key map "\C-c\C-o" 'factor-mode-visit-other-file)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; fu.el --- Startup file for FUEL
|
;;; fu.el --- Startup file for FUEL
|
||||||
|
|
||||||
;; Copyright (C) 2008 Jose Antonio Ortega Ruiz
|
;; Copyright (C) 2008, 2009 Jose Antonio Ortega Ruiz
|
||||||
;; See http://factorcode.org/license.txt for BSD license.
|
;; See http://factorcode.org/license.txt for BSD license.
|
||||||
|
|
||||||
;; Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
|
;; Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
|
||||||
|
@ -24,6 +24,11 @@
|
||||||
"Minor mode showing in the minibuffer a synopsis of Factor word at point."
|
"Minor mode showing in the minibuffer a synopsis of Factor word at point."
|
||||||
t)
|
t)
|
||||||
|
|
||||||
|
(autoload 'fuel-scaffold-vocab "fuel-scaffold.el"
|
||||||
|
"Create a new Factor vocabulary." t)
|
||||||
|
|
||||||
|
(autoload 'fuel-scaffold-help "fuel-scaffold.el"
|
||||||
|
"Create a Factor vocabulary help file." t)
|
||||||
|
|
||||||
|
|
||||||
;;; fu.el ends here
|
;;; fu.el ends here
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
(factor (case sexp
|
(factor (case sexp
|
||||||
(:rs 'fuel-eval-restartable)
|
(:rs 'fuel-eval-restartable)
|
||||||
(:nrs 'fuel-eval-non-restartable)
|
(:nrs 'fuel-eval-non-restartable)
|
||||||
(:in (fuel-syntax--current-vocab))
|
(:in (or (fuel-syntax--current-vocab) "fuel"))
|
||||||
(:usings `(:array ,@(fuel-syntax--usings)))
|
(:usings `(:array ,@(fuel-syntax--usings)))
|
||||||
(:get 'fuel-eval-set-result)
|
(:get 'fuel-eval-set-result)
|
||||||
(:end '\;)
|
(:end '\;)
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
(defsubst factor--fuel-in (in)
|
(defsubst factor--fuel-in (in)
|
||||||
(cond ((or (eq in :in) (null in)) :in)
|
(cond ((or (eq in :in) (null in)) :in)
|
||||||
((eq in 'f) 'f)
|
((eq in 'f) 'f)
|
||||||
((eq in 't) "fuel-scratchpad")
|
((eq in 't) "fuel")
|
||||||
((stringp in) in)
|
((stringp in) in)
|
||||||
(t (error "Invalid 'in' (%s)" in))))
|
(t (error "Invalid 'in' (%s)" in))))
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,8 @@
|
||||||
((comment comment "comments")
|
((comment comment "comments")
|
||||||
(constructor type "constructors (<foo>)")
|
(constructor type "constructors (<foo>)")
|
||||||
(constant constant "constants and literal values")
|
(constant constant "constants and literal values")
|
||||||
|
(number constant "integers and floats")
|
||||||
|
(ratio constant "ratios")
|
||||||
(declaration keyword "declaration words")
|
(declaration keyword "declaration words")
|
||||||
(parsing-word keyword "parsing words")
|
(parsing-word keyword "parsing words")
|
||||||
(setter-word function-name "setter words (>>foo)")
|
(setter-word function-name "setter words (>>foo)")
|
||||||
|
@ -80,7 +82,9 @@
|
||||||
(,fuel-syntax--alias-definition-regex (1 'factor-font-lock-word)
|
(,fuel-syntax--alias-definition-regex (1 'factor-font-lock-word)
|
||||||
(2 'factor-font-lock-word))
|
(2 'factor-font-lock-word))
|
||||||
(,fuel-syntax--int-constant-def-regex 2 'factor-font-lock-constant)
|
(,fuel-syntax--int-constant-def-regex 2 'factor-font-lock-constant)
|
||||||
(,fuel-syntax--number-regex . 'factor-font-lock-constant)
|
(,fuel-syntax--integer-regex . 'factor-font-lock-number)
|
||||||
|
(,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--type-definition-regex 2 'factor-font-lock-type-name)
|
||||||
(,fuel-syntax--method-definition-regex (1 'factor-font-lock-type-name)
|
(,fuel-syntax--method-definition-regex (1 'factor-font-lock-type-name)
|
||||||
(2 'factor-font-lock-word))
|
(2 'factor-font-lock-word))
|
||||||
|
@ -103,7 +107,6 @@
|
||||||
(list (cons 'font-lock-syntactic-keywords
|
(list (cons 'font-lock-syntactic-keywords
|
||||||
fuel-syntax--syntactic-keywords))))))
|
fuel-syntax--syntactic-keywords))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;; Fontify strings as Factor code:
|
;;; Fontify strings as Factor code:
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,8 @@ buffer."
|
||||||
|
|
||||||
(defun fuel-listener-nuke ()
|
(defun fuel-listener-nuke ()
|
||||||
(interactive)
|
(interactive)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(comint-kill-region comint-last-input-start (point))
|
||||||
(comint-redirect-cleanup)
|
(comint-redirect-cleanup)
|
||||||
(fuel-con--setup-connection fuel-listener--buffer))
|
(fuel-con--setup-connection fuel-listener--buffer))
|
||||||
|
|
||||||
|
|
|
@ -373,10 +373,10 @@
|
||||||
(let ((heading `($heading ,(match-string-no-properties 0)))
|
(let ((heading `($heading ,(match-string-no-properties 0)))
|
||||||
(rows))
|
(rows))
|
||||||
(forward-line)
|
(forward-line)
|
||||||
(when (looking-at "Word *Stack effect$")
|
(when (looking-at "Word *\\(Stack effect\\|Syntax\\)$")
|
||||||
(push '("Word" "Stack effect") rows)
|
(push (list "Word" (match-string-no-properties 1)) rows)
|
||||||
(forward-line))
|
(forward-line))
|
||||||
(while (looking-at "\\(.+?\\)\\( +\\(( .*\\)\\)?$")
|
(while (looking-at "\\(.+?\\)\\( +\\(.+\\)\\)?$")
|
||||||
(let ((word `($link ,(match-string-no-properties 1)
|
(let ((word `($link ,(match-string-no-properties 1)
|
||||||
,(match-string-no-properties 1)
|
,(match-string-no-properties 1)
|
||||||
word))
|
word))
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
;;; fuel-scaffold.el -- interaction with tools.scaffold
|
||||||
|
|
||||||
|
;; Copyright (C) 2009 Jose Antonio Ortega Ruiz
|
||||||
|
;; See http://factorcode.org/license.txt for BSD license.
|
||||||
|
|
||||||
|
;; Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
|
||||||
|
;; Keywords: languages, fuel, factor
|
||||||
|
;; Start date: Sun Jan 11, 2009 18:40
|
||||||
|
|
||||||
|
;;; Comentary:
|
||||||
|
|
||||||
|
;; Utilities for creating new vocabulary files and other boilerplate.
|
||||||
|
;; Mainly, an interface to Factor's tools.scaffold.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'fuel-eval)
|
||||||
|
(require 'fuel-edit)
|
||||||
|
(require 'fuel-syntax)
|
||||||
|
(require 'fuel-base)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Customisation:
|
||||||
|
|
||||||
|
(defgroup fuel-scaffold nil
|
||||||
|
"Options for FUEL's scaffolding."
|
||||||
|
:group 'fuel)
|
||||||
|
|
||||||
|
(defcustom fuel-scaffold-developer-name user-full-name
|
||||||
|
"The name to be inserted as yours in scaffold templates."
|
||||||
|
:type 'string
|
||||||
|
:group 'fuel-scaffold)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Auxiliary functions:
|
||||||
|
|
||||||
|
(defun fuel-scaffold--vocab-roots ()
|
||||||
|
(let ((cmd '(:fuel* (vocab-roots get :get) "fuel")))
|
||||||
|
(fuel-eval--retort-result (fuel-eval--send/wait cmd))))
|
||||||
|
|
||||||
|
|
||||||
|
;;; User interface:
|
||||||
|
|
||||||
|
(defun fuel-scaffold-vocab ()
|
||||||
|
"Creates a directory in the given root for a new vocabulary and
|
||||||
|
adds source, tests and authors.txt files.
|
||||||
|
|
||||||
|
You can configure `fuel-scaffold-developer-name' (set by default to
|
||||||
|
`user-full-name') for the name to be inserted in the generated files."
|
||||||
|
(interactive)
|
||||||
|
(let* ((name (read-string "Vocab name: "))
|
||||||
|
(root (completing-read "Vocab root: "
|
||||||
|
(fuel-scaffold--vocab-roots)
|
||||||
|
nil t "resource:"))
|
||||||
|
(cmd `(:fuel* ((,root ,name ,fuel-scaffold-developer-name)
|
||||||
|
(fuel-scaffold-vocab)) "fuel"))
|
||||||
|
(ret (fuel-eval--send/wait cmd))
|
||||||
|
(file (fuel-eval--retort-result ret)))
|
||||||
|
(unless file
|
||||||
|
(error "Error creating vocab (%s)" (car (fuel-eval--retort-error ret))))
|
||||||
|
(find-file file)
|
||||||
|
(goto-char (point-max))))
|
||||||
|
|
||||||
|
(defun fuel-scaffold-help (&optional arg)
|
||||||
|
"Creates, if it does not already exist, a help file with
|
||||||
|
scaffolded help for each word in the current vocabulary.
|
||||||
|
|
||||||
|
With prefix argument, ask for the vocabulary name.
|
||||||
|
You can configure `fuel-scaffold-developer-name' (set by default to
|
||||||
|
`user-full-name') for the name to be inserted in the generated file."
|
||||||
|
(interactive "P")
|
||||||
|
(let* ((vocab (or (and (not arg) (fuel-syntax--current-vocab))
|
||||||
|
(fuel-edit--read-vocabulary-name nil)))
|
||||||
|
(cmd `(:fuel* (,vocab ,fuel-scaffold-developer-name fuel-scaffold-help)
|
||||||
|
"fuel"))
|
||||||
|
(ret (fuel-eval--send/wait cmd))
|
||||||
|
(file (fuel-eval--retort-result ret)))
|
||||||
|
(unless file
|
||||||
|
(error "Error creating help file" (car (fuel-eval--retort-error ret))))
|
||||||
|
(find-file file)))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'fuel-scaffold)
|
||||||
|
;;; fuel-scaffold.el ends here
|
|
@ -44,14 +44,14 @@
|
||||||
|
|
||||||
(defconst fuel-syntax--parsing-words
|
(defconst fuel-syntax--parsing-words
|
||||||
'(":" "::" ";" "<<" "<PRIVATE" ">>"
|
'(":" "::" ";" "<<" "<PRIVATE" ">>"
|
||||||
"ALIAS:"
|
"ABOUT:" "ALIAS:" "ARTICLE:"
|
||||||
"B" "BIN:"
|
"B" "BIN:"
|
||||||
"C:" "C-STRUCT:" "C-UNION:" "CHAR:" "CONSTANT:" "call-next-method"
|
"C:" "C-STRUCT:" "C-UNION:" "CHAR:" "CONSTANT:" "call-next-method"
|
||||||
"DEFER:"
|
"DEFER:"
|
||||||
"ERROR:" "EXCLUDE:"
|
"ERROR:" "EXCLUDE:"
|
||||||
"f" "FORGET:" "FROM:"
|
"f" "FORGET:" "FROM:"
|
||||||
"GENERIC#" "GENERIC:"
|
"GENERIC#" "GENERIC:"
|
||||||
"HEX:" "HOOK:"
|
"HELP:" "HEX:" "HOOK:"
|
||||||
"IN:" "initial:" "INSTANCE:" "INTERSECTION:"
|
"IN:" "initial:" "INSTANCE:" "INTERSECTION:"
|
||||||
"M:" "MACRO:" "MACRO::" "MAIN:" "MATH:" "MEMO:" "MEMO:" "METHOD:" "MIXIN:"
|
"M:" "MACRO:" "MACRO::" "MAIN:" "MATH:" "MEMO:" "MEMO:" "METHOD:" "MIXIN:"
|
||||||
"OCT:"
|
"OCT:"
|
||||||
|
@ -63,12 +63,12 @@
|
||||||
"UNION:" "USE:" "USING:"
|
"UNION:" "USE:" "USING:"
|
||||||
"VARS:"))
|
"VARS:"))
|
||||||
|
|
||||||
(defconst fuel-syntax--bracers
|
|
||||||
'("B" "BV" "C" "CS" "H" "T" "V" "W"))
|
|
||||||
|
|
||||||
(defconst fuel-syntax--parsing-words-regex
|
(defconst fuel-syntax--parsing-words-regex
|
||||||
(regexp-opt fuel-syntax--parsing-words 'words))
|
(regexp-opt fuel-syntax--parsing-words 'words))
|
||||||
|
|
||||||
|
(defconst fuel-syntax--bracers
|
||||||
|
'("B" "BV" "C" "CS" "H" "T" "V" "W"))
|
||||||
|
|
||||||
(defconst fuel-syntax--brace-words-regex
|
(defconst fuel-syntax--brace-words-regex
|
||||||
(format "%s{" (regexp-opt fuel-syntax--bracers t)))
|
(format "%s{" (regexp-opt fuel-syntax--bracers t)))
|
||||||
|
|
||||||
|
@ -84,8 +84,14 @@
|
||||||
(defconst fuel-syntax--method-definition-regex
|
(defconst fuel-syntax--method-definition-regex
|
||||||
"^M: +\\([^ ]+\\) +\\([^ ]+\\)")
|
"^M: +\\([^ ]+\\) +\\([^ ]+\\)")
|
||||||
|
|
||||||
(defconst fuel-syntax--number-regex
|
(defconst fuel-syntax--integer-regex
|
||||||
"\\(\\+\\|-\\)?\\([0-9]+\\.?[0-9]*\\|\\.[0-9]+\\)\\([eE]\\(\\+\\|-\\)?[0-9]+\\)?")
|
"\\_<-?[0-9]+\\_>")
|
||||||
|
|
||||||
|
(defconst fuel-syntax--ratio-regex
|
||||||
|
"\\_<-?\\([0-9]+\\+\\)?[0-9]+/-?[0-9]+\\_>")
|
||||||
|
|
||||||
|
(defconst fuel-syntax--float-regex
|
||||||
|
"\\_<-?[0-9]+\\.[0-9]*\\([eE][+-]?[0-9]+\\)?\\_>")
|
||||||
|
|
||||||
(defconst fuel-syntax--word-definition-regex
|
(defconst fuel-syntax--word-definition-regex
|
||||||
(fuel-syntax--second-word-regex
|
(fuel-syntax--second-word-regex
|
||||||
|
@ -142,12 +148,14 @@
|
||||||
fuel-syntax--declaration-words-regex))
|
fuel-syntax--declaration-words-regex))
|
||||||
|
|
||||||
(defconst fuel-syntax--single-liner-regex
|
(defconst fuel-syntax--single-liner-regex
|
||||||
(format "^%s" (regexp-opt '("ALIAS:"
|
(format "^%s" (regexp-opt '("ABOUT:"
|
||||||
|
"ARTICLE:"
|
||||||
|
"ALIAS:"
|
||||||
"CONSTANT:" "C:"
|
"CONSTANT:" "C:"
|
||||||
"DEFER:"
|
"DEFER:"
|
||||||
"FORGET:"
|
"FORGET:"
|
||||||
"GENERIC:" "GENERIC#"
|
"GENERIC:" "GENERIC#"
|
||||||
"HEX:" "HOOK:"
|
"HELP:" "HEX:" "HOOK:"
|
||||||
"IN:" "INSTANCE:"
|
"IN:" "INSTANCE:"
|
||||||
"MAIN:" "MATH:" "MIXIN:"
|
"MAIN:" "MATH:" "MIXIN:"
|
||||||
"OCT:"
|
"OCT:"
|
||||||
|
@ -210,8 +218,7 @@
|
||||||
(" \\(|\\) " (1 "(|"))
|
(" \\(|\\) " (1 "(|"))
|
||||||
(" \\(|\\)$" (1 ")"))
|
(" \\(|\\)$" (1 ")"))
|
||||||
;; Opening brace words:
|
;; Opening brace words:
|
||||||
(,(format "\\_<%s\\({\\)\\_>" (regexp-opt fuel-syntax--bracers)) (1 "(}"))
|
("\\_<\\w*\\({\\)\\_>" (1 "(}"))
|
||||||
("\\_<\\({\\)\\_>" (1 "(}"))
|
|
||||||
("\\_<\\(}\\)\\_>" (1 "){"))
|
("\\_<\\(}\\)\\_>" (1 "){"))
|
||||||
;; Parenthesis:
|
;; Parenthesis:
|
||||||
("\\_<\\((\\)\\_>" (1 "()"))
|
("\\_<\\((\\)\\_>" (1 "()"))
|
||||||
|
@ -255,7 +262,7 @@
|
||||||
(defsubst fuel-syntax--looking-at-emptiness ()
|
(defsubst fuel-syntax--looking-at-emptiness ()
|
||||||
(looking-at "^[ ]*$\\|$"))
|
(looking-at "^[ ]*$\\|$"))
|
||||||
|
|
||||||
(defsubst fuel-syntax--is-eol (pos)
|
(defsubst fuel-syntax--is-last-char (pos)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(goto-char (1+ pos))
|
(goto-char (1+ pos))
|
||||||
(fuel-syntax--looking-at-emptiness)))
|
(fuel-syntax--looking-at-emptiness)))
|
||||||
|
|
Loading…
Reference in New Issue