刚看完词法分析器这章,可还不明白输入与输出结果的具体形式

fertiland 2003-04-18 10:40:08
今天做了一个程序,打开三个文件,分别为输入,输出,关键字文件,
当然,还应该有常量表,标识符表等,但我不清楚有什么用,不知怎么用。
"input.txt"
void main(void)
{
if a11==11b
printf();
bye missing you!
}
"keyword.txt"
auto break case char const
continue default do double else
enum extern float for goto
if int long register return
short signed sizeof static struct
switch typedef union unsigned void
volatile while
"output.txt"
void 4(保留字,-)
main 4(标识符,-)
((右括号运算符,-)
void 4(保留字,-)
)(左括号运算符,-)
{(边界运算符,-)
if 2(保留字,-)
a11 3(标识符,-)
==(等于比较符,-)
11 2(常量,-)
b 1(标识符,-)
printf 6(标识符,-)
((右括号运算符,-)
)(左括号运算符,-)
;(逗号界符,-)
bye 3(标识符,-)
missing 7(标识符,-)
you 3(标识符,-)
! (error,-)
}(边界运算符,-)


以上输出结果,11b是错误,现还没分析出来,我自己认为这其中有些地方,比如表达式方面与语法分析有些不清,请大虾指点。
...全文
313 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoukun666 2003-04-27
  • 打赏
  • 举报
回复
源代码任何一本编译原理树上都有呀!
fertiland 2003-04-27
  • 打赏
  • 举报
回复
当然,我做的是词法分析器。
谁有相关的源程序,借鉴一下。
fertiland 2003-04-26
  • 打赏
  • 举报
回复
我的问题就是:像上面的结果就是记法分析的结果吗?
omrhal 2003-04-26
  • 打赏
  • 举报
回复
你做的是词法分析,不是语法分析。语法分析有好多种方法,调用子程序,ll0,lr0什么的,编译原理上都有的啊。
fertiland 2003-04-26
  • 打赏
  • 举报
回复
先解决问题好吗?再者不见我只有一颗星吗?有心无力
fertiland 2003-04-24
  • 打赏
  • 举报
回复
input.txt
main()
{
int i,j;
float k;

i=10;
j=i+10;
k=90.8;
if k>10
j=10;
else
i=0;
printf("%s");

}

/**********************************************************/
output.txt
位置 符号类型 识别符 ) 长度
1 (标识符 ,main ) 4
2 (右括号运算符 ,( ) 1
3 (左括号运算符 ,) ) 1
4 (边界运算符 ,{ ) 1
5 (保留字 ,int ) 3
6 (标识符 ,i ) 1
7 (逗号界符 ,, ) 1
8 (标识符 ,j ) 1
9 (分号界符 ,; ) 1
10 (保留字 ,float ) 5
11 (标识符 ,k ) 1
12 (分号界符 ,; ) 1
13 (标识符 ,i ) 1
14 (赋值运算符 ,= ) 1
15 (常数 ,10 ) 2
16 (分号界符 ,; ) 1
17 (标识符 ,j ) 1
18 (赋值运算符 ,= ) 1
19 (标识符 ,i ) 1
20 (加运算符 ,+ ) 1
21 (常数 ,10 ) 2
22 (分号界符 ,; ) 1
23 (标识符 ,k ) 1
24 (赋值运算符 ,= ) 1
25 (实数 ,90.8 ) 4
26 (分号界符 ,; ) 1
27 (保留字 ,if ) 2
28 (标识符 ,k ) 1
29 (大于比较符 ,> ) 1
30 (常数 ,10 ) 2
31 (标识符 ,j ) 1
32 (赋值运算符 ,= ) 1
33 (常数 ,10 ) 2
34 (分号界符 ,; ) 1
35 (保留字 ,else ) 4
36 (标识符 ,i ) 1
37 (赋值运算符 ,= ) 1
38 (常数 ,0 ) 1
39 (分号界符 ,; ) 1
40 (标识符 ,printf ) 6
41 (右括号运算符 ,( ) 1
42 (字符串 , "%s") 4
43 (左括号运算符 ,) ) 1
44 (分号界符 ,; ) 1
45 (边界运算符 ,} ) 1
怎么没人关心这个呀??????
大虾赐教吧
omrhal 2003-04-24
  • 打赏
  • 举报
回复
你想问什么?
内容概要:本文档聚焦于基于Peng-Robinson状态方程的化工热力学计算研究,系统介绍了利用Matlab代码实现纯组分及多组分系统的压缩因子(z因子)和逸度系数的计算方法,并进一步拓展至泡点压力与露点压力的数值求解。资源涵盖了从状态方程推导、非线性方程求根、相平衡条件判断到迭代算法实现的整技术路线,提供了可运行的Matlab程序代码,有助于深入理解实际工程中物性参数的计算原理与实现过程; 适合人群:具备化工热力学基础知识和一定Matlab编程能力的高校学生、科研人员及工程技术人员,尤其适合从事过程系统模拟、油气田开发、精馏设计及相关领域研究的专业人士; 使用场景及目标:① 掌握Peng-Robinson方程在真实气体物性计算中的应用;② 实现多组分混合体系的相平衡计算与泡/露点预测;③ 为Aspen Plus等商用流程模拟软件提供底层算法验证与教学参考;④ 支持科研论文复现、课程设计、毕业设计及工业过程优化中的热力学数据支撑需求; 阅读建议:建议读者结合经典化工热力学教材同步学习,重点理解立方型状态方程的根判别、迭代收敛策略与相平衡准则的数学表达,动手调试并运行所提供的Matlab代码以掌握算法细节,还可将其扩展应用于其他状态方程(如SRK、vdW)的对比分析研究。
内容概要:本文围绕列车-轨道-桥梁交互仿真研究,基于Matlab平台构建数值模型,系统分析列车运行过程中轨道与桥梁结构间的动态相互作用机制。研究涵盖多体动力学建模、耦合系统运动方程求解、边界条件设定及仿真结果可视化等关键环节,重点揭示高速行车条件下基础设施的振动传递规律与力学响应特征。该仿真方法可有效评估结构安全性、舒适性指标及疲劳寿命,为轨道交通工程的设计优化与运维管理提供理论支撑和技术路径。文中配套提供了整的Matlab代码实现方案及操作说明,便于用户复现、验证和拓展相关研究。; 适合人群:具备Matlab编程基础和结构动力学、车辆动力学等相关专业知识的研究生、科研人员及从事铁路工程、桥梁工程与交通系统安全评估的工程技术人才,尤其适合开展轨道交通耦合振动课题的研究者。; 使用场景及目标:①用于高校与科研机构进行列车-轨道-桥梁耦合系统动力学特性的教学演示与科学研究;②支撑高速铁路桥梁的设计优化、运营安全性评估与减振降噪方案验证;③为复杂交通基础设施的多物理场耦合仿真提供建模思路与代码参考。; 阅读建议:建议读者结合所提供的Matlab代码逐模块深入研读,重点关注系统建模假设、质量-刚度-阻尼矩阵构建方法及数值积分算法的实现细节,同时可通过调整参数进行敏感性分析,进一步掌握仿真模型的适用范围与优化方向。

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