Skip to content

follang/fol

Repository files navigation

logo

License: MIT Travis (.org) Codecov Gitter Contributors

general-purpose and systems programming language


FOL is a general-purpose, systems programming language designed for robustness, efficiency, portability, expressiveness and most importantly elegance. Heavily inspired (and shamelessly copying) from languages: zig, nim, c++, go, rust, julia (in this order), hence the name - FOL (Frankenstein's Objective Language). In Albanian language "fol" means "speak".

** FOL IS STILL JUST AN IDEA **


BUILDING BLOCKS

Everything in FOL is declared like below:

	declaration<options> name: returntype = { body; };
	declaration<options> name: returntype = { body; } | { checker } | { alternative; };

four top-most declarations are:

	def<>		// preporcesr, iports, includes, macros, bocks, definitions ...
	var<>		// all variables, ints, strings, bools, arrays, vecotrs ...
	typ<>  		// new types, structs, objects, interfaces, enums ...
	fun<>		// all methods, functions, rutines and subrutines ...

a control flow and keywords:

	if(condition){} orif(condition){} else{};
	loop(condition){};
	for(){};
	each(){};
	case(variable){like(){}; like(){}; else{}};
	case(variable){type(){}; type(){}; else{}};
	jump();
	continue; break; return; yeild;

keywords:

	result;			// the default return type of function (already made when a subroutine is created)
	default;		// a default value for function (in case of error or unreachable)
	error;			// each routine carries an error variable and can be checked if was raised during call
	check();		// checking a function for error

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Trim Bresilla
Trim Bresilla

🚇 ⚠️ 💻

This project follows the all-contributors specification. Contributions of any kind welcome!