The Five Definition Files
A Freon language definition can have five parts:
- The language structure, or abstract syntax tree (AST) is defined in files with extension
.ast
. - The concrete syntax of the language (CST), or editor definition, is defined in files with extension
.edit
. - The scoping is defined in files with extension
.scope
. - The typing is defined in files with extension
.type
. - The validation is defined in files with extension
.valid
.
And yes, you can use multiple files to define one of the parts. For instance, Freon will combine multiple .ast files into one AST definition, and multiple .scope files into one scope definition.
Step-by-step Creation of the Language
There is no need to write all the five definition files right from the start. The only one that is mandatory is the language structure (.ast). Freon will generate defaults for all the other elements. This is what we call the Default Level of the three levels of customization.