diff --git a/common/define-grammar.js b/common/define-grammar.js index 19f0955c2..60979cbd5 100644 --- a/common/define-grammar.js +++ b/common/define-grammar.js @@ -1,5 +1,7 @@ +const JavaScript = require('tree-sitter-javascript/grammar'); + module.exports = function defineGrammar(dialect) { - return grammar(require('tree-sitter-javascript/grammar'), { + return grammar(JavaScript, { name: dialect, externals: ($, previous) => previous.concat([ @@ -257,14 +259,14 @@ module.exports = function defineGrammar(dialect) { '/>' )), - export_specifier: ($, previous) => seq( + export_specifier: (_, previous) => seq( optional(choice('type', 'typeof')), previous ), _import_identifier: $ => choice($.identifier, alias('type', $.identifier)), - import_specifier: ($, previous) => seq( + import_specifier: $ => seq( optional(choice('type', 'typeof')), choice( field('name', $._import_identifier), @@ -275,7 +277,7 @@ module.exports = function defineGrammar(dialect) { ), )), - import_clause: ($, previous) => choice( + import_clause: $ => choice( $.namespace_import, $.named_imports, seq( @@ -352,7 +354,7 @@ module.exports = function defineGrammar(dialect) { $._call_signature ), - parenthesized_expression: ($, previous) => seq( + parenthesized_expression: $ => seq( '(', choice( seq($.expression, field('type', optional($.type_annotation))), @@ -400,7 +402,7 @@ module.exports = function defineGrammar(dialect) { $.public_field_definition ), choice($._semicolon, ',') - ) + ), )), '}' ), @@ -601,7 +603,7 @@ module.exports = function defineGrammar(dialect) { $._semicolon ), - accessibility_modifier: $ => choice( + accessibility_modifier: _ => choice( 'public', 'private', 'protected' @@ -883,15 +885,13 @@ module.exports = function defineGrammar(dialect) { field('argument', $.number) )), - existential_type: $ => '*', + existential_type: _ => '*', flow_maybe_type: $ => prec.right(seq('?', $._primary_type)), - parenthesized_type: $ => seq( - '(', $._type, ')' - ), + parenthesized_type: $ => seq('(', $._type, ')'), - predefined_type: $ => choice( + predefined_type: _ => choice( 'any', 'number', 'boolean',