Skip to content

Commit

Permalink
完善零.二版設計
Browse files Browse the repository at this point in the history
  • Loading branch information
MROS committed Oct 14, 2024
1 parent 8644fa9 commit d57ffbe
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions book/零.二版/設計與概述.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@

零.二版新增「若」語句,以及「術」的定義與施展(調用),並支援「外術」(外部函式),以實現標準輸入輸出。

此外,為輔助「若」語句的使用,亦加入相等、不等、小於......等等比較算子。
為輔助「若」語句的使用,亦加入相等、不等、小於......等等比較算子。

### 新增算子
檔案的頂層僅允許變數宣告與術宣告,編譯時應可指定第一個要施展的術的名字,若無指定,便先行施展``術。

#### 比較運算
## 新增算子

### 比較運算
- `==`
- 等於
- `!=`
Expand All @@ -61,11 +63,11 @@

以上算子的求值結果皆為整數,若式子成立,值為1,否則值為0。運算優先級彼此相等,但比加減乘除都還要低。

#### 餘數
### 餘數

`` 取餘數。優先級介於乘除與加減間。

### 「若」語句
## 「若」語句

```音界
若(甲==乙)【
Expand Down Expand Up @@ -95,7 +97,7 @@

此結構中,唯有當上一層的條件不符合時,才會嘗試下個括號內的條件並執行基括號內的語句。例如,以上法咒唯有在「甲<=10」時才會去檢查「乙==1」,當所有條件都不成立時,就執行`不然`基括號內的語句。

###
##

```
術.輾轉相除(甲、乙)【
Expand All @@ -118,3 +120,20 @@
5. ``:右基括號,術體結束

在零.二版中,術的參數與歸值(回傳值)都是整數。若在任意分支中,術沒有歸值,編譯器應報錯。

## 作用域
術在定義之後才能使用,也就是說,不支援術的互相調用。

以下法咒是非法的。
```音界
術.甲()【 】
術.乙()【甲()】
```

## 外術(外部函式)

支援 `打印整數(數)` 此一外術,其接受一個整數作為參數,執行後會將該整數送進標準輸出。

## 法咒執行流程

編譯時應可指定第一個要施展的術的名字,若無指定,便先行施展``術。若檔案中無``術,執行最後一個宣告的``。若一個術都沒定義,編譯後的執行檔將直接結束。

0 comments on commit d57ffbe

Please sign in to comment.