From a6a170efbb1a58192145e157671714d5e87869e5 Mon Sep 17 00:00:00 2001 From: Alexey Sosnoviy Date: Fri, 2 Dec 2022 19:17:54 +0300 Subject: [PATCH 01/22] =?UTF-8?q?=D0=A2=D0=B0=D0=B1=D0=BB=D0=B8=D1=86?= =?UTF-8?q?=D1=8B=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD=D0=B8=D1=85=20=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/antlr/SDBLLexer.g4 | 3 +++ src/main/antlr/SDBLParser.g4 | 1 + .../com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java | 5 +++++ .../com/github/_1c_syntax/bsl/parser/SDBLParserTest.java | 8 ++++++++ src/test/resources/sdbl/select06.sdbl | 4 ++++ 5 files changed, 21 insertions(+) create mode 100644 src/test/resources/sdbl/select06.sdbl diff --git a/src/main/antlr/SDBLLexer.g4 b/src/main/antlr/SDBLLexer.g4 index f085fff2..84d3587d 100644 --- a/src/main/antlr/SDBLLexer.g4 +++ b/src/main/antlr/SDBLLexer.g4 @@ -331,6 +331,9 @@ TASK_BY_PERFORMER_VT: | T A S K B Y P E R F O R M E R) -> popMode; TURNOVERS_VT: (TURNOVERS_RU | TURNOVERS_EN) -> popMode; +// external data sourse type +EXTERNAL_TABLE_TYPE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A | T A B L E) -> popMode; + DOT_IDENTIFIER : IDENTIFIER -> type(IDENTIFIER), popMode; mode BRACE_MODE; diff --git a/src/main/antlr/SDBLParser.g4 b/src/main/antlr/SDBLParser.g4 index 02e71a1c..84239d72 100644 --- a/src/main/antlr/SDBLParser.g4 +++ b/src/main/antlr/SDBLParser.g4 @@ -317,6 +317,7 @@ dataSource: table: mdo | mdo DOT objectTableName=identifier + | mdo DOT EXTERNAL_TABLE_TYPE DOT externalTableName=identifier | tableName=identifier ; diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java index 54612b28..055ea3bc 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java @@ -177,4 +177,9 @@ void testMDOTT() { assertMatch(".ДанныеГрафика", ".SCHEDULEDATA", SDBLLexer.DOT, SDBLLexer.SCHEDULE_DATA_VT); assertMatch(".ЗадачиПоИсполнителю", ".TASKBYPERFORMER", SDBLLexer.DOT, SDBLLexer.TASK_BY_PERFORMER_VT); } + + @Test + void testExternalTypes() { + assertMatch(".Таблица", ".table", SDBLLexer.DOT, SDBLLexer.EXTERNAL_TABLE_TYPE); + } } diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java index fcbc131d..00cdbbb3 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java @@ -300,6 +300,14 @@ void testSelect05() { ); } + @Test + void testSelect06() { + checkSource("src/test/resources/sdbl/select06.sdbl", + pair(SDBLParser.RULE_queries, 1), + pair(SDBLParser.RULE_dataSource, 1) + ); + } + private void checkSource(String filePath, Pair... rules) { var exampleString = TestUtils.getSourceFromFile(filePath); setInput(exampleString); diff --git a/src/test/resources/sdbl/select06.sdbl b/src/test/resources/sdbl/select06.sdbl new file mode 100644 index 00000000..ab09788e --- /dev/null +++ b/src/test/resources/sdbl/select06.sdbl @@ -0,0 +1,4 @@ +ВЫБРАТЬ +timestamp +ИЗ +ВнешнийИсточникДанных.ClickHouse.Таблица.test01_log \ No newline at end of file From 3fb968c752fc7935255d237a47175b80b2effd50 Mon Sep 17 00:00:00 2001 From: Dima Date: Sat, 3 Dec 2022 12:32:38 +0300 Subject: [PATCH 02/22] =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BA=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD=D0=B8=D0=BC=20=D0=B8?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=D0=B0=D0=BC=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/antlr/SDBLLexer.g4 | 11 +++++++++-- src/main/antlr/SDBLParser.g4 | 3 ++- .../_1c_syntax/bsl/parser/SDBLLexerTest.java | 4 +++- .../_1c_syntax/bsl/parser/SDBLParserTest.java | 4 ++-- src/test/resources/sdbl/select06.sdbl | 17 ++++++++++++++++- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/main/antlr/SDBLLexer.g4 b/src/main/antlr/SDBLLexer.g4 index 84d3587d..64fb815e 100644 --- a/src/main/antlr/SDBLLexer.g4 +++ b/src/main/antlr/SDBLLexer.g4 @@ -331,8 +331,15 @@ TASK_BY_PERFORMER_VT: | T A S K B Y P E R F O R M E R) -> popMode; TURNOVERS_VT: (TURNOVERS_RU | TURNOVERS_EN) -> popMode; -// external data sourse type -EXTERNAL_TABLE_TYPE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A | T A B L E) -> popMode; +// external data source table +EXTERNAL_DATA_SOURCE_TABLE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A | T A B L E) -> popMode; + +// external data source cube +EXTERNAL_DATA_SOURCE_CUBE: (RU_K RU_U RU_B | C U B E) -> popMode; + +// external data source cube dimension table +EXTERNAL_DATA_SOURCE_CUBE_DIMTABLE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A RU_I RU_Z RU_M RU_E RU_R RU_E RU_N RU_I RU_YA + | D I M E N S I O N T A B L E) -> popMode; DOT_IDENTIFIER : IDENTIFIER -> type(IDENTIFIER), popMode; diff --git a/src/main/antlr/SDBLParser.g4 b/src/main/antlr/SDBLParser.g4 index 84239d72..85c85814 100644 --- a/src/main/antlr/SDBLParser.g4 +++ b/src/main/antlr/SDBLParser.g4 @@ -317,7 +317,8 @@ dataSource: table: mdo | mdo DOT objectTableName=identifier - | mdo DOT EXTERNAL_TABLE_TYPE DOT externalTableName=identifier + | mdo DOT EXTERNAL_DATA_SOURCE_TABLE DOT externalTableName=identifier + | mdo DOT EXTERNAL_DATA_SOURCE_CUBE DOT externalTableCubeName=identifier DOT EXTERNAL_DATA_SOURCE_CUBE_DIMTABLE DOT externalTableName=identifier | tableName=identifier ; diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java index 055ea3bc..0f1b85cc 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java @@ -180,6 +180,8 @@ void testMDOTT() { @Test void testExternalTypes() { - assertMatch(".Таблица", ".table", SDBLLexer.DOT, SDBLLexer.EXTERNAL_TABLE_TYPE); + assertMatch(".Таблица", ".Table", SDBLLexer.DOT, SDBLLexer.EXTERNAL_DATA_SOURCE_TABLE); + assertMatch(".Куб", ".Cube", SDBLLexer.DOT, SDBLLexer.EXTERNAL_DATA_SOURCE_CUBE); + assertMatch(".ТаблицаИзмерения", ".DimensionTable", SDBLLexer.DOT, SDBLLexer.EXTERNAL_DATA_SOURCE_CUBE_DIMTABLE); } } diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java index 00cdbbb3..f871067a 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java @@ -303,8 +303,8 @@ void testSelect05() { @Test void testSelect06() { checkSource("src/test/resources/sdbl/select06.sdbl", - pair(SDBLParser.RULE_queries, 1), - pair(SDBLParser.RULE_dataSource, 1) + pair(SDBLParser.RULE_queries, 4), + pair(SDBLParser.RULE_dataSource, 4) ); } diff --git a/src/test/resources/sdbl/select06.sdbl b/src/test/resources/sdbl/select06.sdbl index ab09788e..b3484e8e 100644 --- a/src/test/resources/sdbl/select06.sdbl +++ b/src/test/resources/sdbl/select06.sdbl @@ -1,4 +1,19 @@ ВЫБРАТЬ timestamp ИЗ -ВнешнийИсточникДанных.ClickHouse.Таблица.test01_log \ No newline at end of file +ВнешнийИсточникДанных.ClickHouse.Таблица.test01_log +; +SELECT +timestamp +FROM +ExternalDataSource.ClickHouse.Table.test01_log +; +ВЫБРАТЬ +Поле1 КАК Поле1 +ИЗ +ВнешнийИсточникДанных.ВнешнийИсточникДанных1.Куб.Куб1.ТаблицаИзмерения.ТаблицаИзмерения1 +; +SELECT +Cube1DimensionTableDimensionTable1.Ref AS Ref +FROM +ExternalDataSource.ExternalDataSource1.Cube.Cube1.DimensionTable.DimensionTable1 AS Cube1DimensionTableDimensionTable1 \ No newline at end of file From 9041fc3adfecf594b6b71298f0fc79772dd70e56 Mon Sep 17 00:00:00 2001 From: Dima Date: Sun, 4 Dec 2022 14:55:56 +0300 Subject: [PATCH 03/22] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20mode=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D0=BD=D0=B5=D1=88?= =?UTF-8?q?=D0=BD=D0=B8=D1=85=20=D0=B8=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/antlr/SDBLLexer.g4 | 24 +++++++++---------- src/main/antlr/SDBLParser.g4 | 8 ++++--- .../_1c_syntax/bsl/parser/SDBLLexerTest.java | 21 +++++++++++++--- src/test/resources/sdbl/select07.sdbl | 2 ++ 4 files changed, 37 insertions(+), 18 deletions(-) create mode 100644 src/test/resources/sdbl/select07.sdbl diff --git a/src/main/antlr/SDBLLexer.g4 b/src/main/antlr/SDBLLexer.g4 index 64fb815e..eb109fa1 100644 --- a/src/main/antlr/SDBLLexer.g4 +++ b/src/main/antlr/SDBLLexer.g4 @@ -164,8 +164,8 @@ ENUM_TYPE: RU_P RU_E RU_R RU_E RU_CH RU_I RU_S RU_L RU_E RU_N RU_I RU_E EXCHANGE_PLAN_TYPE: PLAN_RU RU_O RU_B RU_M RU_E RU_N RU_A | E X C H A N G E P L A N; EXTERNAL_DATA_SOURCE_TYPE: - RU_V RU_N RU_E RU_SH RU_N RU_I RU_J RU_I RU_S RU_T RU_O RU_CH RU_N RU_I RU_K RU_D RU_A RU_N RU_N RU_Y RU_H - | E X T E R N A L D A T A S O U R C E; + (RU_V RU_N RU_E RU_SH RU_N RU_I RU_J RU_I RU_S RU_T RU_O RU_CH RU_N RU_I RU_K RU_D RU_A RU_N RU_N RU_Y RU_H + | E X T E R N A L D A T A S O U R C E) -> pushMode(EXTERNAL_DATA_SOURCE_MODE); FILTER_CRITERION_TYPE: RU_K RU_R RU_I RU_T RU_E RU_R RU_I RU_J RU_O RU_T RU_B RU_O RU_R RU_A | F I L T E R C R I T E R I O N; INFORMATION_REGISTER_TYPE: @@ -331,16 +331,6 @@ TASK_BY_PERFORMER_VT: | T A S K B Y P E R F O R M E R) -> popMode; TURNOVERS_VT: (TURNOVERS_RU | TURNOVERS_EN) -> popMode; -// external data source table -EXTERNAL_DATA_SOURCE_TABLE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A | T A B L E) -> popMode; - -// external data source cube -EXTERNAL_DATA_SOURCE_CUBE: (RU_K RU_U RU_B | C U B E) -> popMode; - -// external data source cube dimension table -EXTERNAL_DATA_SOURCE_CUBE_DIMTABLE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A RU_I RU_Z RU_M RU_E RU_R RU_E RU_N RU_I RU_YA - | D I M E N S I O N T A B L E) -> popMode; - DOT_IDENTIFIER : IDENTIFIER -> type(IDENTIFIER), popMode; mode BRACE_MODE; @@ -367,3 +357,13 @@ ID_TASK_TYPE : TASK_TYPE -> type(TASK_TYPE), popMode; ID_DOT : DOT -> type(DOT), pushMode(DOT_MODE), popMode; ID_IDENTIFIER : IDENTIFIER -> type(IDENTIFIER), popMode; ID_UNKNOWN : . -> channel(HIDDEN), type(UNKNOWN); + +mode EXTERNAL_DATA_SOURCE_MODE; +EDS_TABLE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A | T A B L E) -> popMode; +EDS_CUBE: (RU_K RU_U RU_B | C U B E); +EDS_CUBE_DIMTABLE: (RU_T RU_A RU_B RU_L RU_I RU_C RU_A RU_I RU_Z RU_M RU_E RU_R RU_E RU_N RU_I RU_YA + | D I M E N S I O N T A B L E) -> popMode; +EDS_WHITE_SPACE : WHITE_SPACE -> channel(HIDDEN), type(WHITE_SPACE); +EDS_MUL: MUL -> type(MUL); +EDS_DOT : DOT -> type(DOT); +EDS_IDENTIFIER : IDENTIFIER -> type(IDENTIFIER); diff --git a/src/main/antlr/SDBLParser.g4 b/src/main/antlr/SDBLParser.g4 index 85c85814..43cd4830 100644 --- a/src/main/antlr/SDBLParser.g4 +++ b/src/main/antlr/SDBLParser.g4 @@ -308,7 +308,7 @@ dataSources: tables+=dataSource (COMMA tables+=dataSource)*; dataSource: (LPAREN dataSource RPAREN) | (( - ((virtualTable | table | parameterTable) alias?) + ((virtualTable | table | parameterTable | externalDataSourceTable) alias?) | (LPAREN (virtualTable | table | parameterTable | subquery) RPAREN alias?) ) joins+=joinPart*) ; @@ -317,8 +317,6 @@ dataSource: table: mdo | mdo DOT objectTableName=identifier - | mdo DOT EXTERNAL_DATA_SOURCE_TABLE DOT externalTableName=identifier - | mdo DOT EXTERNAL_DATA_SOURCE_CUBE DOT externalTableCubeName=identifier DOT EXTERNAL_DATA_SOURCE_CUBE_DIMTABLE DOT externalTableName=identifier | tableName=identifier ; @@ -347,6 +345,10 @@ virtualTableParameter: logicalExpression?; // таблица как параметр, соединяться ни с чем не может parameterTable: parameter; +externalDataSourceTable: + mdo DOT EDS_TABLE DOT tableName=identifier + | mdo DOT EDS_CUBE DOT cubeName=identifier DOT EDS_CUBE_DIMTABLE DOT tableName=identifier; + // соединения таблиц joinPart: ( // тип соединения diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java index 0f1b85cc..a4491a45 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java @@ -180,8 +180,23 @@ void testMDOTT() { @Test void testExternalTypes() { - assertMatch(".Таблица", ".Table", SDBLLexer.DOT, SDBLLexer.EXTERNAL_DATA_SOURCE_TABLE); - assertMatch(".Куб", ".Cube", SDBLLexer.DOT, SDBLLexer.EXTERNAL_DATA_SOURCE_CUBE); - assertMatch(".ТаблицаИзмерения", ".DimensionTable", SDBLLexer.DOT, SDBLLexer.EXTERNAL_DATA_SOURCE_CUBE_DIMTABLE); + assertMatch("ВнешнийИсточникДанных.ВИД1.Таблица", + "ExternalDataSource.EDS1.Table", + SDBLLexer.EXTERNAL_DATA_SOURCE_TYPE, + SDBLLexer.DOT, + SDBLLexer.IDENTIFIER, + SDBLLexer.DOT, + SDBLLexer.EDS_TABLE); + assertMatch("ВнешнийИсточникДанных.ВИД1.Куб.Куб1.ТаблицаИзмерения", + "ExternalDataSource.EDS1.Cube.Cube1.DimensionTable", + SDBLLexer.EXTERNAL_DATA_SOURCE_TYPE, + SDBLLexer.DOT, + SDBLLexer.IDENTIFIER, + SDBLLexer.DOT, + SDBLLexer.EDS_CUBE, + SDBLLexer.DOT, + SDBLLexer.IDENTIFIER, + SDBLLexer.DOT, + SDBLLexer.EDS_CUBE_DIMTABLE); } } diff --git a/src/test/resources/sdbl/select07.sdbl b/src/test/resources/sdbl/select07.sdbl new file mode 100644 index 00000000..3ba9b0a1 --- /dev/null +++ b/src/test/resources/sdbl/select07.sdbl @@ -0,0 +1,2 @@ +ВЫБРАТЬ * +ИЗ РегистрСведений.Таблица КАК Таблица From 4521829c31db167cbb7cf2291604279fbd5893fe Mon Sep 17 00:00:00 2001 From: Dima Date: Sun, 4 Dec 2022 14:58:46 +0300 Subject: [PATCH 04/22] =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D0=B8=D0=BD=D1=83?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/_1c_syntax/bsl/parser/SDBLParserTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java index f871067a..7fabbd43 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java @@ -308,6 +308,14 @@ void testSelect06() { ); } + @Test + void testSelect07() { + checkSource("src/test/resources/sdbl/select07.sdbl", + pair(SDBLParser.RULE_queries, 1), + pair(SDBLParser.RULE_dataSource, 1) + ); + } + private void checkSource(String filePath, Pair... rules) { var exampleString = TestUtils.getSourceFromFile(filePath); setInput(exampleString); From c85a489d63e2ec703379a95ba15e7f26b59ef77e Mon Sep 17 00:00:00 2001 From: Valery Maximov Date: Mon, 31 Jul 2023 16:10:31 +0300 Subject: [PATCH 05/22] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B2=20=D1=81=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=B8?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BE=D0=B2=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=B2?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=81=D0=BB=D0=BE=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/antlr/SDBLParser.g4 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/antlr/SDBLParser.g4 b/src/main/antlr/SDBLParser.g4 index 43cd4830..6397fc60 100644 --- a/src/main/antlr/SDBLParser.g4 +++ b/src/main/antlr/SDBLParser.g4 @@ -457,6 +457,20 @@ identifier: | WEEK | WEEKDAY | YEAR + | ORDER + | GROUP + | INDEX + | SET + | RIGHT + | LEFT + | INNER + | FULL + | JOIN + | OUTER + | FOR + | UPDATE + | ALL + | UNION ; // параметр запроса From efc287bfecdb3bfa49838ae21f92a0e7b2436aac Mon Sep 17 00:00:00 2001 From: Valery Maximov Date: Mon, 31 Jul 2023 18:29:32 +0300 Subject: [PATCH 06/22] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=D1=8B=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE?= =?UTF-8?q?=D0=B2=201=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes: #220 closes: #209 --- src/main/antlr/SDBLLexer.g4 | 32 ++++++++++++++++ src/main/antlr/SDBLParser.g4 | 30 +++++++++++++++ .../_1c_syntax/bsl/parser/SDBLLexerTest.java | 27 ++++++++++++++ .../_1c_syntax/bsl/parser/SDBLParserTest.java | 9 +++++ .../bsl/parser/SDBLTokenizerTest.java | 2 +- src/test/resources/sdbl/select08.sdbl | 37 +++++++++++++++++++ 6 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/sdbl/select08.sdbl diff --git a/src/main/antlr/SDBLLexer.g4 b/src/main/antlr/SDBLLexer.g4 index eb109fa1..4aaa75ca 100644 --- a/src/main/antlr/SDBLLexer.g4 +++ b/src/main/antlr/SDBLLexer.g4 @@ -97,9 +97,13 @@ WHEN: RU_K RU_O RU_G RU_D RU_A WHERE: RU_G RU_D RU_E | W H E R E; // KEYWORDS RU EN +ACOS: A C O S; +ASIN: A S I N; +ATAN: A T A N; AVG: RU_S RU_R RU_E RU_D RU_N RU_E RU_E | A V G; BEGINOFPERIOD: RU_N RU_A RU_CH RU_A RU_L RU_O RU_P RU_E RU_R RU_I RU_O RU_D RU_A | B E G I N O F P E R I O D; BOOLEAN: RU_B RU_U RU_L RU_E RU_V RU_O | B O O L E A N; +COS: C O S; COUNT: RU_K RU_O RU_L RU_I RU_CH RU_E RU_S RU_T RU_V RU_O | C O U N T; DATE: RU_D RU_A RU_T RU_A | D A T E; DATEADD: RU_D RU_O RU_B RU_A RU_V RU_I RU_T RU_SOFT_SIGN RU_K RU_D RU_A RU_T RU_E | D A T E A D D; @@ -110,8 +114,15 @@ DAYOFYEAR: RU_D RU_E RU_N RU_SOFT_SIGN RU_G RU_O RU_D RU_A EMPTYTABLE: RU_P RU_U RU_S RU_T RU_A RU_YA RU_T RU_A RU_B RU_L RU_I RU_C RU_A | E M P T Y T A B L E; EMPTYREF: RU_P RU_U RU_S RU_T RU_A RU_YA RU_S RU_S RU_Y RU_L RU_K RU_A | E M P T Y R E F; ENDOFPERIOD: RU_K RU_O RU_N RU_E RU_C RU_P RU_E RU_R RU_I RU_O RU_D RU_A | E N D O F P E R I O D; +EXP: E X P; +// TODO найти англ вариант GROUPEDBY: RU_S RU_G RU_R RU_U RU_P RU_P RU_I RU_R RU_O RU_V RU_A RU_N RU_O RU_P RU_O | УТОНИЧТЬ; HALFYEAR: RU_P RU_O RU_L RU_U RU_G RU_O RU_D RU_I RU_E | H A L F Y E A R; HOUR: RU_CH RU_A RU_S | H O U R; +// TODO добавить метод лев без конфликта с левым соединением LEFT: RU_L RU_E RU_V | L E F T; +INT: RU_C RU_E RU_L | I N T; +LOG: L O G; +LOG10: L O G NUM_1 NUM_0; +LOWER: RU_N RU_R RU_E RU_G | L O W E R; MAX: RU_M RU_A RU_K RU_S RU_I RU_M RU_U RU_M | M A X; MIN: RU_M RU_I RU_N RU_I RU_M RU_U RU_M | M I N; MINUTE: RU_M RU_I RU_N RU_U RU_T RU_A | M I N U T E; @@ -127,17 +138,34 @@ RECORDAUTONUMBER: REFPRESENTATION: RU_P RU_R RU_E RU_D RU_S RU_T RU_A RU_V RU_L RU_E RU_N RU_I RU_E RU_S RU_S RU_Y RU_L RU_K RU_I | R E F P R E S E N T A T I O N; +POW: P O W; +// TODO см Лев RIGHT: RU_P RU_R RU_A RU_V | R I G H T; +ROUND: RU_O RU_K RU_R | R O U N D; SECOND: RU_S RU_E RU_K RU_U RU_N RU_D RU_A | S E C O N D; +SIN: S I N; +SQRT: S Q R T; +STOREDDATASIZE: RU_R RU_A RU_Z RU_M RU_E RU_R RU_H RU_R RU_A RU_N RU_I RU_M RU_Y RU_H RU_D RU_A RU_N RU_N RU_Y RU_H + | S T O R E D D A T A S I Z E; STRING: RU_S RU_T RU_R RU_O RU_K RU_A | S T R I N G; +STRINGLENGTH: RU_D RU_L RU_I RU_N RU_A RU_S RU_T RU_R RU_O RU_K RU_I | S T R I N G L E N G T H; +STRFIND: RU_S RU_T RU_R RU_N RU_A RU_J RU_T RU_I | S T R F I N D; +STRREPLACE: RU_S RU_T RU_R RU_Z RU_A RU_M RU_E RU_N RU_I RU_T RU_SOFT_SIGN | S T R R E P L A C E; SUBSTRING: RU_P RU_O RU_D RU_S RU_T RU_R RU_O RU_K RU_A | S U B S T R I N G; SUM: RU_S RU_U RU_M RU_M RU_A | S U M; +TAN: T A N; TENDAYS: RU_D RU_E RU_K RU_A RU_D RU_A | T E N D A Y S; +TRIMALL: RU_S RU_O RU_K RU_R RU_L RU_P | T R I M A L L; +TRIML: RU_S RU_O RU_K RU_R RU_L | T R I M L; +TRIMR: RU_S RU_O RU_K RU_R RU_P | T R I M R; TYPE: RU_T RU_I RU_P | T Y P E; +UPPER: RU_V RU_R RU_E RU_G | U P P E R; VALUE: RU_Z RU_N RU_A RU_CH RU_E RU_N RU_I RU_E | V A L U E; VALUETYPE: RU_T RU_I RU_P RU_Z RU_N RU_A RU_CH RU_E RU_N RU_I RU_YA | V A L U E T Y P E; WEEK: RU_N RU_E RU_D RU_E RU_L RU_YA | W E E K; WEEKDAY: RU_D RU_E RU_N RU_SOFT_SIGN RU_N RU_E RU_D RU_E RU_L RU_I | W E E K D A Y; YEAR: RU_G RU_O RU_D | Y E A R; +UUID: RU_U RU_N RU_I RU_K RU_A RU_L RU_SOFT_SIGN RU_N RU_Y RU_J RU_I RU_D RU_E RU_N RU_T RU_I RU_F RU_I RU_K RU_A RU_T RU_O RU_R + | U U I D; // MDO TYPES RU EN ACCOUNTING_REGISTER_TYPE: @@ -277,6 +305,10 @@ fragment H: 'H' | 'h'; fragment W: 'W' | 'w'; fragment X: 'X' | 'x'; fragment Y: 'Y' | 'y'; +fragment Z: 'Z' | 'z'; + +fragment NUM_0: '0'; +fragment NUM_1: '1'; // LITERALS fragment DIGIT: [0-9]; diff --git a/src/main/antlr/SDBLParser.g4 b/src/main/antlr/SDBLParser.g4 index 6397fc60..a80e25fb 100644 --- a/src/main/antlr/SDBLParser.g4 +++ b/src/main/antlr/SDBLParser.g4 @@ -228,6 +228,12 @@ builtInFunctions: | (doCall=DATEDIFF LPAREN firstdate=expression COMMA seconddate=expression COMMA periodType=(SECOND | MINUTE | HOUR | DAY | MONTH | QUARTER | YEAR) RPAREN) | (doCall=(VALUETYPE | PRESENTATION | REFPRESENTATION | GROUPEDBY) LPAREN value=expression RPAREN) | (doCall=ISNULL LPAREN first=logicalExpression COMMA second=logicalExpression RPAREN) + | (doCall=(ACOS | ASIN | ATAN | COS | SIN | TAN | LOG | LOG10 | EXP | POW | SQRT | INT) LPAREN decimal=expression RPAREN) + | (doCall=(LOWER | STRINGLENGTH | TRIMALL | TRIML | TRIMR | UPPER) LPAREN string=expression RPAREN) + | (doCall=ROUND LPAREN decimal=expression COMMA precise=expression RPAREN) + | (doCall=(STOREDDATASIZE | UUID) LPAREN value=expression RPAREN) + | (doCall=STRFIND LPAREN string=expression COMMA substring1=expression RPAREN) + | (doCall=STRREPLACE LPAREN string=expression COMMA substring1=expression COMMA substring1=expression RPAREN) ; // агрегатные ф-ии @@ -279,6 +285,7 @@ logicalExpression: condidions+=predicate ((AND | OR) condidions+=predicate)* ; + predicate: NOT* ( booleanPredicate=expression // булево | likePredicate @@ -471,6 +478,29 @@ identifier: | UPDATE | ALL | UNION + | ACOS + | ASIN + | ATAN + | COS + | SIN + | TAN + | LOG + | LOG10 + | EXP + | POW + | SQRT + | INT + | LOWER + | STRINGLENGTH + | TRIMALL + | TRIML + | TRIMR + | UPPER + | ROUND + | STOREDDATASIZE + | UUID + | STRFIND + | STRREPLACE ; // параметр запроса diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java index ade00f79..d52eae88 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLLexerTest.java @@ -135,6 +135,33 @@ void testKeyWords() { } + @Test + void testKeyWordsP2() { + assertMatch("ЦЕЛ", "int", SDBLLexer.INT); + assertMatch("ACOS", "ACOs", SDBLLexer.ACOS); + assertMatch("ASIN", "ASIn", SDBLLexer.ASIN); + assertMatch("ATAN", "ATaN", SDBLLexer.ATAN); + assertMatch("COS", "cOS", SDBLLexer.COS); + assertMatch("SIN", "SiN", SDBLLexer.SIN); + assertMatch("TAN", "TAn", SDBLLexer.TAN); + assertMatch("LOG", "LOg", SDBLLexer.LOG); + assertMatch("LOG10", "loG10", SDBLLexer.LOG10); + assertMatch("EXP", "EXp", SDBLLexer.EXP); + assertMatch("POW", "POw", SDBLLexer.POW); + assertMatch("SQRT", "SqRT", SDBLLexer.SQRT); + assertMatch("LOWER", "Нрег", SDBLLexer.LOWER); + assertMatch("STRINGLENGTH", "ДлинаСТроки", SDBLLexer.STRINGLENGTH); + assertMatch("TRIMALL", "Сокрлп", SDBLLexer.TRIMALL); + assertMatch("TRIML", "Сокрл", SDBLLexer.TRIML); + assertMatch("TRIMR", "СокрП", SDBLLexer.TRIMR); + assertMatch("UPPER", "вреГ", SDBLLexer.UPPER); + assertMatch("ROUND", "окр", SDBLLexer.ROUND); + assertMatch("STOREDDATASIZE", "РазмерХранимыхДанных", SDBLLexer.STOREDDATASIZE); + assertMatch("UUID", "УникальныйиДентификатор", SDBLLexer.UUID); + assertMatch("STRFIND", "стрнайТи", SDBLLexer.STRFIND); + assertMatch("STRREPLACE", "стрЗАМЕнить", SDBLLexer.STRREPLACE); + } + @Test void testStandardFields() { assertMatch("ТочкаМаршрута", "RoutePoint", SDBLLexer.ROUTEPOINT_FIELD); diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java index fd986621..e16f3c88 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLParserTest.java @@ -316,6 +316,15 @@ void testSelect07() { ); } + @Test + void testSelect08() { + checkSource("src/test/resources/sdbl/select08.sdbl", + pair(SDBLParser.RULE_queries, 1), + pair(SDBLParser.RULE_dataSource, 1), + pair(SDBLParser.RULE_builtInFunctions, 35) + ); + } + private void checkSource(String filePath, Pair... rules) { var exampleString = TestUtils.getSourceFromFile(filePath); setInput(exampleString); diff --git a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLTokenizerTest.java b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLTokenizerTest.java index ecef5215..122fa9c5 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLTokenizerTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/parser/SDBLTokenizerTest.java @@ -24,6 +24,7 @@ import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.Token; import org.junit.jupiter.api.Test; +import utils.TestUtils; import java.util.List; @@ -62,5 +63,4 @@ void computeAST() { assertThat(query.getStart().getType()).isEqualTo(SDBLParser.SELECT); assertThat(query.getStop().getType()).isEqualTo(SDBLParser.IDENTIFIER); } - } \ No newline at end of file diff --git a/src/test/resources/sdbl/select08.sdbl b/src/test/resources/sdbl/select08.sdbl new file mode 100644 index 00000000..6a6dc03d --- /dev/null +++ b/src/test/resources/sdbl/select08.sdbl @@ -0,0 +1,37 @@ +ВЫБРАТЬ + ЦЕЛ(СРЕДНЕЕ(Таблица.Поле)) КАК Цел, + INT(СРЕДНЕЕ(Таблица.Поле)) КАК INT, + ACOS(Таблица.Поле) КАК ACOS, + ASIN(Таблица.Поле) КАК ASIN, + ATAN(Таблица.Поле) КАК ATAN, + COS(Таблица.Поле) КАК COS, + SIN(Таблица.Поле) КАК SIN, + TAN(Таблица.Поле) КАК TAN, + LOG(Таблица.Поле) КАК LOG, + LOG10(Таблица.Поле) КАК LOG10, + EXP(Таблица.Поле) КАК EXP, + POW(Таблица.Поле) КАК POW, + SQRT(Таблица.Поле) КАК SQRT, + LOWER(Таблица.Поле) КАК LOWER, + НРЕГ(Таблица.Поле) КАК НРЕГ, + STRINGLENGTH(Таблица.Поле) КАК STRINGLENGTH, + ДЛИНАСТРОКИ(Таблица.Поле) КАК СТРДЛИНА, + TRIMALL(Таблица.Поле) КАК TRIMALL, + СОКРЛП(Таблица.Поле) КАК СОКРЛП, + TRIML(Таблица.Поле) КАК TRIML, + СОКРЛ(Таблица.Поле) КАК СОКРЛ, + TRIMR(Таблица.Поле) КАК TRIMR, + СОКРП(Таблица.Поле) КАК СОКРП, + UPPER(Таблица.Поле) КАК UPPER, + ВРЕГ(Таблица.Поле) КАК ВРЕГ, + ROUND(Таблица.Поле, Таблица.Поле2) КАК ROUND, + ОКР(Таблица.Поле, Таблица.Поле2) КАК ОКР, + STOREDDATASIZE(Таблица.Поле) КАК STOREDDATASIZE, + РазмерХранимыхДанных(Таблица.Поле) КАК РазмерХранимыхДанных, + UUID(Таблица.Поле) КАК UUID, + УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Таблица.Поле) КАК УНИКАЛЬНЫЙИДЕНТИФИКАТОР, + STRFIND(Таблица.Поле, Таблица.Поле2) КАК STRFIND, + СтрНайти(Таблица.Поле, Таблица.Поле2) КАК СтрНайти, + STRREPLACE(Таблица.Поле, Таблица.Поле2, Таблица.Поле3) КАК STRREPLACE, + СтрЗаменить(Таблица.Поле, Таблица.Поле2, Таблица.Поле3) КАК СтрЗаменить +ИЗ РегистрСведений.Таблица КАК Таблица From 5b6fdef43d5038e1426ffb353756b89e496bdc73 Mon Sep 17 00:00:00 2001 From: Valery Maximov Date: Mon, 31 Jul 2023 18:37:14 +0300 Subject: [PATCH 07/22] fix qa pipeline --- .github/workflows/qa.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index cc61c447..1ac7bd64 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -18,12 +18,12 @@ jobs: - run: | git fetch --prune --unshallow - name: Set up JDK 11 - uses: actions/setup-java@v3 + uses: actions/setup-java@v3.12.0 with: java-version: 11 distribution: 'adopt' - name: SonarCloud Scan - run: ./gradlew check sonarqube + run: ./gradlew check sonar env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 9c6827d64d1f71f2ebfbb19e092038e9aeb3ca8b Mon Sep 17 00:00:00 2001 From: Valery Maximov Date: Mon, 31 Jul 2023 18:43:18 +0300 Subject: [PATCH 08/22] OOM --- gradle.properties | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 gradle.properties diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..c36ba246 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.parallel=true +org.gradle.jvmargs=-Xmx1024m -XX:MaxMetaspaceSize=512m From 023b675452add5f9981dc605646ae6d857dcd604 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:31:05 +0000 Subject: [PATCH 09/22] Bump org.sonarqube from 4.3.0.3225 to 4.3.1.3277 Bumps org.sonarqube from 4.3.0.3225 to 4.3.1.3277. --- updated-dependencies: - dependency-name: org.sonarqube dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 91928488..03284470 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ plugins { jacoco `java-library` antlr - id("org.sonarqube") version "4.3.0.3225" + id("org.sonarqube") version "4.3.1.3277" id("org.cadixdev.licenser") version "0.6.1" id("com.github.gradle-git-version-calculator") version "1.1.0" id("io.freefair.javadoc-links") version "6.5.1" From 12e33c25ad6ba013adb4bbaaba41b4f5286efb77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 13:15:45 +0000 Subject: [PATCH 10/22] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check.yml | 2 +- .github/workflows/gh-pages.yml | 2 +- .github/workflows/javadoc.yml | 2 +- .github/workflows/qa.yml | 2 +- .github/workflows/release.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 06fb9e44..740d1347 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -11,7 +11,7 @@ jobs: java_version: ['11', '17'] os: [ubuntu-latest, windows-latest, macOS-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java_version }} uses: actions/setup-java@v3 with: diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 7b4e2240..378b3d34 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -17,7 +17,7 @@ jobs: build-deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup JDK uses: actions/setup-java@v3 diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index 10e07d86..9f14b0e4 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -6,7 +6,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v3 with: diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 1ac7bd64..99885dd2 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: '' - run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d49a2424..5dc366c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: matrix: os: [ ubuntu-latest, windows-latest, macOS-latest ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-java@v3 with: java-version: 11 From a2b51586b3478cb83845e687a2fe60df507455a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 13:24:21 +0000 Subject: [PATCH 11/22] Bump com.github.ben-manes.versions from 0.47.0 to 0.48.0 Bumps com.github.ben-manes.versions from 0.47.0 to 0.48.0. --- updated-dependencies: - dependency-name: com.github.ben-manes.versions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 03284470..dbd4bee2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { id("com.github.gradle-git-version-calculator") version "1.1.0" id("io.freefair.javadoc-links") version "6.5.1" id("io.freefair.javadoc-utf-8") version "6.6.1" - id("com.github.ben-manes.versions") version "0.47.0" + id("com.github.ben-manes.versions") version "0.48.0" id("me.champeau.gradle.jmh") version "0.5.3" } From 004bbdd870dfe581d9e374a4c7bce00de9d2dba5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 06:23:47 +0000 Subject: [PATCH 12/22] Bump io.freefair.javadoc-utf-8 from 6.6.1 to 8.3 Bumps [io.freefair.javadoc-utf-8](https://github.com/freefair/gradle-plugins) from 6.6.1 to 8.3. - [Release notes](https://github.com/freefair/gradle-plugins/releases) - [Commits](https://github.com/freefair/gradle-plugins/compare/6.6.1...8.3) --- updated-dependencies: - dependency-name: io.freefair.javadoc-utf-8 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index dbd4bee2..0554e93c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -10,7 +10,7 @@ plugins { id("org.cadixdev.licenser") version "0.6.1" id("com.github.gradle-git-version-calculator") version "1.1.0" id("io.freefair.javadoc-links") version "6.5.1" - id("io.freefair.javadoc-utf-8") version "6.6.1" + id("io.freefair.javadoc-utf-8") version "8.3" id("com.github.ben-manes.versions") version "0.48.0" id("me.champeau.gradle.jmh") version "0.5.3" } From df650d0ec66284a91d1b424f9a6d53fd18fc6cfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Sep 2023 13:53:08 +0000 Subject: [PATCH 13/22] Bump org.sonarqube from 4.3.1.3277 to 4.4.0.3356 Bumps org.sonarqube from 4.3.1.3277 to 4.4.0.3356. --- updated-dependencies: - dependency-name: org.sonarqube dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index dbd4bee2..198d53fc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ plugins { jacoco `java-library` antlr - id("org.sonarqube") version "4.3.1.3277" + id("org.sonarqube") version "4.4.0.3356" id("org.cadixdev.licenser") version "0.6.1" id("com.github.gradle-git-version-calculator") version "1.1.0" id("io.freefair.javadoc-links") version "6.5.1" From 11b2f203317f5945c3b418eafdd3d6249a8a9aa1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 13:14:04 +0000 Subject: [PATCH 14/22] Bump org.sonarqube from 4.4.0.3356 to 4.4.1.3373 Bumps org.sonarqube from 4.4.0.3356 to 4.4.1.3373. --- updated-dependencies: - dependency-name: org.sonarqube dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8f20687e..4a0fdf5c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ plugins { jacoco `java-library` antlr - id("org.sonarqube") version "4.4.0.3356" + id("org.sonarqube") version "4.4.1.3373" id("org.cadixdev.licenser") version "0.6.1" id("com.github.gradle-git-version-calculator") version "1.1.0" id("io.freefair.javadoc-links") version "6.5.1" From 1ef9f30756bab5af092d74b5f91408a175a85918 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 13:39:26 +0000 Subject: [PATCH 15/22] Bump com.github.ben-manes.versions from 0.48.0 to 0.50.0 Bumps com.github.ben-manes.versions from 0.48.0 to 0.50.0. --- updated-dependencies: - dependency-name: com.github.ben-manes.versions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4a0fdf5c..e0f9fbab 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { id("com.github.gradle-git-version-calculator") version "1.1.0" id("io.freefair.javadoc-links") version "6.5.1" id("io.freefair.javadoc-utf-8") version "8.3" - id("com.github.ben-manes.versions") version "0.48.0" + id("com.github.ben-manes.versions") version "0.50.0" id("me.champeau.gradle.jmh") version "0.5.3" } From 27a964062f10d2808a1e9a5bcb0de7e6c52c287d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Nov 2023 13:38:46 +0000 Subject: [PATCH 16/22] Bump AButler/upload-release-assets from 2.0 to 3.0 Bumps [AButler/upload-release-assets](https://github.com/abutler/upload-release-assets) from 2.0 to 3.0. - [Release notes](https://github.com/abutler/upload-release-assets/releases) - [Commits](https://github.com/abutler/upload-release-assets/compare/v2.0...v3.0) --- updated-dependencies: - dependency-name: AButler/upload-release-assets dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5dc366c6..d0588ef7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - if: matrix.os == 'ubuntu-latest' run: ./gradlew build - if: matrix.os == 'ubuntu-latest' - uses: AButler/upload-release-assets@v2.0 + uses: AButler/upload-release-assets@v3.0 with: files: './build/libs/*.jar' repo-token: ${{ secrets.GITHUB_TOKEN }} From 450942786c58cac1989b21dff1bc3902de782cc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 13:33:51 +0000 Subject: [PATCH 17/22] Bump actions/setup-java from 3 to 4 Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check.yml | 2 +- .github/workflows/gh-pages.yml | 2 +- .github/workflows/javadoc.yml | 2 +- .github/workflows/qa.yml | 2 +- .github/workflows/release.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 740d1347..f6391bb1 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java_version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.java_version }} distribution: 'adopt' diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 378b3d34..38e0137b 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - name: Setup JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: 17 distribution: 'adopt' diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index 9f14b0e4..20b36a19 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: 11 distribution: 'adopt' diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 99885dd2..afe4f63c 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -18,7 +18,7 @@ jobs: - run: | git fetch --prune --unshallow - name: Set up JDK 11 - uses: actions/setup-java@v3.12.0 + uses: actions/setup-java@v4 with: java-version: 11 distribution: 'adopt' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d0588ef7..af3c3fa3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,7 @@ jobs: os: [ ubuntu-latest, windows-latest, macOS-latest ] steps: - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 11 distribution: 'adopt' From e3c2c54e2629f5fc09efc5c3449756169ec785da Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Tue, 5 Dec 2023 10:24:12 +0300 Subject: [PATCH 18/22] =?UTF-8?q?=D0=92=D1=8B=D0=B7=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=D0=98=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5(=D0=A5=D0=A5=D0=A5)=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F=D0=BB=D0=BE=D1=81=D1=8C=20=D0=BD=D0=B5=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit raiseStatement : RAISE_KEYWORD (doCall | expression)?; closes #268 --- src/main/antlr/BSLParser.g4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/antlr/BSLParser.g4 b/src/main/antlr/BSLParser.g4 index 47550281..0bc012fe 100644 --- a/src/main/antlr/BSLParser.g4 +++ b/src/main/antlr/BSLParser.g4 @@ -169,7 +169,7 @@ subCodeBlock : subVars? codeBlock; // statements continueStatement : CONTINUE_KEYWORD; breakStatement : BREAK_KEYWORD; -raiseStatement : RAISE_KEYWORD (expression? | doCall); +raiseStatement : RAISE_KEYWORD (doCall | expression)?; ifStatement : ifBranch elsifBranch* elseBranch? ENDIF_KEYWORD ; From 763b1404c388c384e7b95c1f25b96fa6d65cec19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:13:18 +0000 Subject: [PATCH 19/22] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/gh-pages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 378b3d34..b6973a0f 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -29,7 +29,7 @@ jobs: run: ./gradlew --no-daemon javadoc - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.6' architecture: 'x64' From 9fdb8bbf18524a9b931154e5a3a594dde6fb5c9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:40:27 +0000 Subject: [PATCH 20/22] Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 740d1347..7a9db305 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -21,7 +21,7 @@ jobs: run: ./gradlew check --stacktrace - name: Archive test results if: failure() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: junit_report_${{ matrix.os }}_${{ matrix.java_version }} path: build/reports/tests/test From 6866e17448afc4b10071030e91b190ada54d3641 Mon Sep 17 00:00:00 2001 From: Valery Maximov Date: Mon, 18 Dec 2023 10:27:41 +0300 Subject: [PATCH 21/22] - jdk 17 - gradle 8.5 - bump dep --- .github/workflows/check.yml | 2 +- .github/workflows/javadoc.yml | 2 +- .github/workflows/qa.yml | 4 +- .github/workflows/release.yml | 2 +- .idea/compiler.xml | 5 +- .idea/jarRepositories.xml | 5 + build.gradle.kts | 12 +- gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59821 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 257 ++++++++++++++--------- 10 files changed, 171 insertions(+), 120 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 6ad32c30..95d6479e 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - java_version: ['11', '17'] + java_version: ['17', '20'] os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index 20b36a19..59f8c880 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -10,7 +10,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v4 with: - java-version: 11 + java-version: 17 distribution: 'adopt' - name: Check javadoc build run: ./gradlew javadoc --stacktrace diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index afe4f63c..a82508d5 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -17,10 +17,10 @@ jobs: fetch-depth: '' - run: | git fetch --prune --unshallow - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: 11 + java-version: 17 distribution: 'adopt' - name: SonarCloud Scan run: ./gradlew check sonar diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index af3c3fa3..4dd80a14 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 11 + java-version: 17 distribution: 'adopt' - run: ./gradlew check --stacktrace - if: matrix.os == 'ubuntu-latest' diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 4f38879f..b589d56e 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,9 +1,6 @@ - - - - + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index 05730e05..0a83bc69 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -26,5 +26,10 @@