java - 从词法分析器/解析器语法生成产生式

标签 java antlr antlr4

有没有办法根据给定的语法生成(所有可能的)句子?

假设我有语法:

grammar Drink;

//Parser Rules
drinkSentence : ARTICLE? DRINKING_VESSEL OF drink ;
drink : TEXT;

// Lexer Rules
ARTICLE : 'the' | 'an' | 'a' ;
OF : 'of' ;
DRINKING_VESSEL : 'cup' | 'pint' | 'shot' | 'mug' | 'glass' ;
TEXT : ('a'..'z')+ ;
WHITESPACE : ( '\t' | ' ' | '\r' | '\n'| '\u000C' )+ -> skip ;

是否可以由此生成所有可能的 DrinkSentences?我明白,例如TEXT 有大量可能的组合,但举例来说,我们假设它只能包含大约 4 个字母。

最佳答案

不,任何内置 ANTLR 功能都不可能实现这一点。

关于java - 从词法分析器/解析器语法生成产生式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45056194/

相关文章:

parsing - 词法分析器/解析器工具

javascript - 我的 antlr 4 左递归表达式不保留表达式优先顺序

java.sql.SQL语法错误异常 : Unknown column in 'field list'

java - transient 变量的注解@Basic

Java:来自最受欢迎类别的随机元素

java - 处理程序 postDelayed 只工作一次

java - antlr4 - 如何实现递归

java - ANTLR3 C 目标错误生成 TreeParser : ( ASTTreeParser. stg 321:25:匿名模板有 0 个参数但映射到 1 个值)

具有冲突标记的 ANTLR 行为

C++ 目标对象生命周期