███████ ████████ █████ ████████ ██ ██ ███████ ███████ ███████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ██ ███████ ██ ██ ██ ███████ █████ ███████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ██ ██ ██ ██ ██████ ███████ ███████ ███████ ── EASY STUDENT LANGUAGE ── ver 0.4.0 ──

STATUSES

The Easy Student Language — a tiny hand-built programming language written from scratch in C. Lexer, parser, interpreter. Compiled to a single standalone binary. No frameworks. No Python. No magic.

NOT FOR ACTUAL CODING. I made this so I could learn the basics of C and stuff. Please do not ship production software with it. (Please.)
hello.stat ● ● ●
/// the classic. every language needs one.
statuses start

make count 5
make name "bob"

rule count>0 return value alive
if alive {
    out "still going"
}

loop rule count>0 status yes {
    out count
    make count count - 1
}

out name
out "done"

statuses end

WHAT IS THIS

A complete programming language toolchain. ~1,200 lines of C. Zero dependencies. It actually runs.

LEXER

Turns raw text into tokens: numbers, strings, names, operators.

PARSER

Turns tokens into a tree. Enforces every rule with a named error.

INTERPRETER

Walks the tree and runs it: variables, math, branches, loops.

DESIGN RULES

One way to do everything. No aliases. No shortcuts. No synonyms.

MAKE ONLY

make is the only assignment keyword. Declare and overwrite use the same word.

BRACES ALWAYS

No optional braces. No indentation rules. If there's a block, it has { }.

NAMED ERRORS

Ghost Variable. Type Clash. Code Leak, No Status End. No cryptic compiler goop.

SYNTAX REFERENCE

Three types — number, string, bool (yes / no). That's it.

YOU WRITEIT DOES
statuses start … statuses endWraps every program. Missing the end → Code Leak, No Status End.
make x 5Declare or overwrite. Works for numbers, strings, bools.
make name "bob"Strings are real values. Stored, printed, passed around.
make flag yesBooleans are yes / no. Not true/false.
out x · out "hi"Print a variable or a literal string.
rule a>b return value cCompare, store yes/no in c. Comparators: < > = !!
if c { … }Run the block once if c is yes.
loop rule a>b status yes { … }Repeat while comparison matches yes (or no). Re-checked each pass.
+ - * / % ( )Integer math with normal precedence. / is integer division.
///Comment to end of line.
errors.log ● ● ●
/// every failure has a name

Statuses Error: Ghost Variable (line 2)
Statuses Error: Type Clash (line 4)
Statuses Error: Divide By Zero (line 4)
Statuses Error: Code Leak, No Status End

INSTALL

One binary. No runtime, no package manager, no dependencies.

$ curl -L -o statuses https://github.com/kartoosheh/file-hosting-repo/releases/download/file/statuses
$ chmod +x statuses
$ ./statuses run hello.stat
>> still going
>> bob

FOUR COMMANDS

statuses tokens f.stat — dump tokens

statuses ast f.stat — dump the tree

statuses run f.stat — interpret

statuses build f.stat — compile (coming soon)

BUILD FROM SOURCE

Needs only cc. Clone the repo, run make, you've got the same binary — compiled from the C sources on your own machine.

TO LEARN C

Writing a language is the fastest way to understand pointers, memory, and how text becomes running code. This is a study project that happens to work.