gpt4 book ai didi

java - JFlex 中可以继承吗?

转载 作者:行者123 更新时间:2023-12-02 08:38:29 26 4
gpt4 key购买 nike

我对 JFlex 和 JSyntaxPane 相当陌生,尽管我已经成功地将 lexer for XPath 组合在一起。 .

我发现自己遇到的问题是我正在开发一个项目,该项目支持具有一些专有功能的 XPath 子集。我知道这很恶心。

如果这是一个常规的 Java 问题,我会转向继承,但似乎不可能通过让一个词法分析器扩展先前生成的词法分析器来实现继承。

例如

import jsyntaxpane.Token;
import jsyntaxpane.TokenType;

%%

%public
%class ProprietaryLexer
%extends XPathLexer
%unicode
%char
%type Token

这似乎会导致大量错误,告诉我无法扩展某些 final方法。这是 JSyntaxpane 中的 DefaultJFlexLexer 特有的问题还是我只是做错了?有没有人遇到过类似的情况,并找到了一种方法来在一堆词法分析器中实现某种临时继承?

最佳答案

JFlex 生成几个 final方法,因此会出现错误。我可以想到两种可能的解决方法:

  1. 只需将规则从 XPathLexer 复制到 ProprietaryLexer 并根据需要进行扩展即可。
  2. (危险)修改框架文件以不包含 final方法,然后按照您的操作进行。我从未尝试过这样做,所以我不能保证它能够编译。

不过,如果 JFlex 有 %inherit 命令,那就太好了。

关于java - JFlex 中可以继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com