脚本(暂时叫做IBasic1...)基本语法
注释: //...
脚本的值的类型:
Number: 数字类型. 如: 1, 3.14, 0.1.
String: 字符串类型. 使用一对双引号括住一串字符序列. 如: "a", "abc"
字符串转义字符:
转义字符 意思
\r 回车
\n 换行
\t 水平制表符
\d "
\s SPACE
\\ \
Function: 函数类型. 对一个函数的引用.
Reference: 引用类型. 对一个变量的引用.
List: 列表类型. 一系列数据的集合, 这些数据可以通过键或索引获取或修改.
Null: 空类型. 表示变量或表项没有被使用过.
自定义类型:
自定义类型通过列表实现. 通过设置列表的"Type"键(其值的类型必须为String或Null)指定类型.
L = newlist
L::"Type" = "O"
print type L // => O
定义局部变量: local [变量名1] = [初始化表达式], [变量名2] = [初始化表达式][, ...N]
打印值: print [表达式]
输入值: input [变量名]
表达式计算:
let [表达式]
运算符:
优先级 运算符
1(低) =
2 + - <-(列表结合) += -= ..(字符串连接)
3 * / \ % *= /= \= %=
4 == > < >= <= <>
5 not and or xor
6 #(函数调用) :(方法)
7 &(引用) $(解引用)
8 ::(表项) ->(数组)
9 ^ ^=
10 newlist(新建列表)
11(高) type(获取值得类型)
#运算符:
print #F(1, 2)
func F(A, B)
return A + B
endfunc
&和$运算符:
V = 100
Ref = &V //引用
print $Ref //解引用
::运算符:
L = newlist
L::"A" = 100
L::"B" = 200
print L::"A" // => 100
print L::"B" // => 200
->运算符:
L = newlist
L->-1 = 100
L->0 = 200
L->1 = 300
print L->-1 // => 100
print L->0 // => 200
print L->1 // => 300
:运算符:
L = newlist
L::"A" = 100
L::"F" = F
L:"F"() // => 100
func F()
print Self::"A" // 通过Self引用自己
endfunc
<-运算符:
L1 = newlist
L2 = newlist
L1::"A" = 100
L2::"B" = 200
L1 <- L2
print L1::"A" // => 100
print L2::"B" // => 200
条件语句:
形式1:
if [条件表达式]
[语句集合]
endif
形式2:
if [条件表达式]
[语句集合1]
else
[语句集合2]
endif
形式3:
if [条件表达式] then [语句]
形式4:
if [条件表达式] then [语句1] else [语句2]
分支选择语句:
select [表达式1]
case [表达式2]
[语句集合1]
exitselect
case [表达式3]
[语句集合2]
exitselect
[...N]
default //非必选, 但是如果要达到效果必须置尾
[语句集合3]
exitselect
endselect
while循环(当型循环):
while [条件表达式]
[语句集合]
endwhile
退出while循环:
exitwhile
进入下一次while循环:
nextwhile
do循环(直型循环):
do
[语句集合]
repeat [条件表达式]
退出do循环:
exitdo
进入下一次do循环:
nextdo
for循环:
for [计数器变量] in [起始值表达式] to [结束值表达式] step [步长]
[语句集合]
next [计数器变量]
退出for循环:
exitfor
进入下一次for循环:
nextfor [计数器变量]
返回语句:
return [返回值表达式]
运算符重载语句:
形式1:
opt [运算符] type1 [操作数类型字符串表达式] call [函数]
形式2:
opt [运算符] type1 [操作数1类型字符串表达式] type2 [操作数2类型字符串表达式] call [函数]
重载+运算符示例:
opt + type1 "Number" type2 "Number2" call F
func F(A, B)
return A * B
endfunc
print 2 + 3 // => 6. 示例而已, 一般不会这样做
异常抛出语句:
throw [异常表达式]
捕获异常语句:
try
[语句集合1]
endtry
catch [储存异常的变量]
[语句集合2]
endcatch
运行脚本(假设脚本文件路径为: C:\1.ibs):
注释: //...
脚本的值的类型:
Number: 数字类型. 如: 1, 3.14, 0.1.
String: 字符串类型. 使用一对双引号括住一串字符序列. 如: "a", "abc"
字符串转义字符:
转义字符 意思
\r 回车
\n 换行
\t 水平制表符
\d "
\s SPACE
\\ \
Function: 函数类型. 对一个函数的引用.
Reference: 引用类型. 对一个变量的引用.
List: 列表类型. 一系列数据的集合, 这些数据可以通过键或索引获取或修改.
Null: 空类型. 表示变量或表项没有被使用过.
自定义类型:
自定义类型通过列表实现. 通过设置列表的"Type"键(其值的类型必须为String或Null)指定类型.
L = newlist
L::"Type" = "O"
print type L // => O
定义局部变量: local [变量名1] = [初始化表达式], [变量名2] = [初始化表达式][, ...N]
打印值: print [表达式]
输入值: input [变量名]
表达式计算:
let [表达式]
运算符:
优先级 运算符
1(低) =
2 + - <-(列表结合) += -= ..(字符串连接)
3 * / \ % *= /= \= %=
4 == > < >= <= <>
5 not and or xor
6 #(函数调用) :(方法)
7 &(引用) $(解引用)
8 ::(表项) ->(数组)
9 ^ ^=
10 newlist(新建列表)
11(高) type(获取值得类型)
#运算符:
print #F(1, 2)
func F(A, B)
return A + B
endfunc
&和$运算符:
V = 100
Ref = &V //引用
print $Ref //解引用
::运算符:
L = newlist
L::"A" = 100
L::"B" = 200
print L::"A" // => 100
print L::"B" // => 200
->运算符:
L = newlist
L->-1 = 100
L->0 = 200
L->1 = 300
print L->-1 // => 100
print L->0 // => 200
print L->1 // => 300
:运算符:
L = newlist
L::"A" = 100
L::"F" = F
L:"F"() // => 100
func F()
print Self::"A" // 通过Self引用自己
endfunc
<-运算符:
L1 = newlist
L2 = newlist
L1::"A" = 100
L2::"B" = 200
L1 <- L2
print L1::"A" // => 100
print L2::"B" // => 200
条件语句:
形式1:
if [条件表达式]
[语句集合]
endif
形式2:
if [条件表达式]
[语句集合1]
else
[语句集合2]
endif
形式3:
if [条件表达式] then [语句]
形式4:
if [条件表达式] then [语句1] else [语句2]
分支选择语句:
select [表达式1]
case [表达式2]
[语句集合1]
exitselect
case [表达式3]
[语句集合2]
exitselect
[...N]
default //非必选, 但是如果要达到效果必须置尾
[语句集合3]
exitselect
endselect
while循环(当型循环):
while [条件表达式]
[语句集合]
endwhile
退出while循环:
exitwhile
进入下一次while循环:
nextwhile
do循环(直型循环):
do
[语句集合]
repeat [条件表达式]
退出do循环:
exitdo
进入下一次do循环:
nextdo
for循环:
for [计数器变量] in [起始值表达式] to [结束值表达式] step [步长]
[语句集合]
next [计数器变量]
退出for循环:
exitfor
进入下一次for循环:
nextfor [计数器变量]
返回语句:
return [返回值表达式]
运算符重载语句:
形式1:
opt [运算符] type1 [操作数类型字符串表达式] call [函数]
形式2:
opt [运算符] type1 [操作数1类型字符串表达式] type2 [操作数2类型字符串表达式] call [函数]
重载+运算符示例:
opt + type1 "Number" type2 "Number2" call F
func F(A, B)
return A * B
endfunc
print 2 + 3 // => 6. 示例而已, 一般不会这样做
异常抛出语句:
throw [异常表达式]
捕获异常语句:
try
[语句集合1]
endtry
catch [储存异常的变量]
[语句集合2]
endcatch
运行脚本(假设脚本文件路径为: C:\1.ibs):
IBasic1 -f "C:\1.ibs"
解释器下载地址: http://www.vdisk.cn/down/index/10828948