Skip to content

Instantly share code, notes, and snippets.

@huandu
Last active August 29, 2015 14:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save huandu/7ae5406bbd9c2a34e43d to your computer and use it in GitHub Desktop.
Save huandu/7ae5406bbd9c2a34e43d to your computer and use it in GitHub Desktop.
Planning for `go-rat`

This is a simple planning file for go-rat. I'm using a public gist to make the whole progress transparent for anyone who interests this project.

Here is a very short introduction to go-rat: This is a pre-compiler project for go to support generic, generator, method/operator overloading at compile time.

Project URL: https://github.com/go-rat

WARNING: This is quite a big project for me. I don't have any dedicated time nor commitment on it. I may take quite a long time get all things done. Anyway, I still want to have a done. This public gist is a way to push myself keep walking.

Planning

  • Language design (repo)
    • #1 Overall principles
    • #2 Full language specification
      • Generic
      • Generator
      • Built-in function overriding.
      • Operator overriding.
  • Language implementation
    • rat/token: Add a few keywords to go's token list.
    • rat/scanner: A thin wrapper of go/scanner.
    • rat/build: A thin wrapper of go/build.
    • rat/ast: Add generic type information to all ast.Node.
    • rat/parser: A parser to parse source file to ast.File.
    • rat/types: Types for overriding and generator.
  • rat command
    • rat pre-compile: Generate go source file from rat files.
    • rat build: Build rat files.
    • rat run: Run rat files.
    • rat get: Get a go or rat package and do pre-compile work.
    • rat install: Get a go or rat package and build it to a binary file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment