文件名称:eminem:用Emily编写的Emily编译器(最终)
文件大小:13KB
文件格式:ZIP
更新时间:2024-06-12 11:42:54
JavaScript
阿姆 编写的编译器(最终) 首先em2js是通过在JavaScript中编写“本机” em2js编译器来引导编译器,该编译器将Emily编译为JavaScript。 它将被编写为#!/usr/bin/env node可执行文件,并将产生该文件,因为它完全可以算作编译器。 然后,该编译器将被移植到Emily本身,从而产生一个理论上自托管的编译器,该编译器最初仅支持编译为Node.js可执行文件(但当然最终将支持其他代码生成后端)。 与区别 从技术上讲,这实际上是并且可能会在一段时间内实现Emily语言的方言,与OCaml参考实现有一些显着差异。 这些差异中的大多数是为了方便JS引导过程。 数字是JS数字,即始终为64位浮点数,没有实际的整数 字符串文字我对词法化非常懒惰,它们是任何非双引号,非反斜杠字符(包括换行符)的双引号分隔序列,以及反斜杠转义的双引号和反斜杠。 因此, "\n"无
【文件预览】:
eminem-master
----package.json(483B)
----builtins.em(349B)
----LICENSE(1KB)
----runtime.js(3KB)
----em2js(5KB)
----test.bash(366B)
----README.md(2KB)
----tests()
--------tern.out(42B)
--------print.out(54B)
--------multistatement_groups.out(127B)
--------hello_world.out(14B)
--------punycode.out(35B)
--------print.em(105B)
--------closure_scoping.out(12B)
--------trivial_closures.out(60B)
--------currying_let.out(4B)
--------hello_world.em(24B)
--------fizzbuzz.em(240B)
--------hello_server.em_(378B)
--------arithmetic.em(132B)
--------closure_scoping.em(93B)
--------fizzbuzz.out(413B)
--------factorial.em(205B)
--------override_builtins.out(55B)
--------arithmetic.out(36B)
--------hello_ffi.em(59B)
--------hello_ffi.out(14B)
--------punycode.em(189B)
--------factorial.out(15B)
--------trivial_var.em(19B)
--------trivial_var.out(2B)
--------multistatement_groups.em(321B)
--------override_builtins.em(121B)
--------tern.em(444B)
--------currying_let.em(55B)
--------trivial_closures.em(268B)