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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
|
" Vim syntax file
" Language: Inform
" Maintainer: Stephen Thomas (stephent@isltd.insignia.com)
" Last change: 1998 May 27th
" Remove any old syntax stuff hanging around
syn clear
" A bunch of useful Inform keywords. First, case insensitive stuff
syn case ignore
syn keyword informDefine Constant
syn keyword informType Array Attribute Class Global Nearby
syn keyword informType Object Property String Routine
syn keyword informInclude Import Include Link Replace System_file
syn keyword informPreCondit End Endif Ifdef Ifndef Iftrue Iffalse Ifv3 Ifv5
syn keyword informPreProc Abbreviate Default Fake_action Lowstring
syn keyword informPreProc Message Release Serial Statusline Stub Switches
syn keyword informPreProc Trace Zcharacter
syn keyword informGramPreProc contained Verb Extend
" Now the case sensitive stuff.
syntax case match
" Assembly language mnemonics must be preceded by a '@'.
syn match informAsm "@\s*\(je\|jl\|jg\|dec_chk\|inc_chk\|jin\|test\|or\|and\)\>"
syn match informAsm "@\s*\(test_attr\|set_attr\|clear_attr\|store\)\>"
syn match informAsm "@\s*\(insert_obj\|loadw\|loadb\|get_prop\)\>"
syn match informAsm "@\s*\(get_prop_addr\|get_next_prop\|add\|sub\|mul\|div\)\>"
syn match informAsm "@\s*\(mod\|call\|storew\|storeb\|put_prop\|sread\)\>"
syn match informAsm "@\s*\(print_char\|print_num\|random\|push\|pull\)\>"
syn match informAsm "@\s*\(split_window\|set_window\|output_stream\)\>"
syn match informAsm "@\s*\(input_stream\|sound_effect\|jz\|get_sibling\)\>"
syn match informAsm "@\s*\(get_child\|get_parent\|get_prop_len\|inc\|dec\)\>"
syn match informAsm "@\s*\(print_addr\|remove_obj\|print_obj\|ret\|jump\)\>"
syn match informAsm "@\s*\(print_paddr\|load\|not\|rtrue\|rfalse\|print\)\>"
syn match informAsm "@\s*\(print_ret\|nop\|save\|restore\|restart\)\>"
syn match informAsm "@\s*\(ret_popped\|pop\|quit\|new_line\|show_status\)\>"
syn match informAsm "@\s*\(verify\|call_2s\|call_vs\|aread\|call_vs2\)\>"
syn match informAsm "@\s*\(erase_window\|erase_line\|set_cursor\|get_cursor\)\>"
syn match informAsm "@\s*\(set_text_style\|buffer_mode\|read_char\)\>"
syn match informAsm "@\s*\(scan_table\|call_1s\|call_2n\|set_colour\|throw\)\>"
syn match informAsm "@\s*\(call_vn\|call_vn2\|tokenise\|encode_text\)\>"
syn match informAsm "@\s*\(copy_table\|print_table\|check_arg_count\)\>"
syn match informAsm "@\s*\(call_1n\|catch\|piracy\|log_shift\|art_shift\)\>"
syn match informAsm "@\s*\(set_font\|save_undo\|restore_undo\|draw_picture\)\>"
syn match informAsm "@\s*\(picture_data\|erase_picture\|set_margins\)\>"
syn match informArm "@\s*\(move_window\|window_size\|window_style\)\>"
syn match informArm "@\s*\(get_wind_prop\|scroll_window\|pop_stack\)\>"
syn match informAsm "@\s*\(read_mouse\|mouse_window\|push_stack\)\>"
syn match informArm "@\s*\(put_wind_prop\|print_form\|make_menu\)\>"
syn match informArm "@\s*picture_table\>"
syn keyword informSysFunc child children elder indirect parent random
syn keyword informSysFunc sibling younger youngest metaclass
syn keyword informSysConst adjectives_table actions_table classes_table
syn keyword informSysConst identifiers_table preactions_table version_number
syn keyword informSysConst largest_object strings_offset code_offset
syn keyword informSysConst dict_par1 dict_par2 dict_par3
syn keyword informConditional default else if switch
syn keyword informRepeat break continue do for objectloop until while
syn keyword informStatement box font give inversion jump move new_line
syn keyword informStatement print print_ret quit read remove restore return
syn keyword informStatement rfalse rtrue save spaces string style
syn keyword informOperator roman reverse bold underline fixed on off to
syn keyword informOperator near from
syn keyword informKeyword dictionary symbols objects verbs assembly
syn keyword informKeyword expressions lines tokens linker on off alias long
syn keyword informKeyword additive score time string table data initial
syn keyword informKeyword initstr with private has class error fatalerror
syn keyword informKeyword warning self
syn keyword informMetaAttrib remaining create destroy recreate copy call
if !exists("inform_highlight_simple")
syn keyword informLibAttrib absent animate clothing concealed container
syn keyword informLibAttrib door edible enterable female general light
syn keyword informLibAttrib lockable locked male moved neuter on open
syn keyword informLibAttrib openable pluralname proper scenery scored
syn keyword informLibAttrib static supporter switchable talkable
syn keyword informLibAttrib visited workflag worn
syn match informLibAttrib "\<transparent\>"
syn keyword informLibProp e_to se_to s_to sw_to w_to nw_to n_to ne_to
syn keyword informLibProp u_to d_to in_to out_to before after life
syn keyword informLibProp door_to with_key door_dir invent plural
syn keyword informLibProp add_to_scope list_together react_before
syn keyword informLibProp react_after grammar orders initial when_open
syn keyword informLibProp when_closed when_on when_off description
syn keyword informLibProp describe article cant_go found_in time_left
syn keyword informLibProp number time_out daemon each_turn capacity
syn keyword informLibProp name short_name short_name_indef parse_name
syn keyword informLibProp articles inside_description
syn keyword informLibObj e_obj se_obj s_obj sw_obj w_obj nw_obj n_obj
syn keyword informLibObj ne_obj u_obj d_obj in_obj out_obj compass
syn keyword informLibObj thedark selfobj player location second actor
syn keyword informLibObj noun
syn keyword informLibRoutine Achieved AddToScope AllowPushDir CDefArt
syn keyword informLibRoutine ChangeDefault ChangePlayer DefArt DoMenu
syn keyword informLibRoutine EnglishNumber HasLightSource InDefArt
syn keyword informLibRoutine Locale LoopOverScope NextWord
syn keyword informLibRoutine NextWordStopped NounDomain OffersLight
syn keyword informLibRoutine PlaceInScope PlayerTo PrintShortName
syn keyword informLibRoutine ScopeWithin SetTime StartDaemon StartTimer
syn keyword informLibRoutine StopDaemon StopTimer TestScope TryNumber
syn keyword informLibRoutine UnsignedCompare WordAddress WordLength
syn keyword informLibRoutine WriteListFrom YesOrNo ZRegion RunRoutines
syn keyword informLibRoutine AfterLife AfterPrompt Amusing BeforeParsing
syn keyword informLibRoutine ChooseObjects DarkToDark DeathMessage
syn keyword informLibRoutine GamePostRoutine GamePreRoutine Initialise
syn keyword informLibRoutine InScope LookRoutine NewRoom ParseNoun
syn keyword informLibRoutine ParseNumber ParserError PrintRank PrintVerb
syn keyword informLibRoutine PrintTaskName TimePasses UnknownVerb
syn keyword informLibAction1a Quit Restart Restore Verify Save ScriptOn
syn keyword informLibAction1a ScriptOff Pronouns Score Fullscore LMode1
syn keyword informLibAction1a LMode2 LMode3 NotifyOn NotifyOff Version
syn keyword informLibAction1a Places Objects
hi link informLibAction1a informLibAction
syn keyword informLibAction1b TraceOn TraceOff TraceLevel ActionsOn
syn keyword informLibAction1b ActionsOff RoutinesOn RoutinesOff TimersOn
syn keyword informLibAction1b TimersOff CommandsOn CommandsOff
syn keyword informLibAction1b CommandsRead Predictable XPurloin XAbstract
syn keyword informLibAction1b XTree Scope Goto Gonear
hi link informLibAction1b informLibAction
syn keyword informLibAction2 Inv InvTall InvWide Take Drop Remove PutOn
syn keyword informLibAction2 Insert Transfer Empty Enter Exit GetOff Go
syn keyword informLibAction2 Goin Look Examine Search Give Show Unlock
syn keyword informLibAction2 Lock SwitchOn SwitchOff Open Close Disrobe
syn keyword informLibAction2 Wear Eat
hi link informLibAction2 informLibAction
syn keyword informLibAction3 Yes No Burn Pray Wake WakeOther Consult Kiss
syn keyword informLibAction3 Think Smell Listen Taste Touch Dig Cut Jump
syn keyword informLibAction3 JumpOver Tie Drink Fill Sorry Strong Mild
syn keyword informLibAction3 Attack Swim Swing Blow Rub Set SetTo
syn keyword informLibAction3 WaveHands Wave Pull Push PushDir Turn
syn keyword informLibAction3 Squeeze LookUnder ThrowAt Tell Answer Buy
syn keyword informLibAction3 Ask AskFor Sing Climb Wait Sleep
hi link informLibAction3 informLibAction
syn keyword informLibActionFake LetGo Receive ThrownAt Order TheSame
syn keyword informLibActionFake PluralFound Miscellany Prompt
hi link informLibActionFake informLibAction
syn keyword informLibVariable keep_silent deadflag action special_number
syn keyword informLibVariable consult_from consult_words etype verb_num
syn keyword informLibVariable verb_word the_time real_location c_style
syn keyword informLibVariable parser_one parser_two listing_together wn
syn keyword informLibVariable parser_action scope_stage scope_reason
syn keyword informLibVariable action_to_be menu_item item_name item_width
syn keyword informLibVariable lm_o lm_n inventory_style task_scores
syn keyword informLibConst AMUSING_PROVIDED DEBUG Headline MAX_CARRIED
syn keyword informLibConst MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS
syn keyword informLibConst OBJECT_SCORE ROOM_SCORE SACK_OBJECT Story
syn keyword informLibConst TASKS_PROVIDED WITHOUT_DIRECTIONS
syn keyword informLibConst NEWLINE_BIT INDENT_BIT FULLINV_BIT ENGLISH_BIT
syn keyword informLibConst RECURSE_BIT ALWAYS_BIT TERSE_BIT PARTINV_BIT
syn keyword informLibConst DEFART_BIT WORKFLAG_BIT ISARE_BIT CONCEAL_BIT
syn keyword informLibConst PARSING_REASON TALKING_REASON EACHTURN_REASON
syn keyword informLibConst REACT_BEFORE_REASON REACT_AFTER_REASON
syn keyword informLibConst TESTSCOPE_REASON LOOPOVERSCOPE_REASON
syn keyword informLibConst STUCK_PE UPTO_PE NUMBER_PE CANTSEE_PE TOOLIT_PE
syn keyword informLibConst NOTHELD_PE MULTI_PE MMULTI_PE VAGUE_PE EXCEPT_PE
syn keyword informLibConst ANIMA_PE VERB_PE SCENERY_PE ITGONE_PE
syn keyword informLibConst JUNKAFTER_PE TOOFEW_PE NOTHING_PE ASKSCOPE_PE
endif
syn keyword informPredicate contained has hasnt in notin ofclass or
syn keyword informPredicate contained provides
syn keyword informGrammar contained noun held multi multiheld multiexcept
syn keyword informGrammar contained multiinside creature special number
syn keyword informGrammar contained scope topic reverse meta only replace
syn keyword informGrammar contained first last
syn keyword informTodo contained TODO
" Grammar sections.
syn region informGrammarSection matchgroup=informGramPreProc start="\<Verb\|Extend\>" skip=+".*"+ end=";"he=e-1 contains=ALL
" Special character forms.
syn match informSpecChar contained "@[''\:c~o^]\|@@\d\d*\|@{\d*}\|@.."
" String and Character constants
syn region informString start=+"+ skip=+\\\\+ end=+"+ contains=informSpecChar
syn region informDictString start="'" skip="@'" end="'"
" Catch errors caused by wrong parenthesis
syn region informParen transparent start='(' end=')' contains=ALLBUT,informParenError,informTodo,informGrammar
syn match informParenError ")"
syn match informInParen contained "[{}]"
" Integer numbers: decimal, hexadecimal and binary.
syn match informNumber "\<\d\+\>"
syn match informNumber "\<\$[0-9A-Za-z]\+\>"
syn match informNumber "\<\$\$[01]\+\>"
" Comments
syn match informComment "!.*" contains=informTodo
" Syncronization
syn sync match informSyncRoutine grouphere NONE "\[\|\]"
syn sync match informSyncRoutine groupthere informGrammarSection "\<Verb\|Extend\>"
syn sync maxlines=500
if !exists("did_inform_syntax_inits")
let did_inform_syntax_inits = 1
" The default methods for highlighting. Can be overridden later
hi link informDefine Define
hi link informType Type
hi link informInclude Include
hi link informPreCondit PreCondit
hi link informPreProc PreProc
hi link informGramPreProc PreProc
hi link informAsm Special
hi link informPredicate Operator
hi link informSysFunc Identifier
hi link informSysConst Identifier
hi link informConditional Conditional
hi link informRepeat Repeat
hi link informStatement Statement
hi link informOperator Operator
hi link informKeyword Keyword
hi link informGrammar Keyword
hi link informDictString String
hi link informNumber Number
hi link informError Error
hi link informString String
hi link informComment Comment
hi link informSpecChar Special
hi link informTodo Todo
if !exists("inform_highlight_simple")
hi link informLibAttrib Identifier
hi link informLibProp Identifier
hi link informLibObj Identifier
hi link informLibRoutine Identifier
hi link informLibVariable Identifier
hi link informLibConst Identifier
hi link informLibAction Statement
endif
hi link informParenError informError
hi link informInParen informError
endif
let current_syntax = "inform"
" vim: ts=8
|