File: sicstus_cfli.h

package info (click to toggle)
ppl 1:1.2-8.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 44,328 kB
  • sloc: cpp: 212,085; sh: 12,176; makefile: 7,192; perl: 6,333; java: 2,220; ansic: 1,842; ml: 1,132; sed: 80
file content (156 lines) | stat: -rw-r--r-- 4,271 bytes parent folder | download
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
156
/* SICStus Prolog Common Foreign Language Interface: declarations.
   Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it>
   Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)

This file is part of the Parma Polyhedra Library (PPL).

The PPL is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

The PPL is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.

For the most up-to-date information see the Parma Polyhedra Library
site: http://bugseng.com/products/ppl/ . */

#ifndef PCFLI_sicstus_cfli_h
#define PCFLI_sicstus_cfli_h 1

#include <sicstus/sicstus.h>

#ifdef __GNUC__
# define PCFLI_EXTERN_INLINE extern __inline__
# define PCFLI_INLINE_PROTOTYPES 1
#endif

#if defined(__cplusplus) && !defined(PCFLI_EXTERN_INLINE)
# define PCFLI_EXTERN_INLINE inline
#endif

#ifdef PCFLI_EXTERN_INLINE
# ifndef PCFLI_INLINE_PROTOTYPES
#  define PCFLI_INLINE_PROTOTYPES 0
# endif
#else
# define PCFLI_INLINE_PROTOTYPES 1
#endif

/* Temporary. */
#define PCFLI_DECLSPEC

#ifdef __cplusplus
//extern "C" {
#endif

typedef SP_term_ref Prolog_term_ref;
typedef SP_atom Prolog_atom;
typedef int Prolog_foreign_return_type;

static const Prolog_foreign_return_type PROLOG_SUCCESS = SP_SUCCESS;
static const Prolog_foreign_return_type PROLOG_FAILURE = SP_FAILURE;

#if PCFLI_INLINE_PROTOTYPES

PCFLI_DECLSPEC Prolog_term_ref
Prolog_new_term_ref();

PCFLI_DECLSPEC int
Prolog_put_term(Prolog_term_ref t, Prolog_term_ref u);

PCFLI_DECLSPEC int
Prolog_put_long(Prolog_term_ref t, long i);

PCFLI_DECLSPEC int
Prolog_put_atom_chars(Prolog_term_ref t, const char* s);

PCFLI_DECLSPEC int
Prolog_put_atom(Prolog_term_ref t, Prolog_atom a);

PCFLI_DECLSPEC int
Prolog_put_address(Prolog_term_ref t, void* p);

Prolog_atom
Prolog_atom_from_string(const char* s);

PCFLI_DECLSPEC int
Prolog_construct_compound(Prolog_term_ref t, Prolog_atom f,
                          Prolog_term_ref a1);

PCFLI_DECLSPEC int
Prolog_construct_compound(Prolog_term_ref t, Prolog_atom f,
                          Prolog_term_ref a1, Prolog_term_ref a2);

PCFLI_DECLSPEC int
Prolog_construct_compound(Prolog_term_ref t, Prolog_atom f,
                          Prolog_term_ref a1, Prolog_term_ref a2,
                          Prolog_term_ref a3);

PCFLI_DECLSPEC int
Prolog_construct_compound(Prolog_term_ref t, Prolog_atom f,
                          Prolog_term_ref a1, Prolog_term_ref a2,
                          Prolog_term_ref a3, Prolog_term_ref a4);

PCFLI_DECLSPEC int
Prolog_construct_cons(Prolog_term_ref c,
                      Prolog_term_ref h, Prolog_term_ref t);

PCFLI_DECLSPEC void
Prolog_raise_exception(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_is_variable(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_is_atom(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_is_integer(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_is_address(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_is_compound(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_is_cons(Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_get_long(Prolog_term_ref t, long& v);

PCFLI_DECLSPEC int
Prolog_get_address(Prolog_term_ref t, void*& p);

PCFLI_DECLSPEC int
Prolog_get_atom_name(Prolog_term_ref t, Prolog_atom& name);

PCFLI_DECLSPEC int
Prolog_get_compound_name_arity(Prolog_term_ref t,
                               Prolog_atom& name, size_t& arity);

PCFLI_DECLSPEC int
Prolog_get_arg(int i, Prolog_term_ref t, Prolog_term_ref a);

PCFLI_DECLSPEC int
Prolog_get_cons(Prolog_term_ref c, Prolog_term_ref h, Prolog_term_ref t);

PCFLI_DECLSPEC int
Prolog_unify(Prolog_term_ref t, Prolog_term_ref u);

#endif /* !PCFLI_INLINE_PROTOTYPES */

#include "sicstus_cfli.ic"

#ifdef __cplusplus
//} /* extern "C" */
#endif

#endif // !defined(PCFLI_sicstus_cfli_h)