JFlex中是否可以继承?

时间:2009-02-16 15:51:51

标签: java parsing xpath jflex jsyntaxpane

我对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特有的问题还是我做错了? 有没有人处于类似的情况,并找到了一种方法来在一堆词法分析器中实现某种特殊的继承?

1 个答案:

答案 0 :(得分:2)

JFlex生成了几个最终方法,因此产生了错误。我可以想到两种可能的解决方法:

  1. 只需将规则从XPathLexer复制到ProprietaryLexer并根据需要进行扩展。
  2. (危险)将骨架文件修改为没有最终方法,然后按照您的操作继续操作。我从未尝试过这个,所以我不能保证它甚至会编译。
  3. 如果JFlex有一个%inherit命令,那肯定会很好。