【二】自制脚本语言-语言demo
2019-12-09 本文已影响0人
Michael_abc
demo
time.skl
# 这是一个测试代码
include "/opt/app/SKL/scripts/function.skl";
var1 = 1;
var2 = 1.0;
var3 = "asdasd";
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
var_dump(time());
sleep(1);
index.skl
# 入口文件
include "/opt/app/SKL/scripts/function.skl";
var1 = 8.999;
var2 = 2.000;
var3 = add(var1,var2) ;
var4 = 2;
var5 = 1==2;
var6 = add(1,2) == sub(4,2);
var7 = "asdasd" == "asdasd";
var_dump(1+2.1,add(1,2) + add(1,3),var3,var4,var5,var6,var7);
var_dump("\n");
分析
语言的成分
- 注释
- 语句
注释
注释对于编译和执行完全没有意义,因为机器不理解,语法不分析,是完完全全的人类信息记录方式。
程序的组成
程序都是要语句组成的,而语句呢大部分都是由表达式组成,
Statement和Expression
Statement是什么呢?就像语言一样,我们说一句话:我很高兴见到你!,这换成计算机编程的世界就是一条语句(sentence).
Expression是什么呢?就是组成Statement的成分,但是语句可能没有表达式,这个怎么解释呢?就比如说1+1其中1是表达式 1+1也是表达式,这个慢慢领悟吧
语句
语言是程序运行的基本单元(unit),没有语句的程序运行就是无意义的
下面说明几种格式
赋值语句
var1 = "babasdasd";
var2 = 1 + 1;
var3 = 1.0;
返回语句
return var3+var4;
continue/break 语句
continue;
break;
include语句
include "function.skl";
if语句
if(var1>var2){
echo var1;
}
for语句
for(var=1;var<10;var++){
echo var;
}
定义
函数定义
function sub(var1 ,var2){
return var1 - var2;
}
类的定义(SKL没有实现)
class test{
public function test(){
return 'test';
}
}
还有很多 不一一列举
其他
其实我已经实现了上述的相关语法除了(if/for),这个过程是个艰辛的过程,也是一个学习的过程,给自己开启了一扇新的门,以前总是感觉正则,编译,语法解析这些东西部署无用就是觉着很遥远,但是时刻做着程序开发,这些其实最基础的,无时无刻的在使用,而自己全然不知,就像天天吃着饭菜,但是却只知道味道,却不知道怎么来的,知其然,而不知其所以然,大概就是个半吊子。