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