我需要能够将 Java 代码拆分为单独的标记,其中标记是不依赖于空格的代码字符串。
例如,以下 Java 代码:
if (method(a, b).equals("C, C++, Java"))
将分为:
['if', '(', 'method', '(', 'a', ',', 'b', ')', '.', 'equals', '(', '"C, C++, Java"', ')', ')']
基本上,我需要一个可以用空格填充(或取消填充)而不改变代码执行的标记列表。如果我采用前面的代码示例,我可以添加和删除标记周围的空格以形成类似以下内容的内容:
if (method ( a,b) . equals ( "C, C++, Java") )
我仍然会得到相同的结果。
我猜这只能通过一些外部库来实现,但我不知道有什么。
最佳答案
像antlr或javacc这样的解析器生成器有完整的java语法作为示例。您可以重复使用生成的分词器来实现您的目标。
您也可以使用正则表达式实现某种标记化。但这并不是 100% java token 。
关于java - 将 Java 代码拆分为 Token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44374537/