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 / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / logtalk.vim < prev    next >
Encoding:
Text File  |  2003-04-25  |  11.2 KB  |  401 lines

  1. " Vim syntax file
  2. "
  3. " Language:    Logtalk
  4. " Maintainer:    Paulo Moura <pmoura@noe.ubi.pt>
  5. " Last Change:    2003 Apr 25
  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.  
  17. " Logtalk is case sensitive:
  18.  
  19. syn case match
  20.  
  21.  
  22. " Logtalk clause functor
  23.  
  24. syn match    logtalkOperator        ":-"
  25.  
  26.  
  27. " Logtalk quoted atoms and strings
  28.  
  29. syn region    logtalkString        start=+"+    skip=+\\"+    end=+"+
  30. syn region    logtalkAtom        start=+'+    skip=+\\'+    end=+'+
  31.  
  32.  
  33. " Logtalk message sending operators
  34.  
  35. syn match    logtalkOperator        "::"
  36. syn match    logtalkOperator        "\^\^"
  37.  
  38.  
  39. " Logtalk external call
  40.  
  41. syn region    logtalkExtCall        matchgroup=logtalkExtCallTag        start="{"        matchgroup=logtalkExtCallTag        end="}"        contains=ALL
  42.  
  43.  
  44. " Logtalk opening entity directives
  45.  
  46. syn region    logtalkOpenEntityDir    matchgroup=logtalkOpenEntityDirTag    start=":- object("    matchgroup=logtalkOpenEntityDirTag    end=")\."    contains=ALL
  47. syn region    logtalkOpenEntityDir    matchgroup=logtalkOpenEntityDirTag    start=":- protocol("    matchgroup=logtalkOpenEntityDirTag    end=")\."    contains=ALL
  48. syn region    logtalkOpenEntityDir    matchgroup=logtalkOpenEntityDirTag    start=":- category("    matchgroup=logtalkOpenEntityDirTag    end=")\."    contains=ALL
  49.  
  50.  
  51. " Logtalk closing entity directives
  52.  
  53. syn match    logtalkCloseEntityDir    ":- end_object\."
  54. syn match    logtalkCloseEntityDir    ":- end_protocol\."
  55. syn match    logtalkCloseEntityDir    ":- end_category\."
  56.  
  57.  
  58. " Logtalk entity relations
  59.  
  60. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="instantiates("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity        contained
  61. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="specializes("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity        contained
  62. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="extends("    matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity        contained
  63. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="imports("        matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity        contained
  64. syn region    logtalkEntityRel    matchgroup=logtalkEntityRelTag    start="implements("        matchgroup=logtalkEntityRelTag    end=")"        contains=logtalkEntity        contained
  65.  
  66.  
  67. " Logtalk directives
  68.  
  69. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- initialization("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  70. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- info("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  71. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- mode("        matchgroup=logtalkDirTag    end=")\."    contains=logtalkOperator,logtalkAtom
  72. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- dynamic("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  73. syn match    logtalkDirTag        ":- dynamic\."
  74. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- discontiguous("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  75. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- public("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  76. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- protected("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  77. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- private("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  78. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- metapredicate("    matchgroup=logtalkDirTag    end=")\."    contains=ALL
  79. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- op("            matchgroup=logtalkDirTag    end=")\."    contains=ALL
  80. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- calls("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  81. syn region    logtalkDir        matchgroup=logtalkDirTag    start=":- uses("        matchgroup=logtalkDirTag    end=")\."    contains=ALL
  82.  
  83.  
  84. " Logtalk built-in predicates
  85.  
  86. syn keyword    logtalkBuiltIn        current_object
  87. syn keyword    logtalkBuiltIn        current_protocol
  88. syn keyword    logtalkBuiltIn        current_category
  89.  
  90. syn keyword    logtalkBuiltIn        create_object
  91. syn keyword    logtalkBuiltIn        create_protocol
  92. syn keyword    logtalkBuiltIn        create_category
  93.  
  94. syn keyword    logtalkBuiltIn        object_property
  95. syn keyword    logtalkBuiltIn        protocol_property
  96. syn keyword    logtalkBuiltIn        category_property
  97.  
  98. syn keyword    logtalkBuiltIn        abolish_object
  99. syn keyword    logtalkBuiltIn        abolish_protocol
  100. syn keyword    logtalkBuiltIn        abolish_category
  101.  
  102. syn keyword    logtalkBuiltIn        extends_object
  103. syn keyword    logtalkBuiltIn        extends_protocol
  104. syn keyword    logtalkBuiltIn        implements_protocol
  105. syn keyword    logtalkBuiltIn        instantiates_object
  106. syn keyword    logtalkBuiltIn        specializes_object
  107. syn keyword    logtalkBuiltIn        imports_category
  108.  
  109. syn keyword    logtalkBuiltIn        abolish_events
  110. syn keyword    logtalkBuiltIn        current_event
  111. syn keyword    logtalkBuiltIn        define_events
  112.  
  113. syn keyword    logtalkBuiltIn        current_logtalk_flag
  114. syn keyword    logtalkBuiltIn        set_logtalk_flag
  115.  
  116. syn keyword    logtalkBuiltIn        logtalk_compile
  117. syn keyword    logtalkBuiltIn        logtalk_load
  118.  
  119. syn keyword    logtalkBuiltIn        forall
  120. syn keyword    logtalkBuiltIn        logtalk_version
  121. syn keyword    logtalkBuiltIn        retractall
  122.  
  123.  
  124. " Logtalk built-in methods
  125.  
  126. syn keyword    logtalkBuiltInMethod    parameter
  127. syn keyword    logtalkBuiltInMethod    self
  128. syn keyword    logtalkBuiltInMethod    sender
  129. syn keyword    logtalkBuiltInMethod    this
  130.  
  131. syn keyword    logtalkBuiltInMethod    current_predicate
  132. syn keyword    logtalkBuiltInMethod    predicate_property
  133.  
  134. syn keyword    logtalkBuiltInMethod    abolish
  135. syn keyword    logtalkBuiltInMethod    asserta
  136. syn keyword    logtalkBuiltInMethod    assertz
  137. syn keyword    logtalkBuiltInMethod    clause
  138. syn keyword    logtalkBuiltInMethod    retract
  139. syn keyword    logtalkBuiltInMethod    retractall
  140.  
  141. syn keyword    logtalkBuiltInMethod    bagof
  142. syn keyword    logtalkBuiltInMethod    findall
  143. syn keyword    logtalkBuiltInMethod    forall
  144. syn keyword    logtalkBuiltInMethod    setof
  145.  
  146. syn keyword    logtalkBuiltInMethod    before
  147. syn keyword    logtalkBuiltInMethod    after
  148.  
  149.  
  150. " Mode operators
  151.  
  152. syn match    logtalkOperator        "?"
  153. syn match    logtalkOperator        "@"
  154.  
  155.  
  156. " Control constructs
  157.  
  158. syn keyword    logtalkKeyword        true
  159. syn keyword    logtalkKeyword        fail
  160. syn keyword    logtalkKeyword        call
  161. syn match    logtalkOperator        "!"
  162. syn match    logtalkOperator        ","
  163. syn match    logtalkOperator        ";"
  164. syn match    logtalkOperator        "->"
  165. syn keyword    logtalkKeyword        catch
  166. syn keyword    logtalkKeyword        throw
  167.  
  168.  
  169. " Term unification
  170.  
  171. syn match    logtalkOperator        "="
  172. syn keyword    logtalkKeyword        unify_with_occurs_check
  173. syn match    logtalkOperator        "\\="
  174.  
  175.  
  176. " Term testing
  177.  
  178. syn keyword    logtalkKeyword        var
  179. syn keyword    logtalkKeyword        atom
  180. syn keyword    logtalkKeyword        integer
  181. syn keyword    logtalkKeyword        float
  182. syn keyword    logtalkKeyword        atomic
  183. syn keyword    logtalkKeyword        compound
  184. syn keyword    logtalkKeyword        nonvar
  185. syn keyword    logtalkKeyword        number
  186.  
  187.  
  188. " Term comparison
  189.  
  190. syn match    logtalkOperator        "@=<"
  191. syn match    logtalkOperator        "=="
  192. syn match    logtalkOperator        "\\=="
  193. syn match    logtalkOperator        "@<"
  194. syn match    logtalkOperator        "@>"
  195. syn match    logtalkOperator        "@>="
  196.  
  197.  
  198. " Term creation and decomposition
  199.  
  200. syn keyword    logtalkKeyword        functor
  201. syn keyword    logtalkKeywor        arg
  202. syn match    logtalkOperator        "=\.\."
  203. syn keyword    logtalkKeyword        copy_term
  204.  
  205.  
  206. " Arithemtic evaluation
  207.  
  208. syn keyword    logtalkOperator        is
  209.  
  210.  
  211. " Arithemtic comparison
  212.  
  213. syn match    logtalkOperator        "=:="
  214. syn match    logtalkOperator        "=\\="
  215. syn match    logtalkOperator        "<"
  216. syn match    logtalkOperator        "=<"
  217. syn match    logtalkOperator        ">"
  218. syn match    logtalkOperator        ">="
  219.  
  220.  
  221. " Stream selection and control
  222.  
  223. syn keyword    logtalkKeyword        current_input
  224. syn keyword    logtalkKeyword        current_output
  225. syn keyword    logtalkKeyword        set_input
  226. syn keyword    logtalkKeyword        set_output
  227. syn keyword    logtalkKeyword        open
  228. syn keyword    logtalkKeyword        close
  229. syn keyword    logtalkKeyword        flush_output
  230. syn keyword    logtalkKeyword        stream_property
  231. syn keyword    logtalkKeyword        at_end_of_stream
  232. syn keyword    logtalkKeyword        set_stream_position
  233.  
  234.  
  235. " Character input/output
  236.  
  237. syn keyword    logtalkKeyword        get_char
  238. syn keyword    logtalkKeyword        get_code
  239. syn keyword    logtalkKeyword        peek_char
  240. syn keyword    logtalkKeyword        peek_code
  241. syn keyword    logtalkKeyword        put_char
  242. syn keyword    logtalkKeyword        put_code
  243. syn keyword    logtalkKeyword        nl
  244.  
  245.  
  246. " Byte input/output
  247.  
  248. syn keyword    logtalkKeyword        get_byte
  249. syn keyword    logtalkKeyword        peek_byte
  250. syn keyword    logtalkKeyword        put_byte
  251.  
  252.  
  253. " Term input/output
  254.  
  255. syn keyword    logtalkKeyword        read_term
  256. syn keyword    logtalkKeyword        read
  257. syn keyword    logtalkKeyword        write_term
  258. syn keyword    logtalkKeyword        write
  259. syn keyword    logtalkKeyword        writeq
  260. syn keyword    logtalkKeyword        write_canonical
  261. syn keyword    logtalkKeyword        op
  262. syn keyword    logtalkKeyword        current_op
  263. syn keyword    logtalkKeyword        char_conversion
  264. syn keyword    logtalkKeyword        current_char_conversion
  265.  
  266.  
  267. " Logic and control
  268.  
  269. syn match    logtalkOperator        "\\+"
  270. syn keyword    logtalkKeyword        once
  271. syn keyword    logtalkKeyword        repeat
  272.  
  273.  
  274. " Atomic term processing
  275.  
  276. syn keyword    logtalkKeyword        atom_length
  277. syn keyword    logtalkKeyword        atom_concat
  278. syn keyword    logtalkKeyword        sub_atom
  279. syn keyword    logtalkKeyword        atom_chars
  280. syn keyword    logtalkKeyword        atom_codes
  281. syn keyword    logtalkKeyword        char_code
  282. syn keyword    logtalkKeyword        number_chars
  283. syn keyword    logtalkKeyword        number_codes
  284.  
  285.  
  286. " Implementation defined hooks functions
  287.  
  288. syn keyword    logtalkKeyword        set_prolog_flag
  289. syn keyword    logtalkKeyword        current_prolog_flag
  290. syn keyword    logtalkKeyword        halt
  291.  
  292.  
  293. " Evaluable functors
  294.  
  295. syn match    logtalkOperator        "+"
  296. syn match    logtalkOperator        "-"
  297. syn match    logtalkOperator        "\*"
  298. syn match    logtalkOperator        "//"
  299. syn match    logtalkOperator        "/"
  300. syn keyword    logtalkKeyword        rem
  301. syn keyword    logtalkKeyword        mod
  302. syn keyword    logtalkKeyword        abs
  303. syn keyword    logtalkKeyword        sign
  304. syn keyword    logtalkKeyword        float_integer_part
  305. syn keyword    logtalkKeyword        float_fractional_part
  306. syn keyword    logtalkKeyword        float
  307. syn keyword    logtalkKeyword        floor
  308. syn keyword    logtalkKeyword        truncate
  309. syn keyword    logtalkKeyword        round
  310. syn keyword    logtalkKeyword        ceiling
  311.  
  312.  
  313. " Other arithemtic functors
  314.  
  315. syn match    logtalkOperator        "\*\*"
  316. syn keyword    logtalkKeyword        sin
  317. syn keyword    logtalkKeyword        cos
  318. syn keyword    logtalkKeyword        atan
  319. syn keyword    logtalkKeyword        exp
  320. syn keyword    logtalkKeyword        log
  321. syn keyword    logtalkKeyword        sqrt
  322.  
  323.  
  324. " Bitwise functors
  325.  
  326. syn match    logtalkOperator        ">>"
  327. syn match    logtalkOperator        "<<"
  328. syn match    logtalkOperator        "/\\"
  329. syn match    logtalkOperator        "\\/"
  330. syn match    logtalkOperator        "\\"
  331.  
  332.  
  333. " Logtalk end-of-clause
  334.  
  335. syn match    logtalkOperator        "\."
  336.  
  337.  
  338. " Logtalk list operator
  339.  
  340. syn match    logtalkOperator        "|"
  341.  
  342.  
  343. " Logtalk comments
  344.  
  345. syn region    logtalkBlockComment    start="/\*"    end="\*/"
  346. syn match    logtalkLineComment    "%.*"
  347.  
  348.  
  349. syn sync ccomment maxlines=50
  350.  
  351.  
  352. " Define the default highlighting.
  353. " For version 5.7 and earlier: only when not done already
  354. " For version 5.8 and later: only when an item doesn't have highlighting yet
  355.  
  356. if version >= 508 || !exists("did_logtalk_syn_inits")
  357.     if version < 508
  358.         let did_logtalk_syn_inits = 1
  359.         command -nargs=+ HiLink hi link <args>
  360.     else
  361.         command -nargs=+ HiLink hi def link <args>
  362.     endif
  363.  
  364.     HiLink    logtalkBlockComment    Comment
  365.     HiLink    logtalkLineComment    Comment
  366.  
  367.     HiLink    logtalkOpenEntityDir    Normal
  368.     HiLink    logtalkOpenEntityDirTag    Statement
  369.  
  370.     HiLink    logtalkEntity        Normal
  371.  
  372.     HiLink    logtalkEntityRel    Normal
  373.     HiLink    logtalkEntityRelTag    Statement
  374.  
  375.     HiLink    logtalkCloseEntityDir    Statement
  376.  
  377.     HiLink    logtalkDir        Normal
  378.     HiLink    logtalkDirTag        Statement
  379.  
  380.     HiLink    logtalkAtom        String
  381.     HiLink    logtalkString        String
  382.  
  383.     HiLink    logtalkKeyword        Keyword
  384.  
  385.     HiLink    logtalkBuiltIn        Keyword
  386.     HiLink    logtalkBuiltInMethod    Keyword
  387.  
  388.     HiLink    logtalkOperator        Operator
  389.  
  390.     HiLink    logtalkExtCall        Normal
  391.     HiLink    logtalkExtCallTag    Operator
  392.  
  393.     delcommand HiLink
  394.  
  395. endif
  396.  
  397.  
  398. let b:current_syntax = "logtalk"
  399.  
  400. set ts=8
  401.