【文件属性】:
文件名称:elodie:用Go语言编写的编程语言
文件大小:58KB
文件格式:ZIP
更新时间:2021-02-02 13:36:27
go language vm interpreter compiler
Elodie编程语言
用Go语言编写的静态类型语言。
关于
Elodie是发展初期的一种实验性解释语言。
# run the tests and benchmarks
go test -bench=. ./...
# build the binary
go build cmd/elodie.go
# run a program
./elodie exec example/fib35r.e
# show compiler output
./elodie compile example/fib35r.e
Elodie包括:
Lexer从源文件生成一系列标记的过程。
一个解析器,根据词法标记生成抽象语法树。
单程编译器,从AST生成字节码。
一个注册机执行字节码,运行程序。
Elodie当前支持一些构造和类型。
变数
变量被隐式声明,在当前函数中作用域,以$为前缀,并且不能更改类型。 可以分配多个变量,以逗号分隔。
例如。
// an int
$someInt = 3
// a float
$
【文件预览】:
elodie-master
----go.mod(237B)
----go.sum(2KB)
----elodie.go(487B)
----vm()
--------vm_dispatch.go(8KB)
--------vm_opcode.go(4KB)
--------vm.go(1KB)
----scanner()
--------scanner_test.go(4KB)
--------scanner.go(7KB)
----.travis.yml(188B)
----example()
--------bench.e(1KB)
--------fib35r.e(160B)
----ast()
--------ast_test.go(462B)
--------ast.go(11KB)
--------token.go(3KB)
----LICENSE(1KB)
----parser()
--------parser_test.go(10KB)
--------parser.go(18KB)
--------parse_if.go(4KB)
----acceptance()
--------benchmark_test.go(2KB)
--------semicolon_test.go(1KB)
--------acceptance_test.go(15KB)
----README.md(10KB)
----.gitignore(13B)
----compiler()
--------compiler_test.go(16KB)
--------compile_inst.go(34KB)
--------compile_type.go(3KB)
--------vrwc.go(3KB)
--------compile_inst_test.go(23KB)
--------compile_if.go(4KB)
--------compile_for.go(3KB)
--------compiler.go(17KB)
--------compile_array.go(8KB)
--------compile_fn.go(9KB)
--------compile_array_test.go(4KB)
----cmd()
--------elodie.go(4KB)