customs
is a domain-specific language (DSL) for defining constraints of APIs
The specs of customs
language is defined in this blueprint
This is a compiler for customs
language written in Golang. It compiles the customs
language into a YAML
schema.
18/02/2024
first release19/02/2024
major refactoring
- Define the language
- Define tokens
- Support
float
,string
,integer
,boolean
- Support
- Implement scanner
-
Implement sane error handler
-
Implement expression parser
- Parse unary expression
- Parse binary expression
- Parse token expression
- Parse boolean expression
- Support parenthesis
- Support string expression
-
Implement statement parser
- Implement constraint statement
- Implement let statement
- Implement assert statement
-
Variable type inference
-
Implement semantic analysis
- Check for duplicate identifier
- Check for undeclared identifier
- Check for type mismatch
- Check assert expression cross constraints
- Implement ast to targeted
yaml
file
- Support
float
,string
andboolean
- Support
parenthesis
- Implement error handler, quick return error when error is found
- Restrict only
assert
statements are allowed to be nested in otherassert
statements - Refactor the codebase
- Supports inheritance (abstract and extends)
- Implement WASM for this compiler
For any concern please contact me at this email