什么是 TinyPG,它是如何工作的?我知道它是一个“编译器-编译器”,但我该如何开始并在 C# 中创建自己的编译器?
问问题
2386 次
1 回答
8
我已经大致了解了您如何使用它,这里有一个简短的说明。
TinyPG是一个完整的编译器-编译器 IDE,带有用于 RegExp、EBNF 和 C#/VB 的 Windows GUI。以下概述了在 TinyPG 中开发自己的“编译器”的过程:
您使用正则表达式定义终端。
- 您在 TinyPG 中编写这些 ReyExp,它基本上从输入源代码中提取标记。
- .NET 原生支持正则表达式,这意味着即使您生成的“编译器”代码也使用 .NET 的正则表达式。
您在扩展 BNF元语法中定义非终结符和解析器规则。
- 您在 TinyPG 中编写 EBNF,以描述您选择的语言。
- 一些描述现代编程语言的免费BNF 语法。
您在托管代码中定义编译器。
- 您在 TinyPG 中编写 C#/VB 代码,将标记转换为您选择的输出。
- 每个 BNF 语法规则只有一个 C#/VB 代码块。
- TinyPG 可以使用命令行编译器编译和运行你的“tokenizer + parser + complier”。
TinyPG 为您的新“编译器”生成 C# 代码。
- 使用 RegEx 和 EBNF 从输入的源代码生成解析树。
- 使用您的 C#/VB 代码将此解析树转换为输出。
您使用 C# 或 VB.NET 开发编译器的前端。
- 基本前端将使用输入文件调用生成的 C# 类,并显示输出。
首先,您可以在提供的 TinyPG 示例中打开“simple expression2.tpg”文件,查看计算器“编译器”的演示。
于 2009-09-07T09:33:47.110 回答