我们可以使用ANTLR4中提供的lexer规则和token来识别单词。以下是一个示例,该示例从字母表中识别单词:
fragment LETTER: [a-zA-Z];
WORD: LETTER+;
words: WORD+;
lexer grammar WordLexer;
fragment LETTER: [a-zA-Z];
WORD: LETTER+;
parser grammar WordParser;
import WordLexer;
words: WORD+;
public class WordRecognizer { public static void main(String[] args) throws IOException { ANTLRInputStream input = new ANTLRInputStream("Hello World"); WordLexer lexer = new WordLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); WordParser parser = new WordParser(tokens); parser.words(); } }
在上面的示例中,我们创建了一个ANTLRInputStream并传入输入字符串。我们使用此输入创建一个WordLexer,这将为我们提供词法单元。然后,我们将这些标记传递给WordParser中的语法规则。最终,我们可以通过调用words规则来识别单词。
这就是如何使用ANTLR4从字母表中识别单词的方法。