当前位置: 首页 > article >正文

【ANTLR】常见的几种编程语言表达模式

模式名描述示例
序列模式它是一个有限长度或者任意长度的序列,序列中的元素可以是词法符号或者子规则。序列模式的例了包括变量声明(类型后面紧跟着标识符)和整数序列范例实现1. xy..z表示× 后面跟着y.... z
2. '{' INT+ '}'表示Matlab的整数向量
带终止符的序列模式它是一个任意长的、可能为空的序列,该序列由一个词法符号分隔开,通常是分号或者换行符,其中的元素可以是词法符号或者子规则。这样的例子包括类°C语言带终止符的序列模式 的语句集合和一些用换行符来分隔的数据格式1. (statement ';’)* 表示Java的语句集合
2. (row 'In')*表示多行语句
带分隔符的序列模式它是一个任意长的、可能为空的序列,该序列由一个词法符号分隔开,通常是逗号、分号或是句号,其中的元索可以是词法符号或者子规则。这样的例子包括函数定义中的参数表、函数调用时传递的参数表、某些语句之间有分隔符却无终止符的,带分隔符的序列模式 编程语言",以及目录名1. expr ( ,’ expr)* //函数调用时传递的参数
2. ( expr (, expr)* )? 表示函数调用时传递的参数是可选的
3. /"? name ( /’ name)* 表示简化的目录名
4. stat (’.’ stat)* 表示 若干个SmallTalk 语句
选择模式它是一组备选分支的集合。这样的例子包括不同种类的类型、语句、表达式或者XML标签1. type : 'int' | 'float';
2. stat : ifstat | whilestat | 'return' expr ';';
3. tag : '<' Name attribute* '>' | '<' '/' Name '>';
词法符号依赖一个词法符号需要和一个或者多个后续词法符号匹配。这样的例子包括配对的圆括号、花括号、方括号和尖括号1. '(' expr ')' 是嵌套表达式
2. ID '[' expr ']'数组索引表达式
3. '{' stat* '}' 花括号包裹的多个语句
4. '<' ID (',' ID)* '>' 泛型申明
嵌套模式它是一种自相似的语言结构。这样的例子包括表达式、Java的内部类、嵌套的代码块以及嵌套的 Python 函数定义1. expr : '(' expr ')' | ID ;
2. classDef :iclass' ID {’(classDef |method|field) '}’;

参考:权威指南


http://www.kler.cn/a/319293.html

相关文章:

  • netmap.js:基于浏览器的网络发现工具
  • 【力扣热题100】[Java版] 刷题笔记-169. 多数元素
  • docker构建jdk11
  • vscode远程连接服务器并启用tmux挂载进程
  • 探索Python的HTTP利器:Requests库的神秘面纱
  • win11 新建一个批处理,双击查看本机的IP地址
  • 古代经典名方目录数据库-支持经典名方检索!
  • IMS注册流程中的基本路由寻址过程
  • 西部移动硬盘怎么恢复数据?4种详细且实用的方法
  • 腾讯邮箱上传附件卡、慢、无法上传问题处理
  • 详解机器学习经典模型(原理及应用)——逻辑回归
  • neo4j小白入门
  • 记录踩坑 uniapp 引入百度地图(微信小程序,H5,APP)
  • 研一上课计划2024/9/23有感
  • 高效编程的利器 Jupyter Notebook
  • Java Map类
  • 《AI办公类文档工具系列之三——ChatPDF》
  • 【java21】java21新特性之简单的Web服务器jwebserver
  • 主流卷积神经网络CNN总结
  • 网络安全知识:灾难恢复计划简介
  • 第一感觉有问题,但是没有提出来,要相信直觉。
  • Linux快速安装ClickHouse(附官方文档)
  • 【Vue】Pinia
  • 【AI创作组】Matlab中进行符号计算
  • HTML与JavaScript结合实现简易计算器
  • Leetcode面试经典150题-94.二叉树的中序遍历