squirral 中文文档

上传人:子 文档编号:43017687 上传时间:2018-06-04 格式:DOC 页数:39 大小:168KB
返回 下载 相关 举报
squirral 中文文档_第1页
第1页 / 共39页
squirral 中文文档_第2页
第2页 / 共39页
squirral 中文文档_第3页
第3页 / 共39页
squirral 中文文档_第4页
第4页 / 共39页
squirral 中文文档_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《squirral 中文文档》由会员分享,可在线阅读,更多相关《squirral 中文文档(39页珍藏版)》请在金锄头文库上搜索。

1、Squirrel 是面向对象的高级编程语言,被设计用于内存大小,带宽,实时性要求较高的应用, 比如游戏类的应用。虽然 Squirrel 提供了很广泛的特性,像动态类型,委托,高阶函数, 迭代器,尾递归,异常处理,自动内存管理,但是 Squirrel 的编译器和虚拟机和在一起才 只有 6 千多行 c+代码(http:/squirrel-lang.org/doc/squirrel2.html#d0e38) 。词法结构|-标识符|-关键字|-操作符|-其他分隔符|-字符数值和类型|-整型|-浮点数|-字符串|-空值|-布尔值|-表|-数组|-函数|-类|-类的实例|-迭代器|-自定义类型|-线程|-

2、弱引用 执行上下文|-变量 定义|-语句块|-控制流定义|-Loops 定义|-break 定义|-continue|-return|-yield|-局部变量声明|-函数声明|-类声明|-try/catch|-throw|-const|-enum|-表达式定义表达式|-赋值和新槽|-运算符|-表构造器|-委托|-克隆|-数组构造器 表|-构造|-创建槽|-删除槽 数组 函数|-函数声明|-函数调用|-函数绑定环境变量|-自由变量|-尾递归 类|-类声明|-类实例|-继承|-元方法 迭代器 常量和枚举类型|-常量|-枚举类型|-备注 线程|-使用线程 弱引用 委托|-set|-get|-news

3、lot|-delslot|-add|-sub|-mul|-div|-modulo|-unm|-typeof|-cmp|-call|-cloned|-nexti|-tostring|-inherited|-newmember 内置函数|-全局函数|-默认委托Squirrel 文档翻译文档翻译( Lexical Structure )标识符标识符: 标识符以字母或下划线开头,后面可以跟任意数量的字母数字或者下划线。Squirrel 是门 大小写敏感的语言,这意味着同一个字母的大小写会被认为是不同的字母,比如“Foo“, “fOo“, “foo“,将会被看做三个完全不同的标识符。 id:= a-zA

4、-Z_+a-zA-Z_0-9*关键字:关键字: 下面这些单词是 Squirrel 的保留字,不能被用作标识符。breakcasecatchclassclonecontinue constdefaultdelegatedeleteelseenum extendsforfunctionifinlocal nullresumereturnswitchthisthrow trytypeofwhileparentyieldconstructor vargcvargvinstanceoftruefalsestatic这些关键字的详细信息将会在后续文档中说明操作符:操作符: Squirrel 识别以下的操作

5、符: !=|=“ 字符字符 Squirrel 接受整数,浮点数和字符串字符。 34整数(基数 10) 0xFF00A120整数(基数 16) 0753整数(基数 8) a整数 1.52浮点数 1.e2浮点数 1.e-2浮点数 “Im a string“字符串 “Im a verbatim string“字符串 “ Im a multiline verbatim string “字符串IntegerLiteral := 0-9+ | 0x 0-9A-Fa-f+ | .+ | 00-7+FloatLiteral := 0-9+ . 0-9+ FloatLiteral := 0-9+ . e|E +

6、|- 0-9+ StringLiteral:= “.* “ VerbatimStringLiteral:= “.* “注释注释 注释是可以被编译器忽略的文本,但是对与编程来说很有用。注释通常是作为注解被嵌入 代码中,编译器以空格对待。 /*(斜杠,星号)字符,后面跟任意序列的字符串(包括新行) ,再跟*/字符,这种语法格 式很像 AnsiC 的注释语法。 /* this is a multiline comment. this lines will be ignored by the compiler */ /(两个斜杠)字符,后面跟随任意序列的字符,没有反斜杠的新行结束这样的注释,这 种注释

7、通常被称为单行注释。 /this is a single line comment. this line will be ignored by the compiler值和数值类型值和数值类型 Squirrel 是们动态类型语言,所以虽然变量指向的值有类型,但是变量本身没有类型。 Squirrel 的基本类型有:整型,浮点型,字符型,空值,表,数组,函数,迭代器,类, 实例,布尔型,线程,用户类型。整型:整型: 整型被表示为32位(更高)的有符号数字 local a = 123 /十进制local b = 0x0012 /十六进制 local c = 075 /八进制 local d = w

8、/ASCII 值 浮点型浮点型 浮点型被表示为32位(更高)的浮点型数 local a=1.0 local b=0.234字符串字符串 字符串是固定序列的字母,修改一个字符串必将创建一个新的字符串Squirrel 的字符串行为上很像 C 或者 C+,它以双引号作为分界符,可以包含转义字符 (/t,/a,/b,/n,/r,/v,/f,/,/“,/,/0,/xhhhh). 纯字面意义的字符串以“开始,以与其匹配的引号结尾,字面意义的字符串可以通过换行 进行扩展,如果这样,它将在引号间包含任意个空白字符。 local a = “Im a wonderful string/n“ /含有一个新行 loc

9、al x = “Im a verbatim string/n“ / /n 被拷贝到字符串中,这类似于规则字符串中/n对于纯字面意义的字符串唯一的类外就是可以通过多加一个引号的方法向字符串中插入引 号。 local multiline = “ this is a multiline string it will “embed“ all the new line characters “ 空值(空值(Null) 空值类型是一个原始类型,用来表示空值,空的,或者不存在的引用,它只有一个值,叫 做 null。 local a=null 布尔型布尔型 布尔型只有两个值。他们的字面值是 true 和 fa

10、lse。布尔值用来表示条件的有效性(告诉 条件是真是假) local a = true; 表表 表是一个键值对的方式实现的关联容器,键值对叫做槽。 local t= local test= a=10,b=function(a) return a+1; 数组数组 数组是简单的对象序列,他的大小动态可变,索引从0开始 local a=“Im“,“an“,“array“ local b=null b0=a2;函数函数 函数和那些 C 风格语言的以及大多编程语言的函数一样,但是它也有一些关键的区别(看 下面) 。类:类: 类是以键值对方式实现的关联容器,类可以通过类表达式或者类生命创建。类的成员可以

11、在创建的时候从其他的类继承。类创建之后,只有在创建类的实例后才可以添加成员。类的实例:类的实例: 类的时候通过调用类对象进行创建。实例,和表一样,以键值对的方式的。实例的成员不 能被动态添加或删除,但是成员的值可以被改变。迭代器迭代器 迭代器是可以被表达式 yield 挂起,稍后可以被激活的函数。用户类型用户类型 用户类型是一块被宿主进程定义但是存储在 Squirrel 变量中的内存。(See Userdata and UserPointers).线程线程 线程是一种协作执行的对象,也被认为是协程弱引用弱引用 弱引用是一种指向别的对象,但是自身没有强引用的对象。(See Weak Refere

12、nces).Squirrel 文档翻译文档翻译(Execution Context)2010-07-15 20:52103人阅读评论(0)收藏举报执行上下文:执行上下文: 所谓的执行环境,是指函数执行的堆栈帧和函数的上下文环境(this) ,函数的堆栈帧是栈 的一部分,用来存放函数内部局部变量存放的地方。函数的上下文环境是被函数的调用者 作为隐含参数传递给函数(看 Functions). 在执行过程中,函数体透明的引用他的执行上下 文环境,也就是一个简单的标识符既可以指向局部变量,也可以指向一个环境对象槽。全 局变量需要特定的语法。环境对象可以被 this 显式的访问。变量:变量: Squir

13、rel 中有两类变量,局部变量和表/数组槽。因为全局变量存放在一个表中,所以它是槽。一个简单标识符可以指向局部变量或者环境对象中的槽。 derefexp : = id; _table“foo“ _array10 对于表,我们可以用“.”语法: derefexp : = exp . id _table.foo对于一个标识符,Squirrel 会首先检查它是否是局部变量(函数参数或者局部标量) ,如果 不是,它会检查该标识符是否是环境对象的成员(this) 。比如: function testy(arg) local a=10;print(a);return arg; 会访问局部变量 a,打印出1

14、0 function testy(arg) local a=10;return arg+foo; 这种情况,foo 等同于“this.foo”或者 this“foo“.全局变量存放在被称为“root table”的表中。通常情况下,在全局范围里,环境对象就是 root table。但是可以在其他的范围里显式的访问全局表,槽名必须加前缀: (:foo). exp:= : id 比如 function testy(arg) local a=10;return arg+:foo; 访问全局变量 foo。然而(自从 squirrel 2.0),如果一个变量不是局部变量并且在“this”对象中找不到,S

15、quirrel 会在全局表中查找。 function test() foo = 10; 等同于: function test() if(“foo“ in this) this.foo = 10;else :foo = 10; Squirrel 文档翻译文档翻译(Statements)分类: Squirrel 2010-07-15 22:58150人阅读评论(0)收藏举报一个 Squirrel 是一系列的声明块组成。 Squireel 中声明块和和 C 系列的语言很相似 (C/C+, Java, C# etc.):赋值,函数调用,程 序流控制结构,等等,并且外加一些自定义的声明,像 yield,table 和数组构造器(所有 这些细节的信息后续文档中都覆盖到了) 。声明块可以被新行或者“;”(如果在 switch/case 结构中的话也可以被 case 和 default 分割) ,如果声明块后跟有“”上述分割符 号是非必须的。块块 stat := stats 被“”分割的一串声明叫做块,块本身也是声明块。控制流声明控制流声明 Squirreel 实现了最常用的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号