zoukankan      html  css  js  c++  java
  • 一个完整的编译器前端-A.1 源语言

      这个语言的一个程序由一个块组成,该块中包含可选的声明和语句。语法符号basic表示基本类型。

    program –> block

    block   –> { decls stmts }

    decls   -> desls decl | ε

    decl    -> type id;

    type    -> type [num] | basic

    stmts   -> stmts stmt | ε

    把复制当做一个语句(而不是表达式中的运算符)可以简化翻译工作。

    stmt    -> loc=bool;

             | if(bool) stmt

             | if(bool) stmt else stmt

             | while(bool) stmt

             | do stmt while(bool);

             | break;

             | block

    loc    -> loc [bool] | id

    表达式的产生式处理了运算符的结合性和优先级。他们对每个优先级级别都使用了一个非终结符号,而非终结符号factor用来表示括号中的表达式,标识符,数组引用和常量。

    bool –> bool ||join | join

    join –> join && equality |equality

    equality –> equality == rel | equality != rel | rel

    rel   -> expr < expr | expr <= expr |expr >= expr | expr > expr | expr

    expr –> expr + term | expr - term | term

    term –> term * unary | term / unary | unary

    unary –> !unary | –unary | factor

    factor –> ( bool ) | loc | num | real | true | false

  • 相关阅读:
    azkaban使用--邮件发送配置
    azkaban使用--schedule定时任务
    azkaban使用--传入动态参数
    GET和POST区别
    微信小程序与java后台交互
    java中的锁分类
    对CAS机制的理解(二)
    对CAS机制的理解(一)
    Spring中Model、ModelMap及ModelAndView之间的区别
    MySQL命令行导入.sql文件遇到的问题
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/3524530.html
Copyright © 2011-2022 走看看