【二】自制脚本语言-语言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),这个过程是个艰辛的过程,也是一个学习的过程,给自己开启了一扇新的门,以前总是感觉正则,编译,语法解析这些东西部署无用就是觉着很遥远,但是时刻做着程序开发,这些其实最基础的,无时无刻的在使用,而自己全然不知,就像天天吃着饭菜,但是却只知道味道,却不知道怎么来的,知其然,而不知其所以然,大概就是个半吊子。

上一篇下一篇

猜你喜欢

热点阅读