Home

Awesome

Tox

<br /> This is the new experimental version of Tox.I've been working on this slowly but I do have a working lexer plus parser and I've started on semantic analysis.

It's built using salsa and rowan and codespan. The design is inspired by rust-analyzer along with other projects.

Example Program

fn fib(n:int) -> int {
    if (n < 2)
      return n;
    return fib(n - 2) + fib(n - 1);
}

A simple example that makes of uses of the classes

class Toggle {
    state:bool;

    fn value() -> bool {
      return this.state;
    }

    fn activate() -> Toggle {
      this.state = !this.state;
      return this;
    }
}

fn main() {
  var toggle  = Toggle{state:true};

  print toggle.activate().value();

  print toggle.activate().value();
}

Screenshots

<img src='./assets/program.png' width=250> <img src='./assets/errors.png' width=250> <img src='./assets/bar.png' width=250>

TODO

Build

Generate the ast

cargo run -p=tools -- -s -g=syntax/src/grammer.ron -t=syntax/src/ast.rs.tera

Resources