home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / syntax / inform.vim < prev    next >
Encoding:
Text File  |  2010-08-14  |  19.7 KB  |  409 lines

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