if (! this.sh_languages) { this.sh_languages = {}; } sh_languages['flex'] = [ [ [ /^%\{/g, 'sh_preproc', 1, 1 ], [ /^%[sx]/g, 'sh_preproc', 16, 1 ], [ /^%option/g, 'sh_preproc', 17, 1 ], [ /^%(?:array|pointer|[aceknopr])/g, 'sh_preproc', -1 ], [ /[A-Za-z_][A-Za-z0-9_-]*/g, 'sh_preproc', 19, 1 ], [ /^%%/g, 'sh_preproc', 20, 1 ] ], [ [ /^%\}/g, 'sh_preproc', -2 ], [ /(\b(?:class|struct|typename))([ \t]+)([A-Za-z0-9_]+)/g, ['sh_keyword', 'sh_normal', 'sh_classname'], -1 ], [ /\b(?:class|const_cast|delete|dynamic_cast|explicit|false|friend|inline|mutable|namespace|new|operator|private|protected|public|reinterpret_cast|static_cast|template|this|throw|true|try|typeid|typename|using|virtual)\b/g, 'sh_keyword', -1 ], [ /\/\/\//g, 'sh_comment', 2 ], [ /\/\//g, 'sh_comment', 8 ], [ /\/\*\*/g, 'sh_comment', 9 ], [ /\/\*/g, 'sh_comment', 10 ], [ /(\bstruct)([ \t]+)([A-Za-z0-9_]+)/g, ['sh_keyword', 'sh_normal', 'sh_classname'], -1 ], [ /^[ \t]*#(?:[ \t]*include)/g, 'sh_preproc', 11, 1 ], [ /^[ \t]*#(?:[ \t]*[A-Za-z0-9_]*)/g, 'sh_preproc', -1 ], [ /\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g, 'sh_number', -1 ], [ /"/g, 'sh_string', 14 ], [ /'/g, 'sh_string', 15 ], [ /\b(?:__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|const|continue|default|do|else|enum|extern|for|goto|if|pascal|register|return|sizeof|static|struct|switch|typedef|union|volatile|while)\b/g, 'sh_keyword', -1 ], [ /\b(?:bool|char|double|float|int|long|short|signed|unsigned|void|wchar_t)\b/g, 'sh_type', -1 ], [ /~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g, 'sh_symbol', -1 ], [ /\{|\}/g, 'sh_cbracket', -1 ], [ /(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g, 'sh_function', -1 ], [ /([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g, ['sh_usertype', 'sh_usertype', 'sh_normal'], -1 ] ], [ [ /$/g, null, -2 ], [ /(?:?)|(?:?)/g, 'sh_url', -1 ], [ /<\?xml/g, 'sh_preproc', 3, 1 ], [ //g, 'sh_keyword', -1 ], [ /<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g, 'sh_keyword', 7, 1 ], [ /&(?:[A-Za-z0-9]+);/g, 'sh_preproc', -1 ], [ /<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g, 'sh_keyword', -1 ], [ /<(?:\/)?[A-Za-z][A-Za-z0-9]*/g, 'sh_keyword', 7, 1 ], [ /@[A-Za-z]+/g, 'sh_type', -1 ], [ /(?:TODO|FIXME|BUG)(?:[:]?)/g, 'sh_todo', -1 ] ], [ [ /\?>/g, 'sh_preproc', -2 ], [ /([^=" \t>]+)([ \t]*)(=?)/g, ['sh_type', 'sh_normal', 'sh_symbol'], -1 ], [ /"/g, 'sh_string', 4 ] ], [ [ /\\(?:\\|")/g, null, -1 ], [ /"/g, 'sh_string', -2 ] ], [ [ />/g, 'sh_preproc', -2 ], [ /([^=" \t>]+)([ \t]*)(=?)/g, ['sh_type', 'sh_normal', 'sh_symbol'], -1 ], [ /"/g, 'sh_string', 4 ] ], [ [ /-->/g, 'sh_comment', -2 ], [ /