feat: add missing fold operators (#195)

pull/594/head
Amaan Qureshi 2023-03-25 11:30:48 +07:00 committed by GitHub
parent 03fa93db13
commit af15a5260b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 245819 additions and 245049 deletions

@ -18,6 +18,7 @@ const FOLD_OPERATORS = [
'&&', '||',
',',
'.*', '->*',
'or', 'and', 'bitor', 'xor', 'bitand', 'not_eq',
]
module.exports = grammar(C, {
@ -162,7 +163,8 @@ module.exports = grammar(C, {
members: original.members.map(
e => e.name !== 'body'
? e
: field('body', choice(e.content, $.try_statement))) }),
: field('body', choice(e.content, $.try_statement)))
}),
virtual_specifier: $ => choice(
'final', // the only legal value here for classes

150
src/grammar.json vendored

@ -11160,6 +11160,30 @@
{
"type": "STRING",
"value": "->*"
},
{
"type": "STRING",
"value": "or"
},
{
"type": "STRING",
"value": "and"
},
{
"type": "STRING",
"value": "bitor"
},
{
"type": "STRING",
"value": "xor"
},
{
"type": "STRING",
"value": "bitand"
},
{
"type": "STRING",
"value": "not_eq"
}
]
},
@ -11837,6 +11861,132 @@
"value": "->*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "or"
}
},
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "or"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "and"
}
},
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "and"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "bitor"
}
},
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "bitor"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "xor"
}
},
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "xor"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "bitand"
}
},
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "bitand"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "not_eq"
}
},
{
"type": "STRING",
"value": "..."
},
{
"type": "STRING",
"value": "not_eq"
}
]
}
]
},

@ -2742,6 +2742,30 @@
"type": "^=",
"named": false
},
{
"type": "and",
"named": false
},
{
"type": "bitand",
"named": false
},
{
"type": "bitor",
"named": false
},
{
"type": "not_eq",
"named": false
},
{
"type": "or",
"named": false
},
{
"type": "xor",
"named": false
},
{
"type": "|",
"named": false

490678
src/parser.c vendored

File diff suppressed because it is too large Load Diff