簡體   English   中英

JFlex中可以繼承嗎?

[英]Is inheritance possible in JFlex?

我對JFlex和JSyntaxPane相當陌生,盡管我設法為XPath編寫了一個詞法分析器

我發現自己遇到的問題是,我正在開發一個項目,該項目支持具有一些專有功能的XPath的子集。 討厭,我知道。

如果這是一個常規的Java問題,我將轉向繼承,但是通過讓一個詞法分析器擴展先前生成的詞法分析器來實現繼承似乎是不可能的。

例如

import jsyntaxpane.Token;
import jsyntaxpane.TokenType;

%% 

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

這似乎會導致大量錯誤,告訴我無法擴展某些最終方法。 這是JSyntaxpane中DefaultJFlexLexer特有的問題,還是我做錯了? 有沒有人遇到過類似的情況,並且找到了在大量詞法分析器中實現某種即席繼承的方法?

JFlex生成了幾種最終方法,因此產生了錯誤。 我可以想到兩種可能的解決方法:

  1. 只需將規則從XPathLexer復制到ProprietaryLexer並根據需要擴展它們。
  2. (危險)將骨架文件修改為沒有最終方法,然后按照您的操作進行。 我從未嘗試過這樣做,所以我不能保證它甚至可以編譯。

但是,如果JFlex具有%inherit命令,那肯定會很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM