Что такое TinyPG и как он работает?
Что такое TinyPG и как он работает? Я знаю, что это "компилятор-компилятор", но как мне начать и создать свой собственный компилятор в C#?
1 ответ
Я приблизительно понял, как вы используете это, и вот краткое.
TinyPG - это полная IDE компилятор-компилятор с Windows GUI для RegExp, EBNF и C#/VB. Ниже описана процедура разработки вашего собственного "компилятора" в TinyPG:
Вы определяете терминалы, используя регулярные выражения.
- Вы пишете эти ReyExps в TinyPG, который в основном извлекает токены из входного исходного кода.
- RegExps изначально поддерживаются в.NET, что означает, что даже ваш сгенерированный код "компилятора" использует RegExps.NET.
Вы определяете нетерминалы и правила синтаксического анализатора в расширенном метасинтаксисе BNF.
- Вы пишете EBNF в TinyPG, чтобы описать язык по вашему выбору.
- Некоторые бесплатные грамматики BNF, которые описывают современные языки программирования.
Вы определяете компилятор в управляемом коде.
- Вы пишете код C# / VB в TinyPG, чтобы преобразовать токены в вывод по вашему выбору.
- Один блок кода C# / VB только для одного правила грамматики BNF.
- TinyPG может скомпилировать и запустить ваш "tokenizer + parser + complier" с помощью компилятора командной строки.
TinyPG генерирует код C# для вашего нового "компилятора".
- Создает дерево разбора из введенного исходного кода, используя ваш RegEx вместе с вашим EBNF.
- Переводит это дерево разбора в вывод, используя ваш код C#/VB.
Вы разрабатываете интерфейс вашего компилятора на C# или VB.NET.
- Базовый интерфейс будет вызывать сгенерированные классы C# с входным файлом и отображать вывод.
Для начала вы можете открыть файл "simple expression2.tpg" в предоставленных примерах TinyPG, чтобы увидеть демо калькулятора "компилятор".