nandgame中的Code generation(代码生成)

2024-04-11 02:36

本文主要是介绍nandgame中的Code generation(代码生成),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目说明:

代码生成为语言的语法规则定义代码生成,以支持加法和减法。
您可以使用在前面级别中定义的堆栈操作(如ADD和SUB)。代码生成模板通常需要包含规则中其他符号的代码。
这些可以通过方括号中的符号名称插入。例如,规则:Expression → Expression + Number可以有以下代码模板:[Expression]
PUSH_VALUE [Number]
ADD像[Number]这样的标记名称将被实际标记值替换。
像[Expression]这样的非终端将被该规则的模板替换
(以及递归地进行下去)。

Syntax rules 语法规则

指定用于语法节点生成的汇编代码。
代码可以包含汇编指令或宏指令,
并且可以嵌入规则中其他符号生成的代码。
通过用方括号括起名称来插入符号的代码,例如[Expression]

结果如下:
在这里插入图片描述
以上是最少的符号识别范围,
其中第一个[ ]+ 是指任意个空格都忽略
第二个[0-9]+是多个数字形成Number
只有前面两个是pattern模式匹配,与正则表达式语法一致。
后面的四个,+ - ( ) 是精确匹配,都是字符(literal)
在这里插入图片描述
上图是Syntax rules 语法规则的答案,
需要注意的是,右边黑色框内的asm内容也要手填,前面的只是示例,后面加的,不会自己生成asm
这部分的意思是,左边的语法规则,转换为右边的asm。

错误时,提示右手边(on the right-hand side)的内容,不是指箭头的右手边,而是指黑色部分(整个语法表达式的右手边)。

这篇关于nandgame中的Code generation(代码生成)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892848

相关文章

Retrieval-Augmented Generation for Large Language Models A Survey

Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 文章目录 Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 Abstract背景介绍 RAG概述原始RAG先进RAG预检索过程后检索过程 模块化RAGMo

VS Code SSH 远程连接服务器及坑点解决

背景 Linux服务器重装了一下,IP没有变化,结果VS Code再重连的时候就各种问题,导致把整个流程全部走了一遍,留个经验帖以备查看 SSH 首先确保Windows安装了ssh,通过cmd下ssh命令查看是否安装了。 没安装,跳转安装Windows下的ssh 对应的,也需要Linux安装ssh,本文是Ubuntu系统,使用以下命令安装: sudo apt updatesudo

Google Code Jam 2014(附官方题解)

2014年Google编程挑战赛 Problem A. Magic Trick Confused? Read the quick-start guide. Small input 6 points You have solved this input set. Note: To advance to the next rounds, you will need to s

代码生成技术技术-janino

文章目录 背景简单例子flink 例子 背景 代码生成技术适合在需要动态代码编译的场景中使用。比如大数据计算场景下,经常会要把flink sql 转成实际的执行计划 简单例子 代码是一个string 类型,直接用janino 编译后,就可以得到加载到jvm里的class 类 import org.codehaus.janino.SimpleCompiler;public

使用MyBatis Generator自动代码生成器简化Java持久层开发

在Web开发中,数据访问层(DAO层)的编码工作往往重复且繁琐,尤其是在处理数据库表与Java对象之间的映射时。MyBatis Generator是一款强大的代码生成工具,它能自动生成DAO接口、Mapper XML文件和实体类,极大地提升了开发效率。本文将详细介绍如何在Maven项目中集成MyBatis Generator,并通过一个示例演示其配置过程。 一、POM.xml中添加MyBatis

在Mac OS上使用Visual Studio Code创建C++ Qt的Hello World应用

引言 Qt是一个跨平台的应用程序和用户界面框架,而Visual Studio Code是一个功能强大的编辑器,两者结合可以极大地提升开发效率。本文将指导你在Mac OS上使用Visual Studio Code创建一个简单的Qt 'Hello World'窗口应用。 环境准备 确保你的MacBook OS运行最新的操作系统。安装Homebrew,Mac OS的包管理器。通过Homebrew安装

【C/C++】Code Style

消除重复 PS:机能一次,使用多次 // .hvirtual bool hasFormat(const QString &mimetype) const;//.cppbool QMimeData::hasFormat(const QString &mimeType) const{return formats().contains(mimeType);}bool QMimeData::h

Query failed with error code 96 and error message 'Executor error during find command: OperationFail

Query failed with error code 96 and error message 'Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smal

gbase8s之Encoding or code set not supported

如图发生以下错误: 解决办法:在url里加上ifx_use_strenc=true 就可以了 参数解释:

AIGC-CVPR2024best paper-Rich Human Feedback for Text-to-Image Generation-论文精读

Rich Human Feedback for Text-to-Image Generation斩获CVPR2024最佳论文!受大模型中的RLHF技术启发,团队用人类反馈来改进Stable Diffusion等文生图模型。这项研究来自UCSD、谷歌等。 在本文中,作者通过标记不可信或与文本不对齐的图像区域,以及注释文本提示中的哪些单词在图像上被歪曲或丢失来丰富反馈信号。 在 18K 生成图像 (R