Skip to content

Claude/wokelang ebnf grammar qoe vv#6

Merged
hyperpolymath merged 6 commits into
mainfrom
claude/wokelang-ebnf-grammar-QoeVv
Dec 17, 2025
Merged

Claude/wokelang ebnf grammar qoe vv#6
hyperpolymath merged 6 commits into
mainfrom
claude/wokelang-ebnf-grammar-QoeVv

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

No description provided.

claude and others added 6 commits December 16, 2025 03:37
Complete implementation of WokeLang with:

Lexer (src/lexer/):
- Token definitions for all keywords, operators, literals
- Uses logos for fast tokenization
- Handles comments, strings with escapes, numbers

Parser (src/parser/):
- Recursive descent parser
- Full expression parsing with correct precedence
- All statement types: remember, when/otherwise, repeat, attempt safely
- Pattern matching with decide based on
- Emote tags, consent blocks, gratitude declarations

AST (src/ast/):
- Complete type definitions for all language constructs
- Spanned nodes for error reporting

Interpreter (src/interpreter/):
- Tree-walking interpreter
- Scoped environments for variables
- Built-in functions: print, len, toString, toInt
- Consent system with interactive prompts
- Pattern matching evaluation
- All operators (arithmetic, comparison, logical)

CLI (src/main.rs):
- woke <file.woke> - run program
- woke --tokenize <file> - show tokens
- woke --parse <file> - show AST

Examples:
- examples/hello.woke - feature showcase
- examples/demo.woke - runnable demo
REPL (src/repl.rs):
- Interactive command-line interface with rustyline
- Commands: :help, :quit, :clear, :reset, :load, :ast
- Expression evaluation with automatic result printing
- Start with `woke` or `woke --repl`

WASM Compilation (src/codegen/):
- Compile WokeLang to WebAssembly binary format
- Uses wasm-encoder for proper WASM generation
- Supports functions, expressions, loops, conditionals
- Pattern matching compilation
- CLI: `woke -c input.woke` outputs input.wasm

Zig FFI (src/ffi/, zig/, include/):
- C-compatible API for embedding WokeLang
- Interpreter lifecycle: woke_interpreter_new/free
- Code execution: woke_exec, woke_eval
- Value operations: type checking, conversion, creation
- Static library (libwokelang.a) and shared library (.so)
- C header (include/wokelang.h)
- Zig bindings (zig/wokelang.zig) with idiomatic wrapper
- Example Zig program and build.zig

Other:
- examples/math.woke - math functions for WASM demo
- Cargo.toml updated for cdylib/staticlib targets
Includes:
- Project roadmap (ROADMAP.md) with version timeline through v1.0
- Wiki home page with table of contents
- Getting Started guides: Installation, Hello World, Basic Syntax, REPL
- Language Guide: Functions, Control Flow, Error Handling, Variables/Types
- Core Concepts: Consent System, Gratitude, Emote Tags
- Reference: CLI, Built-in Functions, Keywords, Operators, Language Spec
- Internals: Architecture, Lexer, Parser, Interpreter, WASM, FFI
- Tutorial: Building a CLI app
- Add Result types (Okay/Oops) with pattern matching support
- Implement error propagation operator (?) for Result types
- Add pattern matching destructuring with guard clauses
- Implement module system with use/share keywords
- Add new builtins: isOkay, isOops, getOkay, getOops
- Update WASM compiler and FFI for new AST variants
- Add example programs for Result types and modules
- Implement TypeChecker module with type inference
- Support for basic types: Int, Float, String, Bool, Unit
- Support for compound types: Array, Result, Maybe, Function
- Implement unification algorithm for type constraints
- Add built-in function type handling
- Include comprehensive test suite for type checking
@hyperpolymath
hyperpolymath merged commit f1e00bb into main Dec 17, 2025
1 check failed
@hyperpolymath
hyperpolymath deleted the claude/wokelang-ebnf-grammar-QoeVv branch December 17, 2025 01:04
hyperpolymath pushed a commit that referenced this pull request Jan 31, 2026
Session 2026-01-31-cli-and-examples completed:

CLI Implementation (0% → 100%):
- Comprehensive CLI with clap (9 subcommands)
- run, repl, compile, run-vm, disasm, typecheck, lint, tokenize, parse
- All commands tested and working

VM Compiler Extensions (80% → 90%):
- Lambda/closure compilation (MakeClosure)
- Result constructors (MakeOkay/MakeOops)
- Pattern matching (Decide with constructor patterns)
- Consent gates (ConsentBlock)
- Index, CallExpr, Unwrap support

Examples and Documentation (0% → 100%):
- 8 example programs covering all major features
- examples/README.md with usage guide
- All examples tested (interpreter + VM)
- VM compatibility status documented

Tasks completed: #6 (CLI), #7 (VM extensions), #8 (Examples)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants