|
|
|
@ -856,5 +856,63 @@ testTokenization('cpp', [
|
|
|
|
|
{ startIndex: 4, type: 'comment.cpp' }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
// Annotations
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
line: '[[nodiscard]]',
|
|
|
|
|
tokens: [{ startIndex: 0, type: 'annotation.cpp' }]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
{
|
|
|
|
|
// Example from http://eel.is/c++draft/dcl.attr
|
|
|
|
|
line: '[[using CC: opt(1), debug]]',
|
|
|
|
|
tokens: [
|
|
|
|
|
{ startIndex: 0, type: 'annotation.cpp' }, // [[
|
|
|
|
|
{ startIndex: 2, type: 'keyword.cpp' }, // using
|
|
|
|
|
{ startIndex: 7, type: '' },
|
|
|
|
|
{ startIndex: 8, type: 'annotation.cpp' }, // CC
|
|
|
|
|
{ startIndex: 10, type: 'delimiter.cpp' }, // colon
|
|
|
|
|
{ startIndex: 11, type: '' },
|
|
|
|
|
{ startIndex: 12, type: 'annotation.cpp' }, // opt
|
|
|
|
|
{ startIndex: 15, type: 'delimiter.parenthesis.cpp' }, // (
|
|
|
|
|
{ startIndex: 16, type: 'annotation.cpp' }, // 1
|
|
|
|
|
{ startIndex: 17, type: 'delimiter.parenthesis.cpp' }, // )
|
|
|
|
|
{ startIndex: 18, type: 'delimiter.cpp' }, // ,
|
|
|
|
|
{ startIndex: 19, type: '' },
|
|
|
|
|
{ startIndex: 20, type: 'annotation.cpp' } // debug]]
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
// Multiline and comments.
|
|
|
|
|
{
|
|
|
|
|
line: '[[nodiscard /*commented*/',
|
|
|
|
|
tokens: [
|
|
|
|
|
{ startIndex: 0, type: 'annotation.cpp' },
|
|
|
|
|
{ startIndex: 11, type: '' },
|
|
|
|
|
{ startIndex: 12, type: 'comment.cpp' }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
line: ']] int i;',
|
|
|
|
|
tokens: [
|
|
|
|
|
{ startIndex: 0, type: 'annotation.cpp' },
|
|
|
|
|
{ startIndex: 2, type: '' },
|
|
|
|
|
{ startIndex: 3, type: 'keyword.int.cpp' },
|
|
|
|
|
{ startIndex: 6, type: '' },
|
|
|
|
|
{ startIndex: 7, type: 'identifier.cpp' },
|
|
|
|
|
{ startIndex: 8, type: 'delimiter.cpp' }
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
// We don't support newlines between annotation square brackets, but we do support other whitespace.
|
|
|
|
|
{
|
|
|
|
|
line: '[ [nodiscard] ]',
|
|
|
|
|
tokens: [{ startIndex: 0, type: 'annotation.cpp' }]
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
]);
|
|
|
|
|