feat: migrate to ESM
This commit is contained in:
parent
67f50b85f5
commit
39a67eec61
59 changed files with 132 additions and 80 deletions
|
|
@ -2,7 +2,7 @@
|
|||
// shows that you can alias a rule that would otherwise be anonymous, and it will then appear as a
|
||||
// named node.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'aliased_inlined_rules',
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'aliased_rules',
|
||||
|
||||
extras: $ => [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// This grammar shows that `ALIAS` rules can be applied directly to `TOKEN` and `IMMEDIATE_TOKEN`
|
||||
// rules.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'aliased_token_rules',
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
// their parent rule. In that situation, eliminating the invisible node could cause the alias to be
|
||||
// incorrectly applied to its child.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'aliased_unit_reductions',
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'aliases_in_root',
|
||||
|
||||
extras: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'anonymous_error',
|
||||
rules: {
|
||||
document: $ => repeat(choice('ok', 'ERROR')),
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
// characters. This grammar tests that this escaping works. The test is basically that the generated
|
||||
// parser compiles successfully.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "anonymous_tokens_with_escaped_chars",
|
||||
rules: {
|
||||
first_rule: $ => choice(
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'associativity_left',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'associativity_missing',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'associativity_right',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// parser generator in order to implement repetition. There is no way of referring to these rules in
|
||||
// the grammar DSL, so these conflicts must be resolved by referring to their parent rules.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'conflict_in_repeat_rule',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// after an external token is consumed. This tests that the logic for determining the repeat rule's
|
||||
// "parent" rule works in the presence of external tokens.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'conflict_in_repeat_rule_after_external_token',
|
||||
|
||||
externals: $ => [
|
||||
|
|
@ -29,4 +29,4 @@ module.exports = grammar({
|
|||
|
||||
identifier: $ => /[a-z]+/
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'conflicting_precedence',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "depends_on_column",
|
||||
rules: {
|
||||
x_is_at: ($) => seq(/[ \r\n]*/, choice($.odd_column, $.even_column), "x"),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'dynamic_precedence',
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'epsilon_external_extra_tokens',
|
||||
|
||||
extras: $ => [/\s/, $.comment],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'epsilon_external_tokens',
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'epsilon_rules',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'external_and_internal_anonymous_tokens',
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// validity of an *internal* token. This is done by including the names of that internal token
|
||||
// (`line_break`) in the grammar's `externals` field.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'external_and_internal_tokens',
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "external_extra_tokens",
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// that track the nesting depth of parentheses, similar to Ruby's percent
|
||||
// string literals.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "external_tokens",
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "external_unicode_column_alignment",
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// This grammar has an "extra" rule, `comment`, that is a non-terminal.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "extra_non_terminals",
|
||||
|
||||
extras: $ => [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// This grammar has a non-terminal extra rule `macro_statement` that contains
|
||||
// child rules that are also used elsewhere in the grammar.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "extra_non_terminals_with_shared_rules",
|
||||
|
||||
extras: $ => [/\s+/, $.macro_statement],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "get_col_eof",
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'get_col_should_hang_not_crash',
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
// When there are *no* leading `extras`, an immediate token is preferred over a normal token which
|
||||
// would otherwise match.
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "immediate_tokens",
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'indirect_recursive_in_single_symbol_transitions',
|
||||
rules: {
|
||||
source_file: $ => repeat($._statement),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "inline_rules",
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "inlined_aliased_rules",
|
||||
|
||||
extras: $ => [/\s/],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "inverted_external_token",
|
||||
|
||||
externals: $ => [$.line_break],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "invisible_start_rule",
|
||||
rules: {
|
||||
_value: $ => choice($.a, $.b),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'lexical_conflicts_due_to_state_merging',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'named_precedences',
|
||||
|
||||
conflicts: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'named_rule_aliased_as_anonymous',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'nested_inlined_rules',
|
||||
|
||||
inline: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "next_sibling_from_zwt",
|
||||
extras: $ => [
|
||||
/\s|\\\r?\n/,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'partially_resolved_conflict',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'precedence_on_single_child_missing',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'precedence_on_single_child_negative',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'precedence_on_single_child_positive',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'precedence_on_subsequence',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'precedence_on_token',
|
||||
|
||||
extras: $ => [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'readme_grammar',
|
||||
|
||||
// Things that can appear anywhere in the language, like comments
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
const RESERVED_NAMES = ["if", "while", "var"];
|
||||
const RESERVED_PROPERTY_NAMES = ["var"];
|
||||
|
||||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: "reserved_words",
|
||||
|
||||
reserved: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'start_rule_is_blank',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'start_rule_is_token',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'unicode_classes',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'unused_rules',
|
||||
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
module.exports = grammar({
|
||||
export default grammar({
|
||||
name: 'uses_current_column',
|
||||
|
||||
externals: $ => [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue