「Felys」简易脚本语言【变量】

2023-08-03 21:02:10 来源:哔哩哔哩

【概述】

如前文所说,Felys语言是有局部变量,这部分听起来很复杂很为会涉及到作用域的问题,实则不然,我们只需要一个并不复杂的单链表和头插法就可以做到。


(资料图片仅供参考)

【头插法】

我们只需要知道链表入口即可,有新的节点进入时,就把入口的指针指向新节点,再将新节点的指针指向原本的第一个节点地址即可。

【原理】

访问、修改、创建变量无非会遇到两种情况,即存在或不存在,比如:第五层作用域中的变量可以访问当前及一下的所有变量,却不能访问到可能存在的第六层;又一个第五层的变量,随着程序的执行指令已经回到第二层作用域,那么就算之后再有触及到第五层作用域,也不应该可以访问以前第五层作用域的变量。换而言之,一旦离开一个作用域,那么我们就可以直接删除这个作用域,这样是不是一下子就变得很简单了。你甚至可以用栈的概念去理解,即进入新的scope则压入一个作用域,如果退出一个作用域就弹出一个作用域,不过我们并不用栈去实现,因为栈是不用来给我们遍历按照变量的,作为替代,单链表配合头插法完美符合我们的需求。

【变量操作】

访问、修改、创建本质都是需要先从最里入口最近的当前作用域开始遍历,只是后续操作有区别。访问函数是被用在计算的时候,所以如果找不到变量我们需要直接报错。

修改和创建是一个函数完成,先是尝试寻找变量名,如果找到了就直接修改值,如果找不到就在离入口最近的当前作用域添加变量。

【总结】

这应该是最简单的一个模块了,只花了两天就从构思到制作完成,算是当时写完代码解析部分后小憩一下了。

标签:

推荐阅读>