mirror of
https://github.com/enso-org/enso.git
synced 2024-11-27 17:32:12 +03:00
19 lines
834 B
Markdown
19 lines
834 B
Markdown
# Enso Compiler and Interpreter
|
||
|
||
### Truffle Nodes creation convention
|
||
|
||
All Truffle nodes that are expected to be created as part of ASTs
|
||
should implement a public, static `build` method for creating an instance.
|
||
If the node is DSL generated, the `build` method should delegate to the
|
||
autogenerated `create` method, so that nodes are always created with `build`.
|
||
Such a convention allows us to easily switch node back and forth between
|
||
manual and DSL generated implementations, without the need to change its
|
||
clients.
|
||
|
||
The only exception are nodes that are never expected to be a part of an AST
|
||
– e.g. root nodes of builtin functions, for which an `asFunction` method
|
||
should be implemented instead.
|
||
|
||
This convention should be implemented for every node throughout this codebase
|
||
– if you see one not obeying it – please fix it.
|