PowerShell support for tree-sitter
A tree-sitter implemenation for PowerShell.
License
See LICENSE.
Initial goal
Parse the big test file from EditorSyntax completely.
TODO
- Add tree-sitter tests
- Add support for more syntax:
- Statements
switch
filter
using
throw
for
foreach
do
/while
/until
exit
/return
break
/continue
trap
try
/catch
/finally
data
workflow
/parallel
/sequence
configuration
- Expressions
-not
- Unary
-
-ge
,-gt
,-le
,-lt
,-eq
,-ne
,-ceq
,-ieq
, etc.+
,-
,*
,/
,%
,-or
,-and
,-bor
,-band
, etc.- Element access (
$x[$i]
)
- Other syntax
- Labels
- Better whitespace handling
- Herestrings
#requires
#sig
- Pipeline redirection and jobs
- Splatting
&&
/||
- Statements
- Investigate possibility of dynamic keyword support
End goal
90%+ compatibility with the PowerShell parser today.
Getting started
npm install
npm start file.ps1
If you want to just generate the parser, run npm run generate
.
If you want to just parse a script, run npm run parse file.ps1