Skip to content

Fast (πŸš€), Memory safe (πŸš€), Simple (πŸš€) language compiler written in C++ (bad 😑) using LLVM (πŸš€)

License

Notifications You must be signed in to change notification settings

budchirp/graphite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

graphite

Fast (πŸš€), Memory safe (πŸš€), Simple (πŸš€) language compiler written in C++ (bad 😑) using LLVM (πŸš€)

Stargazers Last commit Issues

TODO

  • Lexer

  • Parser

  • Codegen

  • Type support

  • Type checking

  • Function definition

  • Variable definition

  • Mutable/Immutable variables (immutable by default btw)

  • Null (?, !!, null)

  • Binary expressions (=, ==, !=, +, -, /, *)

  • Unary expressions (*, &, -, +, ++, --, !)

  • If expression

  • For & While statement

  • Object generation

  • Code optimization (LLVM IR Optimization, no optimization from graphite)

  • Arrays

  • Structs

  • Module management (public, private, include) (garbage btw)

  • Classes

  • Stdlib

  • Maps

  • Scope management and ownership system similar to crab πŸ¦€ (aka crap) or C++ RAII

  • Switch expression

  • CLI (graphite, graphitec)

  • Make bang operator work with expressions (currently only supports variable reference)

  • Improve my garbage code

  • Fix stupid parser errors

  • var mut x: mut *i32 syntax

  • Fix mutability and pointer issues

  • Seperate CLI, Compiler frontend, Compiler backend into submodules

  • Multiple codegen backend support (only llvm for now)

About

Fast (πŸš€), Memory safe (πŸš€), Simple (πŸš€) language compiler written in C++ (bad 😑) using LLVM (πŸš€)

Topics

Resources

License

Stars

Watchers

Forks