Add a fail-closed Tree-sitter PowerShell lowerer (#39213)

## What changed

- Add a Tree-sitter-based lowerer that converts a conservative subset of literal PowerShell commands into argument vectors.
- Reject dynamic expressions, parse recovery, unsupported value conversions, directives, and source outside recognized command nodes instead of guessing their meaning.
- Keep the lowerer alongside the existing production parser for later adoption.

## Testing

- Add fixture-driven coverage for supported literal commands and unsupported or ambiguous syntax, including a dedicated `#requires` rejection test.

GitOrigin-RevId: a6e7acc264ca40df264db4b271e38ae7d89e1ec4
This commit is contained in:
iceweasel-oai
2026-08-18 14:59:43 +00:00
committed by copyberry
parent a04940cb12
commit bb701f1e8c
9 changed files with 610 additions and 1 deletions
+1
View File
@@ -19,6 +19,7 @@ serde_json = { workspace = true }
shlex = { workspace = true }
tree-sitter = { workspace = true }
tree-sitter-bash = { workspace = true }
tree-sitter-powershell = { workspace = true }
url = { workspace = true }
which = { workspace = true }