|
|
@ -12,8 +12,8 @@ |
|
|
|
|
|
|
|
|
const PREC = { |
|
|
const PREC = { |
|
|
PAREN_DECLARATOR: -10, |
|
|
PAREN_DECLARATOR: -10, |
|
|
ASSIGNMENT: -1, |
|
|
|
|
|
CONDITIONAL: -2, |
|
|
|
|
|
|
|
|
ASSIGNMENT: -2, |
|
|
|
|
|
CONDITIONAL: -1, |
|
|
DEFAULT: 0, |
|
|
DEFAULT: 0, |
|
|
LOGICAL_OR: 1, |
|
|
LOGICAL_OR: 1, |
|
|
LOGICAL_AND: 2, |
|
|
LOGICAL_AND: 2, |
|
|
@ -117,14 +117,14 @@ module.exports = grammar({ |
|
|
$.identifier, |
|
|
$.identifier, |
|
|
alias($.preproc_call_expression, $.call_expression), |
|
|
alias($.preproc_call_expression, $.call_expression), |
|
|
)), |
|
|
)), |
|
|
'\n', |
|
|
|
|
|
|
|
|
token.immediate(/\r?\n/), |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
|
preproc_def: $ => seq( |
|
|
preproc_def: $ => seq( |
|
|
preprocessor('define'), |
|
|
preprocessor('define'), |
|
|
field('name', $.identifier), |
|
|
field('name', $.identifier), |
|
|
field('value', optional($.preproc_arg)), |
|
|
field('value', optional($.preproc_arg)), |
|
|
'\n', |
|
|
|
|
|
|
|
|
token.immediate(/\r?\n/), |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
|
preproc_function_def: $ => seq( |
|
|
preproc_function_def: $ => seq( |
|
|
@ -132,7 +132,7 @@ module.exports = grammar({ |
|
|
field('name', $.identifier), |
|
|
field('name', $.identifier), |
|
|
field('parameters', $.preproc_params), |
|
|
field('parameters', $.preproc_params), |
|
|
field('value', optional($.preproc_arg)), |
|
|
field('value', optional($.preproc_arg)), |
|
|
'\n', |
|
|
|
|
|
|
|
|
token.immediate(/\r?\n/), |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
|
preproc_params: $ => seq( |
|
|
preproc_params: $ => seq( |
|
|
@ -142,13 +142,13 @@ module.exports = grammar({ |
|
|
preproc_call: $ => seq( |
|
|
preproc_call: $ => seq( |
|
|
field('directive', $.preproc_directive), |
|
|
field('directive', $.preproc_directive), |
|
|
field('argument', optional($.preproc_arg)), |
|
|
field('argument', optional($.preproc_arg)), |
|
|
'\n', |
|
|
|
|
|
|
|
|
token.immediate(/\r?\n/), |
|
|
), |
|
|
), |
|
|
|
|
|
|
|
|
...preprocIf('', $ => $._block_item), |
|
|
...preprocIf('', $ => $._block_item), |
|
|
...preprocIf('_in_field_declaration_list', $ => $._field_declaration_list_item), |
|
|
...preprocIf('_in_field_declaration_list', $ => $._field_declaration_list_item), |
|
|
|
|
|
|
|
|
preproc_arg: _ => token(prec(-1, /\S(.|\\\r?\n)*/)), |
|
|
|
|
|
|
|
|
preproc_arg: _ => token(prec(-1, /\S([^/\n]|\\\r?\n)*/)), |
|
|
preproc_directive: _ => /#[ \t]*[a-zA-Z0-9]\w*/, |
|
|
preproc_directive: _ => /#[ \t]*[a-zA-Z0-9]\w*/, |
|
|
|
|
|
|
|
|
_preproc_expression: $ => choice( |
|
|
_preproc_expression: $ => choice( |
|
|
|