ANTLR4(四) 基础设计语法

本文详细介绍了ANTLR4的基础设计语法,包括语言模式如序列、选择和嵌套,以及处理优先级、结合性和左递归的方法。ANTLR4自动处理词法符号依赖,并能消除直接左递归,但在处理间接左递归时仍有挑战。文章还总结了核心的词法规则,如匹配标识符、数字、字符串常量和注释。
摘要由CSDN通过智能技术生成

写在之前

对于ANTLR的.g4文件来说,它的格式一般如下:

//xx.g4
grammar xx

文法1:
文法2:
文法...


词法规则
词法1:
词法2...

注意的几点:

  1. 文件名和grammar关键字后跟的语法名应该一致。
  2. 文法规则和词法规则可以同时存在一个文件中,但文法以小写开头,词法以大写开头。
  3. 我们在构建一个语法文件时,一般是先考虑文法,再考虑词法。就像是我们造句,先会考虑句子的结构,再往里面填词。但是实际语法分析的过程是:输入流先经过词法分析器生成匹配的词法符号流,词法符号流经过语法分析器生成匹配的语法结构

语言模式

我们首先介绍之前的例子中已经接触到的4种语言模式:序列、选择、词法符号依赖、嵌套。

随后介绍ANTLR4如何处理优先级、左递归、结合性问题。

序列

在编程语言中,常常出现一列元素的指令,下面一个例子再经典不过:

  1. file文法规则中,我们采用了\n作为这条序列规则的终止符
  2. row文法规则中,我们采用了,作为这条序列规则的分隔符
  3. 这种 标识符 : ...; 的方式就是经典的文法序列。
  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值