ast.m
来自「vb script子集解释器 Makefile.vb用于生成解释器的c代码 」· M 代码 · 共 81 行
M
81 行
#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 + =
减小字号Ctrl + -
显示快捷键?