Extended PatternPipelineContext and CarrierUpdateInfo for Pattern 3 AST-based generalization. Changes: 1. PatternPipelineContext: - Added loop_condition: Option<ASTNode> - Added loop_body: Option<Vec<ASTNode>> - Added loop_update_summary: Option<LoopUpdateSummary> - Updated build_pattern_context() for Pattern 3 2. CarrierUpdateInfo: - Added then_expr: Option<ASTNode> - Added else_expr: Option<ASTNode> - Updated analyze_loop_updates() with None defaults Status: Phase 213-2 Steps 2-2 & 2-3 complete Next: Create Pattern3IfAnalyzer to extract if statement and populate update summary
Examples: Plugin BoxRef Return (v2.2)
- File:
plugin_boxref_return.hako - Purpose: Demonstrates a plugin method returning a Box (BoxRef/Handle), and passing Box as an argument.
How to run (after full build):
- Ensure
nyash.tomlincludes FileBox with methods:copyFrom = { method_id = 7, args = [ { kind = "box", category = "plugin" } ] }cloneSelf = { method_id = 8 }
- Build the plugin:
cd plugins/nyash-filebox-plugin && cargo build --release - Run the example:
./target/release/hakorune docs/guides/examples/plugin_boxref_return.hako
Expected behavior:
- Creates two FileBox instances (
f,g), writes tof, copies content togviacopyFrom, then closes both.