⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ast.m

📁 vb script子集解释器 Makefile.vb用于生成解释器的c代码 可执行程序需要自己写main函数
💻 M
字号:
#include "vbs_context.h"#include "VBSnew.inc"domain CaseList{   case_node(Expression cond,Statement body,CaseList next,PtrCont cnt)   arglist(Expression s,CaseList next,PtrCont cnt)   argreflist(Expression s,CaseList next,PtrCont cnt)   subs(int n, CaseList next,PtrCont cnt)   null(PtrCont cnt)}domain Statement {   assignment (Expression lhs, Expression rhs,PtrCont cnt)   print (Expression x,PtrCont cnt)   eval(Expression x,PtrCont cnt)   ifstmt (Expression cond, Statement thenpart, Statement elsepart,PtrCont cnt)   whilestmt (Expression cond, Statement body,PtrCont cnt)   dowhileloop (Expression cond, Statement body,PtrCont cnt)   dountilloop (Expression cond, Statement body,PtrCont cnt)   doloopwhile (Statement body, Expression cond,PtrCont cnt)   doloopuntil (Statement body, Expression cond,PtrCont cnt)   select_case(Expression cond,CaseList list,Statement body2,PtrCont cnt)   fornext(Expression n, Expression from, Expression to, Expression step, Statement body,PtrCont cnt)   exitdo(PtrCont cnt)   exitfor(PtrCont cnt)   exitsub(PtrCont cnt)   seq (Statement s1, Statement s2,PtrCont cnt)   decl(vb_sz s,PtrCont cnt)   declarray(vb_sz s, CaseList subs,PtrCont cnt)   declsub(vb_sz s,CaseList args,vb_sz subbody,PtrCont cnt)   callsub(vb_sz s,CaseList args,PtrCont cnt)   randomize(Expression x,PtrCont cnt)   randomize0(PtrCont cnt)   empty(PtrCont cnt)}domain Expression {   eq (Expression x, Expression y,PtrCont cnt)   ne (Expression x, Expression y,PtrCont cnt)   lt (Expression x, Expression y,PtrCont cnt)   le (Expression x, Expression y,PtrCont cnt)   gt (Expression x, Expression y,PtrCont cnt)   ge (Expression x, Expression y,PtrCont cnt)   vband(Expression x, Expression y,PtrCont cnt)   vbnot(Expression x,PtrCont cnt)   vbor(Expression x, Expression y,PtrCont cnt)   vbxor(Expression x, Expression y,PtrCont cnt)   amd(Expression x, Expression y,PtrCont cnt)   splus (Expression x, Expression y,PtrCont cnt)   sminus (Expression x, Expression y,PtrCont cnt)   mult (Expression x, Expression y,PtrCont cnt)   divide (Expression x, Expression y,PtrCont cnt)   neg (Expression x,PtrCont cnt)   value(vb_sz  x,PtrCont cnt)   name(vb_sz idx,PtrCont cnt)   name_array(vb_sz n,CaseList subs,PtrCont cnt)   ubound(vb_sz name, int i,PtrCont cnt)   lbound(vb_sz name, int i,PtrCont cnt)   clng(Expression x,PtrCont cnt)   date(PtrCont cnt)   vbtime(PtrCont cnt)   getstring(Expression x,Expression y,Expression z,PtrCont cnt)   instr(Expression n,Expression x,Expression y,Expression t,PtrCont cnt)   cstr(Expression x,PtrCont cnt)   len(Expression x,PtrCont cnt)   rnd(Expression x,PtrCont cnt)   rnd0(PtrCont cnt)   vyear(Expression x,PtrCont cnt)   vmonth(Expression x,PtrCont cnt)   vday(Expression x,PtrCont cnt)   vweekday(Expression x,PtrCont cnt)   vhour(Expression x,PtrCont cnt)   vminute(Expression x,PtrCont cnt)   vsecond(Expression x,PtrCont cnt)}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -