我正在使用Flex构建自己的语言,但我想知道一些事情:
答案 0 :(得分:5)
词法分析有助于简化解析,因为词汇可以被视为抽象实体而不是具体的字符序列。
但是,您需要的不仅仅是flex来构建您的语言:词法分析只是第一步。
答案 1 :(得分:3)
每当您将输入字符串转换为以空格分隔的字符串和/或数值时,您就会执行词法分析。编写级联的else if (strcmp (..)==0) ...
语句系列算作词法分析。即使像sscanf和strtok这样讨厌的工具也是词汇分析工具。
由于以下几个原因之一,您想要使用像flex之类的工具而不是上述之一:
答案 2 :(得分:1)
您可以考虑使用词法分析器,因为您可以使用BNF(或EBNF)以声明方式描述您的语言(语法),然后使用解析器来解析用您的语言编写的程序并将其放入结构中记忆然后自由操纵它。
这不是强制性的,你当然可以写自己的,但这取决于语言的复杂程度以及重新发明轮子的时间。
此外,您可以使用语言(BNF)来描述您的语言而无需更改词法分析器本身,这使您可以进行许多实验并更改语言的语法,直到您确切地知道它对您有用。