]> andersk Git - splint.git/blame - src/Headers/clauseStack.h
Created html faq file to replace the faq.txt
[splint.git] / src / Headers / clauseStack.h
CommitLineData
885824d3 1/*
c0de361f 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
885824d3 3** See ../LICENSE for license information.
4**
5*/
6/*
7** clauseStack.h
8*/
9
10# ifndef clauseStack_H
11# define clauseStack_H
12
28bf4b0b 13abst_typedef struct
885824d3 14{
15 int nelements;
16 int nspace;
17 int current;
18 /*@reldef@*/ clause *elements;
19} *clauseStack ;
20
21/*@iter clauseStack_elements (sef clauseStack s, yield clause el); @*/
22# define clauseStack_elements(s, m_el) \
23 { int m_i; for (m_i = (s)->nelements - 1; m_i >= 0; m_i--) { clause m_el = (s)->elements[m_i];
24
25# define end_clauseStack_elements }}
26
27extern int clauseStack_size (clauseStack p_s) /*@*/ ;
28extern bool clauseStack_isEmpty (clauseStack p_s) /*@*/ ;
29
30# define clauseStack_size(s) ((s)->nelements)
31# define clauseStack_isEmpty(s) (clauseStack_size(s) == 0)
32
33extern /*@only@*/ clauseStack clauseStack_new (void) /*@*/ ;
34
35extern void clauseStack_push (clauseStack p_s, clause p_el) /*@modifies p_s@*/ ;
36extern void clauseStack_pop (clauseStack p_s) /*@modifies p_s@*/ ;
37extern clause clauseStack_top (clauseStack p_s) /*@*/ ;
38
39extern /*@only@*/ cstring clauseStack_unparse (clauseStack p_s) /*@*/ ;
40extern void clauseStack_free (/*@only@*/ clauseStack p_s) ;
41extern void clauseStack_clear (clauseStack p_s) /*@modifies p_s@*/ ;
42extern void clauseStack_switchTop (clauseStack p_s, clause p_x) /*@modifies p_s@*/ ;
43extern void clauseStack_removeFirst (clauseStack p_s, clause p_key)
44 /*@modifies p_s@*/ ;
45
46extern int clauseStack_controlDepth (clauseStack p_s) /*@*/ ;
47
48/*@constant int clauseStackBASESIZE;@*/
49# define clauseStackBASESIZE MIDBASESIZE
50
51# else
52# error "Multiple include"
53# endif
54
55
56
57
This page took 0.084591 seconds and 5 git commands to generate.