找别人做网站都需要注意啥,网站怎样注册,学生网站模板,软文营销模板题目说明#xff1a;
代码生成为语言的语法规则定义代码生成#xff0c;以支持加法和减法。
您可以使用在前面级别中定义的堆栈操作#xff08;如ADD和SUB#xff09;。代码生成模板通常需要包含规则中其他符号的代码。
这些可以通过方括号中的符号名称插入。例如#xf…题目说明
代码生成为语言的语法规则定义代码生成以支持加法和减法。
您可以使用在前面级别中定义的堆栈操作如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)的内容不是指箭头的右手边而是指黑色部分(整个语法表达式的右手边)。