Ceylon Language Specification and type analyzer

Clone this repo:
  1. a8c6fe9 proposed solution for #350 by Gavin King · 10 years ago master
  2. 3fc77ec fix test for new signature of split() in String by Gavin King · 10 years ago
  3. 83e3ae1 improve errors from module/package descriptors by Gavin King · 10 years ago
  4. d5a9b7d clean up failing capture tests by Gavin King · 10 years ago
  5. 1d49188 ws by Gavin King · 10 years ago

Ceylon specification and type analyzer


To build the PDF and HTML specifications, in the root directory type:


The specification is compiled into build/en.

To build just the PDF, type:

ant pdf

The PDF specification is compiled then copied into the root directory.

Directory structure:

  • en - the docbook source of the language specification
  • support - the docbook build

Type analyzer

The type checker project depends on two projects that you need to build locally:

Go into ceylon.language first and run

ant clean publish

Then go into ceylon-module-resolver and run

ant clean publish

To run the type analyzer tests, in the root directory type:

ant test

To (re)generate the parser and and syntax tree, type:

ant clean tree

Directory structure:

  • Ceylon.g - the ANTLR grammar for the language
  • Ceylon.nodes - the specification of the syntax tree
  • src/ - the Java implementation of the type analyzer
  • languagesrc/ - the Ceylon implementation of the language module
  • test - the tests for the type analyzer, written in Ceylon, with a special @assertion syntax extension
  • lib/ - required dependencies for building and running the tests
  • treegen/ - the ANTLR grammars that generate the syntax tree
  • gensrc/ - the generated Java implementation of the parser and syntax tree


The local repository is created under ~/.ceylon/repo

To publish the type checker and language module (this is required before building the compiler), type:

ant publish

Other commands:

  • ant clean.repo - clean local repository
  • ant publish.language.module - publish ceylon.language module as .template file in the local repo
  • ant publish.typechecker - publish typechecker jar in the local repo
  • ant publish - publish both


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.