nandgame中的Grammar(语法)

题目说明:

语法定义涉及数字、括号和运算符+-的表达式的语法。起始符号为Expression。一个表达式应该对应于以下之一:一个数字标记Expression + ExpressionExpression - Expression- Expression( Expression )    

level help

通过语法来描述高级语言的语法。语法是一组规则,其中每个规则命名语法的一部分,
并定义了它如何组成。例如,这是一个非常简单的语法,
用于允许两个数字相加,如“2 + 2”:Expression → Number + Number
Number和+是在标记定义阶段定义的标记。
此语法将允许任意两个数字的加法,
但不会允许多次加法,如2 + 3 + 4。
为了支持任意多次加法,我们使用引用自身的规则:Program → Expression 
Expression → Expression + Number 
Expression → Number
此语法将允许无限次加法,
因为+左边的Expression本身可以是加法。**术语**
语法中使用的术语称为符号。
规则定义了一个符号(箭头左侧)
由一个或多个其他符号(箭头右侧)组成。
箭头右侧的符号要么是通过标记规范(在前一步中定义)
定义的标记,
要么是由同一语法中的规则定义的符号本身。代表标记的符号(如Number和+)称为终结符,
像Program和Expression这样由语法中
其他规则定义的符号称为非终结符。用作非终结符号的名称是任意的 - 您可以使用对您有意义的名称。
唯一的条件是必须有一个“起始符号”称为Program,
它表示整个程序。**解析算法**
在这个级别上,我们不编写实际的解析器,
该解析器根据语法规则处理源文本并生成语法树。
解析器算法是计算机科学的一个整个分支,
超出了本游戏的范围。
也就是说,最简单的解析器形式,
递归下降解析器易于编写,并且对于大多数目的而言已经足够了。
如果您想探索编写自己的解析器,这是一个很好的起点。本游戏使用Earley解析器,它不是最快的解析器,
但它灵活且易于编写语法。
Grammar 语法规则
Specify the rules for parsing the token into a syntax tree.
On the left is the name of a production. 
On the right is one or more names of productions or tokens
指定将标记解析为语法树的规则。
左侧是产生式的名称。
右侧是一个或多个产生式或标记的名称。
The syntax tree of the source code parsed by the grammar.
源代码由语法解析生成的语法树。

最终题目期望的答案如下:
在这里插入图片描述
在这里插入图片描述
需要注意的是:
Expression 与 符号 之间,记得加空格。

根据错误提示:
Error when parsing ‘8 + (-4)’. Parse error: Unexpected ‘(’
把 Expression + ( - Expression ) 穷举出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/805777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SMT用料全检抽检

下载地址百度网盘: https://pan.baidu.com/s/1kDn_l8P6ReC4Lj5tgt-v4w?pwd5y41 提取码:5y41 1、扫描输入车间线体 2、根据线体获取在线订单 3、选择(全检|抽检|换接新料)开始 4、根据提示扫描站位和料号核对 5、核对成功再扫描核对下一组

【复现】用友NC-Cloud文件上传漏洞_70

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 用友NC Cloud大型企业数字化平台,深度应用新一代数字智能技术,完全基于云原生架构,打造开放、…

【石上星光】context,go的上下文存储并发控制之道

目录 1 引言2 What?3 How? 3.1 用法一、上下文数据存储3.2 用法二、并发控制 3.2.1 场景1 主动取消3.2.2 场景2 超时取消 3.3 用法三、创建一个空Context(emptyCtx) 4 Why? 4.1 go中的上下文思想 4.1.1 上下文是什么…

python爬虫———激发学习兴趣的案列(第十三天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

渲染农场实时画面怎么设置?云渲染农场实时预览效果查看

许多用户在使用渲染农场服务时,常常难以找到查看实时渲染画面的功能。由于渲染是一个时间消耗较大的任务,如果最终结果与预期不符,可能会对整个工作流程产生负面影响。因此,渲染平台若能提供实时预览渲染进度和效果的功能&#xf…

代码随想录算法训练营第五十天 | 123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV

代码随想录算法训练营第五十天 | 123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV 123. 买卖股票的最佳时机 III题目解法 188. 买卖股票的最佳时机 IV题目解法 感悟 123. 买卖股票的最佳时机 III 题目 解法 题解链接 1. class Solution { public:int maxProfit(ve…

【汇编语言实战】求三个已知数最大值

C语言描述该程序流程&#xff1a; #include <stdio.h> int main() {int a10,b20,c15;//scanf("%d %d",&a,&b);if(a>b){if(a>c){printf("%d",c);}else{printf("%d",a);}}else{if(b>c){printf("%d",b);}else{pr…

【C++】掌握C++函数重载和引用开启代码优化的新篇章

欢迎来CILMY23的博客 本篇主题为 掌握C函数重载和引用开启代码优化的新篇章 个人主页&#xff1a;CILMY23-CSDN博客 个人专栏&#xff1a; | | | CILMY23-CSDN博客 上一篇博客&#xff1a;第一个C结构&#xff0c;C关键字&#xff0c;命名空间&#xff0c;C的输入输出&…

IPEX-LLM(原名BigDL-LLM)环境配置

IPEX-LLM 是一个为Intel XPU (包括CPU和GPU) 打造的轻量级大语言模型加速库&#xff0c;在Intel平台上具有广泛的模型支持、最低的延迟和最小的内存占用。 您可以使用 IPEX-LLM 运行任何 PyTorch 模型&#xff08;例如 HuggingFace transformers 模型&#xff09;。在运行过程中…

《C++程序设计》阅读笔记【7-堆和拷贝构造函数】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;《C程序设计》阅读笔记 本文对应的PDF源文件请关注微信公众号程序员刘同学&#xff0c;回复C程序设计获取下载链接。 1 堆与拷贝构造函数1.1 概述1.2 分配堆对象1.3 拷贝构造函数1.3.1 默…

301永久重定向与302临时重定向的正确运用

我们前不久有Hostease的客户的网站进行了域名更改。客户想了解域名更改后会有哪些后果和影响。一般网站域名更换后会遇到旧页面失效问题。为了优化用户体验和维护搜索引擎优化(SEO)&#xff0c;我们需要正确地使用301永久重定向和302临时重定向。这两种重定向方式各有其特点和适…

本地linux怎样先亚马逊云服务器上传文件

使用亚马逊云服务器的密钥&#xff0c;并通过srp命令&#xff0c; 连接上传&#xff1a; scp -i <密钥文件路径> <本地文件路径> <远程主机用户名><远程主机地址>:<目标路径> scp -i assig2.pem data.txt ubuntuec2-xx-xxx-xx-xx1.compute-x.…

langchain 使用本地通义千问

langchian 使用已经下载到本地的模型&#xff0c;我们使用通义千问 显存&#xff1a;24G 模型&#xff1a;qwen1.5-7B-Chat&#xff0c;qwen-7B-Chat 先使用 qwen-7B-Chat&#xff0c;会报错用不了&#xff1a; 看了下是不支持这中模型&#xff0c;但看列表中有一个 Qwen 字样…

【Linux】初识Linux,虚拟机安装Linux系统,配置网卡

前言 VMware软件&#xff1a;首先&#xff0c;确保您已经下载了VMware Workstation软件并安装在电脑上。VMware Workstation是一款功能强大的虚拟化软件&#xff0c;它允许在单一物理机上运行多个操作系统。 Linux镜像文件&#xff1a;需要准备一个Linux操作系统的镜像文件。…

python使用uiautomator2操作雷电模拟器9找图

接上篇文章python使用uiautomator2操作雷电模拟器9并遇到解决adb 连接emulator-5554 unauthorized问题-CSDN博客 搭建好uiautomator2后&#xff0c;主要就是使用了。 本文就利用uiautomator2的截屏、模拟点击和aircv的找图功能&#xff0c;实现对指定寻找的图片的位置的点击。…

java程序生成exe文件启动时,在没有java环境计算机运行

1.idea项目配置工件 2. 开始构建java程序成jar包 3. 生成exe启动程序

结构型模式--3.组合模式【草帽大船团】

1. 好大一棵树 路飞在德雷斯罗萨打败多弗朗明哥之后&#xff0c;一些被路飞解救的海贼团自愿加入路飞麾下&#xff0c;自此组成了草帽大船团&#xff0c;旗下有7为船长&#xff0c;分别是&#xff1a; 俊美海贼团75人 巴托俱乐部56人 八宝水军1000人 艾迪欧海贼团4人 咚塔塔海…

交换机的基本原理与配置_实验案例一:交换机的初始配置

1、实验环境 实验用具包括一台Cisco交换机&#xff0c;一台PC&#xff0c;一根Console 线缆。 2、需求描述 如图5.17所示&#xff0c;实验案例一的配置需求如下。 通过PC连接并配置一台Cisco交换机。在交换机的各个配置模式之间切换。将交换机主机的名称改为BDON 3、推荐步…

知网参考文献引用格式转latex中BibTex-Python操作

处理思路 参考 处理步骤&#xff1a; &#xff08;单条处理&#xff1a;&#xff09; 1、选知网NoteExpress格式的2-7行复制信息 2、新建一个文本文件&#xff0c;命名为cite.txt&#xff0c;把知网所复制信息粘贴进来 &#xff08;txt文件保存编码ANSI可行&#xff09; 3、…

Double.toString()原理

转变过程 如图&#xff0c;假设将double类型能精确表示的数字落在数轴上&#xff0c;分别是double1、double2、double3。 这个时候&#xff0c;我们有十进制数字a&#xff0c;想要转变成double表示&#xff0c;这个时候得到的是double2&#xff0c;因为double2是距离这个十进制…