annotate runtime/syntax/nqc.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
1 " Vim syntax file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
2 " Language: NQC - Not Quite C, for LEGO mindstorms
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " NQC homepage: http://www.enteract.com/~dbaum/nqc/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " Maintainer: Stefan Scherer <stefan@enotes.de>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5 " Last Change: 2001 May 10
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6 " URL: http://www.enotes.de/twiki/pub/Home/LegoMindstorms/nqc.vim
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7 " Filenames: .nqc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9 " For version 5.x: Clear all syntax items
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 " For version 6.x: Quit when a syntax file was already loaded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11 if version < 600
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 syntax clear
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13 elseif exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17 " Statements
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18 syn keyword nqcStatement break return continue start stop abs sign
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19 syn keyword nqcStatement sub task
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 syn keyword nqcLabel case default
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21 syn keyword nqcConditional if else switch
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 syn keyword nqcRepeat while for do until repeat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24 " Scout and RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25 syn keyword nqcEvents acquire catch monitor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27 " types and classes
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28 syn keyword nqcType int true false void
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29 syn keyword nqcStorageClass asm const inline
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33 " Sensors --------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34 " Input Sensors
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35 syn keyword nqcConstant SENSOR_1 SENSOR_2 SENSOR_3
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37 " Types for SetSensorType()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 syn keyword nqcConstant SENSOR_TYPE_TOUCH SENSOR_TYPE_TEMPERATURE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 syn keyword nqcConstant SENSOR_TYPE_LIGHT SENSOR_TYPE_ROTATION
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40 syn keyword nqcConstant SENSOR_LIGHT SENSOR_TOUCH
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42 " Modes for SetSensorMode()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43 syn keyword nqcConstant SENSOR_MODE_RAW SENSOR_MODE_BOOL
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44 syn keyword nqcConstant SENSOR_MODE_EDGE SENSOR_MODE_PULSE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45 syn keyword nqcConstant SENSOR_MODE_PERCENT SENSOR_MODE_CELSIUS
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46 syn keyword nqcConstant SENSOR_MODE_FAHRENHEIT SENSOR_MODE_ROTATION
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 " Sensor configurations for SetSensor()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49 syn keyword nqcConstant SENSOR_TOUCH SENSOR_LIGHT SENSOR_ROTATION
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50 syn keyword nqcConstant SENSOR_CELSIUS SENSOR_FAHRENHEIT SENSOR_PULSE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51 syn keyword nqcConstant SENSOR_EDGE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53 " Functions - All
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 syn keyword nqcFunction ClearSensor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 syn keyword nqcFunction SensorValue SensorType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 " Functions - RCX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58 syn keyword nqcFunction SetSensor SetSensorType
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 syn keyword nqcFunction SensorValueBool
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61 " Functions - RCX, CyberMaster
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62 syn keyword nqcFunction SetSensorMode SensorMode
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64 " Functions - RCX, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65 syn keyword nqcFunction SensorValueRaw
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67 " Functions - Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
68 syn keyword nqcFunction SetSensorLowerLimit SetSensorUpperLimit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
69 syn keyword nqcFunction SetSensorHysteresis CalibrateSensor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
70
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
71
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
72 " Outputs --------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
73 " Outputs for On(), Off(), etc.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
74 syn keyword nqcConstant OUT_A OUT_B OUT_C
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
75
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
76 " Modes for SetOutput()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
77 syn keyword nqcConstant OUT_ON OUT_OFF OUT_FLOAT
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
78
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
79 " Directions for SetDirection()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
80 syn keyword nqcConstant OUT_FWD OUT_REV OUT_TOGGLE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
81
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
82 " Output power for SetPower()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
83 syn keyword nqcConstant OUT_LOW OUT_HALF OUT_FULL
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
84
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
85 " Functions - All
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
86 syn keyword nqcFunction SetOutput SetDirection SetPower OutputStatus
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
87 syn keyword nqcFunction On Off Float Fwd Rev Toggle
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
88 syn keyword nqcFunction OnFwd OnRev OnFor
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
89
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
90 " Functions - RXC2, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
91 syn keyword nqcFunction SetGlobalOutput SetGlobalDirection SetMaxPower
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
92 syn keyword nqcFunction GlobalOutputStatus
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
93
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
94
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
95 " Sound ----------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
96 " Sounds for PlaySound()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
97 syn keyword nqcConstant SOUND_CLICK SOUND_DOUBLE_BEEP SOUND_DOWN
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
98 syn keyword nqcConstant SOUND_UP SOUND_LOW_BEEP SOUND_FAST_UP
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
99
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
100 " Functions - All
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
101 syn keyword nqcFunction PlaySound PlayTone
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
102
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
103 " Functions - RCX2, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
104 syn keyword nqcFunction MuteSound UnmuteSound ClearSound
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
105 syn keyword nqcFunction SelectSounds
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
106
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
107
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
108 " LCD ------------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
109 " Modes for SelectDisplay()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
110 syn keyword nqcConstant DISPLAY_WATCH DISPLAY_SENSOR_1 DISPLAY_SENSOR_2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
111 syn keyword nqcConstant DISPLAY_SENSOR_3 DISPLAY_OUT_A DISPLAY_OUT_B
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
112 syn keyword nqcConstant DISPLAY_OUT_C
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
113 " RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
114 syn keyword nqcConstant DISPLAY_USER
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
115
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
116 " Functions - RCX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
117 syn keyword nqcFunction SelectDisplay
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
118 " Functions - RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
119 syn keyword nqcFunction SetUserDisplay
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
120
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
121
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
122 " Communication --------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
123 " Messages - RCX, Scout ------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
124 " Tx power level for SetTxPower()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
125 syn keyword nqcConstant TX_POWER_LO TX_POWER_HI
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
126
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
127 " Functions - RCX, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
128 syn keyword nqcFunction Message ClearMessage SendMessage SetTxPower
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
129
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
130 " Serial - RCX2 --------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
131 " for SetSerialComm()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
132 syn keyword nqcConstant SERIAL_COMM_DEFAULT SERIAL_COMM_4800
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
133 syn keyword nqcConstant SERIAL_COMM_DUTY25 SERIAL_COMM_76KHZ
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
134
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
135 " for SetSerialPacket()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
136 syn keyword nqcConstant SERIAL_PACKET_DEFAULT SERIAL_PACKET_PREAMBLE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
137 syn keyword nqcConstant SERIAL_PACKET_NEGATED SERIAL_PACKET_CHECKSUM
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
138 syn keyword nqcConstant SERIAL_PACKET_RCX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
139
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
140 " Functions - RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
141 syn keyword nqcFunction SetSerialComm SetSerialPacket SetSerialData
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
142 syn keyword nqcFunction SerialData SendSerial
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
143
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
144 " VLL - Scout ----------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
145 " Functions - Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
146 syn keyword nqcFunction SendVLL
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
147
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
148
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
149 " Timers ---------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
150 " Functions - All
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
151 syn keyword nqcFunction ClearTimer Timer
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
152
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
153 " Functions - RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
154 syn keyword nqcFunction SetTimer FastTimer
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
155
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
156
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
157 " Counters -------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
158 " Functions - RCX2, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
159 syn keyword nqcFunction ClearCounter IncCounter DecCounter Counter
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
160
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
161
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
162 " Access Control -------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
163 syn keyword nqcConstant ACQUIRE_OUT_A ACQUIRE_OUT_B ACQUIRE_OUT_C
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
164 syn keyword nqcConstant ACQUIRE_SOUND
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
165 " RCX2 only
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
166 syn keyword nqcConstant ACQUIRE_USER_1 ACQUIRE_USER_2 ACQUIRE_USER_3
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
167 syn keyword nqcConstant ACQUIRE_USER_4
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
168
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
169 " Functions - RCX2, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
170 syn keyword nqcFunction SetPriority
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
171
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
172
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
173 " Events ---------------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
174 " RCX2 Events
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
175 syn keyword nqcConstant EVENT_TYPE_PRESSED EVENT_TYPE_RELEASED
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
176 syn keyword nqcConstant EVENT_TYPE_PULSE EVENT_TYPE_EDGE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
177 syn keyword nqcConstant EVENT_TYPE_FAST_CHANGE EVENT_TYPE_LOW
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
178 syn keyword nqcConstant EVENT_TYPE_NORMAL EVENT_TYPE_HIGH
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
179 syn keyword nqcConstant EVENT_TYPE_CLICK EVENT_TYPE_DOUBLECLICK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
180 syn keyword nqcConstant EVENT_TYPE_MESSAGE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
181
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
182 " Scout Events
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
183 syn keyword nqcConstant EVENT_1_PRESSED EVENT_1_RELEASED
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
184 syn keyword nqcConstant EVENT_2_PRESSED EVENT_2_RELEASED
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
185 syn keyword nqcConstant EVENT_LIGHT_HIGH EVENT_LIGHT_NORMAL
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
186 syn keyword nqcConstant EVENT_LIGHT_LOW EVENT_LIGHT_CLICK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
187 syn keyword nqcConstant EVENT_LIGHT_DOUBLECLICK EVENT_COUNTER_0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
188 syn keyword nqcConstant EVENT_COUNTER_1 EVENT_TIMER_0 EVENT_TIMER_1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
189 syn keyword nqcConstant EVENT_TIMER_2 EVENT_MESSAGE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
190
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
191 " Functions - RCX2, Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
192 syn keyword nqcFunction ActiveEvents Event
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
193
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
194 " Functions - RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
195 syn keyword nqcFunction CurrentEvents
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
196 syn keyword nqcFunction SetEvent ClearEvent ClearAllEvents EventState
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
197 syn keyword nqcFunction CalibrateEvent SetUpperLimit UpperLimit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
198 syn keyword nqcFunction SetLowerLimit LowerLimit SetHysteresis
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
199 syn keyword nqcFunction Hysteresis
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
200 syn keyword nqcFunction SetClickTime ClickTime SetClickCounter
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
201 syn keyword nqcFunction ClickCounter
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
202
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
203 " Functions - Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
204 syn keyword nqcFunction SetSensorClickTime SetCounterLimit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
205 syn keyword nqcFunction SetTimerLimit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
206
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
207
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
208 " Data Logging ---------------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
209 " Functions - RCX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
210 syn keyword nqcFunction CreateDatalog AddToDatalog
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
211 syn keyword nqcFunction UploadDatalog
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
212
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
213
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
214 " General Features -----------------------------------
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
215 " Functions - All
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
216 syn keyword nqcFunction Wait StopAllTasks Random
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
217 syn keyword nqcFunction SetSleepTime SleepNow
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
218
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
219 " Functions - RCX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
220 syn keyword nqcFunction Program Watch SetWatch
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
221
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
222 " Functions - RCX2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
223 syn keyword nqcFunction SetRandomSeed SelectProgram
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
224 syn keyword nqcFunction BatteryLevel FirmwareVersion
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
225
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
226 " Functions - Scout
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
227 " Parameters for SetLight()
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
228 syn keyword nqcConstant LIGHT_ON LIGHT_OFF
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
229 syn keyword nqcFunction SetScoutRules ScoutRules SetScoutMode
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
230 syn keyword nqcFunction SetEventFeedback EventFeedback SetLight
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
231
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
232 " additional CyberMaster defines
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
233 syn keyword nqcConstant OUT_L OUT_R OUT_X
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
234 syn keyword nqcConstant SENSOR_L SENSOR_M SENSOR_R
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
235 " Functions - CyberMaster
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
236 syn keyword nqcFunction Drive OnWait OnWaitDifferent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
237 syn keyword nqcFunction ClearTachoCounter TachoCount TachoSpeed
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
238 syn keyword nqcFunction ExternalMotorRunning AGC
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
239
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
240
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
241
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
242 " nqcCommentGroup allows adding matches for special things in comments
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
243 syn keyword nqcTodo contained TODO FIXME XXX
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
244 syn cluster nqcCommentGroup contains=nqcTodo
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
245
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
246 "when wanted, highlight trailing white space
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
247 if exists("nqc_space_errors")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
248 if !exists("nqc_no_trail_space_error")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
249 syn match nqcSpaceError display excludenl "\s\+$"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
250 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
251 if !exists("nqc_no_tab_space_error")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
252 syn match nqcSpaceError display " \+\t"me=e-1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
253 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
254 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
255
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
256 "catch errors caused by wrong parenthesis and brackets
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
257 syn cluster nqcParenGroup contains=nqcParenError,nqcIncluded,nqcCommentSkip,@nqcCommentGroup,nqcCommentStartError,nqcCommentSkip,nqcCppOut,nqcCppOut2,nqcCppSkip,nqcNumber,nqcFloat,nqcNumbers
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
258 if exists("nqc_no_bracket_error")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
259 syn region nqcParen transparent start='(' end=')' contains=ALLBUT,@nqcParenGroup,nqcCppParen
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
260 " nqcCppParen: same as nqcParen but ends at end-of-line; used in nqcDefine
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
261 syn region nqcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcParen
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
262 syn match nqcParenError display ")"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
263 syn match nqcErrInParen display contained "[{}]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
264 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
265 syn region nqcParen transparent start='(' end=')' contains=ALLBUT,@nqcParenGroup,nqcCppParen,nqcErrInBracket,nqcCppBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
266 " nqcCppParen: same as nqcParen but ends at end-of-line; used in nqcDefine
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
267 syn region nqcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcErrInBracket,nqcParen,nqcBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
268 syn match nqcParenError display "[\])]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
269 syn match nqcErrInParen display contained "[\]{}]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
270 syn region nqcBracket transparent start='\[' end=']' contains=ALLBUT,@nqcParenGroup,nqcErrInParen,nqcCppParen,nqcCppBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
271 " nqcCppBracket: same as nqcParen but ends at end-of-line; used in nqcDefine
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
272 syn region nqcCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcErrInParen,nqcParen,nqcBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
273 syn match nqcErrInBracket display contained "[);{}]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
274 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
275
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
276 "integer number, or floating point number without a dot and with "f".
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
277 syn case ignore
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
278 syn match nqcNumbers display transparent "\<\d\|\.\d" contains=nqcNumber,nqcFloat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
279 " Same, but without octal error (for comments)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
280 syn match nqcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
281 "hex number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
282 syn match nqcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
283 " Flag the first zero of an octal number as something special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
284 syn match nqcFloat display contained "\d\+f"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
285 "floating point number, with dot, optional exponent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
286 syn match nqcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
287 "floating point number, starting with a dot, optional exponent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
288 syn match nqcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
289 "floating point number, without dot, with exponent
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
290 syn match nqcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
291 " flag an octal number with wrong digits
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
292 syn case match
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
293
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
294 syn region nqcCommentL start="//" skip="\\$" end="$" keepend contains=@nqcCommentGroup,nqcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
295 syn region nqcComment matchgroup=nqcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@nqcCommentGroup,nqcCommentStartError,nqcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
296
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
297 " keep a // comment separately, it terminates a preproc. conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
298 syntax match nqcCommentError display "\*/"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
299 syntax match nqcCommentStartError display "/\*" contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
300
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
301
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
302
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
303
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
304
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
305 syn region nqcPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=nqcComment,nqcCharacter,nqcCppParen,nqcParenError,nqcNumbers,nqcCommentError,nqcSpaceError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
306 syn match nqcPreCondit display "^\s*#\s*\(else\|endif\)\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
307 if !exists("nqc_no_if0")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
308 syn region nqcCppOut start="^\s*#\s*if\s\+0\>" end=".\|$" contains=nqcCppOut2
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
309 syn region nqcCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=nqcSpaceError,nqcCppSkip
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
310 syn region nqcCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=nqcSpaceError,nqcCppSkip
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
311 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
312 syn region nqcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
313 syn match nqcInclude display "^\s*#\s*include\>\s*["]" contains=nqcIncluded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
314 "syn match nqcLineSkip "\\$"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
315 syn cluster nqcPreProcGroup contains=nqcPreCondit,nqcIncluded,nqcInclude,nqcDefine,nqcErrInParen,nqcErrInBracket,nqcCppOut,nqcCppOut2,nqcCppSkip,nqcNumber,nqcFloat,nqcNumbers,nqcCommentSkip,@nqcCommentGroup,nqcCommentStartError,nqcParen,nqcBracket
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
316 syn region nqcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@nqcPreProcGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
317 syn region nqcPreProc start="^\s*#\s*\(pragma\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@nqcPreProcGroup
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
318
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
319 if !exists("nqc_minlines")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
320 if !exists("nqc_no_if0")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
321 let nqc_minlines = 50 " #if 0 constructs can be long
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
322 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
323 let nqc_minlines = 15 " mostly for () constructs
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
324 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
325 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
326 exec "syn sync ccomment nqcComment minlines=" . nqc_minlines
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
327
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
328 " Define the default highlighting.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
329 " For version 5.7 and earlier: only when not done already
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
330 " For version 5.8 and later: only when an item doesn't have highlighting yet
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
331 if version >= 508 || !exists("did_nqc_syn_inits")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
332 if version < 508
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
333 let did_nqc_syn_inits = 1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
334 command -nargs=+ HiLink hi link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
335 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
336 command -nargs=+ HiLink hi def link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
337 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
338
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
339 " The default methods for highlighting. Can be overridden later
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
340 HiLink nqcLabel Label
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
341 HiLink nqcConditional Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
342 HiLink nqcRepeat Repeat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
343 HiLink nqcCharacter Character
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
344 HiLink nqcNumber Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
345 HiLink nqcFloat Float
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
346 HiLink nqcFunction Function
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
347 HiLink nqcParenError nqcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
348 HiLink nqcErrInParen nqcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
349 HiLink nqcErrInBracket nqcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
350 HiLink nqcCommentL nqcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
351 HiLink nqcCommentStart nqcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
352 HiLink nqcCommentError nqcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
353 HiLink nqcCommentStartError nqcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
354 HiLink nqcSpaceError nqcError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
355 HiLink nqcStorageClass StorageClass
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
356 HiLink nqcInclude Include
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
357 HiLink nqcPreProc PreProc
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
358 HiLink nqcDefine Macro
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
359 HiLink nqcIncluded String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
360 HiLink nqcError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
361 HiLink nqcStatement Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
362 HiLink nqcEvents Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
363 HiLink nqcPreCondit PreCondit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
364 HiLink nqcType Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
365 HiLink nqcConstant Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
366 HiLink nqcCommentSkip nqcComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
367 HiLink nqcComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
368 HiLink nqcTodo Todo
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
369 HiLink nqcCppSkip nqcCppOut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
370 HiLink nqcCppOut2 nqcCppOut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
371 HiLink nqcCppOut Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
372
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
373 delcommand HiLink
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
374 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
375
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
376 let b:current_syntax = "nqc"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
377
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
378 " vim: ts=8