all repos — min @ 8bd1ab66b91a1a82263b095db6d708d3f955b456

A small but practical concatenative programming language.

minim.vim

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
" Vim syntax file
" Language: MiNiM
" Maintainer: Fabio Cevasco
" Last Change: 11 November 2016
" Version: 0.3.0

if exists("b:current_syntax")
  finish
endif

setl iskeyword=@,36-39,+,-,/,*,.,:,~,!,48-57,60-65,94-95,192-255 
setl iskeyword+=^

syntax keyword          minimDefaultSymbol ! != $ & ' * + # - % ^ -> . .. / : < <= == => =~ > >= @ ROOT aes and append ask at atime b bind bool bool? bury1 bury2 bury3 c call call! capitalize case cd chmod choose clear-stack column-print concat confirm cons cp cpu crypto ctime datetime ddel debug decode decrypt define delete dget dictionary? dig1 dig2 dig3 dip dir? dirname div dprint dprint! dset dump-stack dup dupd encode encrypt env? error eval even? exit fappend fatal file? filename filter first float float? foreach fperms fread from-json format-error fs fsize fstats ftype fwrite gets get-stack getenv hardlink hidden? ifte import indent info inspect int int? interpolate interval io join k keys length linrec load load-symbol logic loglevel loglevel? lowercase ls ls-r map match md5 mkdir mod module mtime mv newline not notice now num number? odd? os password pop popd pred print print! prompt publish puts puts! putenv q quotation? quote quote-bind quote-define raise regex remove-symbol repeat replace rest rm rmdir run save-symbol scope scope? seal search set-stack sha1 sha224 sha256 sha384 sha512 sigils sip sleep sort source split startup stored-symbols str string string? strip succ swap swapd swons symbols symlink symlink? sys system take tformat time timeinfo times timestamp titleize to-json try unquote uppercase unzip values version warn which while with xor zip contains


syntax match            minimDefaultSigil       ;\<[:@'~!$%&$=<>#^*#+/]; contained
syntax match            minimSpecialSymbols     ;[:@'~!$%&$=<>#^*#+/]; contained
syntax match            minimQuote              ;\<['];
syntax match            minimQuotedBinding      ;#;
syntax match            minimBinding            ;@;

syntax keyword          minimCommentTodo        TODO FIXME XXX TBD contained
syntax match            minimComment            /;.*$/ contains=minimCommentTodo

syntax match            minimNumber             ;[-+]\=\d\+\(\.\d*\)\=;
syntax keyword          minimBoolean            true false
syntax region           minimString             start=+"+ skip=+\\\\\|\\$"+  end=+"+  

syntax region           minimSigilSymbol        start=;\<[:@'~!$%&$=<>^*#+/]; end=;\>; contains=minimDefaultSigil  
syntax region           minimQuotedSymbol       start=;\<[']; end=;\>; contains=minimQuote
syntax region           minimBoundSymbol        start=;@; end=;\>; contains=minimBinding
syntax region           minimQuotedBoundSymbol  start=;#; end=;\>; contains=minimQuotedBinding
syntax match            minimSymbol             ;[a-zA-Z0-9+._-][a-zA-Z0-9/!?+*._-]*;

syntax match            minimParen              ;(\|); 



" Highlighting
hi default link         minimComment            Comment
hi default link         minimCommentTodo        Todo
hi default link         minimString             String
hi default link         minimSigilSymbol        String
hi default link         minimNumber             Number
hi default link         minimBoolean            Boolean
hi default link         minimDefaultSymbol      Statement
hi default link         minimQuote              Delimiter
hi default link         minimBinding            Delimiter
hi default link         minimQuotedBinding      Delimiter
hi default link         minimDefaultSigil       Delimiter
hi default link         minimSymbol             Identifier
hi default link         minimQuotedSymbol       Special
hi default link         minimBoundSymbol        Special
hi default link         minimQuotedBoundSymbol  Special
hi default link         minimParen              Special

let b:current_syntax = "minim"