0

我正在为项目工作开发一种新的编程语言。html的新语言编译器,我目前正在研究编译器。我知道编译器有三 (3) 个阶段。#1 从语言语法生成标记的词汇阶段,下一个阶段是解析器,然后是输出。我的问题是如何开始编写语法。我是用论文的形式还是只是简短的陈述。向我指出可以帮助我的资源。我读了很多,都没有教你如何写语法,所以如果你能举个例子。我正在用 python 编写编译器并使用名为 PLY 的 lax/yacc 模块

一个例子是:

HTML5 main{
      myHead.id = "cat";
      myTitle;
}

HEAD myHead;
TITLE myTitle = "text";

上述代码在 html 中的输出为:

<DOCTYPE>

<HTML>
   <head id="cat">
       <TITLE>text</TITLE>
   </head>

   <body>
   </body>
</HTML>
4

1 回答 1

1

如果这是某种课堂作业,您应该寻求澄清或进一步的说明。如果您提供有关您尝试做什么的更多详细信息,我们可以提供更具体的指南。

您可能想查看Bison 手册,了解如何在其中编写语法的示例(bison 与 GNU yacc 类似,除了异国情调的东西,它应该适用于您拥有的任何 yacc)。我不知道有任何输出 Python 的 yacc/lex 工具,bison/flex 可以哄骗到 C++ 甚至 Java,但不是 Python。将生成的解析器连接到 Python 可能是痛苦多于收获。

还有其他更高级别的工具(即,做更多的日常工作),如ANTLR

查看 comp.compìlers 新闻组的常见问题解答,它应该指向特定工具。

于 2013-01-14T17:59:56.957 回答