Commits
- Commit:
5b15eab651750b51fb7681d796d529d759170d84- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add integration tests for v0.1
Test suite covering all language features: arithmetic,
strings, variables, if/else, while, for/range,
functions with implicit/explicit return, type mismatch
errors, and all CLI subcommands (run, tokenize,
parse, compile).
- Commit:
faf55781ee6fb6fdcf94f474767adb31a8b78081- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add type checking and contextual error messages
Compiler infers types and validates type annotations
at compile time (e.g. let x: int = "hello" is an
error). Span gains line_col() for mapping byte
offsets to line:column. Errors now render with source
context showing the exact location and underline.
- Commit:
11a12b204a216d8d8e25fdac1103c8beef3027e3- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add function calls with call stack
Each function compiles to its own Chunk with name
and arity. VM uses CallFrame stack for nested calls.
Parameters are first locals in each frame. Supports
implicit return (last expression without semicolon)
and explicit return statements.
- Commit:
862cec691012ceb800f90f956da2b62c8811e4f6- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add control flow with if/else and while loops
New opcodes for comparison (Equal, NotEqual, Less,
LessEqual, Greater, GreaterEqual), logical Not,
and jumps (JumpIfFalse, Jump, Loop). Compiler uses
jump patching for if/else branches and backward
jumps for while loops.
- Commit:
37c978c740aa2c23c2be7f6165ee14b888c150b5- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add variable support with let/let mut
New opcodes GetLocal and SetLocal for stack-slot
based variables. Compiler resolves variable names
to slot indices and checks mutability at compile
time. Immutable variables (let) cannot be reassigned.
- Commit:
e415d90b662b2024a6f38196ded11f3881cbf636- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add bytecode compiler and stack-based VM
Compile AST to bytecode with opcodes for constants,
arithmetic, print, and return. Stack-based VM with
dispatch loop executes bytecode. First programs
running end-to-end: source -> lexer -> parser ->
compiler -> VM -> output.
- Commit:
a40058a5b5365b5e05a32eb8ba8ef34d2d3b51ab- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add full parser with statements and functions
Parse complete programs: FnDecl, let/let mut,
if/else/else if, while, for..in range(), return,
print, assignments. Semicolons terminate statements,
last expression without semicolon is implicit return.
- Commit:
ebe3a0a72c98c733977195ad2a30c57189ce8701- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add expression parser with operator precedence
Recursive-descent parser for expressions with proper
precedence: equality > comparison > addition >
multiplication > unary > call > primary. Supports
literals, binary/unary ops, function calls, and
parenthesized grouping.
- Commit:
8b5123e6050f1d24f2f6f3a000fef4665b878a2b- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Extend lexer with strings, keywords and identifiers
Add support for string literals with escapes, float
literals, identifiers, keywords (let, fn, if, etc),
two-char tokens (==, !=, ->, <=, >=), comments (#),
and line/column tracking for error messages.
- Commit:
6004e88422764c3bf275c6a4f1be37220f847d97- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add basic lexer with tokenize command
Lexer tokenizes numbers, arithmetic operators,
parentheses and semicolons. CLI tokenize subcommand
reads .ol files and prints token stream.
- Commit:
2f626af47071623ff393a568fdf765526342fb27- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Add span and error types
Span tracks byte positions in source code for error
reporting. OlangError carries a message and span.
- Commit:
c916ec471c406a8caef7d57af437fa182632e120- From:
- Murilo Ijanc <murilo.ijanc@kovi.com.br>
- Date:
Init project scaffolding
Setup Cargo.toml, Makefile, LICENSE, README and
initial main.rs for the olang programming language.
