文件名称:Monkey-CSharp:《编写Go口译员》一书中的Monkey编程语言的惯用C#端口
文件大小:34KB
文件格式:ZIP
更新时间:2024-05-29 19:29:32
C#
猴子CSharp (还Python版本的Monkey) 《一书中的Monkey编程语言的AC#端口。 它使用针对Windows,Mac和Linux上的.NET Core的惯用C#语言编写。 从书中: 它支持数学表达式,变量绑定,函数以及这些函数的应用,条件,返回语句甚至高级概念,例如高阶函数和闭包。 然后是不同的数据类型:整数,布尔值,字符串,数组和哈希。 猴子解析器由用于语句的手写LL(1)传统递归下降解析器和用于表达式的Pratt解析器组成。 混合解析器可确保高效解析,同时优雅地支持运算符优先级。 它的输出是一个抽象的语法树,评估者将其作为程序执行的一部分。 词法分析器,解析器和评估器的完整实现包括1500行代码以及925行测试。 对于这样一个功能强大的解释器来说,并不是很多,完全没有第三方库就可以实现。 例子 请参阅主页上的“猴子编程语言”部分,并查看此存储库中的单元测试
【文件预览】:
Monkey-CSharp-master
----Monkey.Cli()
--------Program.cs(2KB)
--------Monkey.Cli.csproj(294B)
----Monkey.Core()
--------Evaluator.cs(16KB)
--------Monkey.Core.csproj(170B)
--------Environment.cs(2KB)
--------Ast.cs(8KB)
--------Lexer.cs(8KB)
--------Parser.cs(21KB)
--------Object.cs(7KB)
--------Builtins.cs(3KB)
----LICENSE(1KB)
----TODO.md(892B)
----Examples()
--------Functional-programming.monkey(500B)
--------Data-types.monkey(157B)
--------Variable-binding.monkey(199B)
--------Closures.monkey(150B)
--------Fibonacci.monkey(175B)
----Monkey.sln(4KB)
----.gitignore(2KB)
----Monkey.Tests()
--------ParserTests.cs(16KB)
--------AstTests.cs(1KB)
--------ObjectTests.cs(2KB)
--------EvaluatorTests.cs(14KB)
--------Monkey.Tests.csproj(605B)
--------LexerTests.cs(6KB)
----README.md(3KB)
----.vscode()
--------launch.json(1KB)
--------tasks.json(333B)