From d57ffbe8b3a09f222bfc47013e694517653e2140 Mon Sep 17 00:00:00 2001 From: MROS Date: Mon, 14 Oct 2024 17:57:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=9B=B6=EF=BC=8E=E4=BA=8C?= =?UTF-8?q?=E7=89=88=E8=A8=AD=E8=A8=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...10\350\210\207\346\246\202\350\277\260.md" | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git "a/book/\351\233\266\357\274\216\344\272\214\347\211\210/\350\250\255\350\250\210\350\210\207\346\246\202\350\277\260.md" "b/book/\351\233\266\357\274\216\344\272\214\347\211\210/\350\250\255\350\250\210\350\210\207\346\246\202\350\277\260.md" index 85a6e6f..ab76dbc 100644 --- "a/book/\351\233\266\357\274\216\344\272\214\347\211\210/\350\250\255\350\250\210\350\210\207\346\246\202\350\277\260.md" +++ "b/book/\351\233\266\357\274\216\344\272\214\347\211\210/\350\250\255\350\250\210\350\210\207\346\246\202\350\277\260.md" @@ -41,11 +41,13 @@ 零.二版新增「若」語句,以及「術」的定義與施展(調用),並支援「外術」(外部函式),以實現標準輸入輸出。 -此外,為輔助「若」語句的使用,亦加入相等、不等、小於......等等比較算子。 +為輔助「若」語句的使用,亦加入相等、不等、小於......等等比較算子。 -### 新增算子 +檔案的頂層僅允許變數宣告與術宣告,編譯時應可指定第一個要施展的術的名字,若無指定,便先行施展`初`術。 -#### 比較運算 +## 新增算子 + +### 比較運算 - `==` - 等於 - `!=` @@ -61,11 +63,11 @@ 以上算子的求值結果皆為整數,若式子成立,值為1,否則值為0。運算優先級彼此相等,但比加減乘除都還要低。 -#### 餘數 +### 餘數 `%` 取餘數。優先級介於乘除與加減間。 -### 「若」語句 +## 「若」語句 ```音界 若(甲==乙)【 @@ -95,7 +97,7 @@ 此結構中,唯有當上一層的條件不符合時,才會嘗試下個括號內的條件並執行基括號內的語句。例如,以上法咒唯有在「甲<=10」時才會去檢查「乙==1」,當所有條件都不成立時,就執行`不然`基括號內的語句。 -### 術 +## 術 ``` 術.輾轉相除(甲、乙)【 @@ -118,3 +120,20 @@ 5. `】`:右基括號,術體結束 在零.二版中,術的參數與歸值(回傳值)都是整數。若在任意分支中,術沒有歸值,編譯器應報錯。 + +## 作用域 +術在定義之後才能使用,也就是說,不支援術的互相調用。 + +以下法咒是非法的。 +```音界 +術.甲()【 】 +術.乙()【甲()】 +``` + +## 外術(外部函式) + +支援 `打印整數(數)` 此一外術,其接受一個整數作為參數,執行後會將該整數送進標準輸出。 + +## 法咒執行流程 + +編譯時應可指定第一個要施展的術的名字,若無指定,便先行施展`初`術。若檔案中無`初`術,執行最後一個宣告的`術`。若一個術都沒定義,編譯後的執行檔將直接結束。