Я пытаюсь сделать инструмент как ANTLR с нуля в Swift (просто для удовольствия). Но я не понимаю, как грамматика знает, что там не должно быть пробелы (пример идентификатора: «_myIdentifier123»):Какая магия за WS в ANTLR?
Identifier
: Identifier_head Identifier_characters?
И должно быть пробелы (например, «это строка»):
type_casting_operator
: 'is' type
| 'as' type
| 'as' '?' type
| 'as' '!' type
;
Я искал WS в исходном коде ANTLR, но ничего не нашел. В java-коде нет строки «WS»: https://github.com/antlr/antlr4
Может ли кто-нибудь объяснить алгоритм этого? Как он решает, разделяются ли токены с пробелами или нет?
Ты знаешь об этом проекте: https://github.com/janyou/ANTLR-Swift-Target? Также обсуждаемая здесь быстро заданная задача: https://github.com/antlr/antlr4/issues/945 –