Mercurial > vim
comparison runtime/syntax/poke.vim @ 24103:788e10cec9bd
Update runtime files.
Commit: https://github.com/vim/vim/commit/c8cdf0f80b3cfd88a4490d80572062c1fd1a96ca
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 13 13:28:13 2021 +0100
Update runtime files.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 13 Mar 2021 13:30:04 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
24102:f897c1862d9e | 24103:788e10cec9bd |
---|---|
1 " Copyright (C) 2021 Matthew T. Ihlenfield. | |
2 " | |
3 " This program is free software: you can redistribute it and/or modify | |
4 " it under the terms of the GNU General Public License as published by | |
5 " the Free Software Foundation, either version 3 of the License, or | |
6 " (at your option) any later version. | |
7 " | |
8 " This program is distributed in the hope that it will be useful, | |
9 " but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 " GNU General Public License for more details. | |
12 " | |
13 " You should have received a copy of the GNU General Public License | |
14 " along with this program. If not, see <http://www.gnu.org/licenses/>. | |
15 " | |
16 " Vim syntax file | |
17 " Language: Poke | |
18 " Maintainer: Matt Ihlenfield <mtihlenfield@protonmail.com> | |
19 " Filenames: *.pk | |
20 " Latest Revision: 10 March 2021 | |
21 | |
22 if exists('b:current_syntax') | |
23 finish | |
24 endif | |
25 | |
26 " Poke statement | |
27 syn keyword pokeStatement assert break continue return | |
28 syn keyword pokeStatement type unit fun method nextgroup=pokeFunction skipwhite | |
29 syn keyword pokeStatement var nextgroup=pokeVar skipWhite | |
30 | |
31 " Identifiers | |
32 syn match pokeVar '\h\w*' display contained | |
33 | |
34 " User defined functions | |
35 syn match pokeFunction '\h\w*' display contained | |
36 | |
37 " Poke operators | |
38 syn keyword pokeOperator in sizeof as isa unmap | |
39 | |
40 " Conditionals | |
41 syn keyword pokeConditional if else where | |
42 | |
43 " Structures, unions, etc... | |
44 syn keyword pokeStructure struct union pinned | |
45 | |
46 " Loops | |
47 syn keyword pokeRepeat while for | |
48 | |
49 " Imports | |
50 syn keyword pokeLoad load | |
51 | |
52 " Exceptions | |
53 syn keyword pokeException try catch until raise | |
54 | |
55 " Exception types | |
56 syn keyword pokeExceptionType Exception E_generic E_out_of_bounds | |
57 syn keyword pokeExceptionType E_eof E_elem E_constraint | |
58 syn keyword pokeExceptionType E_conv E_map_bounds E_map | |
59 syn keyword pokeExceptionType E_div_by_zero E_no_ios E_no_return | |
60 syn keyword pokeExceptionType E_io E_io_flags E_assert E_overflow | |
61 | |
62 " Exception codes | |
63 syn keyword pokeExceptionCode EC_generic EC_out_of_bounds | |
64 syn keyword pokeExceptionCode EC_eof EC_elem EC_constraint | |
65 syn keyword pokeExceptionCode EC_conv EC_map_bounds EC_map | |
66 syn keyword pokeExceptionCode EC_div_by_zero EC_no_ios EC_no_return | |
67 syn keyword pokeExceptionCode EC_io EC_io_flags EC_assert EC_overflow | |
68 | |
69 " Poke builtin types | |
70 syn keyword pokeBuiltinType string void int uint bit nibble | |
71 syn keyword pokeBuiltinType byte char ushort short ulong long | |
72 syn keyword pokeBuiltinType uint8 uint16 uint32 uint64 | |
73 syn keyword pokeBuiltinType off64 uoff64 offset | |
74 syn keyword pokeBuiltinType Comparator POSIX_Time32 POSIX_Time64 | |
75 syn keyword pokeBuiltinType big little any | |
76 | |
77 " Poke constants | |
78 syn keyword pokeConstant ENDIAN_LITTLE ENDIAN_BIG | |
79 syn keyword pokeConstant IOS_F_READ IOS_F_WRITE IOS_F_TRUNCATE IOS_F_CREATE | |
80 syn keyword pokeConstant IOS_M_RDONLY IOS_M_WRONLY IOS_M_RDWR | |
81 syn keyword pokeConstant load_path NULL OFFSET | |
82 | |
83 " Poke std lib | |
84 syn keyword pokeBuiltinFunction print printf catos stoca atoi ltos reverse | |
85 syn keyword pokeBuiltinFunction ltrim rtrim strchr qsort crc32 alignto | |
86 syn keyword pokeBuiltinFunction open close flush get_ios set_ios iosize | |
87 syn keyword pokeBuiltinFunction rand get_endian set_endian strace exit | |
88 syn keyword pokeBuiltinFunction getenv | |
89 | |
90 " Formats | |
91 | |
92 " Special chars | |
93 syn match pokeSpecial "\\\([nt\\]\|\o\{1,3}\)" display contained | |
94 | |
95 " Chars | |
96 syn match pokeChar "'[^']*'" contains=pokeSpecial | |
97 | |
98 " Attributes | |
99 syn match pokeAttribute "\h\w*'\h\w" | |
100 | |
101 " Strings | |
102 syn region pokeString skip=+\\\\\|\\"+ start=+"+ end=+"+ contains=pokeSpecial | |
103 | |
104 " Integer literals | |
105 syn match pokeInteger "\<\d\+_*\d*\([LlHhBbNn]\=[Uu]\=\|[Uu]\=[LlHhBbNn]\=\)\>" | |
106 syn match pokeInteger "\<0[Xx]\x\+_*\x*\([LlHhBbNn]\=[Uu]\=\|[Uu]\=[LlHhBbNn]\=\)\>" | |
107 syn match pokeInteger "\<0[Oo]\o\+_*\o*\([LlHhBbNn]\=[Uu]\=\|[Uu]\=[LlHhBbNn]\=\)\>" | |
108 syn match pokeInteger "\<0[Bb][01]\+_*[01]*\([LlHhBbNn]\=[Uu]\=\|[Uu]\=[LlHhBbNn]\=\)\>" | |
109 | |
110 " Units | |
111 syn keyword pokeBuiltinUnit b M B | |
112 syn keyword pokeBuiltinUnit Kb KB Mb MB Gb GB | |
113 syn keyword pokeBuiltinUnit Kib KiB Mib MiB Gib GiB | |
114 | |
115 " Offsets | |
116 syn match pokeOffset "#\h\w*" contains=pokeBuiltinUnit | |
117 | |
118 " Comments | |
119 syn keyword pokeCommentTodo TODO FIXME XXX TBD contained | |
120 syn match pokeLineComment "\/\/.*" contains=pokeCommentTodo,@Spell extend | |
121 syn region pokeComment start="/\*" end="\*/" contains=pokeCommentTodo,@Spell fold extend | |
122 | |
123 " Allow folding of blocks | |
124 syn region pokeBlock start="{" end="}" transparent fold | |
125 | |
126 " Highlight groups | |
127 hi def link pokeBuiltinFunction Function | |
128 hi def link pokeBuiltinType Type | |
129 hi def link pokeBuiltinUnit Keyword | |
130 hi def link pokeChar Character | |
131 hi def link pokeComment Comment | |
132 hi def link pokeCommentTodo Todo | |
133 hi def link pokeConditional Conditional | |
134 hi def link pokeConstant Constant | |
135 hi def link pokeException Exception | |
136 hi def link pokeExceptionCode Constant | |
137 hi def link pokeExceptionType Type | |
138 hi def link pokeFunction Function | |
139 hi def link pokeInteger Number | |
140 hi def link pokeLineComment Comment | |
141 hi def link pokeLoad Include | |
142 hi def link pokeOffset StorageClass | |
143 hi def link pokeOperator Operator | |
144 hi def link pokeSpecial SpecialChar | |
145 hi def link pokeStatement Statement | |
146 hi def link pokeString String | |
147 hi def link pokeStructure Structure | |
148 hi def link pokeRepeat Repeat | |
149 hi def link pokeVar Identifier | |
150 | |
151 let b:current_syntax = 'poke' |