Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / expect.vim
blob1886e2b3e34b7b4fa6249dd534083063a75c8658
1 " Vim syntax file
2 " Language:     Expect
3 " Maintainer:   Ralph Jennings <knowbudy@oro.net>
4 " Last Change:  2001 May 09
6 " For version 5.x: Clear all syntax items
7 " For version 6.x: 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
14 " Reserved Expect variable prefixes.
15 syn match   expectVariables "\$exp[a-zA-Z0-9_]*\|\$inter[a-zA-Z0-9_]*"
16 syn match   expectVariables "\$spawn[a-zA-Z0-9_]*\|\$timeout[a-zA-Z0-9_]*"
18 " Normal Expect variables.
19 syn match   expectVariables "\$env([^)]*)"
20 syn match   expectVariables "\$any_spawn_id\|\$argc\|\$argv\d*"
21 syn match   expectVariables "\$user_spawn_id\|\$spawn_id\|\$timeout"
23 " Expect variable arrays.
24 syn match   expectVariables "\$\(expect\|interact\)_out([^)]*)"                 contains=expectOutVar
26 " User defined variables.
27 syn match   expectVariables "\$[a-zA-Z_][a-zA-Z0-9_]*"
29 " Reserved Expect command prefixes.
30 syn match   expectCommand    "exp_[a-zA-Z0-9_]*"
32 " Normal Expect commands.
33 syn keyword expectStatement     close debug disconnect
34 syn keyword expectStatement     exit exp_continue exp_internal exp_open
35 syn keyword expectStatement     exp_pid exp_version
36 syn keyword expectStatement     fork inter_return interpreter
37 syn keyword expectStatement     log_file log_user match_max overlay
38 syn keyword expectStatement     parity remove_nulls return
39 syn keyword expectStatement     send send_error send_log send_user
40 syn keyword expectStatement     sleep spawn strace stty system
41 syn keyword expectStatement     timestamp trace trap wait
43 " Tcl commands recognized and used by Expect.
44 syn keyword expectCommand               proc
45 syn keyword expectConditional   if else
46 syn keyword expectRepeat                while for foreach
48 " Expect commands with special arguments.
49 syn keyword expectStatement     expect expect_after expect_background                   nextgroup=expectExpectOpts
50 syn keyword expectStatement     expect_before expect_user interact                      nextgroup=expectExpectOpts
52 syn match   expectSpecial contained  "\\."
54 " Options for "expect", "expect_after", "expect_background",
55 " "expect_before", "expect_user", and "interact".
56 syn keyword expectExpectOpts    default eof full_buffer null return timeout
58 syn keyword expectOutVar  contained  spawn_id seconds seconds_total
59 syn keyword expectOutVar  contained  string start end buffer
61 " Numbers (Tcl style).
62 syn case ignore
63   syn match  expectNumber       "\<\d\+\(u\=l\=\|lu\|f\)\>"
64   "floating point number, with dot, optional exponent
65   syn match  expectNumber       "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
66   "floating point number, starting with a dot, optional exponent
67   syn match  expectNumber       "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
68   "floating point number, without dot, with exponent
69   syn match  expectNumber       "\<\d\+e[-+]\=\d\+[fl]\=\>"
70   "hex number
71   syn match  expectNumber       "0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
72   "syn match  expectIdentifier  "\<[a-z_][a-z0-9_]*\>"
73 syn case match
75 syn region  expectString        start=+"+  end=+"+  contains=expectVariables,expectSpecial
77 " Are these really comments in Expect? (I never use it, so I'm just guessing).
78 syn keyword expectTodo          contained TODO
79 syn match   expectComment               "#.*$" contains=expectTodo
81 " Define the default highlighting.
82 " For version 5.7 and earlier: only when not done already
83 " For version 5.8 and later: only when an item doesn't have highlighting yet
84 if version >= 508 || !exists("did_expect_syntax_inits")
85   if version < 508
86     let did_expect_syntax_inits = 1
87     command -nargs=+ HiLink hi link <args>
88   else
89     command -nargs=+ HiLink hi def link <args>
90   endif
92   HiLink expectVariables        Special
93   HiLink expectCommand          Function
94   HiLink expectStatement        Statement
95   HiLink expectConditional      Conditional
96   HiLink expectRepeat           Repeat
97   HiLink expectExpectOpts       Keyword
98   HiLink expectOutVar           Special
99   HiLink expectSpecial          Special
100   HiLink expectNumber           Number
102   HiLink expectString           String
104   HiLink expectComment          Comment
105   HiLink expectTodo             Todo
106   "HiLink expectIdentifier      Identifier
108   delcommand HiLink
109 endif
111 let b:current_syntax = "expect"
113 " vim: ts=8