编译原理EBNF To BNF

  1. EBNF To BNF

EBNF To BNF

  1. Ident 转变为非终结符ident,然后添加ident : TIDENTIFIER
  2. 'const' -> TCONST
  3. {E}-> X = | X E,例如:
    ConstDecl → 'const' BType ConstDef { ',' ConstDef } ';'
    转变为
    ConstDecl : TCONST BType ConstDef COMMAConstDefSemicolon
    COMMAConstDefSEMICOLON : 
     | COMMAConstDefSemicolon TCOMMA ConstDef TSEMICOLON
    
     其中COMMA为逗号,新增加的非终结符为*{}里面的终结符的简写字符大写*+*{}里面的非终结符*+*{}里面的终结符的简写字符大写*
    
  4. 'int' -> TYINT
  5. '=' -> TEQUAL
  6. [Blockitem] -> EXBlockitem : | EXBlockitem Blockitem
  7. 新增终结符break和continue为TBREAK和TCONTINUE
  8. Ident -> ident,在tiny里面在flex用的正则,而在SysY用的语义
  9. 增加IntConst,需要根据后面的语义增加非终结符的语法
  10. 新增 ‘!’ -> TEXCLAIM
  11. 新增 && -> TLOGAND
  12. 新增 || -> TLOGOR

欢迎在评论区中进行批评指正,转载请注明来源,如涉及侵权,请联系作者删除。

×

喜欢就点赞,疼爱就打赏