2023-01-23 14:31:49 +00:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
|
2024-03-09 13:05:40 +00:00
|
|
|
- Implement AST transformation before codegen:
|
|
|
|
Create a new AST to represent PHP source code
|
|
|
|
and a THP ast -> PHP ast process, so that the
|
|
|
|
codegen section can focus only in codegen, not in
|
|
|
|
translation of thp->php.
|
2023-12-10 01:04:44 +00:00
|
|
|
- Parse __more__ binary operators
|
2024-01-21 20:06:53 +00:00
|
|
|
- Parse `Type name = value` bindings
|
2023-09-20 01:42:03 +00:00
|
|
|
- Parse more complex bindings
|
|
|
|
- Watch mode
|
2023-04-16 23:17:28 +00:00
|
|
|
- Improve error messages
|
|
|
|
- Parse other language constructions
|
|
|
|
- Type checking
|
|
|
|
- Check for conflicting identifiers
|
|
|
|
- Namespace identifiers in the symbol table
|
|
|
|
- Stdlib
|
|
|
|
- Document code
|
2023-12-10 01:04:44 +00:00
|
|
|
- Watch mode
|
|
|
|
- Formatter
|
|
|
|
- Simple language server
|
2024-01-07 00:07:41 +00:00
|
|
|
- Decide how to handle comments in the syntax (?)(should comments mean something like in rust?)
|
2023-12-10 01:04:44 +00:00
|
|
|
|
|
|
|
## v0.0.10
|
|
|
|
|
2024-01-12 00:29:19 +00:00
|
|
|
- [x] Parse function call parameters
|
2024-01-12 00:36:11 +00:00
|
|
|
- [x] Codegen function call parameters
|
2024-01-21 20:06:53 +00:00
|
|
|
- [x] Parse function declaration arguments (Type id)
|
2024-02-04 01:19:09 +00:00
|
|
|
- [x] Begin work on semantic analysis
|
|
|
|
- [x] Minimal symbol table
|
|
|
|
- [x] Check duplicate function declarations
|
2024-03-09 13:05:40 +00:00
|
|
|
- [x] Improve REPL/File compilation code
|
2024-01-07 00:07:41 +00:00
|
|
|
- [ ] Typecheck bindings
|
2024-03-09 13:05:40 +00:00
|
|
|
- [x] Typecheck functions
|
2024-01-07 00:07:41 +00:00
|
|
|
- [ ] Transform simple THP expression into PHP statements
|
2023-12-10 01:04:44 +00:00
|
|
|
|
|
|
|
## v0.0.9
|
|
|
|
|
2023-12-17 01:35:24 +00:00
|
|
|
- [x] Hand-make CLI, remove clap
|
|
|
|
- [x] Compile a single file
|
2024-01-02 11:31:27 +00:00
|
|
|
- [x] Display error messages during compilation instead of panicking
|
|
|
|
- [x] Improve error messages
|
2024-01-07 00:07:41 +00:00
|
|
|
- [x] Implement code generation for ast nodes implemented as of now
|
2023-12-10 01:04:44 +00:00
|
|
|
|
2023-03-28 15:06:23 +00:00
|
|
|
|
2023-09-20 01:42:03 +00:00
|
|
|
|
2023-10-06 01:26:47 +00:00
|
|
|
## v0.0.8
|
2023-11-21 12:49:49 +00:00
|
|
|
|
|
|
|
- Parse block of code
|
2023-10-06 01:26:47 +00:00
|
|
|
- Parse multiple statements inside a block
|
2023-11-22 02:00:58 +00:00
|
|
|
- Parse unary operator (`!` & `-`)
|
2023-11-22 02:40:11 +00:00
|
|
|
- Parse binary operators
|
2023-10-06 01:26:47 +00:00
|
|
|
|
|
|
|
|
2023-10-01 22:18:28 +00:00
|
|
|
## v0.0.7
|
|
|
|
|
|
|
|
- Parse minimal function declarations following a grammar
|
2023-10-05 11:56:21 +00:00
|
|
|
- Parse function call, binding as statement
|
|
|
|
- Parse a statement as body of a function declaration
|
2023-10-01 22:18:28 +00:00
|
|
|
|
|
|
|
|
2023-09-20 01:42:03 +00:00
|
|
|
## v0.0.6
|
|
|
|
|
|
|
|
- Parse function declarations
|
|
|
|
- Parse multiple function declarations
|
|
|
|
- Parse multiple bindings
|
|
|
|
- Compile from file
|
|
|
|
- Emit INDENT & DEDENT tokens
|
|
|
|
|
|
|
|
|
2023-03-28 15:06:23 +00:00
|
|
|
## v0.0.5
|
|
|
|
|
2023-04-05 16:28:43 +00:00
|
|
|
- Scan single line comments
|
|
|
|
- Refactor String token to include double quotes (") in its content
|
2023-04-15 22:17:27 +00:00
|
|
|
- Refactor datachecking of semantic analysis
|
2023-09-20 01:42:03 +00:00
|
|
|
|
2023-02-15 21:17:50 +00:00
|
|
|
## v0.0.4
|
|
|
|
|
|
|
|
- Explicit datatype of variables
|
2023-03-15 21:33:00 +00:00
|
|
|
- Improve error messages when a syntax error is found (show offending line and offending token)
|
2023-03-28 15:06:23 +00:00
|
|
|
- Show different error messages for val/var binding
|
2023-02-15 21:17:50 +00:00
|
|
|
|
2023-02-11 23:13:05 +00:00
|
|
|
## v0.0.3
|
|
|
|
|
|
|
|
- Get datatype of an identifier from the symbol table
|
|
|
|
- Improve documentation of the code
|
2023-02-14 20:22:29 +00:00
|
|
|
- Simple ASI: insert semicolon after a single or series of new lines
|
2023-02-14 20:32:45 +00:00
|
|
|
- The token stream now always ends with a Semicolon and EOF token, regardless of input
|
2023-02-11 23:13:05 +00:00
|
|
|
|
2023-02-11 14:52:30 +00:00
|
|
|
## v0.0.2
|
|
|
|
|
|
|
|
- Compilation of `val` and `var` bindings with a number, string or boolean as value.
|
|
|
|
- Register symbols and datatypes in the Symbol table.
|
2023-01-24 15:18:14 +00:00
|
|
|
- Add better error messages for lexical errors. Show:
|
|
|
|
- Offending line
|
|
|
|
- Pointer to offending character
|
|
|
|
- Error message
|
|
|
|
|
2023-02-11 14:52:30 +00:00
|
|
|
|
2023-01-23 14:31:49 +00:00
|
|
|
## v0.0.1
|
|
|
|
|
|
|
|
- Compilation of a `val` binding with a number.
|
|
|
|
- Scan all tokens except new lines, indentation.
|