L脚本语言语法手册

L脚本语言语法手册
0.02版


简  介

       L脚本语言是一个轻量级的,旨在接近自然语言的编程语言,目前支持在中文、英文基础上的编程。并可扩展为任意语种。L脚本语言的语法结构简单,程序结构相对松散,易学易用。
       目前L脚本语言仍处于开发初期,功能尚不完善。目前尚未提供源码编辑器,建议使用notepad++或者ultraedit进行源码编辑。



目录
一、         注释.. 2
二、         对象定义和引用.. 2
三、         整数和浮点数.. 3
四、         数值计算、逻辑运算、位运算.. 3
五、         分支和循环.. 5
六、         字符串和正则表达式.. 6
七、         函数.. 8
八、         文件和目录.. 9
九、         注册表.. 9
十、         时间日期.. 10
十一、        表.. 11
十二、        网络.. 12
十三、        随机数.. 12
十四、        库.. 13
十五、        与C/C++的交互.. 13
十六、        用户交互接口.. 14
十七、        类.. 14
十八、        进程.. 14
十九、        线程.. 15

二十、        调试器使用.. 15

二十一、        其它.. 15

一、      注释

L脚本语言的注释是以#打头的行,注释和空行会被解释引擎自动忽略
当解释引擎发现某行代码中包含错误时会尽可能地提供错误信息并简单地将这行代码忽略掉

二、      对象定义和引用

任何对象必须先进行定义之后才能引用,对象定义的格式为
定义:对象类型,对象名称,初始值
例如
          定义:整数,number1,0
          定义:整数,number2,1
          定义:浮点数,double,1.0

          定义:字符串,string1,”helloworld”


如果想要将对象的内容展示出来,可以这样
          显示:number1
          显示:string1

:是分隔符用来分隔动作和对象
,是分隔符用来分隔参数列表

在这里,对象的名称可以是除:,以外的任何字符串,中文、英文、韩文都是可以的
三、      整数和浮点数

L脚本语言内置了对整数和浮点数的支持,允许进行四则运算、逻辑运算以及取余数等
整数定义的格式为

          定义:整数,整数的名称,整数的初始值

浮点数定义的格式为

          定义:浮点数,浮点数的名称,浮点数的初始值

整数和浮点数定义时必须进行初始化

四、      数值计算、逻辑运算、位运算

数值计算和逻辑运算必须遵从固定的格式

          计算:表达式的内容

          计算:number1+number2
          计算:number1*number2
          计算:number1>number2

每一行代码的运行结果会保存到一个“结果”对象中,这个对象是全局的

所以如果我们想要把数值计算的结果显示出来,就可以这样写

          计算:number1+number2*100
          显示:结果

加减乘除四则运算

加法
          计算:number+number2
          显示:结果
减法
          计算:number1-number2
          显示:结果
乘法
          计算:number1*number2
          显示:结果
除法
          计算:number1/number2
           显示:结果
取余数
          计算:number1%number2
          显示:结果
赋值
          计算:number1=number2+1
           显示:结果   
          计算:number1+=number2
          计算:number1-=number2
          计算:number1*=number2
          计算:number1/=number2
          计算:number1%=number2
括号的使用
          乘法 除法 取余数 操作的优先级高于 加法和减法 同级的运算保持左结合性,因此如果希望改变运算的顺序,需要通过使用括号,如
          计算:(number1+number2)*100
逻辑运算
          L脚本语言中逻辑值"真"等价于数值1, 逻辑值"假"等价于数值0
          因此逻辑运算的值仅有1和0两种状态       
比较大小

          计算:number1>number2
          显示:结果
          计算:number1>=number2
          计算:number1<number2
          计算:number1<=number2

          计算:number1==number2

逻辑与、逻辑或、逻辑异或、逻辑非


位运算

          包括按位取反,按位左移,按位右移,按位与,按位或,按位异或


五、      分支和循环


L脚本语言中支持条件分支,叫做“如果”语句,格式为


如果:条件表达式或逻辑运算表达式 ,条件为真时执行的语句


否则:条件为假时执行的语句

例如

          如果:number1>number2,显示:"大于"

          否则:显示:“小于”

在L脚本语言中循环语句叫做“当”语句,格式为

当:条件表达式或逻辑运算表达式,条件为真时重复执行的语句

例如

          当:1,调用:函数,function1

