-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathZInterp.h
132 lines (109 loc) · 2.52 KB
/
ZInterp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#pragma once
#ifndef _ZINTERP_H_
#define _ZINTERP_H_
#include "yatgFW.h"
namespace ZInterp
{
extern ZSymbolTable<ZTvar> ZSym;
extern ZIBool isExit,isContinue,ifScope,caseScope;
extern vector <ANTLR3_MARKER> lend,lCon;
extern int loopNum,actual,currentFrame;
extern yatgFW_Ctx_struct* cxtr;
class global
{
public:
static void Init();
static void InitBuiltinMods();
static void IncScope();
static void DecScope();
};
ZChar* getNodeText(pANTLR3_BASE_TREE n);
void setCustomNodeField(pANTLR3_BASE_TREE t,ZTvarp v);
class Operand
{
public:
static void _OPERAND(pANTLR3_BASE_TREE t1);
static void AccessListElement(pANTLR3_BASE_TREE t1,pANTLR3_BASE_TREE ind);
static void AccessObjectField(pANTLR3_BASE_TREE t1,pANTLR3_BASE_TREE field);
static void FunCall(pANTLR3_BASE_TREE t1,pANTLR3_BASE_TREE arg,yatgFW_Ctx_struct* xyz);
};
class Constant
{
public:
static void Exec(pANTLR3_BASE_TREE c);
static void ComplexExec(pANTLR3_BASE_TREE c);
};
class Cexprx
{
public:
static void Exec(pANTLR3_BASE_TREE r,pANTLR3_BASE_TREE t1,pANTLR3_BASE_TREE t2);
};
class ExprSeq
{
public:
static void _ESEQ(pANTLR3_BASE_TREE e);
};
class AssingmentExpr
{
public:
static void Exec(pANTLR3_BASE_TREE r,pANTLR3_BASE_TREE l,pANTLR3_BASE_TREE e);
};
class IfExpr
{
public:
static void Exec(pANTLR3_BASE_TREE j,pANTLR3_BASE_TREE r,yatgFW_Ctx_struct* xyz);
};
class WhileExpr
{
public:
static void Exec(pANTLR3_BASE_TREE wnode,pANTLR3_BASE_TREE cond,yatgFW_Ctx_struct* xyz);
};
class ForExpr
{
public:
static void Exec(pANTLR3_BASE_TREE fnode,pANTLR3_BASE_TREE cond,yatgFW_Ctx_struct* xyz);
};
class DoExpr
{
public:
static void Exec (pANTLR3_BASE_TREE dnode,pANTLR3_BASE_TREE cond,yatgFW_Ctx_struct* xyz);
};
class CaseExpr
{
public:
static void Exec(pANTLR3_BASE_TREE caseNode,yatgFW_Ctx_struct* );
};
class ContextExpr
{
public:
static void Exec (pANTLR3_BASE_TREE timeNode,yatgFW_Ctx_struct* );
static void Flush();
};
class Function
{
public:
static void Defination(pANTLR3_BASE_TREE funNode,yatgFW_Ctx_struct* xyz);
};
class EXIT
{
public:
static void Exec(pANTLR3_BASE_TREE exitNode,yatgFW_Ctx_struct* xyz);
};
class CONTINUE
{
public:
static void Exec(pANTLR3_BASE_TREE conNode,yatgFW_Ctx_struct* xyz);
};
class Number
{
public:
static void Exec(pANTLR3_BASE_TREE conNode);
static void Exec1(pANTLR3_BASE_TREE conNode);
};
class Matrix
{
public:
static void Exec(pANTLR3_BASE_TREE matrixNode , yatgFW_Ctx_struct* xyz);
};
};
#endif