'// C23 attributes\n' Comment.Single

'\n'          Text.Whitespace

'[['          Punctuation
'nodiscard'   Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'compute'     Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'[['          Punctuation
'deprecated'  Name.Attribute
'('           Punctuation
'"'           Literal.String
'use computeV2 instead' Literal.String
'"'           Literal.String
')'           Punctuation
']]'          Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'computeOld'  Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'[['          Punctuation
'maybe_unused' Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'helper'      Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'[['          Punctuation
'noreturn'    Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'fatalError'  Name
'('           Punctuation
'const'       Keyword
' '           Text.Whitespace
'char'        Keyword.Type
'*'           Operator
' '           Text.Whitespace
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'// Vendor-specific attributes\n' Comment.Single

'[['          Punctuation
'gnu'         Name.Attribute
'::'          Punctuation
'always_inline' Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'inline'      Keyword.Reserved
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'fastAdd'     Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'a'           Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'b'           Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'b'           Name
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'[['          Punctuation
'gnu'         Name.Attribute
'::'          Punctuation
'cold'        Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'rarelyCalled' Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'// Multiple attributes\n' Comment.Single

'[['          Punctuation
'nodiscard'   Name.Attribute
','           Punctuation
' '           Text.Whitespace
'gnu'         Name.Attribute
'::'          Punctuation
'warn_unused_result' Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'importantResult' Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'// Attributes on declarations\n' Comment.Single

'[['          Punctuation
'deprecated'  Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'typedef'     Keyword
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'OldInt'      Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'// Attributes on the line above\n' Comment.Single

'[['          Punctuation
'nodiscard'   Name.Attribute
']]'          Punctuation
'\n'          Text.Whitespace

'int'         Keyword.Type
' '           Text.Whitespace
'computeV2'   Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'[['          Punctuation
'gnu'         Name.Attribute
'::'          Punctuation
'always_inline' Name.Attribute
']]'          Punctuation
'\n'          Text.Whitespace

'inline'      Keyword.Reserved
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'fastMul'     Name
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'a'           Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'b'           Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'*'           Operator
' '           Text.Whitespace
'b'           Name
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'[['          Punctuation
'deprecated'  Name.Attribute
'('           Punctuation
'"'           Literal.String
'old API'     Literal.String
'"'           Literal.String
')'           Punctuation
']]'          Punctuation
'\n'          Text.Whitespace

'void'        Keyword.Type
' '           Text.Whitespace
'legacyInit'  Name
'('           Punctuation
'void'        Keyword.Type
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'// Attribute on struct\n' Comment.Single

'struct'      Keyword
' '           Text.Whitespace
'[['          Punctuation
'deprecated'  Name.Attribute
']]'          Punctuation
' '           Text.Whitespace
'OldConfig'   Name.Class
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'flags'       Name
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'// Fallthrough in switch\n' Comment.Single

'int'         Keyword.Type
' '           Text.Whitespace
'testFallthrough' Name.Function
'('           Punctuation
'int'         Keyword.Type
' '           Text.Whitespace
'x'           Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'switch'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'case'        Keyword
' '           Text.Whitespace
'1'           Literal.Number.Integer
':'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'x'           Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'[['          Punctuation
'fallthrough' Name.Attribute
']]'          Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'case'        Keyword
' '           Text.Whitespace
'2'           Literal.Number.Integer
':'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'x'           Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'default'     Keyword
':'           Operator
'\n'          Text.Whitespace

'        '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace
