# definitions for C/C++ include "c_comment.lang" state preproc start '^[[:blank:]]*#(?:[[:blank:]]*include)' begin string delim "<" ">" string delim "\"" "\"" escape "\\" include "c_comment.lang" end preproc = '^[[:blank:]]*#([[:blank:]]*[[:word:]]*)' include "number.lang" include "c_string.lang" (keyword,normal,type) = `(\<(?:class|struct|typename))([[:blank:]]+)([[:alnum:]]+)` keyword = "__asm|__cdecl|__declspec|__export|__far16", "__fastcall|__fortran|__import", "__pascal|__rtti|__stdcall|_asm|_cdecl", "__except|_export|_far16|_fastcall", "__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto", "break|case|catch|cdecl|class|const|const_cast|continue|default|delete", "do|dynamic_cast|else|enum|explicit|extern|false|for|friend|goto", "if|inline|mutable|namespace|new|operator|pascal|private|protected", "public|register|reinterpret_cast|return|sizeof|static|static_cast", "struct|switch|template|this|throw|true", "try|typedef|typeid|typename|union", "using|virtual|volatile|while" type = "bool|char|double|float|int|long", "short|signed|unsigned|void|wchar_t" include "symbols.lang" cbracket = "{|}" include "function.lang"