编译原理中的算符文法,怎样才能用java代码实现求firstvt集和lastvt集,急急急

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理中的算符文法,怎样才能用java代码实现求firstvt集和lastvt集,急急急相关的知识,希望对你有一定的参考价值。

参考技术A 1、FIRSTVT(T)=FIRSTVT(T*F)=*;
2、FIRSTVT(T)=FIRSTVT(F)
(1)FIRSTVT(F)=FIRSTVT((E))=(;
(2)FIRSTVT(F)=FIRSTVT(id)=id;
如此,FIRSTVT(T)=*,(,id。追问

能具体实现一下吗

写一个方法,是利用递归吗?

比如求E—E+T|T
T—T*F|F
F—(E)|i得到E的firstvt是+*(i

谢谢了,搞半天了,求教

还有T的firstvt集,F的firstvt集

编译原理文法????啥表

。。。我不知道我之前整理的啥了,编译原理学完了忘了,这个在草稿里放了一年刚看到。。。

有用的自取,要是没用评论区说一下,我删了就

文法说明
<加法运算符>+|-
<乘法运算符>*|/
<关系运算符><|<=|>|>=|!=|==
<字母>_|a|...|z|A|...|Z
<数字>0|<非零数字>
<非零数字>1|...|9
<字符>‘<加法运算符>’|’<乘法运算符>’|’<字母>’|’<数字>’
<字符串>“{十进制编码为32,33,35-126的ASCII字符}”
<程序>[<常量说明>][<变量说明>]<有返回值函数定义>
<常量定义>int<标识符>=<整数>,<标识符>=<整数>
<无符号整数><非零数字>{<数字>}|0
<整数>[+|-]<无符号整数>
<小数部分><数字>{<数字>}
<实数><整数>.<小数部分>
<标识符><字母>{<字母>|<数字>}
<声明头部>int<标识符>
<变量说明><变量定义>;<变量定义>;
<变量定义><类型标识符>(<标识符>
<可枚举常量><整数>
<类型标识符>int
<有返回值函数定义><声明头部>’(‘<参数表>’)’ ‘‘<复合语句>’’
<无返回值函数定义>void<标识符>’(‘<参数表>’)‘’‘<复合语句>’’
<复合语句>[<常量说明>][<变量说明>]<语句列>
<参数表><参数>,<参数>
<参数><类型标识符><标识符>
<主函数>void main’(‘’)’ ‘‘<复合语句>’’
<表达式>[+|-]<项><加法运算符><项> //[+
<项><因子><乘法运算符><因子>
<因子><标识符>|<标识符>’[‘<表达式>’]'|<整数>
<语句><条件语句>|<循环语句>
<无返回值函数调用语句>;|<赋值语句>;|<读语句>;|<写语句>;|<空>;<情况语句>|<返回语句>;
<赋值语句><标识符>=<表达式>
<条件语句>if '(‘<条件>’)'<语句>[else<语句>]
<条件><表达式><关系运算符><表达式>|<表达式> //表达式为0条件为假,否则为真
<循环语句>while '(‘<条件>’)'<语句>
<情况语句>switch ‘(‘<表达式>’)’ ‘‘<情况表>[<缺省>]’’
<情况表><情况子语句><情况子语句>
<情况子语句>case<可枚举常量>:<语句>
<缺省>default : <语句>
<有返回值函数调用语句><标识符>’(‘<值参数表>’)’
<无返回值函数调用语句><标识符>’(‘<值参数表>’)’
<值参数表><表达式>,<表达式>|<空>
<语句列>{<语句>}
<读语句>scanf ‘(‘<标识符>,<标识符>’)’
<写语句>printf ‘(’ <字符串>,<表达式> ‘)’
<返回语句>return[‘(‘<表达式>’)’]

以上是关于编译原理中的算符文法,怎样才能用java代码实现求firstvt集和lastvt集,急急急的主要内容,如果未能解决你的问题,请参考以下文章

编译原理——算符优先分析文法(附源代码)

编译原理 文法题目

编译原理-LL1文法详细讲解

C++/编译原理语法分析:求解First集合

编译原理文法????啥表

编译原理实验:java实现语法分析器