programming language!!!! yippee!
Note
YIPPEE is in a very early phase and not yet open for contributions.
Talk to me if you would like to help the project (contact information on my website)
TODO (highest to lowest priority):
- (☆)
if
,while
,for
statements. (parser, ast, backend) - (☆)
create
with struct field names (parser, ast, backend) - (☆) struct default template argument values (ast, backend)
- (☆☆) array types (parser, ast, backend)
- (☆) subscript operator (backend)
- (☆) array literals (parser, ast, backend)
- (☆☆☆) generic functions (parser, ast, backend)
- (☆) weak linkage (backend)
- (☆) member function call (
fun double(x: int32)
callable asx.double()
) (parser, ast, backend) - (☆☆) operator overloading (parser,
ast, backend) - (☆☆) boolean logic (parser, ast, backend)
- (☆☆☆) infer template arguments (backend?)
- (☆☆☆☆☆)
import
statement loads a file as type declarations. (parser, ast, backend)- (☆☆☆) get started on a standard library (...?, stdlib)
- (☆☆☆)
possible(...)
expression (parser, ast, backend)- (☆☆☆☆) template argument constraints (parser, ast, backend)
- (☆☆☆☆) compile directly to exe (backend)
- (☆☆☆)
const
types (parser, ast, backend) - (☆☆☆) some form of reference types (
out
/in
?) (parser, ast, backend) - (☆☆☆☆☆☆☆☆☆☆) RAII, constructors, destructors, and the such (parser, ast, backend)
- (☆) allow reordering of fields in
create
(C++ doesn't support this either so I'm letting this one sit) (backend) - (☆☆☆) infer template arguments in
create
(backend?)
not sure how to design:
- (☆☆☆☆) os checking (best design would be a
if constexpr
analogue?) (parser?, ast?, backend) - (☆) get array length (array.size, std::length(array), ???) (backend? stdlib?)
- (☆) character literals. C
uint8
, gorune
, rust max-4-byte UTF-8char
, ??? (parser, ast, backend, stdlib?) - (☆) string literals. automatically compile to a
std::something
? should YIPPEE be a UTF-8, UTF-16, or UTF-32 language? C++-style user literals? (parser, ast, backend, stdlib?)