Грамматика ANTLR для тройной цитируемой строкиJAVA

Программисты JAVA общаются здесь
Anonymous
Грамматика ANTLR для тройной цитируемой строки

Сообщение Anonymous »

Я пытаюсь обновить грамматику ANTLR, которая следует за следующей спецификацией:
https://github.com/facebook/graphql/pull/327/files в логических терминах его определяется как: < /p>

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

StringValue ::
- `"` StringCharacter* `"`
- `"""` MultiLineStringCharacter* `"""`

StringCharacter ::
- SourceCharacter but not `"` or \ or LineTerminator
- \u EscapedUnicode
- \ EscapedCharacter

MultiLineStringCharacter ::
- SourceCharacter but not `"""` or `\"""`
- `\"""`
< /code>
(обратите внимание, что приведенное выше - логично - не Antlr Syntax). < /p>
Я попробовал следить за Antrl 4, но он не распознает более 1 символа внутри Строка с тройной цитированием: < /p>
string : triplequotedstring | StringValue ;

triplequotedstring: '"""' triplequotedstringpart?  '"""';

triplequotedstringpart : EscapedTripleQuote* | SourceCharacter*;

EscapedTripleQuote : '\\"""';

SourceCharacter :[\u0009\u000A\u000D\u0020-\uFFFF];

StringValue: '"' (~(["\\\n\r\u2028\u2029])|EscapedChar)* '"';
< /code>
С этими правилами он распознает '"" "a" ""' ', но как только я добавлю больше символов, это не удастся: < /p>
Например: "" "" abc "" "" не разбирается в плагине и плагине Intellij для Antlr < /p>
line 1:14 extraneous input 'abc' expecting {'"""', '\\"""', SourceCharacter}
Как мне сделать тройные цитируемые строки в Antlr с '"" "">

Подробнее здесь: https://stackoverflow.com/questions/461 ... ted-string

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