0
在詞法分析器非貪婪規則,我有:ANTLR4與停止令牌
AT: '@' -> mode(OPERATOR);
DOUBLE_AT: '@@' ;
CURLY_CLOSE: '}' { block_nesting > 0 && block_nesting >= curly_nesting }? { curly_nesting--; block_nesting--; };
NORMAL_ELSE: 'else' { previous_is_parenthesis_close() }? { block_nesting++; tokens.clear(); setType(ELSE); } -> mode(RYTHM);
NWS: [\t\r\n ]+ { setType(WS); };
CONTENT: .+? ('@' | '}' | 'else' | '\t' | '\r' | '\n') ;
的內容規則匹配所有,但其中包括終止它的令牌。這不是語法所需要的:它需要匹配所有,直到終止符,不包括。
有沒有辦法做我想要的?
這只是移動問題。這也使得解析器需要處理更多的數據,然後當CONTENT只是一堆組合字符。 我沒有在使用TokenStreamRewriter的過程中,但這幾乎沒有記錄。並不像我預期的那樣工作。 –