【架空/伪文档】PinkShell编译模式快速入门

第零章:为什么选择PinkShell?

PinkShell是由Exquisite开发面向对象的Shell和编程语言具有Shell和编译两种独立模式,本文档是编译模式的教程。

PinkShell的一些特点:

  • 跨平台:Pink OSWindowsLiunxMac OS等操作系统都能兼容PinkShell。
  • 系统支持:Pink OS自带PinkShell环境,此系统的GUI程序和系统软件都是使用PinkShell开发的。
  • 运行效率高:PinkShell的峰值运行效率仅次于C语言。
  • 快速部署:PinkShell可以直接生成可执行文件,如C语言一样便捷。

第一章:环境配置

此文档假设以下条件:

操作系统版本Pink OS 17.7.0
PinkShell版本8.2.0
PinkShell位置/system/system pack/shell
程序位置/bin

PinkShell文件的后缀名是.sh,在/bin创建一个名为Hello.sh,然后使用文本编辑器打开。

第二章:基础声明

如果这个文件是编译模式的程序,需要在开头加入这样的声明:

$ mode compile ;

否则会以Shell模式运行。

第三章:数据类型

PinkShell严格区分数据类型,使用错误的数据类型会报错或出现逻辑错误。

整数

类型范围
auto_int无限
short_int-32768~32767
long_int小于-32,768或大于32,767

浮点数

类型范围
auto_float无限
short_float2.3E-308~1.7E+308
long_float小于2.3E-308或大于1.7E+308

字符串

类型范围
auto_str无限
short_str0字节~1024字节
long_str大于1024字节

第四章:函数

函数区分数据类型,通常是auto_int

创建和调用函数的语法如下:

defined function <数据类型> <创建的函数名字> (<参数1>,<参数2>...) do
    <代码块> ;
end
调用的函数名字(<参数1>,<参数2>...) ;

PinkShell需要有一个main函数作为程序入口,不需要额外调用,大概是这样

defined function auto_int main() do
    <代码块> ;
end

第五章:输出

output类中的echo函数可以输出数据,语法如下:

output.echo (<参数>) ;

完整的Hello world程序是这样的:

$ mode compile ;

defined function auto_int main() do
    output.echo ("Hello world!\n") ;
end

第六章:变量

变量也区分数据类型,语法如下:

<数据类型> <变量名> -> <值>

以下是一个示例,用于连接字符串:

$ mode compile ;

defined function auto_int main() do
    auto_str a -> "Hello" ;
    auto_str b -> "World" ;
    output.echo (a + b + "\n") ;
end

第七章:输入

input函数可以获取键盘在终端输入的信息,可以传达到变量,语法如下:

input (<参数(通常是空的)>) ;

以下是一个示例,用于获取你的名字:

$ mode compile ;

defined function auto_int main() do
    auto_str name -> input () ;
    output.echo ("你好," + name + "\n") ;
end

第八章:判断

if...elseif...else语句用来进行条件判断,语法如下:

if (<条件>) then
    <代码块> ;
elseif (<条件>) then
    <代码块> ;
else then
    <代码块> ;
end

第九章:循环

while语句可以循环执行一个代码块,在没有break的情况不会停止,语法如下:

while do
   <代码块> ;
end

如果需要达到某种条件跳过循环的情况,可以使用break语句配合判断来实现:

while do
    if (<条件>) then
        break ;
    else then
        <代码块> ;
    end
end

第十章:库

PinkShell拥有各种好用的库,如与系统通信的system库,简便制作GUI程序的iris库,数学计算的math库,管理服务器的web库…

导入一个库很简单,只需要在开头加入这样的声明:

$ import "<库名称>" ;

第十一章:部署可执行文件

通常情况下,编译的时候会把二进制代码存储在内存中,然后直接运行。

如果要生成一个可执行文件,只需要在开头加入这样的声明:

$ generate "<生成位置>" ;

生成位置可以是相对位置,也可以是绝对位置,比如在程序的同目录下生成就是这样:

$ generate "/bin" ;

第十二章:实战

要求:制作一个实时时钟显示在屏幕(视野)的左上角。

思路:调用system库循环获取时间,在使用iris库显示出来。

代码:

$ mode compile ;
$ generate "/bin" ;
$ import "system" ;
$ import "iris" ;

defined function auto_int main() do
    iris.add.window (name -> "clock", title -> "clock", location -> "above-lift", height -> 14, width -> 60, units -> "px") ; //创建一个窗口,位置在左上角,高5px,宽60px
    iris.clock.background_transparency (True) ;  //更改窗口背景的透明度为透明
    iris.clock.add.text (color -> "#FFFFFF", size -> 14, units -> "px") ; //创建一个文本,颜色白色,大小14px
    while do
        auto_int second -> system.time.second() ;  //获取秒
        auto_int minute -> system.time.minute() ;  //获取分钟
        auto_int hour -> system.time.hour() ;  //获取小时
        auto_str time -> hour + ":" + minute + ":" + second ;  //将以上三种变量整合到一个字符串
        iris.clock.text.content (time) ; //文本变成time变量的内容
    end
end
在没有特别声明的情况下,内容均为原创,请遵守CC BY-NC-SA 4.0版权协议!
暂无评论

发送评论 编辑评论

注意事项:
  1. 请遵守法律,友善发言。
  2. 评论被回复后没有提醒,请自行关注,敬请见谅。
  3. 无关的内容请移步留言板。
  4. 支持Markdown,可以使用第三方图床插入图片。

				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
呼呼
上一篇
下一篇