首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将一种语言的语法(用ANTLR编写)转换为形式语言/数学符号

将一种语言的语法(用ANTLR编写)转换为形式语言/数学符号
EN

Stack Overflow用户
提问于 2013-04-13 16:42:05
回答 1查看 404关注 0票数 1

在我目前的项目中,我的老板分配了一项工作,将领域特定语言的语法(用ANTLR编写)表达成正式的语言/符号。例如,下面是语法的一小段代码片段。

代码语言:javascript
运行
AI代码解释
复制
     vocabSpec : 'resources' ':' resources_def ;   // Resource definition 

     resources_def :
          'sensors' ':'   (sensor_def)+   // Sensor definition
          'actuators' ':' (actuator_def)+  // Actuator definition       
         ;

     sensor_def:
        CAPITALIZED_ID  
        (sensorMeasurement_def ';')* ;

      sensorMeasurement_def : 'generate' lc_id ':'  CAPITALIZED_ID ;

    // Actuator definition : Actuator name, actions and its parameters 

      actuator_def: CAPITALIZED_ID  (action_def ';')* ;

      action_def: 'action' CAPITALIZED_ID '(' (parameter_def)? ')'  ;

      parameter_def :  lc_id ':'  CAPITALIZED_ID (',' parameter_def )?  ;

      lc_id: ID ;

      ID  : 'a'..'z'  ('a'..'z' | 'A'..'Z' )* ;

      CAPITALIZED_ID: 'A'..'Z' ('a'..'z' | 'A'..'Z' )*;

据我所知,任何语言的ANTLR语法本身都是一种形式规范。我不知道--我怎么才能指定这个语法是正式的。你能给我一些将上述语法写成形式规格说明/数学符号的建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-13 17:23:10

是的,ANTLR语法是一个正式的系统。基于这一点,你可以板着脸宣布胜利。

他可能想要的不是ANTLR语法。而且,理所当然地,ANTLR语法中用于构建树的注释,等等,就像各种lookahead一样,使问题变得混乱。因此,在您的情况下,我会删除所有注释,并可能将语法重新转换为IEEE EBNF (参见http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form)。你可以把他指向那个网页,并宣称你有一个“纯上下文无关文法”。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15990221

复制
相关文章
为什么HTTPS比HTTP更安全?
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
coder_koala
2019/07/30
4290
为什么HTTPS比HTTP更安全?
为什么 classmethod 比 staticmethod 更受宠?
我们知道,classmethod 和 staticmethod 都可以作为函数的装饰器,都可用于不涉及类的成员变量的方法,但是你查一下 Python 标准库就会知道 classmethod 使用的次数(1052)要远远多于 staticmethod(539),这是为什么呢?
somenzz
2021/12/27
5910
为什么 classmethod 比 staticmethod 更受宠?
为什么 https 比 http 更安全?
在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。比较安全的方法是将通信内容加密在发送给对方。加密方法有两种,对称加密和非对称加密。
杰哥的IT之旅
2020/06/18
6350
为什么 https 比 http 更安全?
为什么HTTPS比HTTP更安全?
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
前端迷
2019/08/31
4680
为什么HTTPS比HTTP更安全?
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
Nealyang
2019/09/29
7840
为什么HTTPS比HTTP更安全?
为什么HTTPS比HTTP更安全?
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
心莱科技雪雁
2019/06/05
4480
为什么HTTPS比HTTP更安全?
前缀、中缀、后缀表达式
转至: 前缀、中缀、后缀表达式 它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀
Christal_R
2017/12/25
1.1K0
前缀、中缀、后缀表达式
在函数式编程语言中,为了表示方便,出现了一些新的语法格式。所谓前缀、中缀、后缀表达式,它们之间的区别在于运算符相对与操作数的位置不同,为了说明它们的概念,首先来看一下中缀表达式。 所谓中缀表达式,就是将函数名放到两个操作数中间的表达式,其中,左侧的操作数代表函数对象或值,右侧的操作数代表函数的参数值。例如: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式 前缀表达式 前缀表达式又称为前缀记法、波兰式,主要用于表示运算符位于操作数
xiangzhihong
2018/02/08
1.1K0
前缀、中缀、后缀表达式
前缀、中缀、后缀表达式,它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。对计算机来说中缀表达式是很复杂的,因此计算表达式的值时,通常需要先将中缀表达式转换为前缀或后缀表达式,然后再进行求值。对计算机来说,计算前缀或后缀表达式的值非常简单。 举例: (3 + 4) × 5 - 6  中缀表达式 - × + 3 4 5 6  前缀表达式 3 4 + 5 × 6 -  后缀表达式 前缀表达式的求值: 从右至左扫描表达式,遇到数字时,将数字压入堆栈,
yawn
2018/03/14
8560
为什么 Nginx 比 Apache 更牛叉?
Nginx才短短几年,就拿下了Web服务器大壁江山,众所周知,Nginx在处理大并发静态请求方面,效率明显高于Httpd,甚至能轻松解决C10K问题。
Java技术栈
2023/02/27
4670
为什么 Nginx 比 Apache 更牛叉?
前缀、中缀、后缀表达式
它们都是对表达式的记法,因此也被称为前缀记法、中缀记法和后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。 举例: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式 中缀表达式(中缀记法) 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式,但对计算
_gongluck
2018/03/08
1.3K0
如何添加前缀和后缀?
例如:如果是数字100,我们需要变成为"自定义100自定义",那我们需要怎么样处理呢?
逍遥之
2020/03/23
1.8K0
字典树和前缀树_前缀树和后缀树
常关注本blog的读者朋友想必看过此篇文章:从B树、B+树、B*树谈到R 树,这次,咱们来讲另外两种树:Tire树与后缀树。不过,在此之前,先来看两个问题。 第一个问题: 一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。
全栈程序员站长
2022/10/04
1.4K0
字典树和前缀树_前缀树和后缀树
前缀中缀后缀表达式
<操作数><操作符><操作数> 就像我们平时用到的大部分计算表达式都是中缀 比如 1+1 3*2 等等 中缀表达式虽然很方便人使用,但是对机器却不太友好 比如我要计算(1+1)*3+2 机器将怎样区分操作符的优先级,机器不是人,机器是很傻的,所以我们要提供一种新的算法,让机器无脑就可以算。 这时候就要引出 后缀表达式
用户7272142
2023/10/11
2200
【答疑解惑】++前缀和后缀的区别
我的解答: 这个知识点在C、C++和Java中都是一样的,++前缀就进行自增然后再用自增后的值,++后缀则是先用这个值,然后再进行自增。 上面的题目是一个很好的面试题,网友们还是好好看一下,如果是让输
程序员互动联盟
2018/03/14
8280
【答疑解惑】++前缀和后缀的区别
前缀、中缀、后缀表达式「建议收藏」
关键字:概念, 前缀表达式, 前缀记法, 中缀表达式, 中缀记法, 波兰式, 后缀表达式, 后缀记法, 逆波兰式
全栈程序员站长
2022/07/05
2K0
mybatis中去除多余的前缀或者后缀
转载自 https://blog.csdn.net/qq_33315102/article/details/80253023
allsmallpig
2021/02/25
9270
为什么插入排序比冒泡排序更受欢迎?
插入排序和冒泡排序的时间复杂度相同,都是 O(n2),在实际的软件开发里,为什么我们更倾向于使用插入排序算法而不是冒泡排序算法呢?
大猫的Java笔记
2020/09/30
8820
为什么前后端分离了,你比从前更痛苦?
前后端分离早已经不是新闻,当真正分离之后确遇到了更多问题。要想解决现在的痛,就要知道痛的原因:
Jean
2018/10/18
6050
为什么前后端分离了,你比从前更痛苦?
HTML常用符号
大家好,又见面了,我是全栈君 HTML转义符号 HTML常用符号: 显示一个空格 &nbsp; &#160; < 小于 &lt; &#60; > 大于 &gt; &#62; & &符号
全栈程序员站长
2022/07/15
3.2K0

相似问题

localStorage值不会自动更新

30

用AlpineJS实现数据采集

12

localStorage值不会自动更新

25

如何显示localStorage数据

28

如何重用AlpineJs数据?

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文