SyntaxKind Enum

Identifies what a node, token, or trivium in a shell tree is.

public enum SyntaxKind

Example

var tree = ShellSyntaxTree.ParseText("ls -l | wc -l && echo done", ShellDialect.Bash);

var commandCount = 0;
foreach (var node in tree.GetRoot().DescendantNodes())
{
    if (node.Kind() == SyntaxKind.Command)
    {
        // handle a simple command
        commandCount++;
    }
}

Assert.Equal(3, commandCount);

Fields

NameValueDescription
None0
List1A list of nodes or tokens. Reserved for the list node the shared layer builds.
ShellScript2
StatementList3
EmptyStatement4
Command5
Pipeline6
CommandList7
Redirection8
Assignment9
Word10
LiteralWordPart11
QuotedString12
VariableReference13
CommandSubstitution14
EscapeSequence15
Glob16
RawExpression17
BinaryExpression18
PrefixUnaryExpression19
PostfixUnaryExpression20
GroupedExpression21
ConditionalExpression22
OperandExpression23
EmbeddedExpression24
SkippedText25
BareTextToken26Unquoted literal text inside a word.
SingleQuoteToken27
DoubleQuoteToken28
DollarSingleQuoteToken29
DollarDoubleQuoteToken30
BacktickToken31
DollarToken32
DollarOpenParenToken33
DollarOpenBraceToken34
OpenParenToken35
CloseParenToken36
OpenBraceToken37
CloseBraceToken38
OpenBracketToken39
CloseBracketToken40
PipeToken41
PipeAmpersandToken42
AmpersandAmpersandToken43
PipePipeToken44
AmpersandToken45
SemicolonToken46
SemicolonSemicolonToken47
SemicolonAmpersandToken48
SemicolonSemicolonAmpersandToken49
OpenBracketBracketToken50
CloseBracketBracketToken51
OpenParenParenToken52
CloseParenParenToken53
LessThanOpenParenToken54
EqualsOpenParenToken55
GreaterThanOpenParenToken56
KeywordToken57
ColonColonToken58
DotToken59
CommaToken60
AtParenToken61
AtBraceToken62
DollarOpenParenPowerShellToken63
ParameterToken64
OperatorToken65
NumberToken66
HereStringStartToken67
HereStringEndToken68
GenericToken69
LabelToken70
QuestionQuestionToken71
ColonToken72
SplatToken73
LessThanToken74
GreaterThanToken75
GreaterThanGreaterThanToken76
GreaterThanPipeToken77
LessThanAmpersandToken78
GreaterThanAmpersandToken79
LessThanGreaterThanToken80
LessThanLessThanToken81
LessThanLessThanDashToken82
LessThanLessThanLessThanToken83
AmpersandGreaterThanToken84
AmpersandGreaterThanGreaterThanToken85
EqualsToken86
PlusEqualsToken87
ExclamationToken88
AsteriskToken89
AsteriskAsteriskToken90
QuestionToken91
BracketExpressionToken92
IoNumberToken93
VariableNameToken94
EscapeToken95
BadToken96
EndOfFileToken97
WhitespaceTrivia98
EndOfLineTrivia99
SingleLineCommentTrivia100
CmdRemCommentTrivia101
CmdDoubleColonCommentTrivia102
MultiLineCommentTrivia103
LineContinuationTrivia104A backslash immediately followed by a line break, which joins two physical lines.
PosixIfStatement105
PosixElifClause106
PosixElseClause107
PosixForStatement108
PosixWhileStatement109
PosixUntilStatement110
PosixSelectStatement111
PosixCaseStatement112
PosixCaseClause113
PosixFunctionDefinition114
PosixSubshell115
PosixGroup116
PosixConditionalExpression117
PosixArithmeticCommand118
PosixArithmeticExpansion119
PosixHereDocument120
PosixProcessSubstitution121
PosixArrayAssignment122
PosixTimeStatement123
PosixCoprocStatement124
PosixHereDocumentBody125
ZshForeachStatement126
ZshRepeatStatement127
ZshAlwaysStatement128
CmdCallStatement129
CmdElseClause130
CmdForStatement131
CmdGotoStatement132
CmdIfStatement133
CmdLabelStatement134
CmdParenthesizedBlock135
CmdSetStatement136
CmdVariableReference137
PowerShellArrayExpression138
PowerShellArrayLiteral139
PowerShellAssignmentExpression140
PowerShellAttribute141
PowerShellBareWord142
PowerShellBeginBlock143
PowerShellBinaryExpression144
PowerShellBreakStatement145
PowerShellCastExpression146
PowerShellCatchClause147
PowerShellClassDefinition148
PowerShellCleanBlock149
PowerShellCommand150
PowerShellContinueStatement151
PowerShellDataStatement152
PowerShellDoStatement153
PowerShellDynamicParamBlock154
PowerShellElseClause155
PowerShellElseIfClause156
PowerShellEndBlock157
PowerShellEnumDefinition158
PowerShellExitStatement159
PowerShellExpandableString160
PowerShellExpressionStatement161
PowerShellFunctionDefinition162
PowerShellFilterDefinition163
PowerShellFinallyClause164
PowerShellForEachStatement165
PowerShellForStatement166
PowerShellHashEntry167
PowerShellHashLiteral168
PowerShellHereString169
PowerShellIfStatement170
PowerShellIndex171
PowerShellInvocation172
PowerShellLabeledStatement173
PowerShellMemberAccess174
PowerShellNumberLiteral175
PowerShellParamBlock176
PowerShellParameter177
PowerShellParenthesizedExpression178
PowerShellPostfixUnaryExpression179
PowerShellPrefixUnaryExpression180
PowerShellProcessBlock181
PowerShellRangeExpression182
PowerShellReturnStatement183
PowerShellScriptBlock184
PowerShellStringLiteral185
PowerShellSubExpression186
PowerShellSwitchClause187
PowerShellSwitchStatement188
PowerShellTernaryExpression189
PowerShellThrowStatement190
PowerShellTrapStatement191
PowerShellTryStatement192
PowerShellTypeLiteral193
PowerShellUnaryExpression194
PowerShellUsingStatement195
PowerShellVariableExpression196
PowerShellWhileStatement197
PowerShellWorkflowDefinition198
PosixRedirectedStatement199A POSIX compound command followed by redirections, as in { ...; } > out.
SemicolonPipeToken200The zsh ;| case terminator, which tests the following patterns too.