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
26 lines
848 B
Plaintext
26 lines
848 B
Plaintext
// Nyash Python Compiler entry (Phase 10.7 workbench)
|
|
// Nyash-only pipeline: Parser/Compiler are implemented in Nyash using PyRuntimeBox
|
|
// Usage:
|
|
// NYASH_PY_CODE=$'def main():\n return 0' ./target/release/hakorune --backend vm tools/pyc/pyc.hako
|
|
|
|
static box Main {
|
|
main() {
|
|
// Load modules via include (returns module boxes)
|
|
using "tools/pyc/PyIR.hako" as PyIR
|
|
using "tools/pyc/PythonParserNy.hako" as Parser
|
|
using "tools/pyc/PyCompiler.hako" as Compiler
|
|
|
|
local json, ir, src
|
|
|
|
// Skip echo of source to avoid plugin toString issues
|
|
|
|
json = new StringBox("{}")
|
|
// Build minimal IR from Python AST (env: NYASH_PY_CODE)
|
|
ir = Compiler.buildIRFromParse(json)
|
|
// Emit generated Nyash source (reflect return/if/assign when present)
|
|
src = Compiler.irToNyashSource(ir)
|
|
print(src)
|
|
return 0
|
|
}
|
|
}
|