diff --git a/grammar.js b/grammar.js index a4c58ad..0660d7d 100644 --- a/grammar.js +++ b/grammar.js @@ -12,6 +12,7 @@ module.exports = grammar({ [$.object_reference, $._qualified_field], [$.object_reference], [$.between_expression, $.binary_expression], + [$.array_size_definition], ], precedences: $ => [ @@ -447,7 +448,7 @@ module.exports = grammar({ array_size_definition: $ => seq( choice( seq(optional($.keyword_array), $._array_size_definition), - seq( $._array_size_definition, $._array_size_definition), + repeat1($._array_size_definition), $.keyword_array, ), ), diff --git a/test/corpus/create.txt b/test/corpus/create.txt index f051402..335936f 100644 --- a/test/corpus/create.txt +++ b/test/corpus/create.txt @@ -1566,7 +1566,8 @@ CREATE TABLE tab ( matrix text[][], square integer[3][3], array4 integer ARRAY[4], - array_ integer ARRAY + array_ integer ARRAY, + multid integer[3][3][3][3] ); -------------------------------------------------------------------------------- @@ -1611,4 +1612,13 @@ CREATE TABLE tab ( (int (keyword_int)) (array_size_definition - (keyword_array))))))) + (keyword_array))) + (column_definition + (identifier) + (int + (keyword_int)) + (array_size_definition + (literal) + (literal) + (literal) + (literal)))))))