python 操作 WhiteSpace 语言
2024-10-20 18:56:59
python 操作 WhiteSpace语言
1 WhiteSpace 简介
- WhiteSpace,是一种只用空白字符(空格,TAB和回车)编程的语言,而其它可见字符统统为注释。
- 它本身是个指令式、基于堆栈的语言。其程式运行在上的虚拟机器均有一个堆栈(Stack)和堆(Heap)。程式员可自由将整数推进堆栈中(只可以是整数,因为暂时并无浮点数或实数工具)。使用者亦可通过堆作为变量和数据结构的暂存区。
- 栈的结构:栈是先进后出,后进先出。
- WhiteSpace解析网站: Whitelips the Esoteric Language IDE (vii5ard.github.io)
2 Python 操作栈流程
Whitespace_process.txt
为WhiteSpace解析网站中的debug处信息(所有都要复制),注意第一行为push 0
,没有要补上。
from queue import LifoQueue
import re
stack = LifoQueue()
data = open("Whitespace_process.txt", "r").read().splitlines()
"""
栈:后入先出
函数功能如下:
push: 将数字压入栈顶
printc: 将栈顶元素弹出并以ASCII字符形式输出
dup: 复制栈顶元素后压入栈顶两次
drop: 弹出栈顶元素
add: 将堆栈最上方的两个元素弹出,二者做加法运算,得到的结果入栈
"""
text = ""
for line in data:
if "push" in line:
num = int(re.findall("push (.*?)$", line)[0])
stack.put(num)
elif line == "add":
stack.put(stack.get() + stack.get())
elif line == "dup":
num = stack.get()
stack.put(num)
stack.put(num)
elif line == "drop":
asc = chr(stack.get())
text += asc
print(text)
WhiteSpace示例:
最新文章
- jQuery动画
- Nodejs学习总结
- [Cocos2d-x For WP8]Layer 层
- php大力力 [003节]php在百度文库的几个基础教程mac环境下文本编辑工具
- (剑指Offer)面试题15:链表中倒数第k个结点
- 50个常用的笔试、面试sql语句
- 存储过程/游标/mysql 函数
- Linux 内核的文件 Cache 管理机制介绍-ibm
- Jest
- js keycode 列表
- CocoaChina 第四个测试
- jmeter分布式压测
- Liers 树状数组+中国剩余定理
- SpringMVC【开发Controller】详解
- jQuery Datetable
- awk 手册
- Shader 入门笔记(二) CPU和GPU之间的通信,渲染流水线
- 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)
- 使用redis-cli --pipe快速插入数据
- ThinkPHP5项目目录
热门文章
- JSON提取器中串联一个接口的多个值传给下个接口(compute concatenation var的实际使用场景)
- Springboot 2.3.1配置拦截器遇到的坑
- 数电第7周周结_by_yc
- Day36:List详解
- 「笔记」某移动SRE运维体系交流
- JavaScript:变量:如何声明变量?
- Azure DevOps 的架构窥探
- Potree 002 Desktop开发环境搭建
- .Net引用根目录子文件夹下的dll文件
- BBS项目(二): 登录功能 首页导航条搭建 首页主体部分 个人站点页面搭建 文章分类与标签 日期归档