六、      字符串和正则表达式

字符串定义时可以进行初始化,若没有初始化参数,则默认为空串

字符串定义的格式为

定义:字符串,字符串的名称,字符串的初始值

例如

定义:字符串,string1,”hello”

定义:字符串,string2," world"

支持字符串的连接操作

格式为

连接:字符串,第一个字符串,第二个字符串

连接:字符串,string1,string2

显示:string1

支持字符串取子串的操作

格式为

取子串:子串名称,原字符串名称,取子串时的其实位置,取子串的长度



定义:字符串,string3

取子串:string3,string1,1,3

允许将字符串的内容清空

格式为

清空:字符串,字符串的名称

支持字符串查找子串的操作

格式为

查找:字符串,原字符串,子串

如果找到子串,“结果”对象置为一个状态对象,其内容是“找到”否则其内容是“没找到”



查找:字符串,string1,string2

支持字符串替换子串的操作

格式为

替换:字符串,原字符串,字符串中的子串,替换的子串

和查找一样,如果找到子串,“结果”对象置为一个状态对象,其内容是“找到”否则其内容是“没找到”



替换:字符串,string1,string2,"xyz"

          正则表达式本身是特殊格式的字符串,定义格式为

定义:正则表达式,正则表达式的名称,正则表达式的内容


                             定义:正则表达式,regexp1,"\d\d\d"

          如果要使用正则表达式匹配某个字符串,格式如下

                             定义:字符串,str2,"abc"

定义:字符串,str1,123

匹配:正则表达式,regexp1,str1

匹配:正则表达式,regexp1,str2

七、      函数

和其它编程语言一样,函数必须先定义之后才能进行调用

函数定义的格式为

定义:函数,函数的名称,形式参数列表

开始:函数,函数的名称

#函数体

结束:函数,函数的名称



函数的参数可以是0个或任意多个,函数的参数必须是对象或静态数值


函数体可以是任意合法的代码行,但是不允许函数的嵌套定义


函数体必须是由对称的“开始“,“结束”包起来


函数体内部允许定义局部对象,其生存期随函数调用时产生,函数调用结束时销毁


函数调用的格式为


调用:函数,函数的名称,实际参数列表


L脚本语言的函数没有返回值,因此,如果我们需要保存函数运行的结果,可以将所需结果对象作为参数传递给函数


八、      文件和目录

L脚本语言中,文件和目录都是内置对象

打开文件或目录的语句会返回一个文件对象,不需要定义

格式为

打开:文件,文件对象名,文件的完整路径名

打开:目录,目录对象名,目录的完整路径

          如:

打开:文件,file1,c:\1.txt

打开:目录,dir1,c:\

          对文件对象支持的操作有 复制、移动、删除、取大小、读取、写入

          对目录对象支持的操作有 枚举目录中的文件 、枚举目录中的子目录 、复制、 移动、 删除

九、      注册表

L脚本语言内置了对访问Windows注册表的支持

打开一个注册表项会返回一个注册表对象,在这个对象上支持读取、写入、删除操作

语法格式为

打开:注册表,注册表对象名,注册表路径,值的名称

读取:注册表,注册表对象名,字符串对象名

写入:注册表,注册表对象名,字符串对象名

删除:注册表,注册表对象名



打开:注册表,reg1,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,HttpServer

读取:注册表,reg1,string1

写入:注册表,reg1,string1

删除:注册表,reg1

十、      时间日期

L脚本语言中,时间对象的定义方式为 

定义:时间,时间对象的名称

可以将当前时间读取到时间对象中

读取:当前时间, 时间对象的名称

时间对象可以通过比较运算符进行比较

                如果想要让脚本在运行过程中等待一段时间,可以调用睡眠语句

睡眠:需要睡眠的毫秒数

例如:

定义:时间,time1

读取:当前时间,time1

显示:time1

睡眠:1000

定义:时间,time2

读取:当前时间,time2

显示:time2

如果:((time1<time2)||(time1==time2)),显示:"time1早于或等于time2"

十一、 表

L脚本语言中的表的概念与Lua语言中的表的概念类似,实际上就是名字与对象之间的映射关系

表中的元素可以是任意合法的L脚本对象,表的大小是动态的,允许动态添加删除元素

表定义的语法格式为

定义:表,表的名称

插入:表,表的名称,对象名

取大小,表,整数变量名

