diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-07-11 21:48:34 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-07-11 21:48:34 +0900 |
| commit | 4ed98f4ec8d354f8fdb009f0b7829c2628adb2a6 (patch) | |
| tree | 07fd47ae951fa3ad776834e4876764adb09d5068 /src/mml_composemusic_mcp/parser_ppmck.py | |
| parent | 79cd969c98893e04382fe6075f420589c3a1652e (diff) | |
fix: stdio transport 起動時の TypeError 修正とトラック外コマンド警告の追加
Diffstat (limited to 'src/mml_composemusic_mcp/parser_ppmck.py')
| -rw-r--r-- | src/mml_composemusic_mcp/parser_ppmck.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mml_composemusic_mcp/parser_ppmck.py b/src/mml_composemusic_mcp/parser_ppmck.py index db91950..67e5093 100644 --- a/src/mml_composemusic_mcp/parser_ppmck.py +++ b/src/mml_composemusic_mcp/parser_ppmck.py @@ -62,6 +62,7 @@ class PpmckParser: self._parse_track_header() continue if self.current_channel is None: + self._warn_outside_track(token) self.ctx.advance() continue self._parse_statement() @@ -109,6 +110,19 @@ class PpmckParser: ) self.headers.append((key, value)) + def _warn_outside_track(self, token: Token) -> None: + if token.type in (TokenType.EOF, TokenType.COMMENT): + return + self.ctx.add_error( + code=ErrorCode.SYNTAX_OUTSIDE_TRACK, + line=token.line, + column=token.column, + message=f"'{token.raw}' はトラック外に書かれています。", + severity="warning", + hint="コマンドはトラックヘッダー(A, B, T, N)の後に記述してください。", + context=self._context_line(token), + ) + def _parse_track_header(self) -> None: token = self.ctx.advance() ch = token.value.upper() |
