Skip to content

ceylon/ceylon.ast

Repository files navigation

ceylon.ast

This repository contains several modules to work with a Ceylon Abstract Syntax Tree (AST):

  • ceylon.ast.core – the Ceylon classes that represent a Ceylon AST. Pure Ceylon (backend-independent).
  • ceylon.ast.create – utility functions to create some AST nodes in a less verbose way.
  • ceylon.ast.redhat – transforms a ceylon.ast.core AST from + to a RedHat compiler (ceylon-spec AST, and also contains functions to compile a ceylon.ast.core AST from a code string (using the RedHat compiler).
  • ceylon.ast.samples – sample ASTs, to see how ceylon.ast is used and to test your tools that work with a ceylon.ast AST.
  • a test module for each of these (test.ceylon...).

ceylon.ast.core allows you to construct a Ceylon AST in your program, which you can then feed into other tools (some tools require the transformed RedHat AST), like the compiler to compile it or the ceylon.formatter to write it as code (code generation).

This was the Google Summer of Code 2014 project of Lucas Werkmeister (@lucaswerkmeister); see the mailing list thread or the project. Contributions are of course welcome!

License

The content of this repository is released under the ASL v2.0 as provided in the LICENSE file that accompanied this code.

By submitting a "pull request" or otherwise contributing to this repository, you agree to license your contribution under the license mentioned above.