【Antlr】Antlr 孤岛语法:处理相同文件中的不同格式

40 篇文章 478 订阅 ¥29.90 ¥99.00

在这里插入图片描述

1.概述

ANTLR有三个与词法符号有关非常棒的特性,值得付诸笔墨。首先,我们将会尝试处理XML .这样的具有不同词法结构的输入格式
(标签内外不同)。其次,我们将会学习通过修改输入的词法符号流,在Java类中插入一个字段的方法。它将会展示,如何以最低的代价来生成和输入内容相似的输出。最后,我们将会看到ANTLR语法分析器如何忽略空白字符和注释,同时不丢弃它们。

2.孤岛语法:处理相同文件中的不同格式

迄今为止,我们看到的样例输入文件都只包含一种语言,但是事实上,有很多常见的文件格式包含多重语言。

例如,Java文档注释中的@author标签等内容使用的是一种特殊的微型语言;在注释之外的-切内容都是Java代码。类似StringTemplatet4和Django!2l的模板引擎也存在相似的问题。它们必须将模板语言表达式之外的文本按照不同的方式进行处理。这种情况通常称为孤岛语法。

ANTLR提供了一个众所周知的词法分析器特性,称为词法分析模式(lexical mode),使我们能够方便地处理混杂着不同格式数据的文件。它的基本思想是,当词法分析器看到一-些特殊的“哨兵”字符序列时,执行不同模式的切换

XML是个很好的例子。一个XML解析器将除了标签和

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值