Variables and expressions
set price = 12; set quantity = 4; set total = price * quantity; show total;
Use set to make variable declarations clear. Values include numbers, strings, booleans, null, arrays, objects and functions.
CMLL — Command Language Made Legible — is a small programming language implemented in C. Its .cmll files can express variables, expressions, functions, control flow, arrays, objects, file operations and shell commands.
Find CMLL syntax, installation instructions or related ecosystem projects.
The project README documents a release ZIP for the cmll executable and a separate VS Code extension package. Its complete installation recipe uses curl, unzip, sudo and optionally the VS Code code command.
cmll --version cmll --help cmll hello.cmll
Save as hello.cmll. CMLL ignores newlines as statement separators, so use semicolons.
project "Hello World"; set name = "CMLL"; set version = 1; say "Hello from CMLL!"; show "Language: " + name; show "Version: " + version;
Run it with:
cmll hello.cmll
The examples below use the documented current syntax, not hypothetical language features.
set price = 12; set quantity = 4; set total = price * quantity; show total;
Use set to make variable declarations clear. Values include numbers, strings, booleans, null, arrays, objects and functions.
set score = 85;
if score >= 90 {
say "excellent";
} else {
if score >= 70 {
say "good";
} else {
say "keep practicing";
}
}Conditions use braces. Separate statements inside blocks with semicolons.
set total = 0;
for (n in [1, 2, 3, 4]) {
total = total + n;
}
show total;The documented implementation supports array iteration with for. Do not assume general array indexing is available.
func add(a, b) {
return a + b;
}
set result = add(20, 22);
show result;Functions can return expression values and be called from other expressions.
set user = {
name: "Dominex",
active: true,
tools: ["CMLL", "MacoraOne"]
};
show user.name;
show user.active;Access object properties using dot notation. The current README notes that general array indexing such as items[0] is not implemented.
# A one-line comment set status = true; say "Ready"; show status;
The lexer uses # for single-line comments. say and show are documented statements.
| Feature | Examples / notes |
|---|---|
| Declarations | set name = "CMLL"; |
| Assignment | total = total + 1; |
| Control flow | if, else, while, for |
| Functions | func, return, task |
| Output and shell | say, show, run |
| Files and environment | read file, write file, env |
| Data | Arrays, objects, dot property access and expression operators |
Newlines are ignored by the lexer. Use semicolons between statements, including statements inside blocks.
set first = 1; set second = 2; show first + second;
Use the source README as the authoritative feature list. For example, general array indexing is not currently implemented, even though arrays and iteration are supported.
Read the language reference