xref: /vim-8.2.3635/runtime/syntax/expect.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Expect
3071d4279SBram Moolenaar" Maintainer:	Ralph Jennings <[email protected]>
4c873442bSBram Moolenaar" Last Change:	2012 Jun 01
5c873442bSBram Moolenaar" 		(Dominique Pelle added @Spell)
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" Reserved Expect variable prefixes.
13071d4279SBram Moolenaarsyn match   expectVariables "\$exp[a-zA-Z0-9_]*\|\$inter[a-zA-Z0-9_]*"
14071d4279SBram Moolenaarsyn match   expectVariables "\$spawn[a-zA-Z0-9_]*\|\$timeout[a-zA-Z0-9_]*"
15071d4279SBram Moolenaar
16071d4279SBram Moolenaar" Normal Expect variables.
17071d4279SBram Moolenaarsyn match   expectVariables "\$env([^)]*)"
18071d4279SBram Moolenaarsyn match   expectVariables "\$any_spawn_id\|\$argc\|\$argv\d*"
19071d4279SBram Moolenaarsyn match   expectVariables "\$user_spawn_id\|\$spawn_id\|\$timeout"
20071d4279SBram Moolenaar
21071d4279SBram Moolenaar" Expect variable arrays.
22071d4279SBram Moolenaarsyn match   expectVariables "\$\(expect\|interact\)_out([^)]*)"			contains=expectOutVar
23071d4279SBram Moolenaar
24071d4279SBram Moolenaar" User defined variables.
25071d4279SBram Moolenaarsyn match   expectVariables "\$[a-zA-Z_][a-zA-Z0-9_]*"
26071d4279SBram Moolenaar
27071d4279SBram Moolenaar" Reserved Expect command prefixes.
28071d4279SBram Moolenaarsyn match   expectCommand    "exp_[a-zA-Z0-9_]*"
29071d4279SBram Moolenaar
30071d4279SBram Moolenaar" Normal Expect commands.
31071d4279SBram Moolenaarsyn keyword expectStatement	close debug disconnect
32071d4279SBram Moolenaarsyn keyword expectStatement	exit exp_continue exp_internal exp_open
33071d4279SBram Moolenaarsyn keyword expectStatement	exp_pid exp_version
34071d4279SBram Moolenaarsyn keyword expectStatement	fork inter_return interpreter
35071d4279SBram Moolenaarsyn keyword expectStatement	log_file log_user match_max overlay
36071d4279SBram Moolenaarsyn keyword expectStatement	parity remove_nulls return
37071d4279SBram Moolenaarsyn keyword expectStatement	send send_error send_log send_user
38071d4279SBram Moolenaarsyn keyword expectStatement	sleep spawn strace stty system
39071d4279SBram Moolenaarsyn keyword expectStatement	timestamp trace trap wait
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" Tcl commands recognized and used by Expect.
42071d4279SBram Moolenaarsyn keyword expectCommand		proc
43071d4279SBram Moolenaarsyn keyword expectConditional	if else
44071d4279SBram Moolenaarsyn keyword expectRepeat		while for foreach
45071d4279SBram Moolenaar
46071d4279SBram Moolenaar" Expect commands with special arguments.
47071d4279SBram Moolenaarsyn keyword expectStatement	expect expect_after expect_background			nextgroup=expectExpectOpts
48071d4279SBram Moolenaarsyn keyword expectStatement	expect_before expect_user interact			nextgroup=expectExpectOpts
49071d4279SBram Moolenaar
50071d4279SBram Moolenaarsyn match   expectSpecial contained  "\\."
51071d4279SBram Moolenaar
52071d4279SBram Moolenaar" Options for "expect", "expect_after", "expect_background",
53071d4279SBram Moolenaar" "expect_before", "expect_user", and "interact".
54071d4279SBram Moolenaarsyn keyword expectExpectOpts	default eof full_buffer null return timeout
55071d4279SBram Moolenaar
56071d4279SBram Moolenaarsyn keyword expectOutVar  contained  spawn_id seconds seconds_total
57071d4279SBram Moolenaarsyn keyword expectOutVar  contained  string start end buffer
58071d4279SBram Moolenaar
59071d4279SBram Moolenaar" Numbers (Tcl style).
60071d4279SBram Moolenaarsyn case ignore
61071d4279SBram Moolenaar  syn match  expectNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
62071d4279SBram Moolenaar  "floating point number, with dot, optional exponent
63071d4279SBram Moolenaar  syn match  expectNumber	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
64071d4279SBram Moolenaar  "floating point number, starting with a dot, optional exponent
65071d4279SBram Moolenaar  syn match  expectNumber	"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
66071d4279SBram Moolenaar  "floating point number, without dot, with exponent
67071d4279SBram Moolenaar  syn match  expectNumber	"\<\d\+e[-+]\=\d\+[fl]\=\>"
68071d4279SBram Moolenaar  "hex number
69071d4279SBram Moolenaar  syn match  expectNumber	"0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
70071d4279SBram Moolenaar  "syn match  expectIdentifier	"\<[a-z_][a-z0-9_]*\>"
71071d4279SBram Moolenaarsyn case match
72071d4279SBram Moolenaar
73c873442bSBram Moolenaarsyn region  expectString	start=+"+  end=+"+  contains=@Spell,expectVariables,expectSpecial
74071d4279SBram Moolenaar
75071d4279SBram Moolenaar" Are these really comments in Expect? (I never use it, so I'm just guessing).
76071d4279SBram Moolenaarsyn keyword expectTodo		contained TODO
77c873442bSBram Moolenaarsyn match   expectComment	"#.*$" contains=@Spell,expectTodo
78c873442bSBram Moolenaarsyn match   expectSharpBang	"\%^#!.*"
79071d4279SBram Moolenaar
80071d4279SBram Moolenaar" Define the default highlighting.
8189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
82071d4279SBram Moolenaar
83*f37506f6SBram Moolenaarhi def link expectSharpBang	PreProc
84*f37506f6SBram Moolenaarhi def link expectVariables	Special
85*f37506f6SBram Moolenaarhi def link expectCommand		Function
86*f37506f6SBram Moolenaarhi def link expectStatement	Statement
87*f37506f6SBram Moolenaarhi def link expectConditional	Conditional
88*f37506f6SBram Moolenaarhi def link expectRepeat		Repeat
89*f37506f6SBram Moolenaarhi def link expectExpectOpts	Keyword
90*f37506f6SBram Moolenaarhi def link expectOutVar		Special
91*f37506f6SBram Moolenaarhi def link expectSpecial		Special
92*f37506f6SBram Moolenaarhi def link expectNumber		Number
93071d4279SBram Moolenaar
94*f37506f6SBram Moolenaarhi def link expectString		String
95071d4279SBram Moolenaar
96*f37506f6SBram Moolenaarhi def link expectComment		Comment
97*f37506f6SBram Moolenaarhi def link expectTodo		Todo
98*f37506f6SBram Moolenaar"hi def link expectIdentifier	Identifier
99071d4279SBram Moolenaar
100071d4279SBram Moolenaar
101071d4279SBram Moolenaarlet b:current_syntax = "expect"
102071d4279SBram Moolenaar
103071d4279SBram Moolenaar" vim: ts=8
104