]> andersk Git - splint.git/blame - src/Headers/functionConstraint.h
Updated copyrights
[splint.git] / src / Headers / functionConstraint.h
CommitLineData
3814599d 1/*
c0de361f 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3814599d 3** See ../LICENSE for license information.
4*/
5/*
6** functionConstraint.h
7*/
8
9# ifndef FCNCONSTRAINT_H
10# define FcNCONSTRAINT_H
11
12typedef enum
13{
ba45e1e4 14 FCT_BUFFER, FCT_METASTATE, FCT_CONJUNCT
3814599d 15} functionConstraintKind ;
16
17struct s_functionConstraint {
18 functionConstraintKind kind;
19 union {
20 /*@only@*/ constraintList buffer;
21 /*@only@*/ metaStateConstraint metastate;
ba45e1e4 22 struct { functionConstraint op1; functionConstraint op2; } conjunct;
3814599d 23 } constraint;
24} ;
25
26/*@constant null functionConstraint functionConstraint_undefined; @*/
27# define functionConstraint_undefined ((functionConstraint) NULL)
28
0e41eb0e 29extern /*@falsewhennull@*/ bool functionConstraint_isDefined (functionConstraint) /*@*/ ;
3814599d 30# define functionConstraint_isDefined(p_info) ((p_info) != NULL)
31
c3be2604 32extern /*@falsewhennull@*/ bool functionConstraint_isBufferConstraint (/*@sef@*/ functionConstraint) /*@*/ ;
33# define functionConstraint_isBufferConstraint(p_con) (((p_con) != NULL) && ((p_con)->kind == FCT_BUFFER))
34
4287634e 35extern void functionConstraint_addBufferConstraints (functionConstraint p_node, /*@only@*/ constraintList)
36 /*@modifies p_node@*/ ;
c3be2604 37
0e41eb0e 38extern /*@nullwhentrue@*/ bool functionConstraint_isUndefined (functionConstraint) /*@*/ ;
3814599d 39# define functionConstraint_isUndefined(p_info) ((p_info) == NULL)
40
41extern functionConstraint functionConstraint_copy (functionConstraint) /*@*/ ;
42
43extern functionConstraint
44functionConstraint_createBufferConstraint (/*@only@*/ constraintList) ;
45
46extern functionConstraint
47functionConstraint_createMetaStateConstraint (/*@only@*/ metaStateConstraint) ;
48
49extern bool functionConstraint_hasBufferConstraint (functionConstraint) /*@*/ ;
ba45e1e4 50extern bool functionConstraint_hasMetaStateConstraint (functionConstraint) /*@*/ ;
51
52extern functionConstraint
53functionConstraint_conjoin (/*@only@*/ functionConstraint, /*@only@*/ functionConstraint) ;
3814599d 54
ccf0a4a8 55extern /*@only@*/ constraintList functionConstraint_getBufferConstraints (functionConstraint) /*@*/ ;
56extern /*@only@*/ metaStateConstraintList functionConstraint_getMetaStateConstraints (functionConstraint) /*@*/ ;
3814599d 57
58extern cstring functionConstraint_unparse (functionConstraint) /*@*/ ;
59extern void functionConstraint_free (/*@only@*/ functionConstraint) ;
60
61# else
62# error "Multiple include"
63# endif
64
65
66
67
This page took 0.19354 seconds and 5 git commands to generate.