在PowerShell語言規範中,該語法有一個名爲「主表達式」的術語。什麼是「主要表達」?
primary-expression: value member-access element-access invocation-expression post-increment-expression post-decrement-expression
從語義上講,主要表達是用來描述什麼?
在PowerShell語言規範中,該語法有一個名爲「主表達式」的術語。什麼是「主要表達」?
primary-expression: value member-access element-access invocation-expression post-increment-expression post-decrement-expression
從語義上講,主要表達是用來描述什麼?
據我所知有兩個部分是:
形式文法分手之類的表達式,所以運算符優先級是隱含的。
例如,如果語法有
expression:
value
expression * expression
expression + expression
…
有將需要一個單獨的機制來定義*
爲比+
具有較高的優先級。當使用工具將語法直接轉換爲記號器/解析器時,這個 變得重要。
有這麼多不同的具體規則(考慮運營商在PowerShell中的號碼),使用較少的規則將更難理解,因爲每個規則會這麼長。
我懷疑,因爲它是高度上下文相關的(表達VS命令模式,然後再考慮調用非內置的可執行文件),這不是使用PowerShell的情況。但是跨語言的這種語法往往有很多共同點,所以風格也可以結轉(不要重新發明輪子)。
我對它的解釋是表達式是一個命令/參數和/或操作符/操作數的排列,它們一起執行和執行一個操作或產生一個結果(即使它是$ null)到一個變量或發送管道。術語「主表達式」用於將整個表達式與可能包含在其中的任何子表達式$()區分開來。
思$(大量的語句)會是這樣一個複雜的表達式 和的powershell大多數事情可以像 $ A =一個表達式如果($ y)的{1}否則{2} 所以主要表達是可能經典表達式的最小公分母 單個函數返回值 是否顯式值,調用某事物..從變量$ xy調用某個變量或屬性,或者增量操作的結果$ z ++ 但是即使是一個簡單的數學「表達」不會匹配這個4 +2 +(3/4),那更像是一個複雜的表達式。
所以我想到了它背後的原因,起初有人提到它可能有助於確定命令/表達模式,但調查不是這樣。然後,我想也許這是什麼可以在命令模式作爲參數顯式傳遞,但那不是,因爲如果您將$ x ++作爲參數傳遞給cmdlet,您將獲得一個字符串。
我認爲它可能只是表達式的最小公分母,因此下一個問題是語法中包含的其他表達式,以及它在哪裏使用?
我認爲這是可以在使用'_ $'的表達式中引用的東西。 – RinoTom 2013-03-28 09:27:44
看起來像是決定主表達式應該被當作命令還是表達式的優先化測試路徑,不是嗎? – x0n 2013-03-28 16:09:45