Может ли генератор синтаксического анализатора ANTLR4 генерировать код C? - PullRequest
0 голосов
/ 03 апреля 2020

Я изучаю antlr4 и в документации я прочитал, что основными целями этого генератора синтаксического анализатора являются: Java, C#, Python2 | 3, JavaScript, Go, C ++, Swift. Вместо этого предыдущая версия (antlr3) также включает в себя C.

. Мой вопрос: есть ли способ генерировать код C также в antlr4? Спасибо

Ответы [ 3 ]

1 голос
/ 03 апреля 2020

Краткий ответ: нет, цель C отсутствует.

Вы забыли одну, кстати: есть также цель PHP. На момент написания этой статьи доступны следующие цели:

  • Java
  • C#
  • Python 2
  • Python 3
  • JavaScript
  • Go
  • C ++
  • Swift
  • PHP

- https://github.com/antlr/antlr4/blob/master/doc/targets.md

0 голосов
/ 09 апреля 2020

Я написал конструктор парсера в Kotlin общем коде. Собственный код является опцией в качестве цели kotlin, поэтому анализатор должен вызываться из кода C. Хотя я не проверял это очень подробно.

Это не ANTLR4, парсеры, генерируемые ANTLR, намного быстрее. Но синтаксис для определения грамматики похож на ANTLR, поэтому, если вам все еще что-то нужно, не стесняйтесь попробовать и дайте мне знать, как вы ладите.

Подробности можно найти здесь: https://medium.com/@dr.david.h.akehurst / a- kotlin -Multi-платформы анализатор Многоразовый-с-а-или--JVM javascript -59e870832a79

0 голосов
/ 05 апреля 2020

Разбор ANTLR4 и генерация кода были разработаны на основе объектно-ориентированных функций, таких как наследование и полиморфизм, и поэтому генерация цели C немного сложна, поскольку она не поддерживает объектно-ориентированное программирование.

...