home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: Expect
- " Maintainer: Ralph Jennings <knowbudy@oro.net>
- " Last change: 1997 August 22
-
- "TODO:
- " Find & fix any bugs I left in.
-
- " Remove any old syntax stuff hanging around
- syn clear
-
- " Reserved Expect variable prefixes.
- syn match expectVariables "\$exp[a-zA-Z0-9_]*\|\$inter[a-zA-Z0-9_]*"
- syn match expectVariables "\$spawn[a-zA-Z0-9_]*\|\$timeout[a-zA-Z0-9_]*"
-
- " Normal Expect variables.
- syn match expectVariables "\$env([^)]*)"
- syn match expectVariables "\$any_spawn_id\|\$argc\|\$argv\d*"
- syn match expectVariables "\$user_spawn_id\|\$spawn_id\|\$timeout"
-
- " Expect variable arrays.
- syn match expectVariables "\$\(expect\|interact\)_out([^)]*)" contains=expectOutVar
-
- " User defined variables.
- syn match expectVariables "\$[a-zA-Z_][a-zA-Z0-9_]*"
-
- " Reserved Expect command prefixes.
- syn match expectCommand "exp_[a-zA-Z0-9_]*"
-
- " Normal Expect commands.
- syn keyword expectStatement close debug disconnect
- syn keyword expectStatement exit exp_continue exp_internal exp_open
- syn keyword expectStatement exp_pid exp_version
- syn keyword expectStatement fork inter_return interpreter
- syn keyword expectStatement log_file log_user match_max overlay
- syn keyword expectStatement parity remove_nulls return
- syn keyword expectStatement send send_error send_log send_user
- syn keyword expectStatement sleep spawn strace stty system
- syn keyword expectStatement timestamp trace trap wait
-
- " Tcl commands recognized and used by Expect.
- syn keyword expectCommand proc
- syn keyword expectConditional if else
- syn keyword expectRepeat while for foreach
-
- " Expect commands with special arguments.
- syn keyword expectStatement expect expect_after expect_background nextgroup=expectExpectOpts
- syn keyword expectStatement expect_before expect_user interact nextgroup=expectExpectOpts
-
- syn match expectSpecial contained "\\."
-
- " Options for "expect", "expect_after", "expect_background",
- " "expect_before", "expect_user", and "interact".
- syn keyword expectExpectOpts default eof full_buffer null return timeout
-
- syn keyword expectOutVar contained spawn_id seconds seconds_total
- syn keyword expectOutVar contained string start end buffer
-
- " Numbers (Tcl style).
- syn case ignore
- syn match expectNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
- "floating point number, with dot, optional exponent
- syn match expectNumber "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
- "floating point number, starting with a dot, optional exponent
- syn match expectNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
- "floating point number, without dot, with exponent
- syn match expectNumber "\<\d\+e[-+]\=\d\+[fl]\=\>"
- "hex number
- syn match expectNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
- "syn match expectIdentifier "\<[a-z_][a-z0-9_]*\>"
- syn case match
-
- syn region expectString start=+"+ end=+"+ contains=expectVariables,expectSpecial
-
- " Are these really comments in Expect? (I never use it, so I'm just guessing).
- syn keyword expectTodo contained TODO
- syn match expectComment "#.*$" contains=expectTodo
-
- if !exists("did_expect_syntax_inits")
- let did_expect_syntax_inits = 1
- " The default methods for highlighting. Can be overridden later
- hi link expectVariables Special
- hi link expectCommand Function
- hi link expectStatement Statement
- hi link expectConditional Conditional
- hi link expectRepeat Repeat
- hi link expectExpectOpts Keyword
- hi link expectOutVar Special
- hi link expectSpecial Special
- hi link expectNumber Number
-
- hi link expectString String
-
- hi link expectComment Comment
- hi link expectTodo Todo
- "hi link expectIdentifier Identifier
- endif
-
- let b:current_syntax = "expect"
-
- " vim: ts=8
-