取元素:表,元素的别名,元素在表中的索引

          例如

                   定义:字符串,str1,"hello"

定义:字符串,str2,"world"

定义:整数,number1,123456

定义:浮点数,number2,1.75

定义:表,table1

插入:表,table1,str1

插入:表,table1,str2

插入:表,table1,number1

插入:表,table1,number2

定义:函数,function1,参数1,参数2

开始:函数,function1

显示:参数1

显示:参数2

结束:函数,function1

插入:表,table1,function1

显示:table1

十二、 网络

目前L脚本支持TCP和UDP协议的网络访问,后台使用阻塞式socket实现

对网络的访问通过网络连接对象和地址对象完成

定义地址对象的格式为

定义:地址,地址对象的名称,IP(如127.0.0.1),端口号(如27015)

定义网络连接对象的格式为

定义:网络连接,网络连接的名称,TCP或UDP

针对网络连接对象的动作有监听,连接,发送,接收    格式为

连接: 网络连接的名称, 地址对象的名称

发送: 网络连接的名称,字符串对象名

接收: 网络连接的名称, 字符串对象名

详细请参考例子代码

十三、 随机数

在程序中我们经常会用到随机信息

在L脚本语言中,随机数是一类对象,实际上是特殊的整数类型

使用方法为

生成:随机数,随机数对象的名称

刷新:随机数, 随机数对象的名称

          例如
                   生成:随机数,random1
显示:random1

定义:整数,count,1000

定义:函数,genrandom

开始:函数,genrandom

刷新:随机数,random1

显示:random1

计算:count=count-1

结束:函数,genrandom

当:count>0,调用:函数,genrandom

十四、 库

L脚本语言支持自定义库以及库的导入机制,以最大程度的提供灵活性,并允许将自定义的函数注册为全局动作

库文件是只包含对象定义和函数定义的脚本文件

库文件必须以#scplib 为起始行

在库中定义的对象为全局用户对象和函数为全局用户函数 

使用库时需要首先导入,语法格式为

          导入:库,库文件的完整路径名

普通用户函数调用时的格式为

          调用:函数,函数的名称,函数的参数列表

注册为全局动作的函数就可以直接通过函数名来调用,语法格式为

          注册:函数,函数的名称

          函数:函数的参数列表

请参考例子代码

十五、 与C/C++的交互

由于操作系统提供的API都是C语言的接口,为了实现功能扩展,L脚本语言也允许直接调用操作系统的C语言API函数

目前,仅支持函数调用约定为__stdcall 的C语言函数

十六、 用户交互接口


十七、 类

L脚本语言支持用户自定义类,以支持面向对象的类型封装

语法格式为

          定义:类,类的名字

          开始:类,类的名字

                   定义:整数,成员变量,初始值

                   定义:字符串,成员变量字符串,初始值

                   定义:函数,成员函数,成员函数参数

                   开始:函数,成员函数
                          


                   结束:函数,成员函数

          结束:类,类的名字

允许调用类的成员函数,语法格式为

          调用:类的名字:成员函数,成员函数参数

十八、 进程

如果我们想要在程序中启动外部程序,可以

          运行:程序,进程的名称,进程可执行文件的路径名,启动参数

如果想要关闭已启动的外部程序,可以

          关闭:程序, 进程的名称

例如:

    运行:程序,proc1,notepad.exe,c:\hello.txt

          关闭:程序,proc1

L脚本内置了进程通信的支持,目前支持命名管道方式的双向通信

语法格式为

打开:管道,管道对象名称,Windows管道名

写入:管道,管道对象名称,字符串名称

读取:管道,管道对象名称,字符串名称

关闭:管道,管道对象名称

例如

打开:管道,pipe1,"\\.\pipe\mypipe1"

写入:管道,pipe1,string1

读取:管道,pipe1,string2

显示:string2

关闭:管道,pipe1

十九、 线程

L脚本支持多线程,允许在脚本中派生新的线程,以支持并发操作

语法格式为

          定义:线程,线程的名称,线程函数

          运行:线程,线程的名称,线程函数的参数

在这里,线程函数就是线程执行体所执行的操作,这里和调用函数很相似,但是这个函数是在另一个线程中执行的

详细的使用方法可以参考例子代码

二十、  调试器使用

