随笔分类 -  Pan蟠龙语言

摘要:前两个周末写了《手写PHP转Python编译器》的词法,语法分析部分,上个周末卡文了。 访问器部分写了两次都不满意,没办法,只好停下来,参考一下Python的实现。我实现的部分正好和Python是一个思路,就是生成CST(Concrete syntax tree)之后,再生成AST。由于我想创(to 阅读全文
posted @ 2017-03-22 08:37 windfic 阅读(2600) 评论(1) 推荐(0)
摘要:写完词法部分,又有很多杂事,周末终于有空来实现伟大的语法解析部分了。 撸完代码之后发现,程序太短了,不算上状态机,才186行(含注释),关键代码不到100行。运行调试过后,发现还行。居然可以解析OneThink里面的function.php。这个文件堪称Php程序的集大成者,里面什么妖魔鬼怪都有,调 阅读全文
posted @ 2017-03-13 19:25 windfic 阅读(2340) 评论(1) 推荐(0)
摘要:上周写了《ThinkPhp模板转Flask、Django模板》 一时技痒,自然而然地想搞个大家伙,把整个PHP程序转成Python。不比模板,可以用正则匹配偷懒,这次非写一个Php编译器不可。 上网搜了一下,发现大部分Python to xxx的transpile都是直接基于AST,省略了最重要的T 阅读全文
posted @ 2017-03-12 09:56 windfic 阅读(1504) 评论(0) 推荐(0)
摘要:前天写了个《ThinkPhp模板转Flask模板》 居然被同事鄙视了,原因是他用Django,我用Flask,为了避免被他继续安利Django的强大。我决定写一个Django模板转换器。 为了复用代码,得用继承,我把原代码分成三段,一下子获得了三个转换器。 class ConverterTempla 阅读全文
posted @ 2017-03-04 13:26 windfic 阅读(941) 评论(0) 推荐(0)
摘要:Template Converter 网上的PHP资源很多,项目要用Python,所以想起做一个模板转换器,从ThinkPhp转成Flask的Jinja模板。 直接指定两个目录,将目录下的模板文件转换。 依赖于chardety库,自动检测模板的编码。 1 if __name__ == '__main 阅读全文
posted @ 2017-03-01 19:30 windfic 阅读(761) 评论(0) 推荐(0)