Skip to content

Commit be5fbf9

Browse files
committed
Finish v0.4.0
2 parents aa76cb1 + 8a1cec4 commit be5fbf9

File tree

16 files changed

+93
-84
lines changed

16 files changed

+93
-84
lines changed

.github/workflows/check.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,17 @@ jobs:
1111
java_version: ['17', '21']
1212
os: [ubuntu-latest, windows-latest, macOS-latest]
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v6
1515
- name: Set up JDK ${{ matrix.java_version }}
16-
uses: actions/setup-java@v4
16+
uses: actions/setup-java@v5
1717
with:
1818
java-version: ${{ matrix.java_version }}
1919
distribution: 'adopt'
2020
- name: Build with Gradle
2121
run: ./gradlew check --stacktrace
2222
- name: Archive test results
2323
if: failure()
24-
uses: actions/upload-artifact@v4
24+
uses: actions/upload-artifact@v5
2525
with:
2626
name: junit_report_${{ matrix.os }}_${{ matrix.java_version }}
2727
path: build/reports/tests/test

.github/workflows/publish-to-maven-central.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
publish:
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v5
15+
- uses: actions/checkout@v6
1616
with:
1717
fetch-depth: 0
1818
- name: Set up JDK

.github/workflows/qa.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-latest
1313
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.event.repository.full_name
1414
steps:
15-
- uses: actions/checkout@v5
15+
- uses: actions/checkout@v6
1616
with:
1717
fetch-depth: ''
1818
- run: |

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
matrix:
1313
os: [ ubuntu-latest, windows-latest, macOS-latest ]
1414
steps:
15-
- uses: actions/checkout@v5
15+
- uses: actions/checkout@v6
1616
with:
1717
fetch-depth: 0
1818
- uses: actions/setup-java@v5

.github/workflows/update-gradle.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111

1212
steps:
13-
- uses: actions/checkout@v5
13+
- uses: actions/checkout@v6
1414
with:
1515
fetch-depth: 0
1616
- name: Set up JDK 17

build.gradle.kts

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ plugins {
88
idea
99
id("org.cadixdev.licenser") version "0.6.1"
1010
id("me.qoomon.git-versioning") version "6.4.4"
11-
id("io.freefair.lombok") version "8.14.2"
12-
id("io.freefair.javadoc-links") version "8.14.2"
13-
id("io.freefair.javadoc-utf-8") version "8.14.2"
14-
id("io.freefair.maven-central.validate-poms") version "8.14.2"
15-
id("com.github.ben-manes.versions") version "0.52.0"
11+
id("io.freefair.lombok") version "9.1.0"
12+
id("io.freefair.javadoc-links") version "9.1.0"
13+
id("io.freefair.javadoc-utf-8") version "9.1.0"
14+
id("io.freefair.maven-central.validate-poms") version "9.1.0"
15+
id("com.github.ben-manes.versions") version "0.53.0"
1616
id("ru.vyarus.pom") version "3.0.0"
17-
id("org.jreleaser") version "1.19.0"
18-
id("org.sonarqube") version "6.2.0.5505"
17+
id("org.jreleaser") version "1.21.0"
18+
id("org.sonarqube") version "7.1.0.6387"
1919
id("me.champeau.jmh") version "0.7.3"
2020
}
2121

@@ -49,13 +49,12 @@ gitVersioning.apply {
4949
}
5050

5151
dependencies {
52-
implementation("io.github.1c-syntax", "bsl-parser-core", "0.3.1")
53-
implementation("io.github.1c-syntax", "antlr4", "0.1.2")
52+
implementation("io.github.1c-syntax", "antlr4", "0.2.0")
5453
implementation("commons-io", "commons-io", "2.15.1")
55-
implementation("org.junit.jupiter", "junit-jupiter-api", "5.10.1")
56-
implementation("org.assertj", "assertj-core", "3.25.0")
54+
implementation("org.junit.jupiter", "junit-jupiter-api", "5.11.4")
55+
implementation("org.assertj", "assertj-core", "3.27.0")
5756

58-
testImplementation("org.junit.jupiter", "junit-jupiter-engine", "5.10.1")
57+
testImplementation("org.junit.jupiter", "junit-jupiter-engine", "5.11.4")
5958
testImplementation("org.mockito", "mockito-core", "5.8.0")
6059
}
6160

