mininode:由Node.js创建的微型Node.js使用Node.js创建的Node.js

  • H7_769963
    了解作者
  • 83.9KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-18 03:41
    上传日期
使用Node.js创建的Node.js 印象深刻的是我挑战用Node.js制作迷你Node.js. ...初榨esprima ...抽象语法树(AST) ...执行加法 符的计算器...直到制作计算器和比较运算符的实现为止 变量...变量声明,赋值,参考 ...如果条件分支,则重复 ...调用内置函数 ...,以便您可以定义自己的函数 ...支持数组和哈希 ...使用模块并避免对象 ...返回无需处理的启动皮带 ...还实现了退货处理和自举 奖金 额外1:执行Mini Ruby简化树...加载并执行Mini Ruby简化树 额外2:添加运算符...添加否定和逻辑运算符 执照/执照 该示例已获得MIT许可 该存储库由MIT许可证提供
mininode-master.zip
  • mininode-master
  • trial
  • mininode_compiler06if.js
    16.5KB
  • mininode_compiler04.js
    11.6KB
  • c6.js
    275B
  • mininode_compiler01.js
    7.5KB
  • fizzbuzz_c7.js
    218B
  • mininode_compiler06.js
    18.1KB
  • module_writefile.js
    314B
  • c8.js
    476B
  • mininode_compiler08.js
    26.6KB
  • mininode_compiler02.js
    8.9KB
  • mininode_compiler09.js
    22.5KB
  • c3.js
    117B
  • c4.js
    138B
  • c2.js
    51B
  • c1.js
    2B
  • c5.js
    167B
  • module_getlength.js
    267B
  • mininode_compiler03.js
    9.7KB
  • module_getkeys.js
    304B
  • fizzbuzz_c8.js
    366B
  • c6while.js
    333B
  • module_builtin.js
    1.1KB
  • mininode_compiler07.js
    22.1KB
  • c7.js
    231B
  • module_gettypeof.js
    264B
  • mininode_compiler05.js
    14.6KB
  • mininode_compiler06while.js
    18.1KB
  • mininode_step13.js
    6.9KB
  • miniruby
  • savetree.rb
    243B
  • fizzbuzz_tree.json
    458B
  • fizzbuzz_func.rb
    186B
  • sample
  • test12.js
    124B
  • test8.js
    149B
  • fizzbuzz6.js
    229B
  • fib8.js
    164B
  • test6.js
    684B
  • test7.js
    96B
  • fizzbuzz11.js
    335B
  • fizzbuzz8.js
    293B
  • test5.js
    301B
  • test_extra2.js
    218B
  • llvm
  • rem.ll
    59B
  • puts.ll
    675B
  • putc.ll
    131B
  • mul.ll
    58B
  • two.ll
    54B
  • putn.ll
    323B
  • add.ll
    64B
  • num1000.ll
    987B
  • if.ll
    1.1KB
  • while.ll
    646B
  • func_add.ll
    1.4KB
  • div.ll
    59B
  • sub.ll
    64B
  • one.ll
    75B
  • fizzbuzz.ll
    1.5KB
  • module_println.js
    266B
  • module_printobj.js
    283B
  • mininode_step1.js
    591B
  • mininode_step10.js
    5.5KB
  • mininode_step6.js
    6.1KB
  • module_abort.js
    234B
  • mininode_step7.js
    7.6KB
  • mininode_step9.js
    10.9KB
  • mininode_step12.js
    6.4KB
  • mininode_extra_r.js
    7KB
  • module_builtin_extra2.js
    786B
  • mininode_step3.js
    1.3KB
  • LICENSE
    1KB
  • module_parser_extra2.js
    7.2KB
  • README.md
    2.3KB
  • mininode_step2.js
    554B
  • mininode_step11.js
    6KB
  • mininode_step8.js
    8.7KB
  • mininode_step4.js
    2.4KB
  • mininode_step5.js
    5.2KB
  • mininode_extra_2.js
    7.1KB
  • module_builtin.js
    779B
  • module_parser.js
    7KB
内容介绍
# Node.js でつくる Node.js [「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」](https://www.amazon.co.jp/dp/4908686017) に感銘を受けて、Node.jsでミニNode.js作りにチャンレンジしています * [Step1:ソースのパース](https://qiita.com/massie_g/items/3f604413ca5ea4552b45) ... 初めての esprima * [Step2:単純化](https://qiita.com/massie_g/items/6c852f96f7271e9e70bf) ... 抽象構文木(AST)を単純化 * [Step 3: +演算子を評価する](https://qiita.com/massie_g/items/ad6ae33ec1e46b67ad57) ... 足し算を実行 * [Step 4: 四則演算で電卓を作る](https://qiita.com/massie_g/items/40591822228d7e166b63) ... 電卓を作るところまでと、比較演算子の実装 * [Step 5: 変数を使う](https://qiita.com/massie_g/items/1e5bf8b3cca0ae08fd1c) ... 変数の宣言、代入、参照 * [Step 6: 条件分岐と繰り返し](https://qiita.com/massie_g/items/f801692fb9b07d007285) ... ifで条件分岐、 whileで繰り返し * [Step 7: 組み込み関数](https://qiita.com/massie_g/items/22506a9dabbd13cee13f) ... 組み込み関数を呼び出す * [Step 8: ユーザ定義関数](https://qiita.com/massie_g/items/e537f14300a6113a6237) ... 自分で関数を定義できるように * [Step 9: 配列とハッシュ](https://qiita.com/massie_g/items/b2a94e98ff80868bedec) ... 配列とハッシュのサポートまで * [Step 10: モジュール分割](https://qiita.com/massie_g/items/1b59efb5f891b3dda05b) ... モジュールを利用し、オブジェクトを回避 * [Step 11: 無理矢理ブートストラップ](https://qiita.com/massie_g/items/5d8d61cdbf54390d8709) ... return処理抜きでブートストラップ * [Step 12: ひとまず完結](https://qiita.com/massie_g/items/35555286594e1cf780e1) ... return処理も実現してブートスラップ ## おまけ * [Extra 1: ミニRubyの単純化Treeを実行する](https://qiita.com/massie_g/items/3a4888168bb288965393) ... ミニRubyの単純化Treeを読み込んで実行する * [Extra 2: 演算子を追加する](https://qiita.com/massie_g/items/d1ef41bab2f8fd7343b5) ... 否定演算子や論理演算子を追加 ## License / ライセンス * This sample is under the MIT license * このレポジトリはMITランセンスで提供されます
评论
    相关推荐