feat(phase12.7): 糖衣構文Phase 12.7-B完了 + 自律型AI開発システム制御機能

🚀 Phase 12.7-B: ChatGPT5糖衣構文(基本実装完了)
- パイプライン演算子(|>)実装
- セーフアクセス(?.)とデフォルト値(??)実装
- sugar gateによる段階的有効化機能
- 糖衣構文テストスイート追加

🤖 自律型AI開発システム改善
- codex-async-notify.sh: タスク制御指示追加
  - "下の箱を積み過ぎないように先に進んでください"
  - "フェーズが終わったと判断したら止まってください"
- プロセス数表示機能の改善(count_running_codex_display)
- 自動停止機能が正常動作(Phase 12.7-C前で停止確認)

📚 ドキュメント更新
- Paper 13: 自律型AI協調開発システムの革新性を文書化
- ANCP可逆マッピング仕様追加
- nyfmt PoC(フォーマッター)計画追加

🧱 箱理論の体現
- 74k行のコードベース(Phase 15で20k行を目指す)
- ANCP適用で最終的に6k行相当を狙う
- 世界最小の実用コンパイラへの道

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-09-05 05:16:21 +09:00
parent c45866073d
commit 19f775c34d
47 changed files with 2171 additions and 163 deletions

View File

@ -0,0 +1,30 @@
use crate::syntax::sugar_config::{SugarConfig, SugarLevel};
#[test]
fn sugar_config_env_overrides_toml() {
use std::{env, fs};
let dir = tempfile::tempdir().unwrap();
let file = dir.path().join("nyash.toml");
fs::write(&file, "[syntax]\nsugar_level='full'\n").unwrap();
env::set_var("NYASH_SYNTAX_SUGAR_LEVEL", "basic");
let cfg = SugarConfig::from_env_or_toml(&file);
env::remove_var("NYASH_SYNTAX_SUGAR_LEVEL");
assert_eq!(cfg.level, SugarLevel::Basic);
}
#[test]
fn tokenizer_has_basic_sugar_tokens() {
use crate::tokenizer::{NyashTokenizer, TokenType};
let mut t = NyashTokenizer::new("|> ?.? ?? += -= *= /= ..");
let toks = t.tokenize().unwrap();
let has = |p: fn(&TokenType) -> bool| -> bool { toks.iter().any(|k| p(&k.token_type)) };
assert!(has(|k| matches!(k, TokenType::PIPE_FORWARD)));
assert!(has(|k| matches!(k, TokenType::QMARK_DOT)));
assert!(has(|k| matches!(k, TokenType::QMARK_QMARK)));
assert!(has(|k| matches!(k, TokenType::PLUS_ASSIGN)));
assert!(has(|k| matches!(k, TokenType::MINUS_ASSIGN)));
assert!(has(|k| matches!(k, TokenType::MUL_ASSIGN)));
assert!(has(|k| matches!(k, TokenType::DIV_ASSIGN)));
assert!(has(|k| matches!(k, TokenType::RANGE)));
}