找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 11015|回复: 5

[技术讨论] 手搓一个vbs解释器

[复制链接]
发表于 2025-2-3 23:56:00 | 显示全部楼层 |阅读模式
本帖最后由 jyswjjgdwtdtj 于 2025-2-10 23:35 编辑

https://pan.baidu.com/s/17iVf1LwvG9ylxw1Vz-SuVg?pwd=1111
支持dim/redim/redim preserve/if elseif else/单行if then else/for to/for each/do until|while loop until|while语句
支持自定义函数function
第一个参数是要执行的vbs的文件名
发表于 2025-2-6 08:47:09 | 显示全部楼层
正则匹配的分词或分析吧??
逐个字符分词
LALR之类的
速度应该就快了
 楼主| 发表于 2025-2-6 10:35:19 | 显示全部楼层
本帖最后由 jyswjjgdwtdtj 于 2025-2-6 10:50 编辑

回复 2# Five66

.net执行速度有很大浮动 可能和内存里垃圾多不多有关系
c#在debug模式下比较慢 可能要记录运行时错误release下远比wscript快 和c++差不多
但powershell是真的慢 慢的吓人
发表于 2025-2-7 18:09:37 | 显示全部楼层
抽象语法树和基于栈应该不冲突吧(
 楼主| 发表于 2025-2-7 20:12:38 | 显示全部楼层
本帖最后由 jyswjjgdwtdtj 于 2025-2-7 20:21 编辑

回复 4# 老刘1号


   用树还要多转换一层 直接往栈里压就行了
 楼主| 发表于 2025-8-29 23:55:01 | 显示全部楼层
本帖最后由 jyswjjgdwtdtj 于 2025-8-29 23:56 编辑

回复 4# 老刘1号


   基于栈是因为.net平台有个msil 他的jit会再编译成机器码 所以某种程度上来说这是个"编译器"至于抽象语法树那是编译阶段的东西 这个就全部逆波兰了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 21:23 , Processed in 0.019692 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表