# 什麼是 Backus-Naur 形式論？

Qlik Sense 指令行語法和指令碼語法使用名為 Backus-Naur 形式論的標記法進行說明，該標記法也稱為 BNF 代碼。

下表提供 BNF 代碼中使用的符號清單，以及如何解譯它們的描述：

符號

| 符號 | 描述 |
| --- | --- |
| \| | 邏輯 OR：此符號可用於任一側。 |
| ( ) | 定義優先順序的括弧：用於架構 BNF 語法。 |
| [ ] | 方括弧：括住的項目為選用。 |
| { } | 大括弧：括住的項目可重複零次或更多次。 |
| 符號 | 非終端語法類別：可進一步分割為其他符號。例如上述符號的組合、其他非終端符號、文字字串等。 |
| ::= | 標示用於定義符號的區塊開端。 |
| 載入 | 包含文字字串的終端符號。應依原樣寫入指令碼中。 |

所有終端符號都會使用 bold face 字型予以列印。例如，"(" 應解譯為定義優先順序的括弧，而 "(" 則應解譯為要寫入指令碼中的字元。

範例：

alias 陳述式的描述如下：

alias fieldname as aliasname { , fieldname as aliasname}

這應解譯為文字字串 "alias"，後面接著一個任意的欄位名稱，再接著文字字串 "as"，然後接著一個任意的別名名稱。可另外加上任何數目的 "fieldname as alias" 組合 (以逗號分隔)。

下列都是正確的陳述式：

`alias a 
 as first;` `alias a 
 as first, b as second;` `alias a 
 as first, b as second, c as third;`

而下列都是不正確的陳述式︰

`alias a 
 as first b as second;` `alias 
 a as first { , b as second };`