Oxido is a statically typed interpreted programming language for making CLI tools and scripts.
The files may end with the oxi extension, however the extension is ignored.
Oxido uses waterfall approach to files, for a directory/file example, Oxido will run the first file in order of, example, example/main.oxi, example/src/main.oxi.
Oxate, the official installer can be used to install the latest release from GitHub.
oxate installYou can use oxate to remove the current installation.
oxate uninstallYou can run an Oxido file using the oxido command. The files may end with the oxi extension, however Oxido ignores the extension, and runs the file as-is.
oxido <FILE> [OPTIONS]For example:
oxido main.oxiConventionally, Oxido files are named main.oxi.
-
String: A string is any value inside
"(double quotes) passing the regex\"[A-Za-z0-9 !]+\". -
Int: Integers (no fractions), passing the regex
[0-9]+. -
Bool:
trueorfalse -
Vec: A uniform collection of the other data types, denoted by
[T].
Variables are declared by the let keyword, followed by the identifier, which must pass the regex [A-Za-z]+, followed by the data type (optional) and an equal sign and the expression.
For example:
let a: str = "Hi mom!";
let n = 5;
let z = 5 * 5;
let f: int = factorial(5);Reassignments are the same as assignments with the condition that let keyword is not used and the variable must have been declared before. Data types are enfored while reassigning values.
let a: int = 0;
a = 5;
a = 5 * 5;
a = factorial(5);
a = "Hi mom!"; // error: incorrect data typeIf statements check whether the given condition is true or not using the == or < or > operator. The == is applicable on strings and integers both, while < or > can only be used on integers. The condition must be followed after the code to be executed in the case the condition is true in curly braces {}.
if a == 5 {
print(a);
}Loop statements repeat given conditions until break is called.The conditions to be executed in the loop must be followed after the loop keyword in {}.
let b = 0;
loop {
b = b + 1;
if b == 5 {
print("Hi mom!");
break;
}
print(b);
}Funcitons store the given conditions until they are called. They are declared with the name of the function, the name must be a valid identifier, followed by args, seperated by commas in () and the statement in {}.
let text = "Hi mom!";
fn message(x: str) -> int {
print(x);
return 0;
}
message(text);The exit keyword can be used to exit the program with the specified exit code
print("Hi mom!");
exit(0);Oxido includes a standard library which can be used for basic functions.
Print the given inputs to stdout.
Print the given inputs to stdout and leave a newline.
Convert the value to str data type
Convert the value to int data type
Convert the value to bool data type