有没有办法根据给定的语法生成(所有可能的)句子?
假设我有语法:
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/