<assignmentStatementRule> = <lvalueExpression> <AssignmentOperatorToken> <pipelineRule>
前のルール( )での使用に基づくと、 Windows PowerShell in ActionlvalueExpression
の付録Cは、JoeyがリンクしたPowerShell言語仕様のセクションB.2.3に対応しているようです。これよりもさらに一致させるのは難しいですが、とにかくいくつかの推測を追加します:)expression
の?
文字は[? |? <lvalue>]*
間違いである可能性が非常に高いです。「前のトークンはオプションです」を表すために使用されていた場合、次のようになります。
- 適用されたトークン
[
と|
トークンは引用されている必要があります
[
値式の一部としてのみ意味がありますが、インデックス付けは後でpropertyOrArrayReferenceOperator
ルールによってすでにカバーされています
?
文法の他の場所では使用されませんが、 「0回または1回表示される可能性が{0|1}
ある」ことを示すために複数回使用されます
セクションの最初のルールの最後にあるものと類似していることを考えると[ '|' <cmdletCall> ]*
、これはコピーアンドペーストエラーであり、「スマートクォート」ラウンドトリップエンコーディングエラーが複合されている可能性があります。これが後で編集する目的でコピーされたと仮定すると、複数のプロパティアクセスを表す?|?
ようになった可能性があります(ただし、これもルールでカバーされています)。'.'
propertyOrArrayReferenceOperator
セクションC.2.1の最後にある「[パイプラインルール]は代入式の解析も処理する」というステートメントに基づいていますが、おそらく、 (たとえば、for )lvalueExpression
以外のすべての割り当て可能な式をリストすることを目的としていました。simpleLvalue
cast-expression
[int]$x = 1
array-literal-expression
$a,$b,$c = 1,2,3