summaryrefslogtreecommitdiff
path: root/src/mml_composemusic_mcp/ast_nodes.py
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-07-15 20:00:24 +0900
committertanaka takashi <isazaka@gmail.com>2026-07-15 20:00:24 +0900
commit7249ca3a6fdf51f6b7ea66ac6854edd5e02ae5ec (patch)
tree37a42621228a6f7a87ef02ae08d4613b2151a1a5 /src/mml_composemusic_mcp/ast_nodes.py
parent9cbb60cf68ab2a8bd9ccc0dca4fbd46f2ae9b928 (diff)
feat: MMLパーサーと意味解析を厳格化
- ppmckの終端分岐付きリピートとL制御トラックを実装 - case、構文構造、音長、エフェクト値域の検証を強化 - Pyxel拡張コマンドのarityと参照検証を追加 - リピート展開上限と構文・意味エラー時の合成停止を追加 - BNF、設計書、適合監査、回帰テストを更新
Diffstat (limited to 'src/mml_composemusic_mcp/ast_nodes.py')
-rw-r--r--src/mml_composemusic_mcp/ast_nodes.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mml_composemusic_mcp/ast_nodes.py b/src/mml_composemusic_mcp/ast_nodes.py
index dc85e79..5eedbbc 100644
--- a/src/mml_composemusic_mcp/ast_nodes.py
+++ b/src/mml_composemusic_mcp/ast_nodes.py
@@ -161,6 +161,13 @@ class RepeatStartStmt(ASTNode):
@dataclass
+class RepeatBreakStmt(ASTNode):
+ """Last-pass break marker (|) inside a ppmck repeat."""
+
+ pass
+
+
+@dataclass
class RepeatEndStmt(ASTNode):
"""End of repeat section (] with optional count)."""
@@ -333,6 +340,7 @@ Statement = (
| DetuneCmdStmt
| RelativeVolumeStmt
| RepeatStartStmt
+ | RepeatBreakStmt
| RepeatEndStmt
| BarStmt
| ExtCmdStmt