gpt4 book ai didi

java - 使用antlr检查方法是否有注释

转载 作者:行者123 更新时间:2023-12-02 03:28:07 28 4
gpt4 key购买 nike

更改为Java.g4

文件开头

grammar Java;


@lexer::members {
public static final int WHITESPACE = 1;
public static final int COMMENTS = 2;
}

文件结束

//
// Whitespace and comments
//

WS : [ \t\r\n\u000C]+ -> channel(WHITESPACE) ; // channel(1)

COMMENT : '/*' .*? '*/' -> channel(COMMENTS) ; // channel(2)

LINE_COMMENT : '//' ~[\r\n]* -> channel(COMMENTS) ; // channel(2)

尝试将注释和空白发送到不同的 channel ,如《The Definitive ANTLR 4》一书中所做的那样引用》第12.1章在不同 channel 上广播代币

执行antlr4 Java.g4时显示以下错误

java org.antlr.v4.Tool Java.g4
warning(155): Java.g4:1017:35: rule WS contains a lexer command with an unrecognized constant value; lexer interpreters may produce incorrect output
warning(155): Java.g4:1019:40: rule COMMENT contains a lexer command with an unrecognized constant value; lexer interpreters may produce incorrect output
warning(155): Java.g4:1021:45: rule LINE_COMMENT contains a lexer command with an unrecognized constant value; lexer interpreters may produce incorrect output

我没看出什么问题?

最佳答案

您应该替换以下片段:

@lexer::members {
public static final int WHITESPACE = 1;
public static final int COMMENTS = 2;
}

带字符串:

channels { WHITESPACE, COMMENTS }

关于java - 使用antlr检查方法是否有注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507707/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com