Limitations

"Implemented" means it runs and has a test in tests/. "Partial" means it works for the documented cases and no others. "Planned" means it does not exist yet.

Implemented

Core language: variables (=, let, const), function-level scoping, all listed types, arithmetic/comparison/logical operators, string interpolation, if/otherwise if/otherwise, for each, for ... from ... to ..., repeat ... times, while, break, continue, functions with default arguments and closures, try/catch with typed errors.

Filesystem: create file/folder, write, append, read, delete file/folder, list files in, file/folder ... exists, path(...) with .name/.extension/.parent/.exists.

Processes: run "cmd" (no shell), run "cmd" with arguments [...], with timeout ... seconds, structured results, real process-to-process piping with ->.

HTTP: get/post/put/patch/delete, with header {...}, with query {...}, with timeout ... seconds, send json {...}, download/save as, is successful/is failed, TLS always verified, JSON body parsing on .json.

JSON: parse_json, to_json (pretty by default); map/list literals are already JSON-shaped.

Modules: use "./local_file" (or .ez), built-in module name validation.

Concurrency: parallel block (thread-per-assignment, join-all).

Misc: matches (regex), wait N seconds, a generic -> pipeline binding it, a CLI (ezy run|check|repl), a REPL, arguments for CLI scripts, defined exit codes.

Tests: 118 automated tests covering the lexer, parser, interpreter semantics (scoping, closures, error types, edge cases like division by zero and out-of-range indexing), filesystem operations in isolated temp directories, process execution (missing command, non-zero exit, a real timeout), HTTP against a local test server (no external network required for the suite), and CLI exit codes and argument handling.

Partial

Planned (not implemented)

Deliberate design deviations from the original brief