🚀 feat: Multiple improvements for Nyash parser and LLVM backend
Parser improvements: - Added expression statement fallback in parse_statement() for flexible syntax - Fixed ternary operator to use PeekExpr instead of If AST (better lowering) - Added peek_token() check to avoid ?/?: operator conflicts LLVM Python improvements: - Added optional ESC_JSON_FIX environment flag for string concatenation - Improved PHI generation with better default handling - Enhanced substring tracking for esc_json pattern Documentation updates: - Updated language guide with peek expression examples - Added box theory diagrams to Phase 15 planning - Clarified peek vs when syntax differences These changes enable cleaner parser implementation for self-hosting, especially for handling digit conversion with peek expressions instead of 19-line if-else chains. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
6
docs/reference/language/LANGUAGE_REFERENCE_2025.md
Normal file
6
docs/reference/language/LANGUAGE_REFERENCE_2025.md
Normal file
@ -0,0 +1,6 @@
|
||||
# Language Reference (2025)
|
||||
|
||||
The canonical 2025 language reference currently lives here:
|
||||
- private/papers/reference/language/LANGUAGE_REFERENCE_2025.md
|
||||
|
||||
This stub exists to provide a stable public path under `docs/reference/language/`.
|
||||
20
docs/reference/language/README.md
Normal file
20
docs/reference/language/README.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Nyash Language Reference – Index
|
||||
|
||||
This is the entry point for Nyash language documentation.
|
||||
|
||||
- Full Language Reference (2025): reference/language/LANGUAGE_REFERENCE_2025.md
|
||||
- Syntax Cheat Sheet: quick-reference/syntax-cheatsheet.md
|
||||
- Phase 12.7 Grammar Specs (peek, ternary, sugar):
|
||||
- Overview: development/roadmap/phases/phase-12.7/grammar-specs/README.md
|
||||
- Token/Grammar: development/roadmap/phases/phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md
|
||||
- Sugar Transformations (?., ??, |> and friends): parser/sugar.rs (source) and tools/nyfmt/NYFMT_POC_ROADMAP.md
|
||||
- Peek Expression Design/Usage: covered in the Language Reference and Phase 12.7 specs above
|
||||
|
||||
Related implementation notes
|
||||
- Tokenizer: src/tokenizer.rs
|
||||
- Parser (expressions/statements): src/parser/expressions.rs, src/parser/statements.rs
|
||||
- MIR Lowering (expressions): src/mir/builder/exprs.rs and friends
|
||||
|
||||
Navigation tips
|
||||
- The “reference/language/LANGUAGE_REFERENCE_2025.md” is the canonical long‑form reference; use the Cheat Sheet for quick syntax lookup.
|
||||
- Phase 12.7 files capture the finalized sugar and new constructs (peek, ternary, null‑safe).
|
||||
Reference in New Issue
Block a user