LR1 语法分析器,绘制自动机, AJAX 与 php, C++程序交互

2016-10-20 11:59:53 +08:00
 netcan

用 C++写的 LR 语法分析器, php 通过管道方式与 C++程序交互, AJAX 取数据,绘制自动机。

demo: http://115.159.147.250:666/LR/

项目地址: https://github.com/netcan/compilingTheory

效果图:

3238 次点击
所在节点    分享创造
10 条回复
zhaode
2016-10-20 13:54:54 +08:00
我试了下我之前做的一个课程实验里 PL/0 的文法,怎么好久都没有生成出来啊?文法如下:
A→B.
B→CEFH
B→H
B→CH
B→EH
B→FH
B→CFH
B→CEH
B→EFH
C→cY;
D→b=a
E→dX;
F→GB;
G→eb;
H→I
H→R
H→T
H→S
H→U
H→V
H→J
I→btL
J→fWg
K→LQL
K→hL
L→LOM
L→M
L→-M
L→+M
M→MPN
M→N
N→b
N→a
N→(L)
O→+
O→-
P→*
P→/
Q→=
Q→#
Q→<
Q→r
Q→>
Q→s
R→pKqH
S→mb
T→nKoH
U→i(X)
V→j(Z)
W→W;H
W→H
X→X,b
X→b
Y→Y,D
Y→D
Z→Z,L
Z→L
hijkzzz
2016-10-20 14:13:24 +08:00
前端好漂亮,怎么做的
ethego
2016-10-20 14:16:14 +08:00
想和楼主交流一下编译理论。。
netcan
2016-10-20 14:58:22 +08:00
@zhaode 我在上课,回去测试下,感谢你的数据
netcan
2016-10-20 17:17:32 +08:00
@hijkzzz C++主程序,然后输出 json 格式,前端调用就行了
netcan
2016-10-20 17:19:17 +08:00
@ethego 可以的
netcan
2016-10-20 22:12:06 +08:00
@zhaode 因为 LR1 要求 first 集,你这个文法恰好求 first 集有左递归。
netcan
2016-10-21 11:18:41 +08:00
@zhaode 现在能通过 PL0 测试了。因为输出数据比较大,没法渲染,可以看看输出的数据。 https://github.com/netcan/compilingTheory/blob/master/LR/Test/LR.data3.out
Ipont009
2017-12-27 10:30:09 +08:00
c++的头文件有错误,c2248 prod::additionalVt 无法访问 private 成员,而且 html 没有 css 文件和图片文件
Ipont009
2017-12-27 10:45:08 +08:00
还没有 js 文件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/314099

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX