我一直在寻找这个,但我从来没有得到很好的答案。
我正在寻找一个解析定义语法的教程或代码,就像新语言一样。最好使用strtok或tokenizer。
我需要编写一种简单的语言,稍后我会解析。
感谢您的帮助。
修改 语言很简单。基本上是变量赋值和循环以及条件检查。没什么好看的。
修改 我想从我得到的答案来看,标题不应该如此。 “如何在php中创建语言”的方法会更好。感谢。
答案 0 :(得分:4)
基本上,“制作语言”涉及几个步骤。首先,你需要一个“词法分析器”,它将你的输入分成属于不同符号类的子串(如“标识符”,“数字”,“运算符”等)。其次,你写下你的语言的语法,通常使用某种BNF。然后你吃香蕉使用一个名为“parser generator”的程序,它将你的语法变成实际的解析器代码,最后你将词法分析器和解析器结合起来得到一个实际的编译器。
通常,这种事情是用C或Java完成的,我从来没有听说过用php编写的工作编译器。不过,你可以使用php tokenizer作为第一部分(词法分析器) - 假设你的语言有类似于php的语法 - 并尝试http://pear.php.net/package/PHP_ParserGenerator来生成解析器。
很抱歉,如果这听起来有点复杂,但确实如此。
答案 1 :(得分:2)
此链接Any decent PHP parser written in PHP?讨论使用PHP解析PHP。
OP的值是,答案提供了几种获取解析器生成器的方法,一些在PHP本身运行,这可能对他有用。