Моя компания пытается написать некоторое программное обеспечение для Android. Мы хотели бы работать с Java, и есть компонент программного обеспечения компании, который является C++, и поэтому его нужно портировать (или, по крайней мере, нужно перенести требования перед тем, как попробовать материал NDK). Этот код был создан с использованием Accent, и он определяет грамматическую грамматику. Насколько я могу судить, оригинальный автор (теперь ушел) написал грамматику, чтобы указать, как указать грамматику, а затем скомпилировал компилятор-компилятор с этой грамматикой и Accent. Компилятор-компилятор принимает грамматику указанного формата и создает двоичный код для анализа строк, соответствующих этой грамматике. Вот пример фрагмент грамматики:компилятор компилятора грамматики для Java
//include rules from from this file (such as <alpha>)
include "alphabet.bnf"
<<topSymbol>> = <alpha> <alpha> <alpha>? .//two letters with an optional third
//square brackets enclose an XML statement clarifying semantics of the rule
[
<topSymbol>
<letter>
<command val="doSomethingToLetter"/>
</letter>
<!--etc.-->
</topSymbol>
]
Мой вопрос заключается в том, как сделать это с помощью Java, используя Antlr или какой-либо другой инструмент. Компилятор-компилятор компилятора мне кажется довольно сложным. В качестве альтернативы, я хотел бы знать, как легко компилировать/разбирать этот тип грамматики, который содержит грамматическую и семантическую XML-информацию.
Если вам нужен компилятор-компилятор-компилятор, то вы делаете что-то неправильно. –
Грамматика. Компилятор-компилятор-компилятор. ИТ-рэп? – maksimov
Yo dawg, я слышал, вам понравилось описывать языки, поэтому я сделал грамматику для вашей грамматики для вашей грамматики, чтобы вы могли разобрать, как вы разбираете, как вы разбираете. –