Git Product home page Git Product logo

grox's Introduction

Grox

Implementation cho ngôn ngữ Lox từ quyển sách Crafting Interpreters bằng ngôn ngữ Scala 3.

Đây cũng là một trong các hoạt động của team fundamental.

Vui lòng vào website để tìm hiểu thêm.

grox's People

Contributors

akizminet avatar anhlt avatar cypherius17 avatar grokking-steward[bot] avatar hungcaox avatar lenguyenthanh avatar m00nb0w avatar scala-steward avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

grox's Issues

We shouldn't use Console to print output

Because in Scalajs, Console just prints thing in browser's console which is not what we want.

We need executor returns output which we can use and set to some textview.

Add location info (line, column) to Token

Cần thông tin về location bao gồm line (và column) trong trait Token để có thế show lỗi của chương trình chi tiết hơn ở những bước tiếp theo.

Modularize grox

Split compiler module into several sub modules:

  • compiler module: core logic of compiler can be publish as libraries (JVM/Javascript)
  • cli module: cli interface (JVM/Javascript)
  • web playground: an interactive playground (javascript)

Implement statement execution for chapter 8

Goal: able to execute the code below

var a = "global a";
var b = "global b";
var c = "global c";
{
  var a = "outer a";
  var b = "outer b";
  {
    var a = "inner a";
    print a;
    print b;
    print c;
  }
  print a;
  print b;
  print c;
}
print a;
print b;
print c;

Integration tests for chapter 9

Make sure the code in the end of chapter 9 works:

var a = 0;
var temp;

for (var b = 1; a < 10000; b = temp + b) {
  print a;
  temp = a;
  a = b;
}

Use `TypeTest` instead of `ClassTag`

Or fix this warning when compiling

[warn] |Use of scala.reflect.ClassTag for type testing may be unsound. Consider using scala.reflect.TypeTest instead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.