-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Slightly restructure Statix documentation and add page on debugging t…
…ricks.
- Loading branch information
1 parent
40cb48f
commit 9cfa13f
Showing
7 changed files
with
436 additions
and
34 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
.. _statix-getting-started: | ||
|
||
=============== | ||
Getting Started | ||
=============== | ||
|
||
.. note:: | ||
|
||
Generate a language project that uses Statix by following :ref:`this guide<langdev-getting-started>` and selecting ``Statix`` for ``Analysis type``. | ||
|
||
The best way to get started on Statix is to use the the lectures from the TU Delft compiler construction course. | ||
These lectures explain the concepts that are used in Statix, and discuss scope graph patterns and Statix rules for several language features. | ||
In particular, these are the relevant lectures: | ||
|
||
- `Type Checking and Type Constraints <https://tudelft-cs4200-2020.github.io/lectures/2020/09/17/lecture4/>`_ | ||
introduces type checking concepts and the basics of Statix specifications. | ||
- `Name Binding and Name Resolution <https://tudelft-cs4200-2020.github.io/lectures/2020/09/24/lecture5/>`_ | ||
introduces scope graphs in depth, discusses many name binding patterns in terms of scope graphs and queries, | ||
and shows example Statix rules for many of these patterns. | ||
- `Constraint Semantics and Constraint Resolution <https://tudelft-cs4200-2020.github.io/lectures/2020/10/01/lecture6/>`_ | ||
Discusses in the semantics of Statix and some of the algorithms that are used in its implementation. | ||
|
||
The lecture pages also link to other presentations and tutorials on Statix and scope graphs. | ||
|
||
Example projects using Statix can be found in `this reposity <https://github.com/metaborg/nabl/tree/master/statix.integrationtest/>`_. | ||
The `STLCrec<https://github.com/metaborg/nabl/tree/master/statix.integrationtest/lang.stlcrec>`_ project is the simplest, and shows a simply-typed lambda calculus extended with structural records. | ||
The `Units<https://github.com/metaborg/nabl/tree/master/statix.integrationtest/lang.units>`_ project contains definitions for a language that supports various module and package features. | ||
The `FGJ<https://github.com/metaborg/nabl/tree/master/statix.integrationtest/lang.fgj>`_ project shows a more advanced specification for Featherweight Generic Java, showing scopes as types, complex scope graph patterns, and lazy-substitution-based generics. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
.. _statix-nabl2-migration: | ||
|
||
===================== | ||
NaBL2 Migration Guide | ||
===================== | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,3 +8,7 @@ Stratego API | |
|
||
The Stratego API to Statix ... | ||
|
||
.. warning:: | ||
|
||
This section has not yet been written. | ||
|
This file was deleted.
Oops, something went wrong.