5812bd8429
As of this commit, to change the configuration using Banana, we need to make an HTTP POST request to `/banana` REST API. This API is temporary and is likely to be changed later. The implementation is done entirely in the `banana` module. Under this module there are: * `typeck` module contains the type checker, * `grammar` module contains the parser and the AST and, * `eval` module contains the interpreter. Additionally, a test framework has been created to ease the test of particular conditions of the language. Within the banana module, there is a README.md file for each associated sub-module explaining further the details of the language. Once this commit is merged, there's still a lot that can be improved: - All components should be tested in Banana. - The 'deadpathck' pass could be improved (see TODO) - We don't support generated JSON ingestors yet. - Imports will be key for reusability (not implemented). Change-Id: I1305bdfa0606f30619b31404afbe0acf111c029f |
||
---|---|---|
.. | ||
README.md | ||
__init__.py | ||
config.py | ||
dag.py |
README.md
Dead path checker
Dead path checking is about removing paths in the pipeline that lead to nothing. For instance, if there's no source or no sink in a path. This pass is the only one that modifies the AST.
This is the third step of the pipeline:
+---------------------+ +---------------------+
| | | |
---> | AST & TypeTable | ---- deadpathck ---> | AST' & TypeTable' | --->
| | | |
+---------------------+ +---------------------+
Current status:
- Remove branches that are dead from the list of connections.
- Remove the components from the collected list of components.
- Remove statements that are dead code:
- Do not instantiate components.
- Do not compute expressions for unused variables.