首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JFlex扫描仪ArrayIndexOutOfBoundsException: 769

JFlex扫描仪ArrayIndexOutOfBoundsException: 769
EN

Stack Overflow用户
提问于 2018-08-18 13:38:26
回答 1查看 90关注 0票数 2

我正在尝试用JFlex创建一个扫描仪。我创建了我的.jflex文件,它可以编译所有的东西。问题是,当我试图证明它时,有时它会给我JFlex创建的.java类中的ArrayIndexOutOfBoundsException: 769的错误。

我也在使用Cup解析器生成器。我不知道这个问题是否与Cup分析部分有关,但这里是我如何调用我的分析器的。

代码语言:javascript
复制
    ScannerLexico lexico = new ScannerLexico(new BufferedReader(new StringReader( jTextPane1.getText())));
    ParserSintactico sintaxis = new ParserSintactico(lexico);

我不知道该怎么解决它。请帮帮我。

以下是我的代码的链接:

JFlex File "ScannerFranklin.jflex"

Java Class generated "ScannerLexico.java"

我在由JFlex创建的.java类中遇到问题的部分在next_token()函数中( java文件中的第899行)。

代码语言:javascript
复制
      int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
      if (zzNext == -1) break zzForAction;
      zzState = zzNext;

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-18 19:30:28

根据其文档,JFlex在遇到使用%7bit%8bit/%full编码选项的Unicode字符时会抛出ArrayIndexOutOfBounds异常。它建议始终使用%unicode选项,这是默认设置。

您正在使用%unicode选项,但也在使用%full。显然,当你有两个选项时,%full优先。因此,删除%full,错误就会消失。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51905624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档