L脚本语言提供了一个简单的调试器,用来进行脚本源代码的调试,在调试器中打开文件后,选中行点击右键即可对代码行设置断点,点击调试按钮即开始调试过程,当脚本执行到设置了断点的行后就会中断下来,并在消息输出窗口中显示提示信息。再次右键点击已设置断点的行即可清除断点。

调试器也支持简单的调试命令

bp 行号  ,用来设置断点

bc 行号   ,用来清除断点

g           ,调试运行脚本

sd           ,单步调试脚本

s              ,继续运行脚本

二十一、            密码学相关

L脚本语言内置了一些密码学算法操作

如字符串加密解密(RC4) 求字符串哈希值(MD5)

 语法格式为

加密:字符串名称,密钥字符串名称

解密:字符串名称,密钥字符串名称

求哈希:字符串名称,保存哈希值的字符串,哈希算法名称

例如

加密:str1,str2

显示:str1

解密:str1,str2

显示:str1

求哈希:str1,str3,MD5

二十二、            其它


 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要下载Pine脚本语言手册,可以进行以下步骤。 首先,打开您的网络浏览器,并输入“Pine脚本语言手册下载”进行搜索。您可以选择使用常见的搜索引擎,如谷歌、百度等。 随后,浏览搜索结果,寻找包含Pine脚本语言手册的官方来源。通常,官方网站或开发者的网站会提供最新的手册下载。 一旦找到官方来源,点击相关链接,进入该网站的下载页面。 在下载页面中,通常会提供手册的版本选择。请选择您所需要的版本,根据您的需求可以选择新版本或旧版本。 选择版本后,可能需要进行一些必要的注册或登录步骤,以确保所提供的资料的合法性。 完成注册或登录后,您将被引导至手册的下载页面。点击下载按钮即可开始下载。 下载完成后,您可以将手册保存至您的计算机中的指定文件夹,以便随时查阅或打印。 总之,要下载Pine脚本语言手册,您需要通过搜索引擎找到官方或开发者的网站,选择所需的版本并完成下载。记得保存手册以备查阅。 ### 回答2: 要下载pine脚本语言手册,首先需要在网络上搜索相关的网站或资源。可以尝试搜索引擎或者技术社区的论坛来找到有效的下载链接。 一些可能的地方可以搜索包括官方网站、开发者博客、Github等。通过访问这些网站,通常可以找到脚本语言手册的下载页面或者相关的文档资源。 一旦找到下载页面,可以点击相关的链接进行下载。有时候手册可能会以PDF格式提供,点击链接后会直接下载到本地设备。也有些手册可能以在线阅读的形式提供,这时候可以直接访问在线页面并查看手册内容。另外,还可能会有其他格式的手册供下载,如EPUB或MOBI格式,可以根据个人喜好选择合适的格式。 下载完成后,可以将手册保存到本地的计算机或其他设备中,以便随时查阅。如果需要打印出来,可以选择打印出纸质版本。 需要注意的是,有些脚本语言手册可能需要付费才能下载,这时候可能需要进行购买或者订阅操作。为了确保合法性和安全性,建议选择官方或可信的来源进行下载,以避免下载到不安全或非法的内容。 总而言之,下载pine脚本语言手册需要通过搜索合适的网站或资源,并找到可信的下载链接。下载后保存到本地,即可随时方便地查阅和学习。 ### 回答3: 您可以在以下几个途径下载pine脚本语言手册: 1. 官方网站下载:您可以访问pine脚本语言的官方网站,在下载页面上找到相应的手册下载链接。官方手册通常包含了pine脚本的完整语法、函数和操作符等内容,是最权威的参考资料。 2. 编程社区、论坛或博客下载:有些编程社区、论坛或博客上可能会有pine脚本语言手册的整理和分享,您可以通过在搜索引擎中输入相关关键词来寻找这些资源。这些手册可能是由技术爱好者或开发者编写的,内容可能会有所差异,但仍然是学习pine脚本的有用参考资料。 3. 在线文档下载:一些在线技术文档网站或教育平台也可能提供pine脚本语言手册的下载,比如一些知名的编程学习网站或在线教育平台。您可以在这些网站上搜索pine脚本手册,并进行下载。 不管您选择哪种方式进行下载,建议在学习pine脚本语言时,多参考不同版本的手册,保持对新版本的了解,这有助于更全面地理解和运用pine脚本语言。另外,建议结合实际编程练习,通过实践来加深对pine脚本的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值