V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
netcan
V2EX  ›  分享创造

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

  •  
  •   netcan ·
    netcan · 2016-10-20 11:59:53 +08:00 · 3329 次点击
    这是一个创建于 2957 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    效果图: https://raw.githubusercontent.com/netcan/compilingTheory/master/LR.gif

    10 条回复    2017-12-27 10:45:08 +08:00
    zhaode
        1
    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
        2
    hijkzzz  
       2016-10-20 14:13:24 +08:00
    前端好漂亮,怎么做的
    ethego
        3
    ethego  
       2016-10-20 14:16:14 +08:00   ❤️ 1
    想和楼主交流一下编译理论。。
    netcan
        4
    netcan  
    OP
       2016-10-20 14:58:22 +08:00 via Android
    @zhaode 我在上课,回去测试下,感谢你的数据
    netcan
        5
    netcan  
    OP
       2016-10-20 17:17:32 +08:00
    @hijkzzz C++主程序,然后输出 json 格式,前端调用就行了
    netcan
        6
    netcan  
    OP
       2016-10-20 17:19:17 +08:00
    @ethego 可以的
    netcan
        7
    netcan  
    OP
       2016-10-20 22:12:06 +08:00
    @zhaode 因为 LR1 要求 first 集,你这个文法恰好求 first 集有左递归。
    netcan
        8
    netcan  
    OP
       2016-10-21 11:18:41 +08:00
    @zhaode 现在能通过 PL0 测试了。因为输出数据比较大,没法渲染,可以看看输出的数据。 https://github.com/netcan/compilingTheory/blob/master/LR/Test/LR.data3.out
    Ipont009
        9
    Ipont009  
       2017-12-27 10:30:09 +08:00 via Android
    c++的头文件有错误,c2248 prod::additionalVt 无法访问 private 成员,而且 html 没有 css 文件和图片文件
    Ipont009
        10
    Ipont009  
       2017-12-27 10:45:08 +08:00 via Android
    还没有 js 文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1857 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 16:21 · PVG 00:21 · LAX 08:21 · JFK 11:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.