Skip to content

justanothercell/kommando

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

148 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 __  _   ___   ___ ___  ___ ___   ____  ____   ___     ___  
|  |/ ] /   \ |   |   ||   |   | /    ||    \ |   \   /   \       ______________
|  ' / |     || _   _ || _   _ ||  o  ||  _  ||    \ |     |     |[]            |
|    \ |  O  ||  \_/  ||  \_/  ||     ||  |  ||  D  ||  O  |     |  __________  |
|     ||     ||   |   ||   |   ||  _  ||  |  ||     ||     |     |  | *.kdo  |  |
|  .  ||     ||   |   ||   |   ||  |  ||  |  ||     ||     |     |  |        |  |
|__|\_| \___/ |___|___||___|___||__|__||__|__||_____| \___/      |  |________|  |
 _  _  _  __ _  _       ___    __       _     __    _  __ __     |   ________   |
|_)|_)/ \/__|_)|_||V||V| | |\|/__   |  |_||\|/__| ||_|/__|_      |   [ [ ]  ]   |
|  | \\_/\_|| \| || || |_|_| |\_|   |__| || |\_||_|| |\_||__     \___[_[_]__]___|

Note

Switch to dev branch for the most up-to-date version

Take a look at the online Sandbox and the docs

Quickstart

make build
make run file=examples/hello

# or both in one step:
make br file=examples/hello

# you can also run the compiler manually (once it is compiled itself).
# ./kdolib/link is a bash file which inserts the kommando library paths
./kommando $(./kdolib/link) examples/hello.kdo examples/hello -cr

# run witout any arguments to see a list of options
./kommando

Examples

use core::types::*;

#[extern]
fn printf(fmt: c_str, ...) -> i32; 

// this is compilable with 
// ./kommando -cr examples/misc/no_std.kdo examples/misc/no_std ::core=kdolib/core
// without the use of any libraries except the core library.
fn main() {
    printf("Hello, world\n");
}

more examples | postfix expression calculator

Notable features


Note that this is meant to be compiled with gcc and uses certain gnu compiler extensions. There exists a ./bootstrap/.clangd file, but that is only to fix VSCode linting. Specifically, the macro __INTELLISENSE__ disables these gcc extensions. Other compilers might work but support is not guaranteed.

About

kommando programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors