Mercurial > minori
annotate dep/fmt/support/C++.sublime-syntax @ 371:c87dcf967cff
dep/animone: add mpc-qt posix and x11
| author | Paper <paper@tflc.us> | 
|---|---|
| date | Fri, 25 Jul 2025 11:01:57 -0400 | 
| parents | 1faa72660932 | 
| children | 
| rev | line source | 
|---|---|
| 343 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1 %YAML 1.2 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2 --- | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 3 # http://www.sublimetext.com/docs/3/syntax.html | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 4 name: C++ (fmt) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 5 comment: I don't think anyone uses .hp. .cp tends to be paired with .h. (I could be wrong. :) -- chris | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 6 file_extensions: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 7 - cpp | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 8 - cc | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 9 - cp | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 10 - cxx | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 11 - c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 12 - C | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 13 - h | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 14 - hh | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 15 - hpp | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 16 - hxx | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 17 - h++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 18 - inl | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 19 - ipp | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 20 first_line_match: '-\*- C\+\+ -\*-' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 21 scope: source.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 22 variables: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 23 identifier: \b[[:alpha:]_][[:alnum:]_]*\b # upper and lowercase | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 24 macro_identifier: \b[[:upper:]_][[:upper:][:digit:]_]{2,}\b # only uppercase, at least 3 chars | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 25 path_lookahead: '(?:::\s*)?(?:{{identifier}}\s*::\s*)*(?:template\s+)?{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 26 operator_method_name: '\boperator\s*(?:[-+*/%^&|~!=<>]|[-+*/%^&|=!<>]=|<<=?|>>=?|&&|\|\||\+\+|--|,|->\*?|\(\)|\[\]|""\s*{{identifier}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 27 casts: 'const_cast|dynamic_cast|reinterpret_cast|static_cast' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 28 operator_keywords: 'and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|xor|xor_eq|noexcept' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 29 control_keywords: 'break|case|catch|continue|default|do|else|for|goto|if|_Pragma|return|switch|throw|try|while' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 30 memory_operators: 'new|delete' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 31 basic_types: 'asm|__asm__|auto|bool|_Bool|char|_Complex|double|float|_Imaginary|int|long|short|signed|unsigned|void' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 32 before_tag: 'struct|union|enum\s+class|enum\s+struct|enum|class' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 33 declspec: '__declspec\(\s*\w+(?:\([^)]+\))?\s*\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 34 storage_classes: 'static|export|extern|friend|explicit|virtual|register|thread_local' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 35 type_qualifier: 'const|constexpr|mutable|typename|volatile' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 36 compiler_directive: 'inline|restrict|__restrict__|__restrict' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 37 visibility_modifiers: 'private|protected|public' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 38 other_keywords: 'typedef|nullptr|{{visibility_modifiers}}|static_assert|sizeof|using|typeid|alignof|alignas|namespace|template' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 39 modifiers: '{{storage_classes}}|{{type_qualifier}}|{{compiler_directive}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 40 non_angle_brackets: '(?=<<|<=)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 41 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 42 regular: '[^(){}&;*^%=<>-]*' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 43 paren_open: (?:\( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 44 paren_close: '\))?' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 45 generic_open: (?:< | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 46 generic_close: '>)?' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 47 balance_parentheses: '{{regular}}{{paren_open}}{{regular}}{{paren_close}}{{regular}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 48 generic_lookahead: <{{regular}}{{generic_open}}{{regular}}{{generic_open}}{{regular}}{{generic_close}}\s*{{generic_close}}{{balance_parentheses}}> | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 49 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 50 data_structures_forward_decl_lookahead: '(\s+{{macro_identifier}})*\s*(:\s*({{path_lookahead}}|{{visibility_modifiers}}|,|\s|<[^;]*>)+)?;' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 51 non_func_keywords: 'if|for|switch|while|decltype|sizeof|__declspec|__attribute__|typeid|alignof|alignas|static_assert' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 52 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 53 format_spec: |- | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 54 (?x: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 55 (?:.? [<>=^])? # fill align | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 56 [ +-]? # sign | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 57 \#? # alternate form | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 58 # technically, octal and hexadecimal integers are also supported as 'width', but rarely used | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 59 \d* # width | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 60 ,? # thousands separator | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 61 (?:\.\d+)? # precision | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 62 [bcdeEfFgGnosxX%]? # type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 63 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 64 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 65 contexts: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 66 main: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 67 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 68 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 69 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 70 ############################################################################# | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 71 # Reusable contexts | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 72 # | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 73 # The follow contexts are currently constructed to be reused in the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 74 # Objetive-C++ syntax. They are specifically constructed to not push into | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 75 # sub-contexts, which ensures that Objective-C++ code isn't accidentally | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 76 # lexed as plain C++. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 77 # | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 78 # The "unique-*" contexts are additions that C++ makes over C, and thus can | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 79 # be directly reused in Objective-C++ along with contexts from Objective-C | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 80 # and C. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 81 ############################################################################# | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 82 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 83 unique-late-expressions: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 84 # This is highlighted after all of the other control keywords | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 85 # to allow operator overloading to be lexed properly | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 86 - match: \boperator\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 87 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 88 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 89 unique-modifiers: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 90 - match: \b({{modifiers}})\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 91 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 92 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 93 unique-variables: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 94 - match: \bthis\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 95 scope: variable.language.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 96 # common C++ instance var naming idiom -- fMemberName | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 97 - match: '\b(f|m)[[:upper:]]\w*\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 98 scope: variable.other.readwrite.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 99 # common C++ instance var naming idiom -- m_member_name | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 100 - match: '\bm_[[:alnum:]_]+\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 101 scope: variable.other.readwrite.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 102 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 103 unique-constants: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 104 - match: \bnullptr\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 105 scope: constant.language.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 106 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 107 unique-keywords: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 108 - match: \busing\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 109 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 110 - match: \bbreak\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 111 scope: keyword.control.flow.break.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 112 - match: \bcontinue\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 113 scope: keyword.control.flow.continue.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 114 - match: \bgoto\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 115 scope: keyword.control.flow.goto.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 116 - match: \breturn\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 117 scope: keyword.control.flow.return.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 118 - match: \bthrow\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 119 scope: keyword.control.flow.throw.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 120 - match: \b({{control_keywords}})\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 121 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 122 - match: '\bdelete\b(\s*\[\])?|\bnew\b(?!])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 123 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 124 - match: \b({{operator_keywords}})\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 125 scope: keyword.operator.word.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 126 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 127 unique-types: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 128 - match: \b(char16_t|char32_t|wchar_t|nullptr_t)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 129 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 130 - match: \bclass\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 131 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 132 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 133 unique-strings: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 134 - match: '((?:L|u8|u|U)?R)("([^\(\)\\ ]{0,16})\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 135 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 136 1: storage.type.string.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 137 2: punctuation.definition.string.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 138 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 139 - meta_scope: string.quoted.double.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 140 - match: '\)\3"' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 141 scope: punctuation.definition.string.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 142 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 143 - match: '\{\{|\}\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 144 scope: constant.character.escape.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 145 - include: formatting-syntax | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 146 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 147 unique-numbers: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 148 - match: |- | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 149 (?x) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 150 (?: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 151 # floats | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 152 (?: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 153 (?:\b\d(?:[\d']*\d)?\.\d(?:[\d']*\d)?|\B\.\d(?:[\d']*\d)?)(?:[Ee][+-]?\d(?:[\d']*\d)?)?(?:[fFlL]|(?:i[fl]?|h|min|[mun]?s|_\w*))?\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 154 | | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 155 (?:\b\d(?:[\d']*\d)?\.)(?:\B|(?:[fFlL]|(?:i[fl]?|h|min|[mun]?s|_\w*))\b|(?:[Ee][+-]?\d(?:[\d']*\d)?)(?:[fFlL]|(?:i[fl]?|h|min|[mun]?s|_\w*))?\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 156 | | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 157 \b\d(?:[\d']*\d)?(?:[Ee][+-]?\d(?:[\d']*\d)?)(?:[fFlL]|(?:i[fl]?|h|min|[mun]?s|_\w*))?\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 158 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 159 | | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 160 # ints | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 161 \b(?: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 162 (?: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 163 # dec | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 164 [1-9](?:[\d']*\d)? | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 165 | | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 166 # oct | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 167 0(?:[0-7']*[0-7])? | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 168 | | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 169 # hex | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 170 0[Xx][\da-fA-F](?:[\da-fA-F']*[\da-fA-F])? | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 171 | | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 172 # bin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 173 0[Bb][01](?:[01']*[01])? | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 174 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 175 # int suffixes | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 176 (?:(?:l{1,2}|L{1,2})[uU]?|[uU](?:l{0,2}|L{0,2})|(?:i[fl]?|h|min|[mun]?s|_\w*))?)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 177 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 178 (?!\.) # Number must not be followed by a decimal point | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 179 scope: constant.numeric.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 180 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 181 identifiers: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 182 - match: '{{identifier}}\s*(::)\s*' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 183 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 184 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 185 - match: '(?:(::)\s*)?{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 186 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 187 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 188 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 189 function-specifiers: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 190 - match: \b(const|final|noexcept|override)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 191 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 192 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 193 ############################################################################# | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 194 # The following are C++-specific contexts that should not be reused. This is | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 195 # because they push into subcontexts and use variables that are C++-specific. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 196 ############################################################################# | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 197 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 198 ## Common context layout | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 199 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 200 global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 201 - match: '(?=\btemplate\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 202 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 203 - include: template | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 204 - match: (?=\S) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 205 set: global-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 206 - include: namespace | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 207 - include: keywords-angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 208 - match: '(?={{path_lookahead}}\s*<)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 209 push: global-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 210 # Take care of comments just before a function definition. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 211 - match: /\* | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 212 scope: punctuation.definition.comment.c | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 213 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 214 - - match: \s*(?=\w) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 215 set: global-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 216 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 217 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 218 - - meta_scope: comment.block.c | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 219 - match: \*/ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 220 scope: punctuation.definition.comment.c | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 221 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 222 - include: early-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 223 - match: ^\s*\b(extern)(?=\s+"C(\+\+)?") | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 224 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 225 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 226 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 227 - include: strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 228 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 229 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 230 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 231 - meta_scope: meta.extern-c.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 232 - match: '^\s*(#\s*ifdef)\s*__cplusplus\s*' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 233 scope: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 234 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 235 1: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 236 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 237 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 238 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 239 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 240 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 241 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 242 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 243 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 244 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 245 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 246 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 247 - match: (?=\S) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 248 set: global-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 249 - match: ^\s*(?=\w) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 250 push: global-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 251 - include: late-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 252 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 253 statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 254 - include: preprocessor-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 255 - include: scope:source.c#label | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 256 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 257 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 258 expressions: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 259 - include: early-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 260 - include: late-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 261 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 262 early-expressions: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 263 - include: early-expressions-before-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 264 - include: generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 265 - include: early-expressions-after-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 266 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 267 early-expressions-before-generic-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 268 - include: preprocessor-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 269 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 270 - include: case-default | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 271 - include: typedef | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 272 - include: keywords-angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 273 - include: keywords-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 274 - include: keywords | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 275 - include: numbers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 276 # Prevent a '<' from getting scoped as the start of another template | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 277 # parameter list, if in reality a less-than-or-equals sign is meant. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 278 - match: <= | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 279 scope: keyword.operator.comparison.c | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 280 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 281 early-expressions-after-generic-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 282 - include: members-arrow | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 283 - include: operators | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 284 - include: members-dot | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 285 - include: strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 286 - include: parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 287 - include: brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 288 - include: block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 289 - include: variables | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 290 - include: constants | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 291 - match: ',' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 292 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 293 - match: '\)|\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 294 scope: invalid.illegal.stray-bracket-end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 295 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 296 expressions-minus-generic-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 297 - include: early-expressions-before-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 298 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 299 - include: early-expressions-after-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 300 - include: late-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 301 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 302 expressions-minus-generic-type-function-call: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 303 - include: early-expressions-before-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 304 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 305 - include: early-expressions-after-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 306 - include: late-expressions-before-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 307 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 308 - match: ';' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 309 scope: punctuation.terminator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 310 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 311 late-expressions: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 312 - include: late-expressions-before-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 313 - include: function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 314 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 315 - match: ';' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 316 scope: punctuation.terminator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 317 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 318 late-expressions-before-function-call: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 319 - include: unique-late-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 320 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 321 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 322 - include: types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 323 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 324 expressions-minus-function-call: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 325 - include: early-expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 326 - include: late-expressions-before-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 327 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 328 - match: ';' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 329 scope: punctuation.terminator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 330 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 331 comments: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 332 - include: scope:source.c#comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 333 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 334 operators: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 335 - include: scope:source.c#operators | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 336 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 337 modifiers: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 338 - include: unique-modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 339 - include: scope:source.c#modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 340 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 341 variables: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 342 - include: unique-variables | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 343 - include: scope:source.c#variables | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 344 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 345 constants: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 346 - include: unique-constants | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 347 - include: scope:source.c#constants | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 348 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 349 keywords: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 350 - include: unique-keywords | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 351 - include: scope:source.c#keywords | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 352 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 353 types: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 354 - include: unique-types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 355 - include: types-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 356 - include: scope:source.c#types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 357 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 358 strings: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 359 - include: unique-strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 360 - match: '(L|u8|u|U)?(")' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 361 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 362 1: storage.type.string.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 363 2: punctuation.definition.string.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 364 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 365 - meta_scope: string.quoted.double.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 366 - match: '"' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 367 scope: punctuation.definition.string.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 368 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 369 - include: scope:source.c#string_escaped_char | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 370 - match: |- | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 371 (?x)% | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 372 (\d+\$)? # field (argument #) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 373 [#0\- +']* # flags | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 374 [,;:_]? # separator character (AltiVec) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 375 ((-?\d+)|\*(-?\d+\$)?)? # minimum field width | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 376 (\.((-?\d+)|\*(-?\d+\$)?)?)? # precision | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 377 (hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 378 (\[[^\]]+\]|[am]s|[diouxXDOUeEfFgGaACcSspn%]) # conversion type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 379 scope: constant.other.placeholder.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 380 - match: '\{\{|\}\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 381 scope: constant.character.escape.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 382 - include: formatting-syntax | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 383 - include: scope:source.c#strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 384 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 385 formatting-syntax: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 386 # https://docs.python.org/3.6/library/string.html#formatstrings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 387 - match: |- # simple form | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 388 (?x) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 389 (\{) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 390 (?: [\w.\[\]]+)? # field_name | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 391 ( ! [ars])? # conversion | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 392 ( : (?:{{format_spec}}| # format_spec OR | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 393 [^}%]*%.[^}]*) # any format-like string | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 394 )? | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 395 (\}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 396 scope: constant.other.placeholder.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 397 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 398 1: punctuation.definition.placeholder.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 399 2: storage.modifier.c++onversion.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 400 3: constant.other.format-spec.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 401 4: punctuation.definition.placeholder.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 402 - match: \{(?=[^\}"']+\{[^"']*\}) # complex (nested) form | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 403 scope: punctuation.definition.placeholder.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 404 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 405 - meta_scope: constant.other.placeholder.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 406 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 407 scope: punctuation.definition.placeholder.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 408 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 409 - match: '[\w.\[\]]+' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 410 - match: '![ars]' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 411 scope: storage.modifier.conversion.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 412 - match: ':' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 413 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 414 - meta_scope: meta.format-spec.c++ constant.other.format-spec.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 415 - match: (?=\}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 416 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 417 - include: formatting-syntax | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 418 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 419 numbers: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 420 - include: unique-numbers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 421 - include: scope:source.c#numbers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 422 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 423 ## C++-specific contexts | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 424 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 425 case-default: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 426 - match: '\b(default|case)\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 427 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 428 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 429 - match: (?=[);,]) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 430 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 431 - match: ':' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 432 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 433 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 434 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 435 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 436 modifiers-parens: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 437 - match: '\b(alignas)\b\s*(\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 438 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 439 1: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 440 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 441 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 442 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 443 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 444 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 445 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 446 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 447 - match: \b(__attribute__)\s*(\(\() | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 448 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 449 1: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 450 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 451 push : | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 452 - meta_scope: meta.attribute.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 453 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 454 - include: parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 455 - include: strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 456 - match: \)\) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 457 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 458 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 459 - match: \b(__declspec)(\() | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 460 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 461 1: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 462 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 463 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 464 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 465 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 466 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 467 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 468 - match: '\b(align|allocate|code_seg|deprecated|property|uuid)\b\s*(\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 469 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 470 1: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 471 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 472 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 473 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 474 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 475 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 476 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 477 - include: numbers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 478 - include: strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 479 - match: \b(get|put)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 480 scope: variable.parameter.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 481 - match: ',' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 482 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 483 - match: '=' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 484 scope: keyword.operator.assignment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 485 - match: '\b(appdomain|deprecated|dllimport|dllexport|jintrinsic|naked|noalias|noinline|noreturn|nothrow|novtable|process|restrict|safebuffers|selectany|thread)\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 486 scope: constant.other.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 487 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 488 types-parens: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 489 - match: '\b(decltype)\b\s*(\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 490 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 491 1: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 492 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 493 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 494 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 495 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 496 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 497 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 498 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 499 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 500 keywords-angle-brackets: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 501 - match: \b({{casts}})\b\s* | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 502 scope: keyword.operator.word.cast.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 503 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 504 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 505 scope: punctuation.section.generic.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 506 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 507 - match: '<' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 508 scope: punctuation.section.generic.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 509 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 510 - match: '(?=>)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 511 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 512 - include: expressions-minus-generic-type-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 513 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 514 keywords-parens: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 515 - match: '\b(alignof|typeid|static_assert|sizeof)\b\s*(\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 516 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 517 1: keyword.operator.word.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 518 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 519 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 520 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 521 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 522 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 523 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 524 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 525 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 526 namespace: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 527 - match: '\b(using)\s+(namespace)\s+(?={{path_lookahead}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 528 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 529 1: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 530 2: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 531 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 532 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 533 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 534 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 535 - match: '\b(namespace)\s+(?=({{path_lookahead}})?(?!\s*[;,]))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 536 scope: meta.namespace.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 537 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 538 1: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 539 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 540 - meta_content_scope: meta.namespace.c++ entity.name.namespace.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 541 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 542 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 543 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 544 - meta_scope: meta.namespace.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 545 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 546 - match: '=' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 547 scope: keyword.operator.alias.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 548 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 549 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 550 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 551 scope: meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 552 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 553 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 554 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 555 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 556 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 557 - match: '(?=\})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 558 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 559 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 560 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 561 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 562 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 563 template-common: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 564 # Exit the template scope if we hit some basic invalid characters. This | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 565 # helps when a user is in the middle of typing their template types and | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 566 # prevents re-highlighting the whole file until the next > is found. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 567 - match: (?=[{};]) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 568 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 569 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 570 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 571 template: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 572 - match: \btemplate\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 573 scope: storage.type.template.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 574 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 575 - meta_scope: meta.template.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 576 # Explicitly include comments here at the top, in order to NOT match the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 577 # \S lookahead in the case of comments. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 578 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 579 - match: < | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 580 scope: punctuation.section.generic.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 581 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 582 - meta_content_scope: meta.template.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 583 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 584 scope: meta.template.c++ punctuation.section.generic.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 585 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 586 - match: \.{3} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 587 scope: keyword.operator.variadic.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 588 - match: \b(typename|{{before_tag}})\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 589 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 590 - include: template # include template here for nested templates | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 591 - include: template-common | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 592 - match: (?=\S) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 593 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 594 - meta_content_scope: meta.template.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 595 - match: \b({{before_tag}})\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 596 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 597 - include: template-common | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 598 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 599 generic-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 600 - match: '(?=(?!template){{path_lookahead}}\s*{{generic_lookahead}}\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 601 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 602 - meta_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 603 - match: \btemplate\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 604 scope: storage.type.template.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 605 - match: '(?:(::)\s*)?{{identifier}}\s*(::)\s*' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 606 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 607 1: punctuation.accessor.double-colon.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 608 2: punctuation.accessor.double-colon.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 609 - match: (?:(::)\s*)?({{identifier}})\s*(<) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 610 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 611 1: punctuation.accessor.double-colon.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 612 2: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 613 3: punctuation.section.generic.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 614 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 615 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 616 scope: punctuation.section.generic.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 617 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 618 - include: expressions-minus-generic-type-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 619 - match: (?:(::)\s*)?({{identifier}})\s*(\() | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 620 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 621 1: punctuation.accessor.double-colon.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 622 2: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 623 3: punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 624 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 625 - meta_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 626 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 627 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 628 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 629 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 630 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 631 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 632 - match: '\(' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 633 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 634 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 635 - meta_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 636 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 637 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 638 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 639 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 640 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 641 - match: '(?=(?!template){{path_lookahead}}\s*{{generic_lookahead}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 642 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 643 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 644 - match: '<' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 645 scope: punctuation.section.generic.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 646 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 647 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 648 scope: punctuation.section.generic.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 649 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 650 - include: expressions-minus-generic-type-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 651 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 652 angle-brackets: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 653 - match: '<(?!<)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 654 scope: punctuation.section.generic.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 655 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 656 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 657 scope: punctuation.section.generic.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 658 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 659 - include: expressions-minus-generic-type-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 660 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 661 block: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 662 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 663 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 664 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 665 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 666 - match: (?=^\s*#\s*(elif|else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 667 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 668 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 669 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 670 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 671 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 672 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 673 function-call: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 674 - match: (?={{path_lookahead}}\s*\() | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 675 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 676 - meta_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 677 - include: scope:source.c#c99 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 678 - match: '(?:(::)\s*)?{{identifier}}\s*(::)\s*' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 679 scope: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 680 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 681 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 682 2: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 683 - match: '(?:(::)\s*)?{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 684 scope: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 685 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 686 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 687 - match: '\(' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 688 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 689 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 690 - meta_content_scope: meta.function-call.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 691 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 692 scope: meta.function-call.c++ meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 693 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 694 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 695 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 696 members-inside-function-call: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 697 - meta_content_scope: meta.method-call.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 698 - match: \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 699 scope: meta.method-call.c++ meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 700 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 701 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 702 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 703 members-after-accessor-junction: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 704 # After we've seen an accessor (dot or arrow), this context decides what | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 705 # kind of entity we're accessing. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 706 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 707 - match: \btemplate\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 708 scope: meta.method-call.c++ storage.type.template.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 709 # Guaranteed to be a template member function call after we match this | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 710 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 711 - meta_content_scope: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 712 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 713 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 714 scope: variable.function.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 715 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 716 - meta_content_scope: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 717 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 718 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 719 set: members-inside-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 720 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 721 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 722 - match: (?=\S) # safety pop | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 723 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 724 - match: (?=\S) # safety pop | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 725 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 726 # Operator overloading | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 727 - match: '({{operator_method_name}})\s*(\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 728 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 729 0: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 730 1: variable.function.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 731 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 732 set: members-inside-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 733 # Non-templated member function call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 734 - match: (~?{{identifier}})\s*(\() | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 735 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 736 0: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 737 1: variable.function.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 738 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 739 set: members-inside-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 740 # Templated member function call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 741 - match: (~?{{identifier}})\s*(?={{generic_lookahead}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 742 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 743 1: variable.function.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 744 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 745 - meta_scope: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 746 - match: < | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 747 scope: punctuation.section.generic.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 748 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 749 - meta_content_scope: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 750 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 751 scope: punctuation.section.generic.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 752 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 753 - meta_content_scope: meta.method-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 754 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 755 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 756 scope: punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 757 set: members-inside-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 758 - match: (?=\S) # safety pop | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 759 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 760 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 761 # Explicit base-class access | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 762 - match: ({{identifier}})\s*(::) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 763 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 764 1: variable.other.base-class.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 765 2: punctuation.accessor.double-colon.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 766 set: members-after-accessor-junction # reset | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 767 # Just a regular member variable | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 768 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 769 scope: variable.other.readwrite.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 770 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 771 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 772 members-dot: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 773 - include: scope:source.c#access-illegal | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 774 # No lookahead required because members-dot goes after operators in the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 775 # early-expressions-after-generic-type context. This means triple dots | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 776 # (i.e. "..." or "variadic") is attempted first. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 777 - match: \. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 778 scope: punctuation.accessor.dot.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 779 push: members-after-accessor-junction | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 780 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 781 members-arrow: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 782 # This needs to be before operators in the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 783 # early-expressions-after-generic-type context because otherwise the "->" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 784 # from the C language will match. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 785 - match: -> | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 786 scope: punctuation.accessor.arrow.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 787 push: members-after-accessor-junction | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 788 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 789 typedef: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 790 - match: \btypedef\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 791 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 792 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 793 - match: ({{identifier}})?\s*(?=;) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 794 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 795 1: entity.name.type.typedef.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 796 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 797 - match: \b(struct)\s+({{identifier}})\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 798 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 799 1: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 800 - include: expressions-minus-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 801 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 802 parens: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 803 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 804 scope: punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 805 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 806 - meta_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 807 - match: \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 808 scope: punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 809 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 810 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 811 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 812 brackets: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 813 - match: \[ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 814 scope: punctuation.section.brackets.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 815 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 816 - meta_scope: meta.brackets.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 817 - match: \] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 818 scope: punctuation.section.brackets.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 819 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 820 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 821 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 822 function-trailing-return-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 823 - match: '{{non_angle_brackets}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 824 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 825 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 826 - include: types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 827 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 828 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 829 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 830 - match: \*|& | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 831 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 832 - include: function-trailing-return-type-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 833 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 834 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 835 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 836 function-trailing-return-type-parens: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 837 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 838 scope: punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 839 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 840 - meta_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 841 - match: \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 842 scope: punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 843 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 844 - include: function-trailing-return-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 845 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 846 ## Detection of function and data structure definitions at the global level | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 847 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 848 global-modifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 849 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 850 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 851 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 852 # Constructors and destructors don't have a type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 853 - match: '(?={{path_lookahead}}\s*::\s*{{identifier}}\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 854 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 855 - meta_content_scope: meta.function.c++ entity.name.function.constructor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 856 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 857 - match: '(?=[^\w\s])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 858 set: function-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 859 - match: '(?={{path_lookahead}}\s*::\s*~{{identifier}}\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 860 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 861 - meta_content_scope: meta.function.c++ entity.name.function.destructor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 862 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 863 - match: '~{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 864 - match: '(?=[^\w\s])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 865 set: function-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 866 # If we see a path ending in :: before a newline, we don't know if it is | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 867 # a constructor or destructor, or a long return type, so we are just going | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 868 # to treat it like a regular function. Most likely it is a constructor, | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 869 # since it doesn't seem most developers would create such a long typename. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 870 - match: '(?={{path_lookahead}}\s*::\s*$)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 871 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 872 - meta_content_scope: meta.function.c++ entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 873 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 874 - match: '~{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 875 - match: '(?=[^\w\s])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 876 set: function-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 877 - include: unique-strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 878 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 879 set: global-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 880 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 881 global-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 882 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 883 - match: \*|& | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 884 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 885 - match: '(?=\b({{control_keywords}}|{{operator_keywords}}|{{casts}}|{{memory_operators}}|{{other_keywords}}|operator)\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 886 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 887 - match: '(?=\s)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 888 set: global-maybe-function | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 889 # If a class/struct/enum followed by a name that is not a macro or declspec | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 890 # then this is likely a return type of a function. This is uncommon. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 891 - match: |- | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 892 (?x: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 893 ({{before_tag}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 894 \s+ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 895 (?= | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 896 (?![[:upper:][:digit:]_]+\b|__declspec|{{before_tag}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 897 {{path_lookahead}} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 898 (\s+{{identifier}}\s*\(|\s*[*&]) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 899 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 900 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 901 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 902 1: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 903 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 904 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 905 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 906 set: global-maybe-function | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 907 # The previous match handles return types of struct/enum/etc from a func, | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 908 # there this one exits the context to allow matching an actual struct/class | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 909 - match: '(?=\b({{before_tag}})\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 910 set: data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 911 - match: '(?=\b({{casts}})\b\s*<)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 912 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 913 - match: '{{non_angle_brackets}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 914 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 915 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 916 - include: types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 917 # Allow a macro call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 918 - match: '({{identifier}})\s*(\()(?=[^\)]+\))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 919 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 920 1: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 921 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 922 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 923 - meta_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 924 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 925 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 926 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 927 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 928 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 929 - match: '(?={{path_lookahead}}\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 930 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 931 - include: function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 932 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 933 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 934 - include: variables | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 935 - include: constants | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 936 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 937 - match: (?=\W) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 938 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 939 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 940 global-maybe-function: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 941 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 942 # Consume pointer info, macros and any type info that was offset by macros | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 943 - match: \*|& | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 944 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 945 - match: '(?=\b({{control_keywords}}|{{operator_keywords}}|{{casts}}|{{memory_operators}}|{{other_keywords}})\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 946 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 947 - match: '\b({{type_qualifier}})\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 948 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 949 - match: '{{non_angle_brackets}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 950 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 951 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 952 - include: types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 953 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 954 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 955 # All uppercase identifier just before a newline is most likely a macro | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 956 - match: '[[:upper:][:digit:]_]+\s*$' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 957 # Operator overloading | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 958 - match: '(?=({{path_lookahead}}\s*(?:{{generic_lookahead}})?::\s*)?{{operator_method_name}}\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 959 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 960 - meta_content_scope: meta.function.c++ entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 961 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 962 - match: '(?=\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 963 set: function-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 964 # Identifier that is not the function name - likely a macro or type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 965 - match: '(?={{path_lookahead}}([ \t]+|[*&])(?!\s*(<|::|\(|$)))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 966 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 967 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 968 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 969 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 970 # Real function definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 971 - match: '(?={{path_lookahead}}({{generic_lookahead}}({{path_lookahead}})?)\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 972 set: [function-definition-params, global-function-identifier-generic] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 973 - match: '(?={{path_lookahead}}\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 974 set: [function-definition-params, global-function-identifier] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 975 - match: '(?={{path_lookahead}}\s*::\s*$)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 976 set: [function-definition-params, global-function-identifier] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 977 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 978 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 979 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 980 global-function-identifier-generic: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 981 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 982 - match: '::' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 983 scope: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 984 - match: '(?={{identifier}}<.*>\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 985 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 986 - meta_content_scope: entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 987 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 988 - match: '(?=<)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 989 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 990 - match: '(?={{identifier}}\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 991 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 992 - meta_content_scope: entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 993 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 994 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 995 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 996 - match: '(?=\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 997 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 998 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 999 global-function-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1000 - meta_content_scope: entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1001 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1002 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1003 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1004 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1005 function-definition-params: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1006 - meta_content_scope: meta.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1007 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1008 - match: '(?=\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1009 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1010 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1011 scope: meta.function.parameters.c++ meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1012 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1013 - meta_content_scope: meta.function.parameters.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1014 - match : \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1015 scope: punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1016 set: function-definition-continue | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1017 - match: '\bvoid\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1018 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1019 - match: '{{identifier}}(?=\s*(\[|,|\)|=))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1020 scope: variable.parameter.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1021 - match: '=' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1022 scope: keyword.operator.assignment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1023 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1024 - match: '(?=,|\))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1025 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1026 - include: expressions-minus-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1027 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1028 - include: expressions-minus-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1029 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1030 - match: (?=\S) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1031 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1032 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1033 function-definition-continue: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1034 - meta_content_scope: meta.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1035 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1036 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1037 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1038 - match: '->' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1039 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1040 set: function-definition-trailing-return | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1041 - include: function-specifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1042 - match: '=' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1043 scope: keyword.operator.assignment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1044 - match: '&' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1045 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1046 - match: \b0\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1047 scope: constant.numeric.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1048 - match: \b(default|delete)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1049 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1050 - match: '(?=\{)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1051 set: function-definition-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1052 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1053 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1054 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1055 function-definition-trailing-return: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1056 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1057 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1058 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1059 - match: '(?=\{)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1060 set: function-definition-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1061 - include: function-specifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1062 - include: function-trailing-return-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1063 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1064 function-definition-body: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1065 - meta_content_scope: meta.function.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1066 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1067 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1068 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1069 - meta_content_scope: meta.function.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1070 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1071 scope: meta.function.c++ meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1072 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1073 - match: (?=^\s*#\s*(elif|else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1074 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1075 - match: '(?=({{before_tag}})([^(;]+$|.*\{))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1076 push: data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1077 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1078 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1079 ## Data structures including classes, structs, unions and enums | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1080 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1081 data-structures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1082 - match: '\bclass\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1083 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1084 set: data-structures-class-definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1085 # Detect variable type definitions using struct/enum/union followed by a tag | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1086 - match: '\b({{before_tag}})(?=\s+{{path_lookahead}}\s+{{path_lookahead}}\s*[=;\[])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1087 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1088 - match: '\bstruct\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1089 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1090 set: data-structures-struct-definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1091 - match: '\benum(\s+(class|struct))?\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1092 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1093 set: data-structures-enum-definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1094 - match: '\bunion\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1095 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1096 set: data-structures-union-definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1097 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1098 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1099 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1100 preprocessor-workaround-eat-macro-before-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1101 # Handle macros so they aren't matched as the class name | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1102 - match: ({{macro_identifier}})(?=\s+~?{{identifier}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1103 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1104 1: meta.assumed-macro.c | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1105 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1106 data-structures-class-definition: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1107 - meta_scope: meta.class.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1108 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1109 - match: '{{identifier}}(?={{data_structures_forward_decl_lookahead}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1110 scope: entity.name.class.forward-decl.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1111 set: data-structures-class-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1112 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1113 scope: entity.name.class.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1114 set: data-structures-class-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1115 - match: '(?=[:{])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1116 set: data-structures-class-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1117 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1118 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1119 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1120 data-structures-class-definition-after-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1121 - meta_content_scope: meta.class.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1122 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1123 # No matching of identifiers since they should all be macros at this point | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1124 - include: data-structures-definition-common-end | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1125 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1126 scope: meta.block.c++ punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1127 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1128 - meta_content_scope: meta.class.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1129 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1130 scope: meta.class.c++ meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1131 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1132 - include: data-structures-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1133 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1134 data-structures-struct-definition: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1135 - meta_scope: meta.struct.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1136 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1137 - match: '{{identifier}}(?={{data_structures_forward_decl_lookahead}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1138 scope: entity.name.struct.forward-decl.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1139 set: data-structures-struct-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1140 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1141 scope: entity.name.struct.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1142 set: data-structures-struct-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1143 - match: '(?=[:{])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1144 set: data-structures-struct-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1145 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1146 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1147 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1148 data-structures-struct-definition-after-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1149 - meta_content_scope: meta.struct.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1150 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1151 # No matching of identifiers since they should all be macros at this point | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1152 - include: data-structures-definition-common-end | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1153 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1154 scope: meta.block.c++ punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1155 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1156 - meta_content_scope: meta.struct.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1157 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1158 scope: meta.struct.c++ meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1159 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1160 - include: data-structures-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1161 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1162 data-structures-enum-definition: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1163 - meta_scope: meta.enum.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1164 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1165 - match: '{{identifier}}(?={{data_structures_forward_decl_lookahead}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1166 scope: entity.name.enum.forward-decl.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1167 set: data-structures-enum-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1168 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1169 scope: entity.name.enum.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1170 set: data-structures-enum-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1171 - match: '(?=[:{])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1172 set: data-structures-enum-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1173 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1174 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1175 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1176 data-structures-enum-definition-after-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1177 - meta_content_scope: meta.enum.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1178 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1179 # No matching of identifiers since they should all be macros at this point | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1180 - include: data-structures-definition-common-end | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1181 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1182 scope: meta.block.c++ punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1183 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1184 - meta_content_scope: meta.enum.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1185 # Enums don't support methods so we have a simplified body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1186 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1187 scope: meta.enum.c++ meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1188 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1189 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1190 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1191 data-structures-union-definition: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1192 - meta_scope: meta.union.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1193 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1194 - match: '{{identifier}}(?={{data_structures_forward_decl_lookahead}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1195 scope: entity.name.union.forward-decl.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1196 set: data-structures-union-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1197 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1198 scope: entity.name.union.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1199 set: data-structures-union-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1200 - match: '(?=[{])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1201 set: data-structures-union-definition-after-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1202 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1203 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1204 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1205 data-structures-union-definition-after-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1206 - meta_content_scope: meta.union.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1207 - include: data-structures-definition-common-begin | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1208 # No matching of identifiers since they should all be macros at this point | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1209 # Unions don't support base classes | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1210 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1211 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1212 scope: meta.block.c++ punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1213 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1214 - meta_content_scope: meta.union.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1215 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1216 scope: meta.union.c++ meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1217 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1218 - include: data-structures-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1219 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1220 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1221 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1222 data-structures-definition-common-begin: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1223 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1224 - match: '(?=\b(?:{{before_tag}}|{{control_keywords}})\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1225 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1226 - include: preprocessor-other | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1227 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1228 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1229 - include: preprocessor-workaround-eat-macro-before-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1230 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1231 data-structures-definition-common-end: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1232 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1233 - match: \bfinal\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1234 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1235 - match: ':' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1236 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1237 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1238 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1239 - include: preprocessor-other | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1240 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1241 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1242 - match: '\b(virtual|{{visibility_modifiers}})\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1243 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1244 - match: (?={{path_lookahead}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1245 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1246 - meta_scope: entity.other.inherited-class.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1247 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1248 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1249 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1250 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1251 - match: ',' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1252 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1253 - match: (?=\{|;) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1254 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1255 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1256 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1257 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1258 data-structures-body: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1259 - include: preprocessor-data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1260 - match: '(?=\btemplate\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1261 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1262 - include: template | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1263 - match: (?=\S) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1264 set: data-structures-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1265 - include: typedef | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1266 - match: \b({{visibility_modifiers}})\s*(:)(?!:) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1267 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1268 1: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1269 2: punctuation.section.class.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1270 - match: '^\s*(?=(?:~?\w+|::))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1271 push: data-structures-modifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1272 - include: expressions-minus-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1273 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1274 data-structures-modifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1275 - match: '\bfriend\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1276 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1277 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1278 - match: (?=;) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1279 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1280 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1281 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1282 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1283 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1284 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1285 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1286 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1287 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1288 - match: '\b({{before_tag}})\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1289 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1290 - include: expressions-minus-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1291 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1292 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1293 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1294 - match: '\bstatic_assert(?=\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1295 scope: meta.static-assert.c++ keyword.operator.word.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1296 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1297 - match: '\(' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1298 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1299 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1300 - meta_content_scope: meta.function-call.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1301 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1302 scope: meta.function-call.c++ meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1303 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1304 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1305 # Destructor | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1306 - match: '(?:{{identifier}}\s*(::)\s*)?~{{identifier}}(?=\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1307 scope: meta.method.destructor.c++ entity.name.function.destructor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1308 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1309 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1310 set: method-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1311 # It's a macro, not a constructor if there is no type in the first param | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1312 - match: '({{identifier}})\s*(\()(?=\s*(?!void){{identifier}}\s*[),])' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1313 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1314 1: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1315 2: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1316 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1317 - meta_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1318 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1319 - match: '\)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1320 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1321 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1322 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1323 # Constructor | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1324 - include: preprocessor-workaround-eat-macro-before-identifier | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1325 - match: '((?!{{before_tag}}|template){{identifier}})(?=\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1326 scope: meta.method.constructor.c++ entity.name.function.constructor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1327 set: method-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1328 # Long form constructor | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1329 - match: '({{identifier}}\s*(::)\s*{{identifier}})(?=\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1330 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1331 1: meta.method.constructor.c++ entity.name.function.constructor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1332 2: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1333 push: method-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1334 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1335 set: data-structures-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1336 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1337 data-structures-type: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1338 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1339 - match: \*|& | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1340 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1341 # Cast methods | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1342 - match: '(operator)\s+({{identifier}})(?=\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1343 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1344 1: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1345 2: meta.method.c++ entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1346 set: method-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1347 - match: '(?=\b({{control_keywords}}|{{operator_keywords}}|{{casts}}|{{memory_operators}}|{{other_keywords}}|operator)\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1348 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1349 - match: '(?=\s)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1350 set: data-structures-maybe-method | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1351 # If a class/struct/enum followed by a name that is not a macro or declspec | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1352 # then this is likely a return type of a function. This is uncommon. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1353 - match: |- | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1354 (?x: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1355 ({{before_tag}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1356 \s+ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1357 (?= | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1358 (?![[:upper:][:digit:]_]+\b|__declspec|{{before_tag}}) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1359 {{path_lookahead}} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1360 (\s+{{identifier}}\s*\(|\s*[*&]) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1361 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1362 ) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1363 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1364 1: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1365 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1366 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1367 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1368 set: data-structures-maybe-method | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1369 # The previous match handles return types of struct/enum/etc from a func, | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1370 # there this one exits the context to allow matching an actual struct/class | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1371 - match: '(?=\b({{before_tag}})\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1372 set: data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1373 - match: '(?=\b({{casts}})\b\s*<)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1374 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1375 - match: '{{non_angle_brackets}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1376 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1377 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1378 - include: types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1379 - include: variables | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1380 - include: constants | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1381 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1382 - match: (?=[&*]) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1383 set: data-structures-maybe-method | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1384 - match: (?=\W) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1385 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1386 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1387 data-structures-maybe-method: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1388 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1389 # Consume pointer info, macros and any type info that was offset by macros | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1390 - match: \*|& | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1391 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1392 - match: '(?=\b({{control_keywords}}|{{operator_keywords}}|{{casts}}|{{memory_operators}}|{{other_keywords}})\b)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1393 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1394 - match: '\b({{type_qualifier}})\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1395 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1396 - match: '{{non_angle_brackets}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1397 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1398 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1399 - include: types | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1400 - include: modifiers-parens | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1401 - include: modifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1402 # Operator overloading | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1403 - match: '{{operator_method_name}}(?=\s*(\(|$))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1404 scope: meta.method.c++ entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1405 set: method-definition-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1406 # Identifier that is not the function name - likely a macro or type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1407 - match: '(?={{path_lookahead}}([ \t]+|[*&])(?!\s*(<|::|\()))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1408 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1409 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1410 - match: '' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1411 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1412 # Real function definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1413 - match: '(?={{path_lookahead}}({{generic_lookahead}})\s*(\())' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1414 set: [method-definition-params, data-structures-function-identifier-generic] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1415 - match: '(?={{path_lookahead}}\s*(\())' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1416 set: [method-definition-params, data-structures-function-identifier] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1417 - match: '(?={{path_lookahead}}\s*::\s*$)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1418 set: [method-definition-params, data-structures-function-identifier] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1419 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1420 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1421 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1422 data-structures-function-identifier-generic: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1423 - include: angle-brackets | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1424 - match: '(?={{identifier}})' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1425 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1426 - meta_content_scope: entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1427 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1428 - match: '(?=<)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1429 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1430 - match: '(?=\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1431 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1432 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1433 data-structures-function-identifier: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1434 - meta_content_scope: entity.name.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1435 - include: identifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1436 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1437 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1438 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1439 method-definition-params: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1440 - meta_content_scope: meta.method.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1441 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1442 - match: '(?=\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1443 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1444 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1445 scope: meta.method.parameters.c++ meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1446 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1447 - meta_content_scope: meta.method.parameters.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1448 - match : \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1449 scope: punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1450 set: method-definition-continue | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1451 - match: '\bvoid\b' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1452 scope: storage.type.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1453 - match: '{{identifier}}(?=\s*(\[|,|\)|=))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1454 scope: variable.parameter.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1455 - match: '=' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1456 scope: keyword.operator.assignment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1457 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1458 - match: '(?=,|\))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1459 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1460 - include: expressions-minus-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1461 - include: expressions-minus-generic-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1462 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1463 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1464 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1465 method-definition-continue: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1466 - meta_content_scope: meta.method.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1467 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1468 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1469 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1470 - match: '->' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1471 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1472 set: method-definition-trailing-return | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1473 - include: function-specifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1474 - match: '=' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1475 scope: keyword.operator.assignment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1476 - match: '&' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1477 scope: keyword.operator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1478 - match: \b0\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1479 scope: constant.numeric.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1480 - match: \b(default|delete)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1481 scope: storage.modifier.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1482 - match: '(?=:)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1483 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1484 - match: ':' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1485 scope: punctuation.separator.initializer-list.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1486 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1487 - meta_scope: meta.method.constructor.initializer-list.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1488 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1489 scope: variable.other.readwrite.member.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1490 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1491 - match: \( | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1492 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1493 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1494 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1495 - match: \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1496 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1497 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1498 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1499 - match: \{ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1500 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1501 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1502 - meta_content_scope: meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1503 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1504 scope: meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1505 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1506 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1507 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1508 - match: (?=\{|;) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1509 set: method-definition-continue | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1510 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1511 - match: '(?=\{)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1512 set: method-definition-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1513 - match: '(?=\S)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1514 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1515 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1516 method-definition-trailing-return: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1517 - include: comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1518 - match: '(?=;)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1519 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1520 - match: '(?=\{)' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1521 set: method-definition-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1522 - include: function-specifiers | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1523 - include: function-trailing-return-type | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1524 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1525 method-definition-body: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1526 - meta_content_scope: meta.method.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1527 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1528 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1529 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1530 - meta_content_scope: meta.method.c++ meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1531 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1532 scope: meta.method.c++ meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1533 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1534 - match: (?=^\s*#\s*(elif|else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1535 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1536 - match: '(?=({{before_tag}})([^(;]+$|.*\{))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1537 push: data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1538 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1539 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1540 ## Preprocessor for data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1541 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1542 preprocessor-data-structures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1543 - include: preprocessor-rule-enabled-data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1544 - include: preprocessor-rule-disabled-data-structures | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1545 - include: preprocessor-practical-workarounds | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1546 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1547 preprocessor-rule-disabled-data-structures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1548 - match: ^\s*((#if)\s+(0))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1549 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1550 1: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1551 2: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1552 3: constant.numeric.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1553 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1554 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1555 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1556 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1557 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1558 - match: ^\s*(#\s*else)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1559 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1560 1: meta.preprocessor.c++ keyword.control.import.else.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1561 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1562 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1563 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1564 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1565 - include: data-structures-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1566 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1567 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1568 - meta_scope: comment.block.preprocessor.if-branch.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1569 - match: (?=^\s*#\s*(else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1570 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1571 - include: scope:source.c#preprocessor-disabled | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1572 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1573 preprocessor-rule-enabled-data-structures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1574 - match: ^\s*((#if)\s+(0*1))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1575 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1576 1: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1577 2: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1578 3: constant.numeric.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1579 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1580 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1581 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1582 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1583 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1584 - match: ^\s*(#\s*else)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1585 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1586 1: meta.preprocessor.c++ keyword.control.import.else.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1587 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1588 - meta_content_scope: comment.block.preprocessor.else-branch.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1589 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1590 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1591 - include: scope:source.c#preprocessor-disabled | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1592 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1593 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1594 - match: (?=^\s*#\s*(else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1595 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1596 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1597 - include: data-structures-body | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1598 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1599 ## Preprocessor for global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1600 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1601 preprocessor-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1602 - include: preprocessor-rule-enabled-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1603 - include: preprocessor-rule-disabled-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1604 - include: preprocessor-rule-other-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1605 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1606 preprocessor-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1607 - include: preprocessor-rule-enabled-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1608 - include: preprocessor-rule-disabled-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1609 - include: preprocessor-rule-other-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1610 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1611 preprocessor-expressions: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1612 - include: scope:source.c#incomplete-inc | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1613 - include: preprocessor-macro-define | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1614 - include: scope:source.c#pragma-mark | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1615 - include: preprocessor-other | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1616 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1617 preprocessor-rule-disabled-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1618 - match: ^\s*((#if)\s+(0))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1619 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1620 1: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1621 2: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1622 3: constant.numeric.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1623 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1624 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1625 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1626 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1627 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1628 - match: ^\s*(#\s*else)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1629 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1630 1: meta.preprocessor.c++ keyword.control.import.else.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1631 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1632 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1633 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1634 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1635 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1636 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1637 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1638 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1639 - meta_scope: comment.block.preprocessor.if-branch.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1640 - match: (?=^\s*#\s*(else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1641 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1642 - include: scope:source.c#preprocessor-disabled | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1643 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1644 preprocessor-rule-enabled-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1645 - match: ^\s*((#if)\s+(0*1))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1646 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1647 1: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1648 2: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1649 3: constant.numeric.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1650 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1651 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1652 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1653 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1654 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1655 - match: ^\s*(#\s*else)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1656 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1657 1: meta.preprocessor.c++ keyword.control.import.else.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1658 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1659 - meta_content_scope: comment.block.preprocessor.else-branch.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1660 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1661 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1662 - include: scope:source.c#preprocessor-disabled | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1663 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1664 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1665 - match: (?=^\s*#\s*(else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1666 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1667 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1668 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1669 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1670 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1671 preprocessor-rule-other-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1672 - match: ^\s*(#\s*(?:if|ifdef|ifndef))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1673 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1674 1: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1675 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1676 - meta_scope: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1677 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1678 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1679 - match: \bdefined\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1680 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1681 # Enter a new scope where all elif/else branches have their | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1682 # contexts popped by a subsequent elif/else/endif. This ensures that | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1683 # preprocessor branches don't push multiple meta.block scopes on | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1684 # the stack, thus messing up the "global" context's detection of | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1685 # functions. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1686 - match: $\n | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1687 set: preprocessor-if-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1688 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1689 # These gymnastics here ensure that we are properly handling scope even | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1690 # when the preprocessor is used to create different scope beginnings, such | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1691 # as a different if/while condition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1692 preprocessor-if-branch-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1693 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1694 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1695 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1696 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1697 - match: (?=^\s*#\s*(elif|else)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1698 push: preprocessor-elif-else-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1699 - match: \{ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1700 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1701 set: preprocessor-block-if-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1702 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1703 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1704 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1705 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1706 preprocessor-block-if-branch-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1707 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1708 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1709 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1710 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1711 set: preprocessor-block-finish-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1712 - match: (?=^\s*#\s*(elif|else)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1713 push: preprocessor-elif-else-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1714 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1715 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1716 set: preprocessor-if-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1717 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1718 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1719 preprocessor-block-finish-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1720 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1721 - match: ^\s*(#\s*(?:if|ifdef|ifndef))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1722 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1723 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1724 set: preprocessor-block-finish-if-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1725 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1726 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1727 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1728 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1729 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1730 preprocessor-block-finish-if-branch-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1731 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1732 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1733 1: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1734 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1735 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1736 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1737 set: preprocessor-if-branch-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1738 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1739 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1740 preprocessor-elif-else-branch-global: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1741 - match: (?=^\s*#\s*(endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1742 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1743 - include: preprocessor-global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1744 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1745 - include: global | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1746 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1747 ## Preprocessor for statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1748 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1749 preprocessor-rule-disabled-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1750 - match: ^\s*((#if)\s+(0))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1751 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1752 1: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1753 2: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1754 3: constant.numeric.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1755 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1756 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1757 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1758 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1759 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1760 - match: ^\s*(#\s*else)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1761 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1762 1: meta.preprocessor.c++ keyword.control.import.else.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1763 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1764 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1765 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1766 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1767 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1768 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1769 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1770 - meta_scope: comment.block.preprocessor.if-branch.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1771 - match: (?=^\s*#\s*(else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1772 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1773 - include: scope:source.c#preprocessor-disabled | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1774 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1775 preprocessor-rule-enabled-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1776 - match: ^\s*((#if)\s+(0*1))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1777 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1778 1: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1779 2: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1780 3: constant.numeric.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1781 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1782 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1783 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1784 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1785 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1786 - match: ^\s*(#\s*else)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1787 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1788 1: meta.preprocessor.c++ keyword.control.import.else.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1789 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1790 - meta_content_scope: comment.block.preprocessor.else-branch.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1791 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1792 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1793 - include: scope:source.c#preprocessor-disabled | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1794 - match: "" | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1795 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1796 - match: (?=^\s*#\s*(else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1797 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1798 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1799 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1800 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1801 preprocessor-rule-other-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1802 - match: ^\s*(#\s*(?:if|ifdef|ifndef))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1803 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1804 1: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1805 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1806 - meta_scope: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1807 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1808 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1809 - match: \bdefined\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1810 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1811 # Enter a new scope where all elif/else branches have their | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1812 # contexts popped by a subsequent elif/else/endif. This ensures that | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1813 # preprocessor branches don't push multiple meta.block scopes on | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1814 # the stack, thus messing up the "global" context's detection of | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1815 # functions. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1816 - match: $\n | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1817 set: preprocessor-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1818 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1819 # These gymnastics here ensure that we are properly handling scope even | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1820 # when the preprocessor is used to create different scope beginnings, such | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1821 # as a different if/while condition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1822 preprocessor-if-branch-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1823 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1824 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1825 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1826 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1827 - match: (?=^\s*#\s*(elif|else)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1828 push: preprocessor-elif-else-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1829 - match: \{ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1830 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1831 set: preprocessor-block-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1832 - match: (?=(?!{{non_func_keywords}}){{path_lookahead}}\s*\() | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1833 set: preprocessor-if-branch-function-call | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1834 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1835 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1836 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1837 preprocessor-if-branch-function-call: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1838 - meta_content_scope: meta.function-call.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1839 - include: scope:source.c#c99 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1840 - match: '(?:(::)\s*)?{{identifier}}\s*(::)\s*' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1841 scope: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1842 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1843 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1844 2: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1845 - match: '(?:(::)\s*)?{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1846 scope: variable.function.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1847 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1848 1: punctuation.accessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1849 - match: '\(' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1850 scope: meta.group.c++ punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1851 set: preprocessor-if-branch-function-call-arguments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1852 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1853 preprocessor-if-branch-function-call-arguments: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1854 - meta_content_scope: meta.function-call.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1855 - match : \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1856 scope: meta.function-call.c++ meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1857 set: preprocessor-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1858 - match: ^\s*(#\s*(?:elif|else))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1859 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1860 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1861 set: preprocessor-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1862 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1863 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1864 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1865 set: preprocessor-if-branch-function-call-arguments-finish | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1866 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1867 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1868 preprocessor-if-branch-function-call-arguments-finish: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1869 - meta_content_scope: meta.function-call.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1870 - match: \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1871 scope: meta.function-call.c++ meta.group.c++ punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1872 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1873 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1874 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1875 preprocessor-block-if-branch-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1876 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1877 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1878 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1879 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1880 set: preprocessor-block-finish-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1881 - match: (?=^\s*#\s*(elif|else)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1882 push: preprocessor-elif-else-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1883 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1884 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1885 set: preprocessor-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1886 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1887 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1888 preprocessor-block-finish-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1889 - meta_scope: meta.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1890 - match: ^\s*(#\s*(?:if|ifdef|ifndef))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1891 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1892 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1893 set: preprocessor-block-finish-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1894 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1895 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1896 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1897 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1898 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1899 preprocessor-block-finish-if-branch-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1900 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1901 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1902 1: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1903 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1904 - match: \} | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1905 scope: meta.block.c++ punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1906 set: preprocessor-if-branch-statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1907 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1908 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1909 preprocessor-elif-else-branch-statements: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1910 - match: (?=^\s*#\s*endif\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1911 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1912 - include: negated-block | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1913 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1914 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1915 ## Preprocessor other | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1916 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1917 negated-block: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1918 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1919 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1920 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1921 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1922 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1923 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1924 - match: (?=^\s*#\s*(elif|else|endif)\b) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1925 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1926 - include: statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1927 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1928 preprocessor-macro-define: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1929 - match: ^\s*(\#\s*define)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1930 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1931 1: meta.preprocessor.macro.c++ keyword.control.import.define.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1932 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1933 - meta_content_scope: meta.preprocessor.macro.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1934 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1935 - include: scope:source.c#preprocessor-line-ending | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1936 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1937 - match: '({{identifier}})(?=\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1938 scope: entity.name.function.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1939 set: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1940 - match: '\(' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1941 scope: punctuation.section.group.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1942 set: preprocessor-macro-params | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1943 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1944 scope: entity.name.constant.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1945 set: preprocessor-macro-definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1946 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1947 preprocessor-macro-params: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1948 - meta_scope: meta.preprocessor.macro.parameters.c++ meta.group.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1949 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1950 scope: variable.parameter.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1951 - match: \) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1952 scope: punctuation.section.group.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1953 set: preprocessor-macro-definition | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1954 - match: ',' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1955 scope: punctuation.separator.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1956 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1957 - match: '{{identifier}}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1958 scope: variable.parameter.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1959 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1960 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1961 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1962 - match: '\.\.\.' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1963 scope: keyword.operator.variadic.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1964 - match: '(?=\))' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1965 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1966 - match: (/\*).*(\*/) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1967 scope: comment.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1968 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1969 1: punctuation.definition.comment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1970 2: punctuation.definition.comment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1971 - match: '\S+' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1972 scope: invalid.illegal.unexpected-character.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1973 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1974 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1975 - match: '\.\.\.' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1976 scope: keyword.operator.variadic.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1977 - match: (/\*).*(\*/) | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1978 scope: comment.block.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1979 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1980 1: punctuation.definition.comment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1981 2: punctuation.definition.comment.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1982 - match: $\n | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1983 scope: invalid.illegal.unexpected-end-of-line.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1984 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1985 preprocessor-macro-definition: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1986 - meta_content_scope: meta.preprocessor.macro.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1987 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1988 - include: scope:source.c#preprocessor-line-ending | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1989 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1990 # Don't define blocks in define statements | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1991 - match: '\{' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1992 scope: punctuation.section.block.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1993 - match: '\}' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1994 scope: punctuation.section.block.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1995 - include: expressions | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1996 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1997 preprocessor-practical-workarounds: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1998 - include: preprocessor-convention-ignore-uppercase-ident-lines | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 1999 - include: scope:source.c#preprocessor-convention-ignore-uppercase-calls-without-semicolon | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2000 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2001 preprocessor-convention-ignore-uppercase-ident-lines: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2002 - match: ^(\s*{{macro_identifier}})+\s*$ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2003 scope: meta.assumed-macro.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2004 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2005 # It's possible that we are dealing with a function return type on its own line, and the | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2006 # name of the function is on the subsequent line. | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2007 - match: '(?={{path_lookahead}}({{generic_lookahead}}({{path_lookahead}})?)\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2008 set: [function-definition-params, global-function-identifier-generic] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2009 - match: '(?={{path_lookahead}}\s*\()' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2010 set: [function-definition-params, global-function-identifier] | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2011 - match: ^ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2012 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2013 | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2014 preprocessor-other: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2015 - match: ^\s*(#\s*(?:if|ifdef|ifndef|elif|else|line|pragma|undef))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2016 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2017 1: keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2018 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2019 - meta_scope: meta.preprocessor.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2020 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2021 - include: scope:source.c#preprocessor-line-ending | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2022 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2023 - match: \bdefined\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2024 scope: keyword.control.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2025 - match: ^\s*(#\s*endif)\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2026 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2027 1: meta.preprocessor.c++ keyword.control.import.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2028 - match: ^\s*(#\s*(?:error|warning))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2029 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2030 1: keyword.control.import.error.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2031 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2032 - meta_scope: meta.preprocessor.diagnostic.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2033 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2034 - include: scope:source.c#preprocessor-line-ending | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2035 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2036 - include: strings | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2037 - match: '\S+' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2038 scope: string.unquoted.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2039 - match: ^\s*(#\s*(?:include|include_next|import))\b | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2040 captures: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2041 1: keyword.control.import.include.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2042 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2043 - meta_scope: meta.preprocessor.include.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2044 - include: scope:source.c#preprocessor-line-continuation | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2045 - include: scope:source.c#preprocessor-line-ending | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2046 - include: scope:source.c#preprocessor-comments | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2047 - match: '"' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2048 scope: punctuation.definition.string.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2049 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2050 - meta_scope: string.quoted.double.include.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2051 - match: '"' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2052 scope: punctuation.definition.string.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2053 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2054 - match: < | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2055 scope: punctuation.definition.string.begin.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2056 push: | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2057 - meta_scope: string.quoted.other.lt-gt.include.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2058 - match: '>' | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2059 scope: punctuation.definition.string.end.c++ | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2060 pop: true | 
| 
1faa72660932
*: transfer back to cmake from autotools
 Paper <paper@paper.us.eu.org> parents: diff
changeset | 2061 - include: preprocessor-practical-workarounds | 
