Home

Awesome

yup language

Github Actions

introduction

Yup is an imperative programming language. It borrows syntax from Go, Rust and C. <br> It's compiler is implemented using LLVM.

Small example of the language:

// calculate a fibonacci number for N:

import "#std/IO.yup";

calc_fib: fnc(n: i64) -> i64 {
	if n <= 1 {
		return n;
	}
	
	return calc_fib(n - 1) + calc_fib(c - 2);
}

pub main: fnc() -> i32 {
	printf("give me a number N: ");
	var count: i64;
	scanf("%d", &count);
	
	printf("your number is: %d\n", calc_fib(number));
	
	return 0;
}

if you'd like to see a more complex usage of the language, see yup_stdlib/FileSys.yup or yup_stdlib/Errors.yup. these are some of the more advanced usages of Yup.

installing the standard library

run:

cd /root/of/project/yup/yup_stdlib
chmod +x ./install_stdlib.sh
./build.sh
./install_stdlib.sh # installs in ~/yup_stdlib

building from source

As of now, Yup doesn't provide prebuilt binaries so you will have to build the compiler from source. <br> Also, the compiler only supports Linux, but that is going to change in the future. I do not own a copy of Windows, so if you do, feel free to create a port of the compiler.

cd /root/of/project/yup/yupc

./gen.sh # generates needed ANTLR4 files

sudo ./llvm.sh 14 # installes LLVM 14.0.6 which is required to build the compiler

./build.sh # outputs the yupc binary into bin/