# 语言参考

Oraset 编程语言 B-5 版本的完整语法参考文档，包含变量、数据类型、运算符和控制流等核心特性。

## 变量

### 声明变量

```oraset
var x = 10;
var name = "test";
var pi = 3.14;
var flag;
```

### 修改变量

```oraset
x = 20;
name = "new name";
```

### 复合赋值

```oraset
x += 5;
x -= 3;
x *= 2;
x /= 2;
x %= 3;
```

### 自增自减

```oraset
x++;
x--;
```

## 数据类型

- **数字**：整数和浮点数，如 `42`、`3.14`
- **字符串**：用双引号或单引号包围，如 `"Hello"`、`'World'`
- **数组**：用方括号定义，如 `[1, 2, 3]`

## 数组

### 创建数组

```oraset
var arr = [10, 20, 30, 40, 50];
var empty = array(5);
```

### 访问数组元素

```oraset
print(arr[0]);
arr[2] = 35;
```

### 数组长度

```oraset
var len = arrlen(arr);
```

## 运算符

### 算术运算符

```oraset
+   // 加法
-   // 减法
*   // 乘法
/   // 除法
%   // 取模
```

### 比较运算符

```oraset
==  // 等于
!=  // 不等于
>   // 大于
<   // 小于
>=  // 大于等于
<=  // 小于等于
```

### 逻辑运算符

```oraset
&&  // 逻辑与
||  // 逻辑或
!   // 逻辑非
```

## 输出

### print 函数

```oraset
print("Hello");              // 输出并换行
print("No newline", "nel");    // 输出不换行
print("A", "B", 123);          // 多个参数用空格分隔
print(arr);                    // 打印数组
```

## 控制流

### 条件语句

```oraset
if (x > 10) {
    print("x is big");
} else {
    print("x is small");
}
```

### 循环语句

```oraset
while (x < 100) {
    print(x);
    x++;
}

for (var i = 0; i < 10; i++) {
    print(i);
}
```

### 函数定义

```oraset
function add(a, b) {
    return a + b;
}

add(5, 3);
```

## 内置函数

### 数学函数

```oraset
abs(x)       // 绝对值
sqrt(x)      // 平方根
sin(x)       // 正弦
cos(x)       // 余弦
tan(x)       // 正切
pow(x, y)    // x的y次方
log(x)       // 自然对数
floor(x)     // 向下取整
ceil(x)      // 向上取整
round(x)     // 四舍五入
int(x)       // 转为整数
float(x)     // 转为浮点数
rand()       // 0-1随机数
rand(n)      // 0-n随机数
time()       // 当前时间戳
```

### 字符串函数

```oraset
len(str)     // 字符串长度
num(str)     // 字符串转数字
str(num)     // 数字转字符串
```

### 数组函数

```oraset
array(size)  // 创建指定大小的数组
arrlen(arr)  // 获取数组长度
```

### 输入函数

```oraset
input()           // 读取用户输入
input("提示:")     // 带提示的输入
```

## 文件配置

### sg 语法

```oraset
sg<nel>
print("All lines no newline");
print("Still same line");
```

`sg<nel>` 设置整个文件的 print 默认不换行。

## 注释

```oraset
# 单行注释
// 单行注释
/* 多行
   注释 */
```

---

Oraset Project &copy; 2026