antlr 解析 java method_在antlr4中精确解析n个参数

我正在使用Antlr4与python3运行时 . 在我尝试解析的语言中,有许多操作(大约50个)接受 OPNAME [ parameter1, parameter2, parameter3 ] 形式的固定数量的参数

我曾经有一个像这样的规则的语法:

statement: OP1 '[' NUM ']'

| OP2 '[' NUM ',' NUM ']'

| OP3 '[' NUM ',' NUM ',' NUM ']'

| OP2or3 (('[' NUM ',' NUM ']')|('[' NUM ',' NUM ',' NUM ']'))

;

但是,为了更加清晰,我决定制作一个完全接受 n 参数的子规则 parameter[n] . 因此,我的(完整示例)语法看起来像这样:

grammar test;

program: (statement? NEWLINE)* EOF;

statement: OP1 parameter[1]

| OP2 parameter[2]

| OP3 parameter[3]

| OP2or3 (parameter[2]|parameter[3])

;

parameter[n]

locals[i = 1]

: '[' NUM

( ',' NUM {$i += 1} )*

']'

{$i == $

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值