• 一个简单的parser


    所有的内容基于《两周自制脚本语言》。

    原文中使用Java编写。鉴于本人不怎么会写Java(书里面有好奇怪的语法,不懂(逃)),便用C#写了一个简单的parser。

    代码输入格式:

    1:
    i=2+3*3/(4-2)
    2:
    i=1;
    if(i)
    {
    i=2;
    }

    3:
    i=4;
    sum=0;
    while(i)
    {
    i--;
    sum = sum +i;
    }
    sum;

    4:
    fun name(i,j){ i+j;}
    name(2,3);
    name(3,6);

    5:
    kk = fun name(i,j,k){i+j+k;}
    kk(1,2,3);
    kk(1,2,6);

    6:[call c# static function]
    invoke("System.Console","WriteLine","helloworld");

    or[some shortcuts in this parser]
    invoke("print","helloworld");

    invoke("time");

    截图如下:

    1:

    2:

    不能使用递归,这是我留的一个bug,只是有点不想改而已,感觉添加递归会很慢。

    毕竟是java,╮(╯▽╰)╭,都不知道为何看作者写的代码这么别扭(好吧,我只是觉得 类似【@XXX】 很费解,)。虽然是按照书上来的,但鉴于java不熟悉,里面很多细节全都是我自己乱想的,可以说没什么优化。权当学习编译原理了。

    有兴趣的可以去https://github.com/kalluwa/HelloWorld 自己研究。

  • 相关阅读:
    MAC 设置环境变量
    查询端口使用情况
    如何查看Oracle数据库字符集 尚未研究
    Python的MD5加密
    数据库解锁用户
    Oracle创建用户,赋予权限
    plsql
    福州周边游玩
    django笔记--1
    Linux速成
  • 原文地址:https://www.cnblogs.com/kalluwa/p/4235896.html
Copyright © 2020-2023  润新知