Files
CMLeonOS/Branswe.md

328 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Branswe编程语言使用指南
## 简介
Branswe是一种简单的编程语言用于CMLeonOS系统中进行脚本编写和自动化操作。它提供了基本的控制台操作、变量管理、条件判断、循环、文件系统操作等功能。
## 基本语法
### 命令格式
```
命令名 [参数]
```
### 注释
```
# 这是注释
```
## 变量操作
### 定义文本变量
```
var(text) 变量名 = 值
```
### 变量赋值
```
var() 变量名 = 变量2
```
### 变量删除
```
var() 变量名 rm
```
### 变量运算
```
var() 变量名 =+ 变量2
var() 变量名 =- 变量2
var() 变量名 =* 变量2
var() 变量名 =/ 变量2
```
### 获取变量值
```
ref getvar 变量名
```
## 控制台操作
### 显示文本(不换行)
```
conshow 变量名
```
### 显示文本(换行)
```
conshowl 变量名
```
### 清屏
```
concls
```
### 输入
```
coninput 变量名
```
### 蜂鸣
```
conbeep
```
## 系统引用
### 鼠标位置
```
ref mousex
ref mousey
```
### 屏幕尺寸
```
ref screenx
ref screeny
```
### 控制台颜色
```
ref concolour-b
ref concolour-f
```
### 磁盘信息
```
ref getalldisks
```
## 条件判断
### decide语句
```
decide 变量1 操作符 变量2
```
支持的操作符:
- `==` 等于
- `!=` 不等于
- `>` 大于
- `<` 小于
- `>=` 大于等于
- `<=` 小于等于
### if语句
```
if 条件 then 真代码 else 假代码
```
### 示例
```
var(text) num1 = 10
var(text) num2 = 20
decide num1 == num2
if [] then conshow match else conshow no match
```
## 循环
### loop语句
```
loop << 变量名
```
执行变量中的代码,无限循环。
### 示例
```
var(text) code = conshow hello
loop << code
```
## 字符串操作
### 读取字符串并执行
```
rstr 变量名
```
执行变量中存储的代码(支持\n换行
### 示例
```
var(text) mycode = conshow hello\nconshow world
rstr mycode
```
## 文件系统操作
### 注册VFS
```
diskfile reg
```
### 创建文件
```
diskfile create file 路径
```
### 创建目录
```
diskfile create dir 路径
```
### 写入文件
```
diskfile write 内容 to 路径
```
### 示例
```
diskfile reg
diskfile create file /test.txt
var(text) content = Hello, World!
diskfile write content to /test.txt
```
## 系统功能
### 睡眠
```
sleep 变量名
```
### 电源管理
```
power off
power reboot
```
### 结束程序
```
end
```
## 方法定义
### 定义方法
```
method 变量部分 << 代码部分
```
### 调用方法
```
方法名 参数
```
### 示例
```
var(text) printname = print
var(text) myname = Leon
method printname [] << conshow []
printname myname
```
## 完整示例
### 示例1Hello World
```
# 简单的Hello World程序
var(text) hello = Hello, Branswe!
conshow hello
```
### 示例2变量操作
```
# 变量定义和运算
var(text) num1 = 10
var(text) num2 = 20
var() num1 =+ num2
conshowl num1
```
### 示例3条件判断
```
# 条件判断示例
var(text) a = 10
var(text) b = 20
decide a < b
if [] then conshow a is smaller else conshow a is larger
```
### 示例4循环
```
# 循环示例
var(text) code = conshow loop\nsleep 1000
loop << code
```
### 示例5文件操作
```
# 文件操作示例
diskfile reg
diskfile create file /test.txt
var(text) content = Hello, File System!
diskfile write content to /test.txt
```
### 示例6系统功能
```
# 系统功能示例
conbeep
var(text) wait = 1000
sleep wait
ref mousex
conshowl []
```
### 示例7自定义方法
```
# 自定义方法示例
var(text) greet = greet
var(text) name = Leon
method greet [] << conshow Hello, []!
greet name
```
## 注意事项
1. **大小写敏感**:命令和变量名区分大小写
2. **空格处理**:参数之间用空格分隔
3. **变量存储**:所有变量都作为文本存储,运算时会自动转换
4. **注释支持**:使用#号添加注释
5. **变量作用域**:变量在整个脚本中有效
6. **无限循环**loop命令会无限循环需要使用end或其他方式退出
7. **文件系统**使用diskfile前需要先执行diskfile reg注册VFS
## 最佳实践
1. **添加注释**:在复杂逻辑前添加注释说明
2. **使用变量**:避免硬编码,使用变量提高灵活性
3. **错误检查**:在使用变量前检查其值
4. **代码格式**:保持代码缩进和格式一致
5. **测试验证**:逐步测试每个功能确保正确性
## 参考资料
- CMLeonOS Shell命令
- Branswe编程语言规范
- Cosmos系统文档
## 更新日志
### 版本2.0
- 更新了所有命令的实际语法
- 添加了文件系统操作支持
- 添加了系统引用命令
- 添加了电源管理功能
- 添加了自定义方法功能
- 修正了条件判断和循环的语法
- 完善了变量操作命令
### 版本1.0
- 初始版本
- 添加了CMLeonOS兼容性支持
- 完善了错误处理