Почему компиляция mvn генерирует две строки пакета из моего файла грамматики?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему компиляция mvn генерирует две строки пакета из моего файла грамматики?

Сообщение Anonymous »

почему моя грамматика создает две строки пакета после того, как я скомпилировал ее с помощью mvn compile?
Моя структура папок следующая:

Код: Выделить всё

src/main/antlr/eu//parser/Lexer.g4
src/main/antlr/eu//parser/Parser.g4
Мой pom.xml:

Код: Выделить всё

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

eu.
parser
0.0.1-SNAPSHOT
jar

parser
http://maven.apache.org


UTF-8





org.apache.maven.plugins
maven-compiler-plugin
3.7.0

1.9
1.9



org.antlr
antlr4-maven-plugin
4.7

true
true




antlr4









junit
junit
4.12
test


org.antlr
antlr4-runtime
4.7



В моем Lexer.g4 есть следующий код:

Код: Выделить всё

lexer grammar Lexer;

@lexer::header {
package eu..parser;
}
NUMBER: FLOAT | DIGIT;
LETTER: ('a'..'z') | ('A'..'Z');

FLOAT: DIGIT '.' DIGIT+;
DIGIT: [0-9]+ | MINUS [0-9]+;
Содержимое моего Parser.g4:

Код: Выделить всё

parser grammar Parser;

options {
language = Java;
tokenVocab = Lexer;
}

@header {
package eu..parser;
}
addition: NUMBER ('+' NUMBER)+;
теперь, если я сгенерирую его с помощью компиляции mvn, я получу следующий исходный код:

Код: Выделить всё

// Generated from eu\\parser\Lexer.g4 by ANTLR 4.7

package eu..parser;

package eu..parser;

import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
и он содержит две строки пакета. Как я могу запретить Maven генерировать две строки пакета?
Я уже пробовал не использовать оператор @header в моем Parser/Lexer, и он удаляет одну из строк пакета. Но я не думаю, что так следует поступать

Подробнее здесь: https://stackoverflow.com/questions/469 ... ammar-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»