Skip to content

g-w1/ezc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ezc

Compiler for ez.

Goals

  • To learn a lot
  • ez should resemble english
  • Use only rust standard library
  • Write a working compiler.
  • Write a (minimal) standard library for ez in another language (zig, rust, c, asm, ..)

Instructions

To run just do ezc file use -g flag for debug info (it will generate a out.asm file). then you can open in gdb or lldb

To make use of the standard library, pass -stdlib-path /path/to/stdlib to the compiler. To compile the standard library, go into the lib directory in this compiler. Then run zig build in that directory and find the library in zig-cache/lib/libstd.a. You will probably need zig 0.7.1. You can find that here: https://ziglang.org/download/.

To test the code: cargo test To test the generated code you can do cd tests; ./test.sh. Note: this requires gcc.

Dependencies:

  • Zig (0.7.1). NOTE: If you want to build without zig run HAS_NO_ZIG=1 cargo build. This may be useful if you are on a system without zig or want to provide your own standard library.
  • nasm
  • cargo
  • gcc (only for testing)

Resources

Features

  • lexer

  • ast (structs for ast items)

  • parser

  • codegen

  • immutable assignments

  • mutable variables

  • semantic analysis.

  • expressions (the start of recursive parsing)

  • if statements

  • loops

  • fancy compile errors (with carets)

  • functions

  • modules

  • char literals

  • standard library

  • io

  • arrays and string literals

  • finish blog bost

  • finish documentation

About

compiler for ez (a language that I made)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages