java - 如何使用 ANTLR v4 标记代码

标签 java parsing antlr antlr4

首先我想为我糟糕的英语道歉。 我制作了 webApp,我需要做的任务是标记 Java 代码。我找到了像 ANTLR v4 这样的工具,并尝试实现它。

public class Tokenizer {
  public void tokenizer(String code) {
    ANTLRInputStream in = new ANTLRInputStream(code);
    Java8Lexer lexer = new Java8Lexer(in);
    List<? extends Token> tokenList = new ArrayList<>();
    tokenList = lexer.getAllTokens();
    for(Token token : tokenList){
      System.out.println("Next token :" + token.getType() + "\n");
    }
  }
}

此代码在屏幕上打印带有 token 类型数量的 int 列表。 我需要这样的东西:

enter image description here

在代码中添加“注释”之类的内容。 我怎样才能得到这个结果? 我有这个语法:https://github.com/antlr/grammars-v4/tree/master/java8

最佳答案

Token 类包含多种方法,包括

int getLine();
int getCharPositionInLine();

将 token 与相应的源关联起来。

关于java - 如何使用 ANTLR v4 标记代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43995309/

相关文章:

Antlr4 Listener 找不到子项

java - MySql 中的查询问题

java - 无法从后台服务通过 WiFi 访问互联网

Android:从 url 获取 'title' 而无需获取整个页面

parsing - 以 Go 为目标匹配 ANTLR4 中任何可打印的类字母字符

parsing - 乔姆斯基层次结构和 LL(*) 解析器

Java - 为什么系统类和运行时类具有相同的方法?

java - 使用 RPM 打包 jar 时,指定 "noarch"是个好主意吗?

python - 如何读取Python字典和元组

c - 读取带有换行符和空格的字符串