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 / syntax / logtalk.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  15.9 KB  |  451 lines

  1. " Vim syntax file
  2. "
  3. " Language:    Logtalk
  4. " Maintainer:    Paulo Moura <pmoura@logtalk.org>
  5. " Last Change:    February 4, 2012
  6.  
  7.  
  8. " Quit when a syntax file was already loaded:
  9.  
  10. if version < 600
  11.     syntax clear
  12. elseif exists("b:current_syntax")
  13.     finish
  14. endif
  15.  
  16. let s:cpo_save = &cpo
  17. set cpo&vim
  18.  
  19. " Logtalk is case sensitive:
  20.  
  21. syn case match
  22.  
  23.  
  24. " Logtalk variables
  25.  
  26. syn match   logtalkVariable        "\<\(\u\|_\)\(\w\)*\>"
  27.  
  28.  
  29. " Logtalk clause functor
  30.  
  31. syn match    logtalkOperator        ":-"
  32.  
  33.  
  34. " Logtalk quoted atoms and strings
  35.  
  36. syn region    logtalkString        start=+"+    skip=+\\"+    end=+"+
  37. syn region    logtalkAtom        start=+'+    skip=+\\'+    end=+'+        contains=logtalkEscapeSequence
  38.  
  39. syn match    logtalkEscapeSequence    contained    "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)"
  40.  
  41.  
  42. " Logtalk message sending operators
  43.  
  44. syn match    logtalkOperator        "::"
  45. syn match    logtalkOperator        ":"
  46. syn match    logtalkOperator        "\^\^"
  47.  
  48.  
  49. " Logtalk external call
  50.  
  51. syn region    logtalkExtCall        matchgroup=logtalkExtCallTag        start="{"        matchgroup=logtalkExtCallTag        end="}"        contains=ALL
  52.  
  53.  
  54. " Logtalk opening entity directives
  55.  
  56. syn region    logtalkOpenEntityDir    matchgroup=logtalkOpenEntityDirTag    start=":- object("    matchgroup=logtalkOpenEntityDirTag    end=")\."    contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
  57. syn region    logtalkOpenEntityDir    matchgroup=logtalkOpenEntityDirTag    start=":- protocol("    matchgroup=logtalkOpenEntityDirTag    end=")\."    contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
  58. syn region    logtalkOpenEntityDir    matchgroup=logtalkOpenEntityDirTag    start=":- category("    matchgroup=logtalkOpenEntityDirTag    end=")\."    contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
  59.  
  60.  
  61. " Logtalk closing entity directives
  62.  
  63. syn match    logtalkCloseEntityDir    ":- end_object\."
  64. syn match    logtalkCloseEntityDir    ":- end_protocol\."
  65. syn match    logtalkCloseEntityDir    ":- end_category\."
  66.  
  67.  
  68. " Logtalk entity relations
  69.  
  70. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="instantiates("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom    contained
  71. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="specializes("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom    contained
  72. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="extends("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom    contained
  73. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="imports("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom    contained
  74. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="implements("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom    contained
  75. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="complements("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom    contained
  76.  
  77.  
  78. " Logtalk directives
  79.  
  80. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- if("            matchgroup=logtalkDirTag    end=")\."    contains=ALL
  81. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- elif("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  82. syn match    logtalkDirTag        ":- else\."
  83. syn match    logtalkDirTag        ":- endif\."
  84. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- alias("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  85. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- calls("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  86. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- coinductive("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  87. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- encoding("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  88. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- initialization("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  89. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- info("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  90. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- mode("        matchgroup=logtalkDirTag    end=")\."    contains=logtalkOperator, logtalkAtom
  91. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- dynamic("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  92. syn match    logtalkDirTag        ":- dynamic\."
  93. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- discontiguous("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  94. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- multifile("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  95. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- public("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  96. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- protected("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  97. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- private("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  98. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- meta_predicate("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  99. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- meta_non_terminal("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  100. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- op("            matchgroup=logtalkDirTag    end=")\."    contains=ALL
  101. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- set_logtalk_flag("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  102. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- synchronized("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  103. syn match    logtalkDirTag        ":- synchronized\."
  104. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- uses("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  105. syn match    logtalkDirTag        ":- threaded\."
  106.  
  107.  
  108. " Prolog directives
  109.  
  110. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- ensure_loaded("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  111. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- include("         matchgroup=logtalkDirTag    end=")\."    contains=ALL
  112. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- set_prolog_flag("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  113.  
  114.  
  115. " Module directives
  116.  
  117. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- module("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  118. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- export("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  119. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- reexport("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  120. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- use_module("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  121.  
  122.  
  123. " Logtalk built-in predicates
  124.  
  125. syn match    logtalkBuiltIn        "\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze("
  126.  
  127. syn match    logtalkBuiltIn        "\<\(object\|protocol\|category\)_property\ze("
  128.  
  129. syn match    logtalkBuiltIn        "\<co\(mplements_object\|nforms_to_protocol\)\ze("
  130. syn match    logtalkBuiltIn        "\<extends_\(object\|protocol\|category\)\ze("
  131. syn match    logtalkBuiltIn        "\<imp\(orts_category\|lements_protocol\)\ze("
  132. syn match    logtalkBuiltIn        "\<\(instantiat\|specializ\)es_class\ze("
  133.  
  134. syn match    logtalkBuiltIn        "\<\(abolish\|define\)_events\ze("
  135. syn match    logtalkBuiltIn        "\<current_event\ze("
  136.  
  137. syn match    logtalkBuiltIn        "\<\(curren\|se\)t_logtalk_flag\ze("
  138.  
  139. syn match    logtalkBuiltIn        "\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\)\ze("
  140.  
  141. syn match    logtalkBuiltIn        "\<\(for\|retract\)all\ze("
  142.  
  143. syn match    logtalkBuiltIn        "\<threaded\(_\(call\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("
  144.  
  145.  
  146. " Logtalk built-in methods
  147.  
  148. syn match    logtalkBuiltInMethod    "\<parameter\ze("
  149. syn match    logtalkBuiltInMethod    "\<se\(lf\|nder\)\ze("
  150. syn match    logtalkBuiltInMethod    "\<this\ze("
  151.  
  152. syn match    logtalkBuiltInMethod    "\<current_predicate\ze("
  153. syn match    logtalkBuiltInMethod    "\<predicate_property\ze("
  154.  
  155. syn match    logtalkBuiltInMethod    "\<a\(bolish\|ssert\(a\|z\)\)\ze("
  156. syn match    logtalkBuiltInMethod    "\<clause\ze("
  157. syn match    logtalkBuiltInMethod    "\<retract\(all\)\?\ze("
  158.  
  159. syn match    logtalkBuiltInMethod    "\<\(bag\|set\)of\ze("
  160. syn match    logtalkBuiltInMethod    "\<f\(ind\|or\)all\ze("
  161.  
  162. syn match    logtalkBuiltInMethod    "\<before\ze("
  163. syn match    logtalkBuiltInMethod    "\<after\ze("
  164.  
  165. syn match    logtalkBuiltInMethod    "\<expand_\(goal\|term\)\ze("
  166. syn match    logtalkBuiltInMethod    "\<\(goal\|term\)_expansion\ze("
  167. syn match    logtalkBuiltInMethod    "\<phrase\ze("
  168.  
  169.  
  170. " Mode operators
  171.  
  172. syn match    logtalkOperator        "?"
  173. syn match    logtalkOperator        "@"
  174.  
  175.  
  176. " Control constructs
  177.  
  178. syn match    logtalkKeyword        "\<true\>"
  179. syn match    logtalkKeyword        "\<fail\>"
  180. syn match    logtalkKeyword        "\<ca\(ll\|tch\)\ze("
  181. syn match    logtalkOperator        "!"
  182. " syn match    logtalkOperator        ","
  183. syn match    logtalkOperator        ";"
  184. syn match    logtalkOperator        "-->"
  185. syn match    logtalkOperator        "->"
  186. syn match    logtalkKeyword        "\<throw\ze("
  187.  
  188.  
  189. " Term unification
  190.  
  191. syn match    logtalkOperator        "="
  192. syn match    logtalkKeyword        "\<unify_with_occurs_check\ze("
  193. syn match    logtalkOperator        "\\="
  194.  
  195.  
  196. " Term testing
  197.  
  198. syn match    logtalkKeyword        "\<var\ze("
  199. syn match    logtalkKeyword        "\<atom\(ic\)\?\ze("
  200. syn match    logtalkKeyword        "\<integer\ze("
  201. syn match    logtalkKeyword        "\<float\ze("
  202. syn match    logtalkKeyword        "\<c\(allable\|ompound\)\ze("
  203. syn match    logtalkKeyword        "\<n\(onvar\|umber\)\ze("
  204. syn match    logtalkKeyword        "\<ground\ze("
  205.  
  206.  
  207. " Term comparison
  208.  
  209. syn match    logtalkKeyword        "\<compare\ze("
  210. syn match    logtalkOperator        "@=<"
  211. syn match    logtalkOperator        "=="
  212. syn match    logtalkOperator        "\\=="
  213. syn match    logtalkOperator        "@<"
  214. syn match    logtalkOperator        "@>"
  215. syn match    logtalkOperator        "@>="
  216.  
  217.  
  218. " Term creation and decomposition
  219.  
  220. syn match    logtalkKeyword        "\<functor\ze("
  221. syn match    logtalkKeyword        "\<arg\ze("
  222. syn match    logtalkOperator        "=\.\."
  223. syn match    logtalkKeyword        "\<copy_term\ze("
  224. syn match    logtalkKeyword        "\<numbervars\ze("
  225.  
  226.  
  227. " Arithemtic evaluation
  228.  
  229. syn match    logtalkOperator        "\<is\>"
  230.  
  231.  
  232. " Arithemtic comparison
  233.  
  234. syn match    logtalkOperator        "=:="
  235. syn match    logtalkOperator        "=\\="
  236. syn match    logtalkOperator        "<"
  237. syn match    logtalkOperator        "=<"
  238. syn match    logtalkOperator        ">"
  239. syn match    logtalkOperator        ">="
  240.  
  241.  
  242. " Stream selection and control
  243.  
  244. syn match    logtalkKeyword        "\<\(curren\|se\)t_\(in\|out\)put\ze("
  245. syn match    logtalkKeyword        "\<open\ze("
  246. syn match    logtalkKeyword        "\<close\ze("
  247. syn match    logtalkKeyword        "\<flush_output\ze("
  248. syn match    logtalkKeyword        "\<flush_output\>"
  249. syn match    logtalkKeyword        "\<stream_property\ze("
  250. syn match    logtalkKeyword        "\<at_end_of_stream\ze("
  251. syn match    logtalkKeyword        "\<at_end_of_stream\>"
  252. syn match    logtalkKeyword        "\<set_stream_position\ze("
  253.  
  254.  
  255. " Character and byte input/output
  256.  
  257. syn match    logtalkKeyword        "\<\(get\|p\(eek\|ut\)\)_\(c\(har\|ode\)\|byte\)\ze("
  258. syn match    logtalkKeyword        "\<nl\ze("
  259. syn match    logtalkKeyword        "\<nl\>"
  260.  
  261.  
  262. " Term input/output
  263.  
  264. syn match    logtalkKeyword        "\<read\(_term\)\?\ze("
  265. syn match    logtalkKeyword        "\<write\(q\|_\(canonical\|term\)\)\?\ze("
  266. syn match    logtalkKeyword        "\<\(current_\)\?op\ze("
  267. syn match    logtalkKeyword        "\<\(current_\)\?char_conversion\ze("
  268.  
  269.  
  270. " Logic and control
  271.  
  272. syn match    logtalkOperator        "\\+"
  273. syn match    logtalkKeyword        "\<ignore\ze("
  274. syn match    logtalkKeyword        "\<once\ze("
  275. syn match    logtalkKeyword        "\<repeat\>"
  276.  
  277.  
  278. " Atomic term processing
  279.  
  280. syn match    logtalkKeyword        "\<atom_\(length\|c\(hars\|o\(ncat\|des\)\)\)\ze("
  281. syn match    logtalkKeyword        "\<sub_atom\ze("
  282. syn match    logtalkKeyword        "\<char_code\ze("
  283. syn match    logtalkKeyword        "\<number_c\(har\|ode\)s\ze("
  284.  
  285.  
  286. " Implementation defined hooks functions
  287.  
  288. syn match    logtalkKeyword        "\<\(curren\|se\)t_prolog_flag\ze("
  289. syn match    logtalkKeyword        "\<halt\ze("
  290. syn match    logtalkKeyword        "\<halt\>"
  291.  
  292.  
  293. " Sorting
  294.  
  295. syn match    logtalkKeyword        "\<\(key\)\?sort\ze("
  296.  
  297.  
  298. " Evaluable functors
  299.  
  300. syn match    logtalkOperator        "+"
  301. syn match    logtalkOperator        "-"
  302. syn match    logtalkOperator        "\*"
  303. syn match    logtalkOperator        "//"
  304. syn match    logtalkOperator        "/"
  305. syn match    logtalkKeyword        "\<r\(ound\|em\)\ze("
  306. syn match    logtalkKeyword        "\<e\>"
  307. syn match    logtalkKeyword        "\<pi\>"
  308. syn match    logtalkKeyword        "\<rem\>"
  309. syn match    logtalkKeyword        "\<mod\ze("
  310. syn match    logtalkKeyword        "\<mod\>"
  311. syn match    logtalkKeyword        "\<abs\ze("
  312. syn match    logtalkKeyword        "\<sign\ze("
  313. syn match    logtalkKeyword        "\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze("
  314. syn match    logtalkKeyword        "\<truncate\ze("
  315. syn match    logtalkKeyword        "\<ceiling\ze("
  316.  
  317.  
  318. " Other arithemtic functors
  319.  
  320. syn match    logtalkOperator        "\*\*"
  321. syn match    logtalkKeyword        "\<s\(in\|qrt\)\ze("
  322. syn match    logtalkKeyword        "\<cos\ze("
  323. syn match    logtalkKeyword        "\<atan\ze("
  324. syn match    logtalkKeyword        "\<exp\ze("
  325. syn match    logtalkKeyword        "\<log\ze("
  326.  
  327.  
  328. " Bitwise functors
  329.  
  330. syn match    logtalkOperator        ">>"
  331. syn match    logtalkOperator        "<<"
  332. syn match    logtalkOperator        "/\\"
  333. syn match    logtalkOperator        "\\/"
  334. syn match    logtalkOperator        "\\"
  335.  
  336.  
  337. " Logtalk list operator
  338.  
  339. syn match    logtalkOperator        "|"
  340.  
  341.  
  342. " Logtalk existential quantifier operator
  343.  
  344. syn match    logtalkOperator        "\^"
  345.  
  346.  
  347. " Logtalk numbers 
  348.  
  349. syn match    logtalkNumber        "\<\d\+\>"
  350. syn match    logtalkNumber        "\<\d\+\.\d\+\>"
  351. syn match    logtalkNumber        "\<\d\+[eE][-+]\=\d\+\>"
  352. syn match    logtalkNumber        "\<\d\+\.\d\+[eE][-+]\=\d\+\>"
  353. syn match    logtalkNumber        "\<0'.\|0''\|0'\"\>"
  354. syn match    logtalkNumber        "\<0b[0-1]\+\>"
  355. syn match    logtalkNumber        "\<0o\o\+\>"
  356. syn match    logtalkNumber        "\<0x\x\+\>"
  357.  
  358.  
  359. " Logtalk end-of-clause
  360.  
  361. syn match    logtalkOperator        "\."
  362.  
  363.  
  364. " Logtalk comments
  365.  
  366. syn region    logtalkBlockComment    start="/\*"    end="\*/"    fold
  367. syn match    logtalkLineComment    "%.*"
  368.  
  369. syn cluster    logtalkComment        contains=logtalkBlockComment,logtalkLineComment
  370.  
  371.  
  372. " Logtalk conditional compilation folding
  373.  
  374. syn region logtalkIfContainer transparent keepend extend start=":- if(" end=":- endif\." containedin=ALLBUT,@logtalkComment contains=NONE
  375. syn region logtalkIf transparent fold keepend start=":- if(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
  376. syn region logtalkElseIf transparent fold keepend start=":- elif(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
  377. syn region logtalkElse transparent fold keepend start=":- else\." end=":- endif\." contained containedin=logtalkIfContainer contains=TOP
  378.  
  379.  
  380.  
  381. " Logtalk entity folding
  382.  
  383. syn region logtalkEntity transparent fold keepend start=":- object(" end=":- end_object\." contains=ALL
  384. syn region logtalkEntity transparent fold keepend start=":- protocol(" end=":- end_protocol\." contains=ALL
  385. syn region logtalkEntity transparent fold keepend start=":- category(" end=":- end_category\." contains=ALL
  386.  
  387.  
  388. syn sync ccomment logtalkBlockComment maxlines=50
  389.  
  390.  
  391. " Define the default highlighting.
  392. " For version 5.7 and earlier: only when not done already
  393. " For version 5.8 and later: only when an item doesn't have highlighting yet
  394.  
  395. if version >= 508 || !exists("did_logtalk_syn_inits")
  396.     if version < 508
  397.         let did_logtalk_syn_inits = 1
  398.         command -nargs=+ HiLink hi link <args>
  399.     else
  400.         command -nargs=+ HiLink hi def link <args>
  401.     endif
  402.  
  403.     HiLink    logtalkBlockComment    Comment
  404.     HiLink    logtalkLineComment    Comment
  405.  
  406.     HiLink    logtalkOpenEntityDir    Normal
  407.     HiLink    logtalkOpenEntityDirTag    PreProc
  408.  
  409.     HiLink    logtalkIfContainer    PreProc
  410.     HiLink    logtalkIf        PreProc
  411.     HiLink    logtalkElseIf        PreProc
  412.     HiLink    logtalkElse        PreProc
  413.  
  414.     HiLink    logtalkEntity        Normal
  415.  
  416.     HiLink    logtalkEntityRel    Normal
  417.     HiLink    logtalkEntityRelTag    PreProc
  418.  
  419.     HiLink    logtalkCloseEntityDir    PreProc
  420.  
  421.     HiLink    logtalkDir        Normal
  422.     HiLink    logtalkDirTag        PreProc
  423.  
  424.     HiLink    logtalkAtom        String
  425.     HiLink    logtalkString        String
  426.     HiLink    logtalkEscapeSequence    SpecialChar
  427.  
  428.     HiLink    logtalkNumber        Number
  429.  
  430.     HiLink    logtalkKeyword        Keyword
  431.  
  432.     HiLink    logtalkBuiltIn        Keyword
  433.     HiLink    logtalkBuiltInMethod    Keyword
  434.  
  435.     HiLink    logtalkOperator        Operator
  436.  
  437.     HiLink    logtalkExtCall        Normal
  438.     HiLink    logtalkExtCallTag    Operator
  439.  
  440.     HiLink    logtalkVariable        Identifier
  441.  
  442.     delcommand HiLink
  443.  
  444. endif
  445.  
  446.  
  447. let b:current_syntax = "logtalk"
  448.  
  449. let &cpo = s:cpo_save
  450. unlet s:cpo_save
  451.