在Java中创建一个简单的词法分析器

3
我正在创建一个词法分析器,必须读取文本输入并输出一个基本的“创建”语言的标记,并在调用时输出一个标记。我希望它能够从我预先确定的列表中区分出标识符、常量等。
我需要使用输入流读取文本文件。一个while循环将逐个字符循环,但我需要识别扫描到的字符是标识符还是“+”、“-”、“*”、“/”等运算符...最好的方法是什么?
由于我对编程比较新,所以任何关于如何构建这个程序的建议都会受到赞赏。 非常感谢您的回答。
2个回答

4

不要试图编写自己的词法分析器/语法解析器。

使用像ANTLRSableCC这样的词法分析器/语法解析器生成器更容易。


2

StreamTokenizer 类可能是最有帮助的。它可以读取和区分标识符、数字和字符串。您还可以配置它以识别运算符,例如 +* 等。


1
+1 给好老的 StreamTokenizer。这里有一个例子:链接 - trashgod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接