state preproc delim '^%\{' '^%\}' multiline begin include "cpp.lang" end state preproc start '^%[sx]' begin function = '[[:alpha:]_][[:alnum:]_-]*' end state preproc start '^%option' begin keyword = '[[:alpha:]_][[:alnum:]_-]*' string delim "\"" "\"" symbol = "=" end preproc = '^%(array|pointer|[aceknopr])' state preproc start '[[:alpha:]_][[:alnum:]_-]*' begin type = '\{[[:alpha:]_][[:alnum:]_-]*\}' string delim "\"" "\"" escape "\\" include "symbols.lang" end state preproc = '^%%' begin state preproc = '^%%' begin include "cpp.lang" end function = '<[[:alpha:]_][[:alnum:]_-]*>' string delim "\"" "\"" escape "\\" preproc = '\\.' type = '\{[[:alpha:]_][[:alnum:]_-]*\}' comment delim "/*" "*/" multiline nested state cbracket delim "{" "}" multiline nested begin variable = '\$.' include "cpp.lang" end include "symbols.lang" end