你如何用ANTLR做这样的事情?如何在ANTLR换行之前使用文本?
例输入:
title: hello world
语法:
header : IDENT ':' REST_OF_LINE ;
IDENT : 'a'..'z'+ ;
REST_OF_LINE : ~'\n'* '\n' ;
它失败,与line 1:0 mismatched input 'title: hello world\n' expecting IDENT
(我知道ANTLR是矫枉过正解析MIME类似的报头,但是这仅仅是在更复杂的文件的顶部)。
不幸的是我想把所有的文字都读到行尾,这可能包括数字,字母,标点符号。 –
不,你没有从AST开始,你从一个语法开始。此外,生成一个AST甚至不是强制性的:你可以只使用分析树。 –