`
我要阳光
  • 浏览: 60244 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

antlr匹配全文的问题

阅读更多
  最近因为要写一个解释器,所以研究了一下大名鼎鼎的antlr,中文的资料比较少,大多要自己看官网的文档和一些别人写的代码。
  其中遇到了一个问题,就是用anltr语法来识别时候,只是默认匹配最大的token流如:
prog: INT ;
这是一个识别INT的语法,但是如果我们输入1aaa2ccc3的话,antlr只会匹配到 1,而后面的如果是合法token它将不会报错,直接忽略的后面的内容。
  解决办法是
prog: INT EOF ;
EOF是结束符,无论你的字符串是什么,它都会在最后帮你加上这个字符,这样antlr识别到这个字符就知道你的字符串结束了,所以如果在语法后面加上这个,就代表,要匹配全文。
1
2
分享到:
评论
2 楼 我要阳光 2011-10-24  
comsci 写道
hi,哥们,我这里有一份以前做过的ANTLR的语法和词法文件包,欢迎下载并指教
http://download.csdn.net/detail/comsci/3549915

互相学习啊 呵呵
1 楼 comsci 2011-10-18  
hi,哥们,我这里有一份以前做过的ANTLR的语法和词法文件包,欢迎下载并指教
http://download.csdn.net/detail/comsci/3549915

相关推荐

    The Definitive ANTLR 4 Reference.pdf_antlr_

    2. **自动错误恢复**:ANTLR 4具有内置的错误恢复机制,当输入不匹配预期的语法时,它可以尝试恢复解析,继续处理剩余输入,而不是立即停止。 3. **LL(*)和预测LL(*)解析**:ANTLR 4使用预测LL(*)算法,这是一个...

    ANTLR-v3.ppt

    ANTLR v3 对于语法错误和潜在问题给出了更精确的警告,比如无限左递归和非确定性决策,并提供最小的示例输入序列,帮助开发者快速定位问题。 10. **递归警告(Recursion Warnings)** 当解析器遇到可能的无限左...

    antlr开发eclipse插件

    你可以定义Xtext的DSL(领域特定语言)来匹配ANTLR的语法规则,然后Xtext将生成对应的编辑器,提供代码补全、语法高亮和错误提示等功能。 在压缩包文件中,你可能会找到一些示例ANTLR语法文件、Eclipse插件安装指南...

    cpdetector antlr chardet jar包

    在IT行业中,处理文本数据时,正确的字符编码识别至关重要。`cpdetector`, `antlr`, ...正确理解并使用这些工具,可以帮助开发者有效地处理各种编码问题,避免因编码不匹配导致的乱码现象,提高软件的兼容性和稳定性。

    antlr4入门例子

    如果输入匹配规则,解析器就会成功,否则会产生错误。 4. **运行示例**:在"hello-antlr4"目录下,可能有一个简单的Java或Python程序,用来驱动ANTLR4生成的解析器和词法分析器。这个程序会读取输入(比如标准输入...

    Antlr教程文法分析器

    Parser 规则 `startRule` 匹配名为 NAME 的词法单元,并在匹配成功时打印出其文本。Lexer 规则定义了识别 NAME 和 NEWLINE 的方式。 3. **生成 Java 类**: - 使用 Antlr 工具,如 `antlr Tool t.g` 命令,可以将...

    antlr中文文档

    - **符号词汇表**:深入讨论了ANTLR如何管理和匹配不同的符号类型。 - **错误处理及恢复**:提供了错误处理的策略和技术。 - **运行模式**:针对不同的编程语言(如Java、C++、C#等)介绍了ANTLR的运行模式。 - **...

    antlr-runtime-3.1.2.jar.zip

    2. **Lexer**: 它从输入源中提取出一个个的词法单元(tokens),这些词法单元由语法规则定义的模式匹配生成。 3. **Tree walkers**: 解析后的语法树可以通过树遍历器进行处理,执行高级的抽象语法树操作,如代码生成...

    ANTLRV3.0 探索(描述ANTLR3.0的应用开发流程)

    `PLUS`和`INT`是自定义的token,`PLUS`匹配字符'+',而`INT`匹配一个或多个数字字符。 编译ANTLR语法文件后,ANTLR会生成相应的Java源代码,包括词法分析器(Lexer)和语法分析器(Parser)。词法分析器负责将输入...

    ANTLR指南(v3.0).pdf

    ### ANTLR指南(v3.0)知识点梳理 #### 一、ANTLR简介 - **定义**: ANTLR(Another Tool for Language Recognition)是一种强大的语言工具框架,能够根据给定的文法自动生成语法分析器(识别器、编译器或翻译器)。 ...

    antlr4读书笔记七八章

    ANTLR提供的`ParseTreeListener`接口允许我们在规则匹配时触发自定义的行为。具体来说,我们可以定义一个监听器类,实现相应的进入和退出规则的方法,在这些方法中编写具体的业务逻辑。 例如,对于属性文件处理应用...

    Antlr入门详细教程

    - Lexer部分定义了各种Token类型,如示例中的`NAME`和`NEWLINE`,每个类型后面跟着匹配规则。 - Parser部分则定义了解析规则,包括起始规则和具体的操作。例如,`startRule`是一个起始规则,`n:NAME`是一个规则...

    The Definitive ANTLR 4 Reference

    ANTLR的第四个版本(ANTLRv4)相较于早期版本引入了许多改进,包括对语法的重新设计,改善了模式匹配能力和性能优化等。ANTLRv4的语法更简洁,易于理解和维护,并且生成的解析器运行速度更快,内存消耗也更小。 ###...

    java识别文件编码cpdetector_1.0.10.jar,chardet.jar,antlr-2.7.7.jar

    `cpdetector_1.0.10.jar`、`chardet.jar`和`antlr-2.7.7.jar`这三款Java库专门用于解决文件编码检测的问题。 `cpdetector_1.0.10.jar`是CodePageDetector项目的一个版本,它提供了一种方便的方式来识别文件或流的...

    ANTLR指南(v3.0)

    VAR和INT定义了变量和整数,STRING用于匹配字符串,WS则用于跳过空白字符。 ANTLRWorks是ANTLR的一个集成开发环境,提供图形界面支持,方便编写、调试文法,以及查看生成的语法树。通过ANTLRWorks,初学者可以更...

    ANTLR中文手册

    Leer类分析中,按照类型名:(匹配的具体规则)的形式构成,用于分隔字节流。Parser类分析中,按照起始规则名:规则实例名:类型名或规则名 {Java语句……;}的形式构成,用于执行 Java 语句。 三、生成Java类 要...

    antlr 生成C++描述的分析程序

    ### ANTLR 生成 C++ 描述的分析程序 #### ANTLR 概述 ANTLR(Another Tool for Language Recognition)是一种...对于想要深入了解 ANTLR 或者尝试使用它来解决实际问题的开发者来说,上述步骤提供了一个良好的起点。

Global site tag (gtag.js) - Google Analytics