当前位置:  技术问答>java相关

救急!有做过解释程序的朋友请看看,进行语义分析时,如何设计文法的非终结符的属性!

    来源: 互联网  发布时间:2015-06-08

    本文导语:  我现在设计产生式的语义子程序,实在有点力不从心,我打算用属性文法,可是不知道该如何下手设计非终结符的属性,可否指点一二: s-> a s1 s1-> or a s1 | 空 a-> b a1 a1-> and b a1 | 空 b-> c b1 b1-> =c b1 | 空 c...

我现在设计产生式的语义子程序,实在有点力不从心,我打算用属性文法,可是不知道该如何下手设计非终结符的属性,可否指点一二:
s-> a s1
s1-> or a s1 | 空
a-> b a1
a1-> and b a1 | 空
b-> c b1
b1-> =c b1 | 空
c-> d c1
c1-> +d c1 | -d c1 | 空
d-> e d1
d1-> *e d1 | /e d1 | 空
e->-f | f
f->(s) | id

告诉我如何设计非终结符的属性,万分感谢!
不要让我看书,我已经看的头都大了!毕业设计的时间已经不多了!恩人们快来啊!

|
在吕映芝的《编译原理》上有一段是:

属性文法的翻译
简单赋值的是:

s->id = E {p = lookup(id.name);
               
           if p=nil then

             emit(p = E.place) 

             else error} 


在这里的
lookup(id.name)是在你的符号表里面查id的name是否存在。
emit(expression)是个用来在文件里面生成中间代码的函数。
expression 指表达式,如p=E.place.

|
http://www.codeguru.com/cpp_mfc/pascal.shtml
Mini Pascal Compiler

|

nowadays, people seldom do parser themselves. JavaCC. JLex. are easy to use.
But if your project is just focused on a parser, you probably cannot use a parser generator.

poor guy.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 救急救急!在线等!
  • steptodream 进来救急一下,多谢
  • 江湖救急:JBUILDER4.0的注册号和KEY!!多谢了!!!
  • 救急!!!!各位高手!
  • 请那位仁兄救急一下。tdataset的问题?
  • 救急
  • 请介绍几本UNIX入门的书,我救急用!谢谢!
  • 江湖救急,用过LINUX的都进来看看。
  • 救急!!!!!!我的电脑能不能装REDHAT 7.3 !!
  • 救急!启动时装载servlet!一定给分
  • 江湖救急:那位dx有dos种断大全一类的资料。
  • 有没有人用过magic linux ?救急!!!!
  • [请大佬救急]哪有redhat的nash源代码下载啊?
  • SHELL不能运行,大侠江湖救急!!
  • 救急!!linux驱动函数问题!!
  • 关于linux下的数据清除的相关资料~各位大虾江湖救急啊~~~
  • 救急:这个查询为什么老报错
  • 江湖救急---Ubuntu 10.04 开关机花屏
  • 江湖救急,谢谢
  • 救急!!如何将UTC时间转换为指定时区本地时间??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    论坛 iis7站长之家