-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnefarious.vim
More file actions
80 lines (67 loc) · 2.1 KB
/
nefarious.vim
File metadata and controls
80 lines (67 loc) · 2.1 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
" Vim syntax file
" Language: Nefarious Scheme
" Maintainer: Tim Radvan
" Latest Revision: 9 Nov 2016
if exists("b:current_syntax")
finish
endif
let b:current_syntax = "nefarious"
"syntax iskeyword @,48-57,192-255,:,=,_
"syntax iskeyword @,48-57,192-255,$,_
syntax keyword nfsKeyword let var fun define defprim
syntax match nfsKeyword "\v\="
syntax match nfsKeyword "\v\:\="
highlight link nfsKeyword Operator
syntax keyword nfsType Int Float Bool Text List Var Any Record
highlight link nfsType Type
syntax keyword nfsBoolean yes
syntax keyword nfsBoolean no
syntax keyword nfsBoolean nil
highlight link nfsBoolean Boolean
syntax match nfsNumber "[0-9]+"
highlight link nfsInt Number
syntax match nfsFloat "\v[0-9]+(\.[0-9]+)?(e[+-][0-9]+)?"
highlight link nfsFloat Float
syntax match nfsSymbol "\v:[a-zA-Z]+"
highlight link nfsSymbol Function
"syn region definition start='defprim ' end='{'
"syn region definition start='func' end='{'
"syn region definition start='define ' end='{'
"highlight link definition NonText
syntax match nfsBrace "\v\{"
syntax match nfsBrace "\v\}"
highlight link nfsBrace Define
syntax region nfsString start=/\v"/ skip=/\v\\./ end=/\v"/
highlight link nfsString String
syntax keyword prim BOOL_AND
syntax keyword prim BOOL_NOT
syntax keyword prim BOOL_OR
syntax keyword prim FLOAT_ADD
syntax keyword prim FLOAT_DIV
syntax keyword prim FLOAT_LT
syntax keyword prim FLOAT_MUL
syntax keyword prim FLOAT_POW
syntax keyword prim FLOAT_ROUND
syntax keyword prim FLOAT_SUB
syntax keyword prim IF_THEN
syntax keyword prim IF_THEN_ELSE
syntax keyword prim INT_ADD
syntax keyword prim INT_EQ
syntax keyword prim INT_FLOAT
syntax keyword prim INT_LT
syntax keyword prim INT_MUL
syntax keyword prim INT_RANDOM
syntax keyword prim INT_SUB
syntax keyword prim IS_NIL
syntax keyword prim LIST_ADD
syntax keyword prim LIST_GET
syntax keyword prim LIST_LEN
syntax keyword prim LIST_SET
syntax keyword prim PRINT
syntax keyword prim REPR
syntax keyword prim TEXT_JOIN
syntax keyword prim TEXT_JOIN_WITH
syntax keyword prim TEXT_SPLIT
syntax keyword prim TEXT_SPLIT_BY
syntax keyword prim WHILE
highlight link prim Special