什么是TinyPG,它是如何工作的?

时间:2009-09-07 03:04:43

标签: c# compiler-compiler tinypg

什么是TinyPG,它是如何工作的?我知道它是一个“编译器 - 编译器”,但我如何开始并在C#中创建自己的编译器?

1 个答案:

答案 0 :(得分:8)

我已经了解了你如何使用它,这里有一个简短的说明。

TinyPG是一个完整的编译器编译器IDE,具有用于RegExp,EBNF和C#/ VB的Windows GUI。以下概述了在TinyPG中开发自己的“编译器”的过程:

您使用Regular Expressions.

定义终端
  • 您在TinyPG中编写这些ReyExps,它基本上从输入源代码中提取令牌。
  • .NET中本身支持RegExps,这意味着即使您生成的“编译器”代码也使用.NET的RegExps。

您可以在Extended BNF元语法中定义非终端和解析器规则。

  • 您在TinyPG中编写EBNF,以描述您选择的语言。
  • 一些描述现代编程语言的免费BNF Grammers

您可以在托管代码中定义编译器。

  • 您在TinyPG中编写C#/ VB代码,将令牌转换为您选择的输出。
  • 仅限每个BNF语法规则的一个C#/ VB代码块。
  • TinyPG可以使用命令行编译器编译和运行“tokenizer + parser + complier”。

TinyPG为您的新“编译器”生成C#代码。

  • 使用您的RegEx和您的EBNF从输入的源代码生成parse-tree
  • 使用您的C#/ VB代码将此解析树转换为输出。

您使用C#或VB.NET开发编译器的前端。

  • 基本前端会使用输入文件调用生成的C#类,并显示输出。

首先,您可以在提供的TinyPG样本中打开“simple expression2.tpg”文件,以查看计算器“编译器”的演示。