ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
parseStack.c
Go to the documentation of this file.
1
18
19#include "parseInt.h"
20
22
23
27
29{
30 void ** pData; // the array of elements
31 int Top; // the index
32 int Size; // the stack size
33};
34
36{
37 int * pData; // the array of elements
38 int Top; // the index
39 int Size; // the stack size
40};
41
45
58{
61 memset( p, 0, sizeof(Parse_StackFn_t) );
62 p->pData = ABC_ALLOC( void *, nDepth );
63 p->Size = nDepth;
64 return p;
65}
66
79{
80 return (int)(p->Top == 0);
81}
82
94void Parse_StackFnPush( Parse_StackFn_t * p, void * bFunc )
95{
96 if ( p->Top >= p->Size )
97 {
98 printf( "Parse_StackFnPush(): Stack size is too small!\n" );
99 return;
100 }
101 p->pData[ p->Top++ ] = bFunc;
102}
103
116{
117 if ( p->Top == 0 )
118 {
119 printf( "Parse_StackFnPush(): Trying to extract data from the empty stack!\n" );
120 return NULL;
121 }
122 return p->pData[ --p->Top ];
123}
124
137{
138 ABC_FREE( p->pData );
139 ABC_FREE( p );
140}
141
142
143
144
157{
160 memset( p, 0, sizeof(Parse_StackOp_t) );
161 p->pData = ABC_ALLOC( int, nDepth );
162 p->Size = nDepth;
163 return p;
164}
165
178{
179 return (int)(p->Top == 0);
180}
181
194{
195 if ( p->Top >= p->Size )
196 {
197 printf( "Parse_StackOpPush(): Stack size is too small!\n" );
198 return;
199 }
200 p->pData[ p->Top++ ] = Oper;
201}
202
215{
216 if ( p->Top == 0 )
217 {
218 printf( "Parse_StackOpPush(): Trying to extract data from the empty stack!\n" );
219 return -1;
220 }
221 return p->pData[ --p->Top ];
222}
223
236{
237 ABC_FREE( p->pData );
238 ABC_FREE( p );
239}
240
241
245
246
248
#define ABC_ALLOC(type, num)
Definition abc_global.h:264
#define ABC_FREE(obj)
Definition abc_global.h:267
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
Cube * p
Definition exorList.c:222
struct ParseStackOpStruct Parse_StackOp_t
Definition parseInt.h:42
typedefABC_NAMESPACE_HEADER_START struct ParseStackFnStruct Parse_StackFn_t
INCLUDES ///.
Definition parseInt.h:41
Parse_StackFn_t * Parse_StackFnStart(int nDepth)
FUNCTION DEFINITIONS ///.
Definition parseStack.c:57
void * Parse_StackFnPop(Parse_StackFn_t *p)
Definition parseStack.c:115
void Parse_StackFnFree(Parse_StackFn_t *p)
Definition parseStack.c:136
void Parse_StackFnPush(Parse_StackFn_t *p, void *bFunc)
Definition parseStack.c:94
Parse_StackOp_t * Parse_StackOpStart(int nDepth)
Definition parseStack.c:156
int Parse_StackOpIsEmpty(Parse_StackOp_t *p)
Definition parseStack.c:177
void Parse_StackOpPush(Parse_StackOp_t *p, int Oper)
Definition parseStack.c:193
int Parse_StackFnIsEmpty(Parse_StackFn_t *p)
Definition parseStack.c:78
int Parse_StackOpPop(Parse_StackOp_t *p)
Definition parseStack.c:214
void Parse_StackOpFree(Parse_StackOp_t *p)
Definition parseStack.c:235
DECLARATIONS ///.
Definition parseStack.c:29
char * memset()