我对JFlex和JSyntaxPane相当陌生,尽管我已经设法将lexer for XPath组合在一起。
我发现自己遇到的问题是我正在开发一个项目,该项目支持具有一些专有功能的XPath子集。讨厌我知道。
如果这是一个常规的Java问题,我会转向继承,但似乎不可能通过让一个词法分析器扩展先前生成的继承来实现继承。
e.g
import jsyntaxpane.Token;
import jsyntaxpane.TokenType;
%%
%public
%class ProprietaryLexer
%extends XPathLexer
%unicode
%char
%type Token
这似乎会导致一大堆错误,告诉我无法扩展一些最终方法。这是JSyntaxpane中DefaultJFlexLexer特有的问题还是我做错了? 有没有人处于类似的情况,并找到了一种方法来在一堆词法分析器中实现某种特殊的继承?
答案 0 :(得分:2)
JFlex生成了几个最终方法,因此产生了错误。我可以想到两种可能的解决方法:
XPathLexer
复制到ProprietaryLexer
并根据需要进行扩展。如果JFlex有一个%inherit
命令,那肯定会很好。