inform.vim (19483B)
1 " Vim syntax file 2 " Language: Inform 3 " Maintainer: Stephen Thomas (stephen@gowarthomas.com) 4 " URL: http://www.gowarthomas.com/informvim 5 " Last Change: 2006 April 20 6 7 " quit when a syntax file was already loaded 8 if exists("b:current_syntax") 9 finish 10 endif 11 12 " A bunch of useful Inform keywords. First, case insensitive stuff 13 14 syn case ignore 15 16 syn keyword informDefine Constant 17 18 syn keyword informType Array Attribute Class Nearby 19 syn keyword informType Object Property String Routine 20 syn match informType "\<Global\>" 21 22 syn keyword informInclude Import Include Link Replace System_file 23 24 syn keyword informPreCondit End Endif Ifdef Ifndef Iftrue Iffalse Ifv3 Ifv5 25 syn keyword informPreCondit Ifnot 26 27 syn keyword informPreProc Abbreviate Default Fake_action Lowstring 28 syn keyword informPreProc Message Release Serial Statusline Stub Switches 29 syn keyword informPreProc Trace Zcharacter 30 31 syn region informGlobalRegion matchgroup=informType start="\<Global\>" matchgroup=NONE skip=+!.*$\|".*"\|'.*'+ end=";" contains=ALLBUT,informGramPreProc,informPredicate,informGrammar,informAsm,informAsmObsolete 32 33 syn keyword informGramPreProc contained Verb Extend 34 35 if !exists("inform_highlight_simple") 36 syn keyword informLibAttrib absent animate clothing concealed container 37 syn keyword informLibAttrib door edible enterable female general light 38 syn keyword informLibAttrib lockable locked male moved neuter on open 39 syn keyword informLibAttrib openable pluralname proper scenery scored 40 syn keyword informLibAttrib static supporter switchable talkable 41 syn keyword informLibAttrib visited workflag worn 42 syn match informLibAttrib "\<transparent\>" 43 44 syn keyword informLibProp e_to se_to s_to sw_to w_to nw_to n_to ne_to 45 syn keyword informLibProp u_to d_to in_to out_to before after life 46 syn keyword informLibProp door_to with_key door_dir invent plural 47 syn keyword informLibProp add_to_scope list_together react_before 48 syn keyword informLibProp react_after grammar orders initial when_open 49 syn keyword informLibProp when_closed when_on when_off description 50 syn keyword informLibProp describe article cant_go found_in time_left 51 syn keyword informLibProp number time_out daemon each_turn capacity 52 syn keyword informLibProp name short_name short_name_indef parse_name 53 syn keyword informLibProp articles inside_description 54 if !exists("inform_highlight_old") 55 syn keyword informLibProp compass_look before_implicit 56 syn keyword informLibProp ext_initialise ext_messages 57 endif 58 59 syn keyword informLibObj e_obj se_obj s_obj sw_obj w_obj nw_obj n_obj 60 syn keyword informLibObj ne_obj u_obj d_obj in_obj out_obj compass 61 syn keyword informLibObj thedark selfobj player location second actor 62 syn keyword informLibObj noun 63 if !exists("inform_highlight_old") 64 syn keyword informLibObj LibraryExtensions 65 endif 66 67 syn keyword informLibRoutine Achieved AfterRoutines AddToScope 68 syn keyword informLibRoutine AllowPushDir Banner ChangeDefault 69 syn keyword informLibRoutine ChangePlayer CommonAncestor DictionaryLookup 70 syn keyword informLibRoutine DisplayStatus DoMenu DrawStatusLine 71 syn keyword informLibRoutine EnglishNumber HasLightSource GetGNAOfObject 72 syn keyword informLibRoutine IndirectlyContains IsSeeThrough Locale 73 syn keyword informLibRoutine LoopOverScope LTI_Insert MoveFloatingObjects 74 syn keyword informLibRoutine NextWord NextWordStopped NounDomain 75 syn keyword informLibRoutine ObjectIsUntouchable OffersLight ParseToken 76 syn keyword informLibRoutine PlaceInScope PlayerTo PrintShortName 77 syn keyword informLibRoutine PronounNotice ScopeWithin SetPronoun SetTime 78 syn keyword informLibRoutine StartDaemon StartTimer StopDaemon StopTimer 79 syn keyword informLibRoutine TestScope TryNumber UnsignedCompare 80 syn keyword informLibRoutine WordAddress WordInProperty WordLength 81 syn keyword informLibRoutine WriteListFrom YesOrNo ZRegion RunRoutines 82 syn keyword informLibRoutine AfterLife AfterPrompt Amusing BeforeParsing 83 syn keyword informLibRoutine ChooseObjects DarkToDark DeathMessage 84 syn keyword informLibRoutine GamePostRoutine GamePreRoutine Initialise 85 syn keyword informLibRoutine InScope LookRoutine NewRoom ParseNoun 86 syn keyword informLibRoutine ParseNumber ParserError PrintRank PrintVerb 87 syn keyword informLibRoutine PrintTaskName TimePasses UnknownVerb 88 if exists("inform_highlight_glulx") 89 syn keyword informLibRoutine IdentifyGlkObject HandleGlkEvent 90 syn keyword informLibRoutine InitGlkWindow 91 endif 92 if !exists("inform_highlight_old") 93 syn keyword informLibRoutine KeyCharPrimitive KeyDelay ClearScreen 94 syn keyword informLibRoutine MoveCursor MainWindow StatusLineHeight 95 syn keyword informLibRoutine ScreenWidth ScreenHeight SetColour 96 syn keyword informLibRoutine DecimalNumber PrintToBuffer Length 97 syn keyword informLibRoutine UpperCase LowerCase PrintCapitalised 98 syn keyword informLibRoutine Cap Centre 99 if exists("inform_highlight_glulx") 100 syn keyword informLibRoutine PrintAnything PrintAnyToArray 101 endif 102 endif 103 104 syn keyword informLibAction Quit Restart Restore Verify Save 105 syn keyword informLibAction ScriptOn ScriptOff Pronouns Score 106 syn keyword informLibAction Fullscore LMode1 LMode2 LMode3 107 syn keyword informLibAction NotifyOn NotifyOff Version Places 108 syn keyword informLibAction Objects TraceOn TraceOff TraceLevel 109 syn keyword informLibAction ActionsOn ActionsOff RoutinesOn 110 syn keyword informLibAction RoutinesOff TimersOn TimersOff 111 syn keyword informLibAction CommandsOn CommandsOff CommandsRead 112 syn keyword informLibAction Predictable XPurloin XAbstract XTree 113 syn keyword informLibAction Scope Goto Gonear Inv InvTall InvWide 114 syn keyword informLibAction Take Drop Remove PutOn Insert Transfer 115 syn keyword informLibAction Empty Enter Exit GetOff Go Goin Look 116 syn keyword informLibAction Examine Search Give Show Unlock Lock 117 syn keyword informLibAction SwitchOn SwitchOff Open Close Disrobe 118 syn keyword informLibAction Wear Eat Yes No Burn Pray Wake 119 syn keyword informLibAction WakeOther Consult Kiss Think Smell 120 syn keyword informLibAction Listen Taste Touch Dig Cut Jump 121 syn keyword informLibAction JumpOver Tie Drink Fill Sorry Strong 122 syn keyword informLibAction Mild Attack Swim Swing Blow Rub Set 123 syn keyword informLibAction SetTo WaveHands Wave Pull Push PushDir 124 syn keyword informLibAction Turn Squeeze LookUnder ThrowAt Tell 125 syn keyword informLibAction Answer Buy Ask AskFor Sing Climb Wait 126 syn keyword informLibAction Sleep LetGo Receive ThrownAt Order 127 syn keyword informLibAction TheSame PluralFound Miscellany Prompt 128 syn keyword informLibAction ChangesOn ChangesOff Showverb Showobj 129 syn keyword informLibAction EmptyT VagueGo 130 if exists("inform_highlight_glulx") 131 syn keyword informLibAction GlkList 132 endif 133 134 syn keyword informLibVariable keep_silent deadflag action special_number 135 syn keyword informLibVariable consult_from consult_words etype verb_num 136 syn keyword informLibVariable verb_word the_time real_location c_style 137 syn keyword informLibVariable parser_one parser_two listing_together wn 138 syn keyword informLibVariable parser_action scope_stage scope_reason 139 syn keyword informLibVariable action_to_be menu_item item_name item_width 140 syn keyword informLibVariable lm_o lm_n inventory_style task_scores 141 syn keyword informLibVariable inventory_stage 142 143 syn keyword informLibConst AMUSING_PROVIDED DEBUG Headline MAX_CARRIED 144 syn keyword informLibConst MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS 145 syn keyword informLibConst OBJECT_SCORE ROOM_SCORE SACK_OBJECT Story 146 syn keyword informLibConst TASKS_PROVIDED WITHOUT_DIRECTIONS 147 syn keyword informLibConst NEWLINE_BIT INDENT_BIT FULLINV_BIT ENGLISH_BIT 148 syn keyword informLibConst RECURSE_BIT ALWAYS_BIT TERSE_BIT PARTINV_BIT 149 syn keyword informLibConst DEFART_BIT WORKFLAG_BIT ISARE_BIT CONCEAL_BIT 150 syn keyword informLibConst PARSING_REASON TALKING_REASON EACHTURN_REASON 151 syn keyword informLibConst REACT_BEFORE_REASON REACT_AFTER_REASON 152 syn keyword informLibConst TESTSCOPE_REASON LOOPOVERSCOPE_REASON 153 syn keyword informLibConst STUCK_PE UPTO_PE NUMBER_PE CANTSEE_PE TOOLIT_PE 154 syn keyword informLibConst NOTHELD_PE MULTI_PE MMULTI_PE VAGUE_PE EXCEPT_PE 155 syn keyword informLibConst ANIMA_PE VERB_PE SCENERY_PE ITGONE_PE 156 syn keyword informLibConst JUNKAFTER_PE TOOFEW_PE NOTHING_PE ASKSCOPE_PE 157 if !exists("inform_highlight_old") 158 syn keyword informLibConst WORDSIZE TARGET_ZCODE TARGET_GLULX 159 syn keyword informLibConst LIBRARY_PARSER LIBRARY_VERBLIB LIBRARY_GRAMMAR 160 syn keyword informLibConst LIBRARY_ENGLISH NO_SCORE START_MOVE 161 syn keyword informLibConst CLR_DEFAULT CLR_BLACK CLR_RED CLR_GREEN 162 syn keyword informLibConst CLR_YELLOW CLR_BLUE CLR_MAGENTA CLR_CYAN 163 syn keyword informLibConst CLR_WHITE CLR_PURPLE CLR_AZURE 164 syn keyword informLibConst WIN_ALL WIN_MAIN WIN_STATUS 165 endif 166 endif 167 168 " Now the case sensitive stuff. 169 170 syntax case match 171 172 syn keyword informSysFunc child children elder indirect parent random 173 syn keyword informSysFunc sibling younger youngest metaclass 174 if exists("inform_highlight_glulx") 175 syn keyword informSysFunc glk 176 endif 177 178 syn keyword informSysConst adjectives_table actions_table classes_table 179 syn keyword informSysConst identifiers_table preactions_table version_number 180 syn keyword informSysConst largest_object strings_offset code_offset 181 syn keyword informSysConst dict_par1 dict_par2 dict_par3 182 syn keyword informSysConst actual_largest_object static_memory_offset 183 syn keyword informSysConst array_names_offset readable_memory_offset 184 syn keyword informSysConst cpv__start cpv__end ipv__start ipv__end 185 syn keyword informSysConst array__start array__end lowest_attribute_number 186 syn keyword informSysConst highest_attribute_number attribute_names_array 187 syn keyword informSysConst lowest_property_number highest_property_number 188 syn keyword informSysConst property_names_array lowest_action_number 189 syn keyword informSysConst highest_action_number action_names_array 190 syn keyword informSysConst lowest_fake_action_number highest_fake_action_number 191 syn keyword informSysConst fake_action_names_array lowest_routine_number 192 syn keyword informSysConst highest_routine_number routines_array 193 syn keyword informSysConst routine_names_array routine_flags_array 194 syn keyword informSysConst lowest_global_number highest_global_number globals_array 195 syn keyword informSysConst global_names_array global_flags_array 196 syn keyword informSysConst lowest_array_number highest_array_number arrays_array 197 syn keyword informSysConst array_names_array array_flags_array lowest_constant_number 198 syn keyword informSysConst highest_constant_number constants_array constant_names_array 199 syn keyword informSysConst lowest_class_number highest_class_number class_objects_array 200 syn keyword informSysConst lowest_object_number highest_object_number 201 if !exists("inform_highlight_old") 202 syn keyword informSysConst sys_statusline_flag 203 endif 204 205 syn keyword informConditional default else if switch 206 207 syn keyword informRepeat break continue do for objectloop until while 208 209 syn keyword informStatement box font give inversion jump move new_line 210 syn keyword informStatement print print_ret quit read remove restore return 211 syn keyword informStatement rfalse rtrue save spaces string style 212 213 syn keyword informOperator roman reverse bold underline fixed on off to 214 syn keyword informOperator near from 215 216 syn keyword informKeyword dictionary symbols objects verbs assembly 217 syn keyword informKeyword expressions lines tokens linker on off alias long 218 syn keyword informKeyword additive score time string table 219 syn keyword informKeyword with private has class error fatalerror 220 syn keyword informKeyword warning self 221 if !exists("inform_highlight_old") 222 syn keyword informKeyword buffer 223 endif 224 225 syn keyword informMetaAttrib remaining create destroy recreate copy call 226 syn keyword informMetaAttrib print_to_array 227 228 syn keyword informPredicate has hasnt in notin ofclass or 229 syn keyword informPredicate provides 230 231 syn keyword informGrammar contained noun held multi multiheld multiexcept 232 syn keyword informGrammar contained multiinside creature special number 233 syn keyword informGrammar contained scope topic reverse meta only replace 234 syn keyword informGrammar contained first last 235 236 syn keyword informKeywordObsolete contained initial data initstr 237 238 syn keyword informTodo contained TODO 239 240 " Assembly language mnemonics must be preceded by a '@'. 241 242 syn match informAsmContainer "@\s*\k*" contains=informAsm,informAsmObsolete 243 244 if exists("inform_highlight_glulx") 245 syn keyword informAsm contained nop add sub mul div mod neg bitand bitor 246 syn keyword informAsm contained bitxor bitnot shiftl sshiftr ushiftr jump jz 247 syn keyword informAsm contained jnz jeq jne jlt jge jgt jle jltu jgeu jgtu 248 syn keyword informAsm contained jleu call return catch throw tailcall copy 249 syn keyword informAsm contained copys copyb sexs sexb aload aloads aloadb 250 syn keyword informAsm contained aloadbit astore astores astoreb astorebit 251 syn keyword informAsm contained stkcount stkpeek stkswap stkroll stkcopy 252 syn keyword informAsm contained streamchar streamnum streamstr gestalt 253 syn keyword informAsm contained debugtrap getmemsize setmemsize jumpabs 254 syn keyword informAsm contained random setrandom quit verify restart save 255 syn keyword informAsm contained restore saveundo restoreundo protect glk 256 syn keyword informAsm contained getstringtbl setstringtbl getiosys setiosys 257 syn keyword informAsm contained linearsearch binarysearch linkedsearch 258 syn keyword informAsm contained callf callfi callfii callfiii 259 else 260 syn keyword informAsm contained je jl jg dec_chk inc_chk jin test or and 261 syn keyword informAsm contained test_attr set_attr clear_attr store 262 syn keyword informAsm contained insert_obj loadw loadb get_prop 263 syn keyword informAsm contained get_prop_addr get_next_prop add sub mul div 264 syn keyword informAsm contained mod call storew storeb put_prop sread 265 syn keyword informAsm contained print_num random push pull 266 syn keyword informAsm contained split_window set_window output_stream 267 syn keyword informAsm contained input_stream sound_effect jz get_sibling 268 syn keyword informAsm contained get_child get_parent get_prop_len inc dec 269 syn keyword informAsm contained remove_obj print_obj ret jump 270 syn keyword informAsm contained load not rtrue rfalse print 271 syn keyword informAsm contained print_ret nop save restore restart 272 syn keyword informAsm contained ret_popped pop quit new_line show_status 273 syn keyword informAsm contained verify call_2s call_vs aread call_vs2 274 syn keyword informAsm contained erase_window erase_line set_cursor get_cursor 275 syn keyword informAsm contained set_text_style buffer_mode read_char 276 syn keyword informAsm contained scan_table call_1s call_2n set_colour throw 277 syn keyword informAsm contained call_vn call_vn2 tokenise encode_text 278 syn keyword informAsm contained copy_table print_table check_arg_count 279 syn keyword informAsm contained call_1n catch piracy log_shift art_shift 280 syn keyword informAsm contained set_font save_undo restore_undo draw_picture 281 syn keyword informAsm contained picture_data erase_picture set_margins 282 syn keyword informAsm contained move_window window_size window_style 283 syn keyword informAsm contained get_wind_prop scroll_window pop_stack 284 syn keyword informAsm contained read_mouse mouse_window push_stack 285 syn keyword informAsm contained put_wind_prop print_form make_menu 286 syn keyword informAsm contained picture_table 287 if !exists("inform_highlight_old") 288 syn keyword informAsm contained check_unicode print_unicode 289 endif 290 syn keyword informAsmObsolete contained print_paddr print_addr print_char 291 endif 292 293 " Handling for different versions of VIM. 294 295 setlocal iskeyword+=$ 296 command -nargs=+ SynDisplay syntax <args> display 297 298 " Grammar sections. 299 300 syn region informGrammarSection matchgroup=informGramPreProc start="\<Verb\|Extend\>" skip=+".*"+ end=";"he=e-1 contains=ALLBUT,informAsm 301 302 " Special character forms. 303 304 SynDisplay match informBadAccent contained "@[^{[:digit:]]\D" 305 SynDisplay match informBadAccent contained "@{[^}]*}" 306 SynDisplay match informAccent contained "@:[aouAOUeiyEI]" 307 SynDisplay match informAccent contained "@'[aeiouyAEIOUY]" 308 SynDisplay match informAccent contained "@`[aeiouAEIOU]" 309 SynDisplay match informAccent contained "@\^[aeiouAEIOU]" 310 SynDisplay match informAccent contained "@\~[anoANO]" 311 SynDisplay match informAccent contained "@/[oO]" 312 SynDisplay match informAccent contained "@ss\|@<<\|@>>\|@oa\|@oA\|@ae\|@AE\|@cc\|@cC" 313 SynDisplay match informAccent contained "@th\|@et\|@Th\|@Et\|@LL\|@oe\|@OE\|@!!\|@??" 314 SynDisplay match informAccent contained "@{\x\{1,4}}" 315 SynDisplay match informBadStrUnicode contained "@@\D" 316 SynDisplay match informStringUnicode contained "@@\d\+" 317 SynDisplay match informStringCode contained "@\d\d" 318 319 " String and Character constants. Ordering is important here. 320 syn region informString start=+"+ skip=+\\\\+ end=+"+ contains=informAccent,informStringUnicode,informStringCode,informBadAccent,informBadStrUnicode 321 syn region informDictString start="'" end="'" contains=informAccent,informBadAccent 322 SynDisplay match informBadDictString "''" 323 SynDisplay match informDictString "'''" 324 325 " Integer numbers: decimal, hexadecimal and binary. 326 SynDisplay match informNumber "\<\d\+\>" 327 SynDisplay match informNumber "\<\$\x\+\>" 328 SynDisplay match informNumber "\<\$\$[01]\+\>" 329 330 " Comments 331 syn match informComment "!.*" contains=informTodo 332 333 " Syncronization 334 syn sync match informSyncStringEnd grouphere NONE /"[;,]\s*$/ 335 syn sync match informSyncRoutineEnd grouphere NONE /][;,]\s*$/ 336 syn sync match informSyncCommentEnd grouphere NONE /^\s*!.*$/ 337 syn sync match informSyncRoutine groupthere informGrammarSection "\<Verb\|Extend\>" 338 syn sync maxlines=500 339 340 delcommand SynDisplay 341 342 " The default highlighting. 343 344 hi def link informDefine Define 345 hi def link informType Type 346 hi def link informInclude Include 347 hi def link informPreCondit PreCondit 348 hi def link informPreProc PreProc 349 hi def link informGramPreProc PreProc 350 hi def link informAsm Special 351 if !exists("inform_suppress_obsolete") 352 hi def link informAsmObsolete informError 353 hi def link informKeywordObsolete informError 354 else 355 hi def link informAsmObsolete Special 356 hi def link informKeywordObsolete Keyword 357 endif 358 hi def link informPredicate Operator 359 hi def link informSysFunc Identifier 360 hi def link informSysConst Identifier 361 hi def link informConditional Conditional 362 hi def link informRepeat Repeat 363 hi def link informStatement Statement 364 hi def link informOperator Operator 365 hi def link informKeyword Keyword 366 hi def link informGrammar Keyword 367 hi def link informDictString String 368 hi def link informNumber Number 369 hi def link informError Error 370 hi def link informString String 371 hi def link informComment Comment 372 hi def link informAccent Special 373 hi def link informStringUnicode Special 374 hi def link informStringCode Special 375 hi def link informTodo Todo 376 if !exists("inform_highlight_simple") 377 hi def link informLibAttrib Identifier 378 hi def link informLibProp Identifier 379 hi def link informLibObj Identifier 380 hi def link informLibRoutine Identifier 381 hi def link informLibVariable Identifier 382 hi def link informLibConst Identifier 383 hi def link informLibAction Identifier 384 endif 385 hi def link informBadDictString informError 386 hi def link informBadAccent informError 387 hi def link informBadStrUnicode informError 388 389 390 let b:current_syntax = "inform" 391 392 " vim: ts=8