如何实现miniSharp语言的词法分析器开发过程?
- 内容介绍
- 相关推荐
本文共计2144个文字,预计阅读时间需要9分钟。
感谢各位一直以来的支持,今天我们迈出了实践的一步。今天,我们将使用VBF.Compilers的词法分析库来开发一个迷你语言——miniSharp的词法分析器。
多谢各位的一直以来的支持,我们今天总算走到了实践的一步。今天我们要用VBF.Compilers的词法分析库来开发一个小型语言——miniSharp的词法分析。miniSharp是C#语言的子集,miniSharp程序的语义就等于把它当做C#的语义。但是miniSharp只支持很少的语言特性,以降低制作编译器的难度。简单来说miniSharp有如下特征:
- 只有一个源文件,不能引用其他dll(甚至不能引用.NET的类库)。
- 没有命名空间。
- 第一个类必须是静态类,而且里面只能定义一个静态方法Main作为程序入口。
- 只能定义类,没有枚举、结构体、接口、委托等。
- 类的成员只有私有的字段和共有的非静态方法两种。不支持虚方法。
- 方法必须有返回值,除了Main方法之外。
- 支持的类型只有int、bool、int[]和自定义的类。不支持其他类型。
- 仅支持一个库函数System.Console.WriteLine,只支持参数是int的用法。
- 只支持if-else语句、while语句、赋值语句、变量声明语句和调用WriteLine语句。
本文共计2144个文字,预计阅读时间需要9分钟。
感谢各位一直以来的支持,今天我们迈出了实践的一步。今天,我们将使用VBF.Compilers的词法分析库来开发一个迷你语言——miniSharp的词法分析器。
多谢各位的一直以来的支持,我们今天总算走到了实践的一步。今天我们要用VBF.Compilers的词法分析库来开发一个小型语言——miniSharp的词法分析。miniSharp是C#语言的子集,miniSharp程序的语义就等于把它当做C#的语义。但是miniSharp只支持很少的语言特性,以降低制作编译器的难度。简单来说miniSharp有如下特征:
- 只有一个源文件,不能引用其他dll(甚至不能引用.NET的类库)。
- 没有命名空间。
- 第一个类必须是静态类,而且里面只能定义一个静态方法Main作为程序入口。
- 只能定义类,没有枚举、结构体、接口、委托等。
- 类的成员只有私有的字段和共有的非静态方法两种。不支持虚方法。
- 方法必须有返回值,除了Main方法之外。
- 支持的类型只有int、bool、int[]和自定义的类。不支持其他类型。
- 仅支持一个库函数System.Console.WriteLine,只支持参数是int的用法。
- 只支持if-else语句、while语句、赋值语句、变量声明语句和调用WriteLine语句。