src/main/java/com/github/_1c_syntax/bsl/parser/testing/LexerAsserts.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public LexerAsserts(TestLexer<?> lexer, String inputString, int mode, int channe
4949
* При проверке анализируются все токены всех каналов, включая служебный конца строки
5050
*
5151
* @param expectedTokens контрольный массив токенов
52-
* @return
52+
* @return Ассерт (для текучести)
5353
*/
5454
public LexerAsserts containsExactly(Integer... expectedTokens) {
5555
var tokenTypes = tokens.stream()
@@ -63,7 +63,7 @@ public LexerAsserts containsExactly(Integer... expectedTokens) {
6363
* При проверке анализируются токены указанного в assertThat канала, исключая служебный конца строки
6464
*
6565
* @param expectedTokens контрольный массив токенов
66-
* @return
66+
* @return Ассерт (для текучести)
6767
*/
6868
public LexerAsserts containsAll(Integer... expectedTokens) {
6969
var tokenTypes = tokens.stream()
@@ -79,7 +79,7 @@ public LexerAsserts containsAll(Integer... expectedTokens) {
7979
*
8080
* @param index Порядковый индекс токена в строке
8181
* @param text текст токена
82-
* @return
82+
* @return Ассерт (для текучести)
8383
*/
8484
public LexerAsserts tokenHasText(int index, String text) {
8585
var token = tokens.get(index);
@@ -93,7 +93,7 @@ public LexerAsserts tokenHasText(int index, String text) {
9393
*
9494
* @param index Порядковый индекс токена в строке
9595
* @param lineNo номер строки расположения токена
96-
* @return
96+
* @return Ассерт (для текучести)
9797
*/
9898
public LexerAsserts tokenOnLine(int index, int lineNo) {
9999
var token = tokens.get(index);
@@ -107,7 +107,7 @@ public LexerAsserts tokenOnLine(int index, int lineNo) {
107107
* идентификаторов токенов (с учетом установленных mode и channel)
108108
*
109109
* @param actual строка для сравнения
110-
* @return
110+
* @return Ассерт (для текучести)
111111
*/
112112
public LexerAsserts isEqualTo(String actual) {
113113
var actualTokens = lexer.getTokens(mode, actual);

src/main/java/com/github/_1c_syntax/bsl/parser/testing/ParserAsserts.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
*/
2222
package com.github._1c_syntax.bsl.parser.testing;
2323

24-
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
2524
import lombok.SneakyThrows;
2625
import org.antlr.v4.runtime.Parser;
2726
import org.antlr.v4.runtime.ParserRuleContext;
@@ -41,7 +40,7 @@ public class ParserAsserts {
4140
private final Parser parser;
4241
private final TestParser<?, ?> testParser;
4342

44-
private final BSLParserRuleContext currentAST;
43+
private final ParserRuleContext currentAST;
4544

4645
@SneakyThrows
4746
public ParserAsserts(TestParser<?, ?> testParser, Parser parser) {
@@ -50,7 +49,7 @@ public ParserAsserts(TestParser<?, ?> testParser, Parser parser) {
5049
var fields = testParser.getParserClazz().getDeclaredMethods();
5150
var result = Arrays.stream(fields).filter(field -> testParser.ruleName(0).equals(field.getName())).findFirst();
5251
if (result.isPresent()) {
53-
this.currentAST = (BSLParserRuleContext) result.get().invoke(parser);
52+
this.currentAST = (ParserRuleContext) result.get().invoke(parser);
5453
this.parser.reset();
5554
} else {
5655
this.currentAST = null;
@@ -59,9 +58,10 @@ public ParserAsserts(TestParser<?, ?> testParser, Parser parser) {
5958

6059
/**
6160
* Выполняет проверку совпадения прочитанного узла на предмет ошибок парсинга
62-
* @param tree
63-
* @return
64-
* @throws RecognitionException
61+
*
62+
* @param tree Узел дерева
63+
* @return Ассерт (для текучести)
64+
* @throws RecognitionException Ошибка парсинга
6565
*/
6666
public ParserAsserts matches(ParseTree tree) throws RecognitionException {
6767
if (parser.getNumberOfSyntaxErrors() != 0) {
@@ -78,7 +78,7 @@ public ParserAsserts matches(ParseTree tree) throws RecognitionException {
7878
throw ctx.exception;
7979
}
8080

81-
if (((ParserRuleContext) tree).parent == null) {
81+
if (ctx.parent == null) {
8282
boolean parseSuccess = testParser.getLexerClazz().cast(parser.getInputStream().getTokenSource())._hitEOF;
8383
if (!parseSuccess) {
8484
throw new RecognitionException(
@@ -99,8 +99,9 @@ public ParserAsserts matches(ParseTree tree) throws RecognitionException {
9999

100100
/**
101101
* Убеждается, что прочитанного узла нет либо есть ошибка его чтения
102-
* @param tree
103-
* @return
102+
*
103+
* @param tree Узел дерева
104+
* @return Ассерт (для текучести)
104105
*/
105106
public ParserAsserts noMatches(ParseTree tree) {
106107
assertThat(tree).satisfiesAnyOf(
@@ -112,9 +113,10 @@ public ParserAsserts noMatches(ParseTree tree) {
112113

113114
/**
114115
* Выполняет анализ наличия в дереве узлов с нужным идентификатором в нужном количестве
115-
* @param ruleId
116-
* @param count
117-
* @return
116+
*
117+
* @param ruleId идентификатор рула
118+
* @param count количество узлов
119+
* @return Ассерт (для текучести)
118120
*/
119121
public ParserAsserts containsRule(int ruleId, int count) {
120122
assertThat(currentAST).isNotNull();

src/main/java/com/github/_1c_syntax/bsl/parser/testing/ResourceUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ public class ResourceUtils {
3636
/**
3737
* Читает файл фикстуры из тестовых ресурсов проекта
3838
*
39-
* @param resourceName
40-
* @return
39+
* @param resourceName имя файла фикстуры
40+
* @return Прочитанное содержимое
4141
*/
4242
public String byName(@NonNull String resourceName) {
4343
if (resourceName.isBlank()) {

src/main/java/com/github/_1c_syntax/bsl/parser/testing/TestLexer.java

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@
2121
*/
2222
package com.github._1c_syntax.bsl.parser.testing;
2323

24-
import com.github._1c_syntax.bsl.parser.CaseChangingCharStream;
25-
import com.github._1c_syntax.bsl.parser.UnicodeBOMInputStream;
2624
import lombok.Getter;
2725
import lombok.SneakyThrows;
2826
import org.antlr.v4.runtime.CharStream;
2927
import org.antlr.v4.runtime.CharStreams;
30-
import org.antlr.v4.runtime.CommonTokenStream;
3128
import org.antlr.v4.runtime.ConsoleErrorListener;
29+
import org.antlr.v4.runtime.IncrementalTokenStream;
3230
import org.antlr.v4.runtime.Lexer;
3331
import org.antlr.v4.runtime.Token;
32+
import org.antlr.v4.runtime.UnicodeBOMInputStream;
3433
import org.apache.commons.io.IOUtils;
3534

3635
import java.io.IOException;
@@ -72,9 +71,9 @@ public TestLexer(Class<T> clazz) {
7271
/**
7372
* Возвращает список токенов в переданной строке
7473
*
75-
* @param mode
76-
* @param inputString
77-
* @return
74+
* @param mode Режим
75+
* @param inputString Входная строка
76+
* @return Токены в строке
7877
*/
7978
public List<Token> getTokens(int mode, String inputString) {
8079
return getTokensStream(mode, inputString).getTokens();
@@ -83,11 +82,11 @@ public List<Token> getTokens(int mode, String inputString) {
8382
/**
8483
* Возвращает токены переданной строки
8584
*
86-
* @param mode
87-
* @param inputString
88-
* @return
85+
* @param mode Режим
86+
* @param inputString Входная строка
87+
* @return Токены в строке
8988
*/
90-
public CommonTokenStream getTokensStream(int mode, String inputString) {
89+
public IncrementalTokenStream getTokensStream(int mode, String inputString) {
9190
CharStream input;
9291

9392
try (
@@ -96,8 +95,7 @@ public CommonTokenStream getTokensStream(int mode, String inputString) {
9695
var inputStreamReader = new InputStreamReader(ubis, StandardCharsets.UTF_8)
9796
) {
9897
ubis.skipBOM();
99-
var inputTemp = CharStreams.fromReader(inputStreamReader);
100-
input = new CaseChangingCharStream(inputTemp);
98+
input = CharStreams.fromReader(inputStreamReader);
10199
} catch (IOException e) {
102100
throw new RuntimeException(e);
103101
}
@@ -106,7 +104,7 @@ public CommonTokenStream getTokensStream(int mode, String inputString) {
106104
lexer.removeErrorListener(ConsoleErrorListener.INSTANCE);
107105
lexer.pushMode(mode);
108106

109-
var tempTokenStream = new CommonTokenStream(lexer);
107+
var tempTokenStream = new IncrementalTokenStream(lexer);
110108
tempTokenStream.fill();
111109

112110
return tempTokenStream;
@@ -116,7 +114,7 @@ public CommonTokenStream getTokensStream(int mode, String inputString) {
116114
* Формирует строку с именами токенов на основании переданного массива их идентификаторов
117115
*
118116
* @param tokenTypes массив идентификаторов (типов) токенов
119-
* @return
117+
* @return Имя токена
120118
*/
121119
public String tokenName(Integer[] tokenTypes) {
122120
return Arrays.stream(tokenTypes).map(this::tokenName).collect(Collectors.joining(", "));
@@ -125,8 +123,8 @@ public String tokenName(Integer[] tokenTypes) {
125123
/**
126124
* Возвращает имя токена по его идентификатору (типу)
127125
*
128-
* @param type
129-
* @return
126+
* @param type Идентификатор токена
127+
* @return Имя токена
130128
*/
131129
public String tokenName(Integer type) {
132130
if (!ruleNames.isEmpty() && type < ruleNames.size()) {
@@ -149,7 +147,7 @@ public LexerAsserts assertThat(String inputString) {
149147
/**
150148
* Настраивает и запоминает тестируемый контекст. Использует дефолтное channel
151149
*
152-
* @param mode
150+
* @param mode Режим
153151
* @param inputString анализируемая строка
154152
* @return служебный класс для замыкания
155153
*/
@@ -160,7 +158,7 @@ public LexerAsserts assertThat(int mode, String inputString) {
160158
/**
161159
* Настраивает и запоминает тестируемый контекст
162160
*
163-
* @param mode
161+
* @param mode Режим
164162
* @param inputString анализируемая строка
165163
* @param channel анализируемая строка
166164
* @return служебный класс для замыкания
@@ -173,7 +171,7 @@ public LexerAsserts assertThat(int mode, String inputString, int channel) {
173171
* Настраивает и запоминает тестируемый контекст. Использует дефолтное mode
174172
*
175173
* @param inputString анализируемая строка
176-
* @param channel
174+
* @param channel Канал
177175
* @return служебный класс для замыкания
178176
*/
179177
public LexerAsserts assertThat(String inputString, int channel) {
@@ -182,8 +180,8 @@ public LexerAsserts assertThat(String inputString, int channel) {
182180

183181
private T createLexer(Class<T> lexerClass) {
184182
try {
185-
return lexerClass.getDeclaredConstructor(CharStream.class, boolean.class)
186-
.newInstance(CharStreams.fromString(""), true);
183+
return lexerClass.getDeclaredConstructor(CharStream.class)
184+
.newInstance(CharStreams.fromString(""));
187185
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
188186
throw new RuntimeException(e);
189187
}

0 commit comments

Comments
 (0)