回答了问题2016-09-03
要不是有 Java 8 都懒得用 Java 了。
关注了问题2016-09-03
发布了文章2016-07-30
各位抱歉了,这个系列在多个平台的专栏上连载。每发一个新章节,都要同步到各个专栏上,于是可能漏掉 Segmentfault 的博客。汗,其实 Segmentfault 这边已经落后很久了。
发布了文章2016-04-03
这是我最近一年在做的项目,用我们老大的话说,就是“能不能弄一个东西,让我的 iOS 程序一行代码不用改,却能运行在 Android 上”。为了这个目标,我们最后弄出了个这样的东西。
发布了文章2016-02-19
其中 StartChunk 是我们展开式的所有起点,每一个 tao 语言的源代码文件都从 StartChunk 开始展开。这里我简单的将其展开为 Chunk。
赞了回答2015-04-22
[链接]
关注了问题2015-04-22
发布了文章2015-02-20
上一章中,我说 Parser 的工作就是依据文法定义,找到一个与源代码匹配的展开方案就可以了。听起来我们只要先给出一个 tao 语言的文法定义,然后写一个找匹配方案的的程序就可以了。 然而事情情况并非如此简单。因为假如我们不对文法定义的形式加诸任何限制的话,让 ...
发布了文章2015-02-20
如何充分定义这个赋值语句的形式呢?若用自然语言描述,我可以说,赋值语句最左边是一个标示符,然后紧接一个“=”符号,然后再接一个表达式。满足这个条件的,即是赋值语句啦。
发布了文章2015-02-20
Parser(语法分析器)的编写相对于 Tokenizer (词法分析器)要复杂得多,因此,在编写之前可能也会铺垫得更多一些。当然,本系列旨在“写出”一个编译器,所以理论方面只会简单介绍 tao 语言所涉及的部分。 之前的几章中,我纯手写了tao 语言的 Tokenizer。但如果我准...
发布了文章2015-02-20
上周周末旅游去了,就没更新了,虽然回到海拔0m的地区,不过目前似乎还在缺氧,所以本次就少更点吧。 这章将结束词法分析的部分。 在之前的章节(第7章从零开始写个编译器吧 - 开始写词法分析器(1))中我有说,我将 readChar(char c) 函数设计成主动调用的形式,而...
发布了文章2015-02-20
相对于 String 字符串啊、Identifier 标示符之类的可以通过字符本身来划分开端和结尾的类型,Sign 运算符运算符类型却只能以既定形式来划分开端和结尾。