This repository has been archived on 2026-03-01. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
v2/README.md
2026-02-26 18:28:39 +11:00

90 lines
2.1 KiB
Markdown

# Solstice rewrite in C
Not self hosting yet. Maybe once this compiler is done.
## Building
bash build.c
## Todo List
- [ ] Lexer
- [x] Lex values
- [x] int
- [x] double
- [x] string
- [x] char
- [x] bool
- [x] Lex keywords
- [x] Ignore comments (//, /**/, #)
- [x] Lex delimiters
- [x] ()
- [x] {}
- [x] .
- [x] :
- [x] ,
- [x] ==, =
- [x] >, >=
- [x] <, <=
- [x] !, !=
- [x] +, +=, ++
- [x] -, -=, --
- [x] *, *=
- [x] /, /=
- [ ] Lex types
- [x] Basic types (int, double, string, bool, char)
- [ ] Advanced types (fun(...), template(...), object(...))
- [x] Lex identifiers
- [ ] Parser
- [x] Create structure to hold nodes
- [ ] Start parsing tree
- [x] puts
- [x] Literal values
- [x] '='
- [x] Maths
- [x] Brackets
- [ ] Comparisons
- [ ] Code blocks (` { } `)
- [ ] If
- [ ] While
- [ ] Function Definition
- [ ] Function Calls
- [ ] Structs
- [ ] new
- [ ] use
- [ ] Ground compiler
- [x] Create structure to descend tree
- [ ] Check types
- [x] puts (none)
- [x] set (typeof children.at[1])
- [x] Identifiers (scope->variables[idName])
- [x] add (string, int, double)
- [x] subtract, multiply, divide (int, double)
- [ ] Comparisons (bool)
- [ ] Code block (none)
- [ ] if, while (none)
- [ ] Function definition (fun(...))
- [ ] Function call (return type of function)
- [ ] Struct (template(...))
- [ ] new (children[0])
- [ ] use (none)
- [ ] Generate code
- [x] puts
- [x] Literal values
- [x] '='
- [x] Maths
- [x] Brackets
- [ ] Comparisons
- [ ] Code blocks (` { } `)
- [ ] If
- [ ] While
- [ ] Function Definition
- [ ] Function Calls
- [ ] Structs
- [ ] new
- [ ] use