Thanks to visit codestin.com
Credit goes to github.com

Skip to content

antpiasecki/zern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zern

A very cool language

Features

  • Clean indentation-based syntax
  • Compiles to x86_64 Assembly
  • Pretty big standard library
  • Produces tiny static executables (~30KB with musl)
  • No libc required (SOON; still used for memory allocation and DNS resolution)
  • Sometimes works
  • Has the pipe operator

Syntax

func main[] : i64
    let answer: i64 = math.abs(os.urandom_i64()) % 100

    while true
        io.println("Guess a number: ")
        let guess: i64 = io.read_line() |> str.trim() |> str.parse_i64()

        if guess == answer
            io.println("You win!")
            break
        else if guess < answer
            io.println("Too low!")
        else
            io.println("Too high!")
func square[x: i64] : i64
    return x * x

func sum[a: i64, b: i64] : i64
    return a + b

func main[] : i64
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
    |> alg.map(^square)
    |> alg.reduce(^sum, 0)
    |> io.println_i64()

Quickstart

cargo install --git https://github.com/antpiasecki/zern
zern -m -r hello.zr

About

An almost working compiler

Topics

Resources

Stars

Watchers

Forks

Languages