L脚本语言语法手冊 0.10版
L脚本语言语法手冊
0.10版
简 介
L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,眼下支持在中文、英文基础上的编程。并可扩展为随意语种。L脚本语言的语法结构简单。程序结构相对松散,易学易用。
眼下L脚本语言仍处于开发初期,功能尚不完好。眼下提供了一个简单的源代码编辑器,建议使用notepad++或者ultraedit进行源代码编辑。
文件夹
L脚本语言是在中文环境中开发的。L脚本的代码同意存储为ansi格式或unicode格式
L脚本语言定义了单一的语法格式
动作:对象类型,对象名称,參数列表
Action:ObjectType,ObjectName,ParamList
L脚本语言的每一行代码都遵从这一条语法规则,相对其它编程语言来说,这种设计更加简单。更easy实现,更easy学习和记忆
因为有着简洁的语法,L脚本语言的解释引擎实现相比比其它编程语言简单了很多,对于比較简单的编程任务。已经足够了
说明:语法文档中以红色字体标识的部分说明该项语言特性未来会在新版本号中删除,如今仍为可选
L脚本语言的凝视是以#打头的行,凝视和空行会被解释引擎自己主动忽略
当解释引擎发现某行代码中包括错误时会尽可能地提供错误信息并简单地将这行代码忽略掉
不论什么对象必须先进行定义之后才干引用,对象定义的格式为
定义:对象类型,对象名称,初始值
define:objecttype,objectname,initialvalue
比如
定义:整数,number1,0
define:int,number1,0
定义:整数,number2,1
define:int,number2,1
定义:浮点数,double,1.0
define:double,double1,1.0
定义:字符串,string1,”helloworld”
define:string,string1,”helloworld”
假设想要将对象的内容展示出来,能够这样
显示:number1
show:number1
显示:string1
show:string1
:是分隔符用来分隔动作和对象
,是分隔符用来分隔參数列表
在这里。对象的名称能够是除:,以外的不论什么字符串,中文、英文、韩文都是能够的
L脚本语言内置了对整数和浮点数的支持。同意进行四则运算、逻辑运算以及取余数等
整数定义的格式为
定义:整数,整数的名称,整数的初始值(可选)
define:int,nameofint,initialvalue(optional)
浮点数定义的格式为
定义:浮点数,浮点数的名称,浮点数的初始值(可选)
define:double,nameofdouble,initialvalue(optional)
整数和浮点数定义时若没有初始值,则默认初始化为0
数值计算和逻辑运算必须遵从固定的格式
计算:表达式的内容,表达式的内容,…
compute:expression,expression,…
如
计算:number1+number2
compute:number1+number2
计算:number1*number2
compute:number1*number2
计算:number1>number2
compute:number1>number2
计算:number1=number2+100,number1=number*3
compute: number1=number2+100,number1=number*3
每一行代码的执行结果会保存到一个“结果”对象中,这个对象是全局的
所以假设我们想要把数值计算的结果显示出来,就能够这样写
计算:number1+number2*100
compute:number1+number2*100
显示:结果
show:result
表达式的个数能够是随意多个。L脚本语言会依次计算每个表达式,并把最后一个表达式的运算结果存入“结果”对象
加减乘除四则运算
加法
计算:number+number2
compute:number+number2
显示:结果
show:result
减法
计算:number1-number2
compute:number1-number2
显示:结果
show:result
乘法
计算:number1*number2
compute:number1*number2
显示:结果
show:result
除法
计算:number1/number2
compute:numbe1/number2
显示:结果
show:result
取余数
计算:number1%number2
compute:number1%number2
显示:结果
show:result
赋值
计算:number1=number2+1
compute:number1=number2+1
显示:结果
show:result
计算:number1+=number2
compute:number1+=number2
计算:number1-=number2
compute:number1-=number2
计算:number1*=number2
compute:number1*=number2
计算:number1/=number2
compute:number1/=number2
计算:number1%=number2
compute:number1%=number2
括号的使用
乘法 除法 取余数 操作的优先级高于 加法和减法 同级的运算保持左结合性。因此假设希望改变运算的顺序,须要通过使用括号,如
计算:(number1+number2)*100
compute:(number1+number2)*100
逻辑运算
L脚本语言中逻辑值"真"等价于数值1, 逻辑值"假"等价于数值0
因此逻辑运算的值仅有1和0两种状态
比較大小
计算:number1>number2
compute:number1>number2
显示:结果
show:result
计算:number1>=number2
compute:number1>=number2
计算:number1<number2
compute:number1<number2
计算:number1<=number2
compute:number1<=number2
计算:number1==number2
compute:number1==number2
逻辑与、逻辑或、逻辑异或、逻辑非
位运算
包含按位取反,按位左移,按位右移。按位与,按位或,按位异或
L脚本语言中支持条件分支。叫做“假设”语句,格式为
假设:条件表达式或逻辑运算表达式 。条件为真时运行的语句
否则:条件为假时运行的语句
test:expression,action:
otherwise:action:
比如
假设:number1>number2,显示:"大于"
test:number1>number2,show:”big than!”
否则:显示:“小于”
otherwise:show:”less than!”
在L脚本语言中循环语句叫做“当”语句,格式为
当:条件表达式或逻辑运算表达式。条件为真时反复运行的语句
while:expression,action:
或者
当:条件表达式或逻辑运算表达式
#循环语句块
#假设:条件满足,跳出
#假设:条件满足,继续
结束
能够在循环体中通过 跳出 命令来结束循环。类似于C语言的break
能够在循环体中通过 继续 命令来忽略后面的循环体。又一次考察条件表达式開始新一轮的循环,类似于C语言的continue
比如
当:1,调用:函数,function1
while:1,call:function,function1
定义:整数,int1,100
当:int1>0
假设:int1==50,跳出
显示:int1
计算:int1-=1
结束
字符串定义时能够进行初始化。若没有初始化參数,则默觉得空串
字符串定义的格式为
定义:字符串。字符串的名称,字符串的初始值
define:string,nameofstring,intialvaue
比如
定义:字符串,string1,”hello”
define:string,string1,”hello”
定义:字符串。string2," world"
define:string,string2,” world”
支持字符串的连接操作
格式为
连接:字符串。第一个字符串,第二个字符串
connect:string,first string,second string
连接:字符串,string1,string2
connect:string,string1,string2
显示:string1
show:string1
支持字符串取子串的操作
格式为
取子串:子串名称,原字符串名称,取子串时的事实上位置。取子串的长度
getsubstring:nameofsubstring,originalstring,startpos,lengthofsubstring
如
定义:字符串,string3
define:string,string3
取子串:string3,string1,1,3
getsubstring:string3,string1,1,3
同意将字符串的内容清空
格式为
清空:字符串,字符串的名称
clear:string,nameofstring
支持字符串查找子串的操作
格式为
查找:字符串,原字符串,子串
find:string,originalstring,substring
假设找到子串。“结果”对象置为一个整数对象,其值是1否则值是0
如
查找:字符串,string1,string2
find:string,string1,string2
支持字符串替换子串的操作
格式为
替换:字符串,原字符串,字符串中的子串,替换的子串
replace:string,originalstring,substring,replacedstring
和查找一样。假设找到子串,“结果”对象置为一个整数对象。其值是1否则值是0
如
替换:字符串,string1,string2,"xyz"
replace:string,string1,string2,”xyz”
字符串能够转换大写和小写,还能够反转
语法格式为
转换:字符串名称,大写
transform:nameofstring,upper
转换:字符串名称,小写
transform:nameofstring,lower
转换:字符串名称。反转
transform:nameofstring,reverse
正則表達式本身是特殊格式的字符串,定义格式为
定义:正則表達式,正則表達式的名称,正則表達式的内容
define:regexp,name of regexp,regexp string content
如
定义:正則表達式,regexp1,"\d\d\d"
define:regexp,regexp1,”\d\d\d”
假设要使用正則表達式匹配某个字符串,格式例如以下
定义:字符串,str2,"abc"
define:string,str2,”abc”
定义:字符串,str1,123
define:string,str1,123
匹配:正則表達式,regexp1,str1
match:regexp,regexp1,str1
匹配:正則表達式,regexp1,str2
match:regexp,regexp2,str2
和其他编程语言一样,函数必须先定义之后才干进行调用
函数定义的格式为
定义:函数。函数的名称。形式參数列表
開始:函数。函数的名称
#函数体
结束:函数,函数的名称
结束
define:function,name_of_function,formalparameters
start:function, name_of_function
#functionbody
end:function, name_of_function
end
函数的參数能够是0个或随意多个。函数的參数必须是对象或静态数值
函数体能够是随意合法的代码行,可是不同意函数的嵌套定义
函数体必须是由对称的“開始“。“结束”包起来
函数体内部同意定义局部对象,其生存期随函数调用时产生。函数调用结束时销毁
函数调用的格式为
调用:函数,函数的名称,实际參数列表
调用:函数的名称,实际參数列表
函数的名称:实际參数列表
call:function, name_of_function,realparameters
call: name_of_function,realparameters
name_of_function:realparameters
L脚本语言的函数没有返回值。因此。假设我们须要保存函数执行的结果,能够将所需结果对象作为參数传递给函数
L脚本语言的函数參数是占位符号,并不能表示參数的对象类型,因此,在设计函数的时候须要自己确保形式參数与实际參数的类型一致,这样设计是为了实现简单,同一时候考虑L脚本语言并不适合处理大型任务,因此函数实现不会过于复杂,可是使用时应小心可能存在的问题
函数调用的样例代码
定义:整数,ab,22
定义:函数,乘以二,參数1
開始:函数,乘以二
计算:參数1=參数1*2
结束:函数,乘以二
乘以二:ab
显示:ab
L脚本语言中,文件和文件夹都是内置对象
打开文件或文件夹的语句会返回一个文件对象,不须要定义
格式为
打开:文件。文件对象名,文件的完整路径名
open:file,name_of_file_object,full_path_of_file
打开:文件夹,文件夹对象名,文件夹的完整路径
open:directory,name of directory object,full path of diretory
如:
打开:文件,file1,c:\1.txt
open:file,file1,c:\1.txt
打开:文件夹,dir1,c:\
open:directiory,dir1,c:\
对文件对象支持的操作有 复制、移动、删除、取大小、读取、写入
文件操作的语法格式为
复制:文件,源文件名称,目标文件名称
copy:file,sourcefilename,destfilename
移动:文件,源文件名称,目标文件名称
move:file,sourcefile,destfile
删除:文件,文件路径名
delete:file,filepathname
取大小:文件,文件对象,保存文件大小的整数对象
getsize:file,name of file object,name of int object
写入:文件,文件对象,内存对象
write:file,name of file object,name of memory object
写入:文件,文件对象,字符串对象
write:file,name of file object,name of string object
获取:属性,文件对象,保存文件属性的表对象
get:attribute,name of file object,name of table object
插入:表, 保存文件属性的表对象,属性名称
insert:table,name of table object,attribute name
设置:属性,文件对象,文件的属性
set:attribute,name of file object,name of table object
获取:文件对象,创建时间,保存创建时间的time对象名(新建)
get:fileobject,createtime,name of timeobject(create new one)
获取:文件对象,改动时间,保存改动时间的time对象名(新建)
get:fileobject,modifytime,name of timeobject
获取:文件对象,訪问时间,保存訪问时间的time对象名(新建)
get:fileobject,accesstime,name of timeobject
获取: 文件对象,驱动器,保存驱动器的字符串
get:fileobject,drive,name of string object
获取: 文件对象,文件夹,保存文件夹的字符串
get:fileobject,path,name of string object
获取: 文件对象,文件名称,保存文件名称的字符串
get:fileobject,filename,name of string object
获取: 文件对象,扩展名,保存扩展名的字符串
get:fileobject,extension,name of string object
对文件夹对象支持的操作有 枚举文件夹中的文件 、枚举文件夹中的子文件夹 、复制、 移动、 删除
打开:文件夹,文件夹对象,文件夹的路径
open:directory,name of directory object,full path of directory
枚举:文件,文件夹对象,保存文件列表的表对象
enum:file,name of directory object,name of table object
枚举:子文件夹,文件夹对象,保存文件夹列表的表对象
enum:subdir,name of directory object,name of table object
显示:保存文件列表的表对象
show:tableobject
显示:保存文件夹列表的表对象
show:tableobject
复制:文件夹,源文件夹的路径,目标文件夹的路径
copy:directory,source directory,dest directory
移动:文件夹,源文件夹的路径,目标文件夹的路径
move:directory, source directory,dest directory
删除:文件夹,文件夹的路径
delete:directory,full path of directory
L脚本语言内置了对訪问Windows注冊表的支持
打开一个注冊表项会返回一个注冊表对象。在这个对象上支持读取、写入、删除操作
语法格式为
打开:注冊表,注冊表对象名,注冊表路径,值的名称
open:registry,name of registry object,path of registery,key name
读取:注冊表,注冊表对象名,字符串对象名
read:registry, name of registry object,name of string object
写入:注冊表,注冊表对象名,字符串对象名
write:registry, name of registry object,,name of string object
删除:注冊表,注冊表对象名
delete:registry, name of registry object
如
打开:注冊表,reg1,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HttpServer
open:registry,reg1, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HttpServer
读取:注冊表,reg1,string1
read:registry,reg1,string1
写入:注冊表,reg1,string1
write:registry,reg1,string1
删除:注冊表,reg1
delete:registry,reg1
L脚本语言中。时间对象的定义方式为
定义:时间。时间对象的名称
define:time,name of time object
能够将当前时间读取到时间对象中
读取:当前时间, 时间对象的名称
read:currenttime,name of time object
时间对象能够通过比較运算符进行比較
假设想要让脚本在执行过程中等待一段时间,能够调用睡眠语句
睡眠:须要睡眠的毫秒数
sleep:millisecond
能够将时间对象的小时,分,秒读入到整数变量中
语法格式为
获取:时间对象名,时,整数变量名
get:timeobj1,hour,inthour1
获取:时间对象名,分,整数变量名
get:timeobj1,minute,intminute1
获取:时间对象名,秒,整数变量名
get:timeobj1,second,intsecond1
比如:
定义:时间,time1
define:time,time1
读取:当前时间,time1
read:currenttime,time1
显示:time1
show:time1
睡眠:1000
sleep:1000
定义:时间,time2
define:time,time2
读取:当前时间,time2
read:currenttime,time2
显示:time2
show:time2
假设:((time1<time2)||(time1==time2)),显示:"time1早于或等于time2"
test: ((time1<time2)||(time1==time2)),show:”time1 early than or equal to time2”
L脚本语言中的表的概念与Lua语言中的表的概念类似。实际上就是名字与对象之间的映射关系
表中的元素能够是随意合法的L脚本对象,表的大小是动态的,同意动态加入删除元素
表定义的语法格式为
定义:表,表的名称
define:table,name of table object
插入:表,表的名称,对象名
insert:table,name of table object,user object name
取大小,表。整数变量名
getsize:table,name of int object
取元素:表,元素的别名,元素在表中的索引
getelement:table,element’s replace name,index of element
比如
定义:字符串,str1,"hello"
define:string,str1,”hello”
定义:字符串,str2,"world"
define:string,str2,”world”
定义:整数,number1,123456
define:int,number1,123456
定义:浮点数,number2,1.75
define:double,number2,1.75
定义:表,table1
define:table,table1
插入:表,table1,str1
insert:table,table1,str1
插入:表,table1,str2
insert:table,table1,str2
插入:表,table1,number1
insert:table,table1,number1
插入:表,table1,number2
insert:table,table1,number2
定义:函数,function1,參数1,參数2
define:function,function1,param1,param2
開始:函数,function1
start:function,function1
显示:參数1
show:param1
显示:參数2
show:param2
结束:函数,function1
end:function,function1
插入:表,table1,function1
insert:table,table1,function1
显示:table1
show:table1
眼下L脚本支持TCP和UDP协议的网络訪问,后台使用堵塞式socket实现
对网络的訪问通过网络连接对象和地址对象完毕
定义地址对象的格式为
定义:地址,地址对象的名称,IP(如127.0.0.1),port号(如27015)
define:address,name of address object,IP,port
定义网络连接对象的格式为
定义:网络连接,网络连接的名称,TCP或UDP
define:netconnection,name of netconnection object,protocol type
针对网络连接对象的动作有监听,连接。发送,接收 格式为
连接: 网络连接的名称, 地址对象的名称
connect:netconnection object,addressobject
发送: 网络连接的名称,字符串对象名
send:netconnection object ,stringobject
接收: 网络连接的名称, 字符串对象名
receive:netconnection object,stringobject
具体请參考样例代码
L脚本语言内置了对HTTP协议的支持,能够实现httpclient功能
语法结构例如以下
定义:HTTP连接,站点连接
define:httpconnection,httpconnection object name
获取:站点连接,URL地址,保存页面内容的字符串
get:httpconnectionobject,url address,string object
提交:站点连接,URL地址,保存提交内容的字符串,保存响应信息的字符串
post:httpconnectionobject,url address,submit content string,reponse string
比如
定义:HTTP连接,站点连接
define:httpconnection,webconn
定义:字符串。页面Url
define:string,url
定义:函数,页面抓取
define:function,getweb
開始:函数。页面抓取
start:function,getweb
显示:请输入站点URL地址
show:”pleaser input url address”
等待:用户输入。页面Url
warit:userinput,url
获取:站点连接,http://www.126.com,页面Url
get: webconn, http://www.126.com,url
显示:页面Url
show:url
打开:文件,file1,c:\1.html
open:file,file1,c:\1.html
写入:文件,file1,页面Url
write:file,file1,url
结束:函数,页面抓取
end:function,getweb
当:1。调用:函数,页面抓取
while:1,call:function,getweb
定义:HTTP连接,站点连接
define:httpconnection,webconn
定义:字符串,页面Url,http://www.baidu.com
define:string,url,http://www.baidu.com
定义:字符串。表单数据,wd=123
define:string,forms,wd=123
定义:字符串。响应信息
define:string,response
提交:站点连接,页面Url,表单数据,响应信息
submit:webconn,url,forms,response
显示:响应信息
show:response
在程序中我们常常会用到随机信息
在L脚本语言中,随机数是一类对象,实际上是特殊的整数类型
用法为
生成:随机数,随机数对象的名称
generate:randomnumber, name of random number
刷新:随机数, 随机数对象的名称
refresh:randomnumber,name of random number
比如
生成:随机数,random1
generate:randomnumber,random1
显示:random1
show:random1
定义:整数,count,1000
define:int,count,1000
定义:函数,genrandom
define:function,genrandom
開始:函数,genrandom
start:function,genrandom
刷新:随机数,random1
refresh:randomnumber,random1
显示:random1
show:random1
计算:count=count-1
compute:count=count-1
结束:函数,genrandom
end:function,genrandom
当:count>0,调用:函数,genrandom
while:count>0,call:function,genrandom
L脚本语言支持自己定义库以及库的导入机制,以最大程度的提供灵活性,并同意将自己定义的函数注冊为全局动作
库文件是仅仅包括对象定义和函数定义的脚本文件
库文件必须以#scplib 为起始行
在库中定义的对象为全局用户对象和函数为全局用户函数
使用库时须要首先导入,语法格式为
导入:库,库文件的完整路径名
import:lib,full path of libfile
普通用户函数调用时的格式为
调用:函数,函数的名称,函数的參数列表
call:function,functionname,real parameters list
注冊为全局动作的函数就能够直接通过函数名来调用。语法格式为
注冊:函数,函数的名称
register:function,functionname
函数:函数的參数列表
function:real parameters list
请參考样例代码
十六、 与C/C++的交互
因为操作系统提供的API都是C语言的接口,为了实现功能扩展。L脚本语言也同意直接调用操作系统的C语言API函数
眼下。仅支持函数调用约定为__stdcall 的C语言函数
C语言的变量和L脚本语言的对象不是一一相应的关系。因此调用C语言函数的时候不能直接将L脚本语言的对象作为參数传入。可是能够进行适当的转换
L脚本语言中眼下实现了6种主要的C语言数据类型对象
C整数,C无符号整数,句柄,C字符指针。C宽字符指针。指针
相应的C语言数据类型为int ,unsigned int ,HANDLE, char *,wchar_t * ,void *
这里的句柄是指WINDOWS操作系统中的句柄类型HANDLE。指针是指C语言的无类型指针void *
在调用C语言函数之前须要进行适当的定义,格式为
定义:C函数,函数别名, 动态库文件,C语言函数原名,返回值类型,參数类型列表
比如
定义:C函数,MyOutputDebugStringW, c:\windows\system32\Kernel32.dll,OutputDebugStringW,无,C宽字符指针
定义:C函数,myMessageBoxW, c:\windows\system32\user32.dll,MessageBoxW,C整数,句柄,C宽字符指针,C宽字符指针,C无符号整数
调用C语言函数时须要传入适当的參数和返回值 格式为
调用:C函数, 函数别名,返回值,參数列表
比如
调用:C函数,myMessageBoxW,返回值,參数1,參数2,參数3,參数4
L脚本语言支持用户自己定义类,以支持面向对象的类型封装
语法格式为
定义:类,类的名字
define:class,name of class
開始:类。类的名字
start:class,name of class
定义:整数,成员变量,初始值
define:int,name of member,initialvalue
定义:字符串,成员变量字符串,初始值
define:string,name of member,initial value
定义:函数。成员函数,成员函数參数
define:function,name of member function,formal parameters
開始:函数,成员函数
start:function, name of member function
结束:函数,成员函数
end:function, name of member function
结束
结束:类。类的名字
结束
同意调用类的成员函数。语法格式为
调用:类的名字:成员函数,成员函数參数
call:classname:functionname,parameters
假设我们想要在程序中启动外部程序。能够
执行:程序,进程的名称,进程可执行文件的路径名,启动參数
run:process,process object name,full path of process file,parameter
假设想要关闭已启动的外部程序,能够
关闭:程序, 进程的名称
shutdown:process,process object name
比如:
执行:程序,proc1,notepad.exe,c:\hello.txt
run:process,proc1,notepad.exe,c:\hello.txt
关闭:程序,proc1
shutdown:process,proc1
L脚本内置了进程通信的支持。眼下支持命名管道方式的双向通信
语法格式为
打开:管道。管道对象名称,Windows管道名
写入:管道。管道对象名称,字符串名称
读取:管道,管道对象名称,字符串名称
关闭:管道,管道对象名称
比如
打开:管道,pipe1,\\.\pipe\mypipe1
open:pipe,pipe1, \\.\pipe\mypipe1
写入:管道,pipe1,string1
write:pipe,pipe1,string1
读取:管道,pipe1,string2
read:pipe,pipe1,string2
显示:string2
show:string2
关闭:管道。pipe1
close:pipe,pipe1
L脚本支持多线程,同意在脚本中派生新的线程。以支持并发操作
语法格式为
定义:线程,线程的名称,线程函数
define:thread,name of thread object ,thread function
执行:线程,线程的名称。线程函数的參数
run:thread,name of thread object,parameters
在这里。线程函数就是线程运行体所运行的操作,这里和调用函数非常相似,可是这个函数是在还有一个线程中运行的
具体的用法能够參考样例代码
二十一、 调试器使用
L脚本语言提供了一个简单的调试器,用来进行脚本源码的调试,在调试器中打开文件后,选中行点击右键就可以对代码行设置断点,点击调试button即開始调试过程。当脚本运行到设置了断点的行后就会中断下来,并在消息输出窗体中显示提示信息。
再次右键点击已设置断点的行就可以清除断点。
调试器也支持简单的调试命令
bp 行号 ,用来设置断点
bc 行号 ,用来清除断点
g ,调试执行脚本
sd ,单步调试脚本
s ,继续执行脚本
L脚本语言内置了一些password学算法操作
如字符串加密解密(RC4) 求字符串哈希值(MD5)
内存对象加解密(AES)
语法格式为
加密:字符串名称,密钥字符串名称
encrypt:name of string object,name of key string
解密:字符串名称,密钥字符串名称
decrypt: name of string object,name of key string
求哈希:字符串名称,保存哈希值的字符串,哈希算法名称
hash: name of string object,hash value string name,algorithm
加密:内存对象名称, 密钥字符串名称
encrypt:name of memoryobject,name of key string
解密:内存对象名称, 密钥字符串名称
decrypt:name of memoryobject,name of key string
比如
加密:str1,str2
encrypt:str1,str2
显示:str1
show:str1
解密:str1,str2
decrypt:str1,str2
显示:str1
show:str1
求哈希:str1,str3,MD5
hash:str1,str3,MD5
定义:字符串,str1,"我是一个字符串"
定义:字符串,str2,"密钥"
申请:内存,mem1,1024
写入:mem1,str1
显示:mem1
加密:mem1,str2
显示:mem1
解密:mem1,str2
显示:mem1
释放:内存,mem1
利用L脚本语言内置的password学算法机制。能够实现脚本内容的加密处理,以此实现算法保护
L脚本语言提供一个keyword为英文的版本号,以方便英文环境的编程,语法结构与中文版同样
眼下L脚本语言支持windows和Linux两个平台的开发。Linux平台上眼下提供有限的支持
L脚本语言中能够直接调用python代码,这样我们能够实现L脚本和python混合编程
在L脚本中。python代码是一个对象,声明一个python对象。就能够直接调用python的代码
语法格式为
定义:PYTHON,python对象名,python版本号(3.4或2.7)
调用:PYTHON, python对象名,python代码字符串
调用:PYTHON, python对象名, python代码文件的全路径
比如
定义:PYTHON,pythonscript1,3.4
调用:PYTHON,pythonscript1,"print('hello')"
调用:PYTHON,pythonscript1,H:\scriptengine\ScritpEngine\Release\pyemb7.py
L脚本语言内置了一些主要的图形对象,以支持图形化的编程
画布对象是一个窗口,在上面能够进行图形元素的绘制
眼下支持在画布对象上绘制矩形、椭圆
语法格式为
定义:画布,画布对象的名称
define:canvas,name of canvas object
显示: 画布对象的名称
show: name of canvas object
画:矩形, 画布对象的名称,左上角横坐标,左上角纵坐标,宽度,高度
draw:rect, name of canvas object,xpos ,y pos ,width,height
画:椭圆, 画布对象的名称,左上角横坐标,左上角纵坐标,宽度,高度
draw:elipse, name of canvas object,xpos ,y pos ,width,height
为方便进行系统管理,L脚本提供了一些内置的全局对象
如 计算机 是当前执行脚本的宿主机器
我们能够通过脚本来对本机进行控制
关闭:计算机
shutdown:computer
重新启动:计算机
reboot:computer
挂起:计算机
suspend:computer
L脚本语言语法手冊 0.10版的更多相关文章
- 在C++代码中调用L脚本语言
L脚本语言同意被其他编程语言调用.如C++,非常easy.仅仅要在宿主语言中载入L脚本引擎的动态库 直接调用这两个函数就能够了 extern "C" int __stdcall S ...
- L脚本语言实现文件加解密
L脚本语言中能够对内存对象进行AES加解密.我们能够非常easy地实现文件加解密 #scp #定义一个秘钥字符串 定义:字符串,str1,abcdefg 打开:文件,file1,c:\1.txt 打开 ...
- 用L脚本语言实现"L脚本语言控制台"
下载Windows平台解释引擎 L脚本语言中能够将随意字符串当做一行L脚本语言程序来运行.通过循环接收用户输入,就是一个控制台IDE了 #scp #scp没有控制台IDE?我们自己用scp来实现一个 ...
- L#脚本语言,直接把DLL当脚本执行(图解说明)
L#是什么:Run DLL as a Script. A Pure C# IL Runner,直接解析执行IL的脚本引擎. 从原理上讲是模拟执行了CLR的工作,从表现上讲就是把DLL作为资源直接加载执 ...
- Java语言程序设计基础篇第10版第5章习题答案
5.1 1 public class Demo { public static void main(String[] args) { // 创建一个输入对象 java.util.Scanner inp ...
- Python学习手冊笔记
之前为了编写一个svm分词的程序而简单学了下Python.认为Python非常好用.想深入并系统学习一下,了解一些机制,因此開始阅读<Python学习手冊(第三版)>. 假设仅仅是想高速入 ...
- 将PHP作为Shell脚本语言使用
我们都知道.PHP是一种非常好的动态网页开发语言(速度飞快.开发周期短--).可是仅仅有非常少数的人意识到PHP也能够非常好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并 ...
- 【D3 API 中文手冊】
[D3 API 中文手冊] 声明:本文仅供学习所用,未经作者同意严禁转载和演绎 <D3 API 中文手冊>是D3官方API文档的中文翻译. 始于2014-3-23日,基于VisualCre ...
- 提高java编程质量 - (一)易变业务使用脚本语言编写
脚本语言的3大特征: 1.灵活:脚本语言一般是动态类型,可以不声明变量类型直接使用,也可以在运行期改变类型:2.便捷:脚本语言是解释性语言,在运行期变更非常方便,而不用重启服务3.简单:脚本语言语法比 ...
随机推荐
- initialization 与 finalization 执行顺序 研究
看GIF: 第二个GIF: DEMO下载:http://files.cnblogs.com/files/del88/InitOrderDemo.zip
- 关于ZIP自动打包的进一步进化思路
http://blog.163.com/long200259@126/blog/static/11288755920093120529157/
- EF – 1.模式
3种数据库 code first model first database first 创建EF http://www.cnblogs.com/tangge/p/3834578.html DbSet ...
- WPF 获取指定文件的Icon
C# var icon = System.Drawing.Icon.ExtractAssociatedIcon(@"filepath"); var m = new MemorySt ...
- html禁止浏览器默认行为,让页面更像应用。
在html或body行内写入:oncontextmenu="return false" ondragstart='return false;' onselectstart=&quo ...
- cordova 整合 webpack vue
cordova 是hybrid开发app的一个框架,通过js桥接原生api实现了js调用原生的一些功能:本打算学习下阿里的weex:可是一直打包不了,加上之前也用过cordova,打算使用cordov ...
- 转:LNMP虚拟主机PHP沙盒绕过/命令执行(php exec命令被禁之后)
LNMP虚拟主机PHP沙盒绕过/命令执行 lnmp更新1.2版本,很多东西都升级了,很棒.不过还是发现一个BUG. LNMP是一款linux下nginx.php.mysql一键安装包. 下载:http ...
- VideoView视频缓冲进度条
效果图: 需求: 刚进入视频播放页时,屏幕中间有加载进度条 视频播放过程中,视频界面不动了,正在缓冲时,屏幕中间有加载进度条 private ObjectAnimator rotate; ImageV ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- asp.net core集成MongoDB
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言及MongoDB的介绍 最近在整合自己的框架,顺便把MongoDBD的最简单CRUD重构一下作为组件化集成到asp.net ...