我正在为一个项目工作开发一种新的编程语言。把新的语言编译成html,我目前正在做编译器的工作。我知道编译器有三(3)个阶段。#1从语言的语法中生成标记的词法阶段,下一个阶段是解析器,然后是输出。我的问题是如何开始写语法。我是以短文的形式来做呢,还是只做简短的陈述。告诉我可以帮助我的资源。我读了很多书,都没有教你如何写语法,所以如果你能举个例子。我正在用python编写编译器,并使用lax/yacc模块PLY
下面是一个例子:
HTML5 main{
myHead.id = "cat";
myTitle;
}
HEAD myHead;
TITLE myTitle = "text";
以上代码在html中的输出为:
<DOCTYPE>
<HTML>
<head id="cat">
<TITLE>text</TITLE>
</head>
<body>
</body>
</HTML>
发布于 2013-01-14 17:59:57
如果这是某种类型的类指定,您应该寻找澄清或进一步的说明。如果你提供更多关于你正在尝试做什么的细节,我们可以给出更具体的指导。
您可能希望查看Bison manual,了解如何在其中编写语法的示例(bison是与GNU yacc类似的工具,但它应该适用于您已有的任何yacc )。我不知道有什么yacc/lex工具可以输出Python,bison/flex可以被诱导成C++,也许是Java,但不能是Python。而且,将得到的解析器连接到Python可能要比获得的痛苦多得多。
还有其他更高级别的工具(即,完成更多的日常工作),如ANTLR。
查看comp.compìlers新闻组的常见问题解答,它应该会将您指向特定的工具。
https://stackoverflow.com/questions/14323702
复制