thp/CHANGELOG.md

106 lines
2.7 KiB
Markdown
Raw Normal View History

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
- 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
- [ ] Typecheck bindings
2024-03-09 13:05:40 +00:00
- [x] Typecheck functions
- [ ] 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
- [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
- Parse block of code
2023-10-06 01:26:47 +00:00
- Parse multiple statements inside a block
- 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
- Scan single line comments
- Refactor String token to include double quotes (") in its content
- Refactor datachecking of semantic analysis
2023-09-20 01:42:03 +00:00
## v0.0.4
- Explicit datatype of variables
- 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
## 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
- The token stream now always ends with a Semicolon and EOF token, regardless of input
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.
- 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.