From 4a553f24fbd468755c103d64e1c3090dd4c2c7e0 Mon Sep 17 00:00:00 2001 From: ProgramSnail Date: Sat, 22 Jul 2023 19:50:12 +0300 Subject: [PATCH] minor fixes --- grammar.g4 | 4 ++-- grammar.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/grammar.g4 b/grammar.g4 index cdb4c1a..c952ef2 100644 --- a/grammar.g4 +++ b/grammar.g4 @@ -12,7 +12,7 @@ statement: import ; import: ('::' | 'import') (SIMPLE_NAME_IDENTIFIER | '_') ('=' SIMPLE_NAME_IDENTIFIER)? - (':' (SIMPLE_TYPE_IDENTIFIER | SIMPLE_NAME_IDENTIFIER | TYPECLASS_IDENTIFIER | ('(' OPERATOR ')'))*)? ';' + (':' (SIMPLE_TYPE_IDENTIFIER | SIMPLE_NAME_IDENTIFIER | TYPECLASS_IDENTIFIER | ('(' OPERATOR ')'))+)? ';' ; constraint: '?' expression ; @@ -30,7 +30,7 @@ function_definition: (definietion_info)? (ANNOTATION_INFO)* (constraint ';')* ; typeclass_definition: (DEFINITION_INFO)? (ANNOTATION_INFO)* - TYPECLASS_IDENTIFIER (seq(':', (TYPECLASS_IDENTIFIER)*))? + TYPECLASS_IDENTIFIER (seq(':', (TYPECLASS_IDENTIFIER)+))? (('{' (function_definition)* '}') | ';') ; diff --git a/grammar.js b/grammar.js index 8ccb6c9..5b482b6 100644 --- a/grammar.js +++ b/grammar.js @@ -27,7 +27,7 @@ module.exports = grammar({ choice('::', 'import'), field('name', choice($.simple_name_identifier, '_')), optional(seq('=', field('module', $.simple_name_identifier))), - optional(seq(':', repeat(choice( + optional(seq(':', repeat1(choice( $.simple_type_identifier, $.simple_name_identifier, $.typeclass_identifier, @@ -72,8 +72,8 @@ module.exports = grammar({ typeclass_definition: $ => seq( optional($.definition_info), repeat($.annotation_info), - $.typeclass_identifier, - optional(seq(':', repeat($.typeclass_identifier))), + field('name', $.typeclass_identifier), + optional(seq(':', repeat1($.typeclass_identifier))), choice(seq('{', repeat($.function_definition), '}'), ';'), ),