Как построить грамматику Antlr4 C # с помощью Eclipse? - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь создать грамматику Antlr V4, доступную в следующем репозитории: https://github.com/antlr/grammars-v4. Я успешно создал грамматику Python3 и Java, и целевые файлы * .java были успешно созданы.Но когда я попытался построить грамматику C #, например, CSharpLexer.g4, CSharpParser.g4 и CsharpPreporcessorParser.g4, я получаю ошибку сборки.Он генерирует следующую ошибку:

error(114): CSharpPreprocessorParser.g4:7:21: cannot find tokens file ./CSharpLexer.tokens
error(126): CSharpParser.g4:20:62: cannot create implicit token for string literal in non-combined grammar: '.'
error(126): CSharpParser.g4:25:14: cannot create implicit token for string literal in non-combined grammar: '?'
error(126): CSharpParser.g4:25:37: cannot create implicit token for string literal in non-combined grammar: '*'
error(126): CSharpParser.g4:31:8: cannot create implicit token for string literal in non-combined grammar: '*'
error(126): CSharpParser.g4:71:3: cannot create implicit token for string literal in non-combined grammar: '<'
error(126): CSharpParser.g4:71:14: cannot create implicit token for string literal in non-combined grammar: ','
error(126): CSharpParser.g4:71:25: cannot create implicit token for string literal in non-combined grammar: '>'
error(126): CSharpParser.g4:76:14: cannot create implicit token for string literal in non-combined grammar: ','
error(126): CSharpParser.g4:80:15: cannot create implicit token for string literal in non-combined grammar: ':'
error(126): CSharpParser.g4:99:3: cannot create implicit token for string literal in non-combined grammar: '='
error(126): CSharpParser.g4:99:9: cannot create implicit token for string literal in non-combined grammar: '+='
error(126): CSharpParser.g4:99:16: cannot create implicit token for string literal in non-combined grammar: '-='
error(126): CSharpParser.g4:99:23: cannot create implicit token for string literal in non-combined grammar: '*='
error(126): CSharpParser.g4:99:30: cannot create implicit token for string literal in non-combined grammar: '/='

Я пытаюсь построить это с помощью плагина Antlr V4 eclipse.Моя цель - создать файлы * .java, чтобы перейти к следующим шагам.Не уверен, как собрать все файлы csharp * .g4, так как Java и Python имеют только один файл грамматики соответственно.

1 Ответ

0 голосов
/ 27 марта 2019

Сначала соберите CSharpLexer.g4.Затем создайте CSharpParser.g4 и CsharpPreporcessorParser.g4.Сборка CSharpLexer.g4 сгенерирует CSharpLexer.tokens, который будет использоваться на более поздних этапах CSharpParser.g4.

...