-
Notifications
You must be signed in to change notification settings - Fork 0
/
sli_stack.h
155 lines (132 loc) · 2.78 KB
/
sli_stack.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/*
* slistack.h
*
* This file is part of NEST
*
* Copyright (C) 2004 by
* The NEST Initiative
*
* See the file AUTHORS for details.
*
* Permission is granted to compile and modify
* this file for non-commercial use.
* See the file LICENSE for details.
*
*/
#ifndef SLI_STACK_H
#define SLI_STACK_H
/*
Stack manipulation functions
*/
#include "sli_function.h"
namespace sli3
{
class SLIInterpreter;
void init_slistack(SLIInterpreter *i);
/************************************************
Stack manipulation functions
********************************************/
class PopFunction: public SLIFunction
{
public:
PopFunction() {}
void execute(SLIInterpreter *) const;
};
class NpopFunction: public SLIFunction
{
public:
NpopFunction() {}
void execute(SLIInterpreter *) const;
};
class DupFunction: public SLIFunction
{
public:
DupFunction() {}
void execute(SLIInterpreter *) const;
};
class ExchFunction: public SLIFunction
{
public:
ExchFunction() {}
void execute(SLIInterpreter *) const;
};
class IndexFunction: public SLIFunction
{
public:
IndexFunction() {}
void execute(SLIInterpreter *) const;
};
class RollFunction: public SLIFunction
{
public:
RollFunction() {}
void execute(SLIInterpreter *) const;
};
class RolluFunction: public SLIFunction
{
public:
RolluFunction() {}
void execute(SLIInterpreter *) const;
};
class RolldFunction: public SLIFunction
{
public:
RolldFunction() {}
void execute(SLIInterpreter *) const;
};
class RotFunction: public SLIFunction
{
public:
RotFunction() {}
void execute(SLIInterpreter *) const;
};
class OverFunction: public SLIFunction
{
public:
OverFunction() {}
void execute(SLIInterpreter *) const;
};
class CountFunction: public SLIFunction
{
public:
CountFunction() {}
void execute(SLIInterpreter *) const;
};
class CopyFunction: public SLIFunction
{
public:
CopyFunction() {}
void execute(SLIInterpreter *) const;
};
class ClearFunction: public SLIFunction
{
public:
ClearFunction() {}
void execute(SLIInterpreter *) const;
};
class ExecstackFunction: public SLIFunction
{
public:
ExecstackFunction() {}
void execute(SLIInterpreter *) const;
};
class RestoreestackFunction: public SLIFunction
{
public:
RestoreestackFunction() {}
void execute(SLIInterpreter *) const;
};
class RestoreostackFunction: public SLIFunction
{
public:
RestoreostackFunction() {}
void execute(SLIInterpreter *) const;
};
class OperandstackFunction: public SLIFunction
{
public:
OperandstackFunction() {}
void execute(SLIInterpreter *) const;
};
}
#endif