GNU PROLOG with UTF8 support
gprolog.h
Go to the documentation of this file.
1 /*-------------------------------------------------------------------------*
2  * GNU Prolog *
3  * *
4  * Part : Foreign interface *
5  * File : gprolog.h *
6  * Descr.: GNU Prolog - general header file (for users) *
7  * Author: Daniel Diaz *
8  * *
9  * Copyright (C) 1999-2015 Daniel Diaz *
10  * *
11  * This file is part of GNU Prolog *
12  * *
13  * GNU Prolog is free software: you can redistribute it and/or *
14  * modify it under the terms of either: *
15  * *
16  * - the GNU Lesser General Public License as published by the Free *
17  * Software Foundation; either version 3 of the License, or (at your *
18  * option) any later version. *
19  * *
20  * or *
21  * *
22  * - the GNU General Public License as published by the Free *
23  * Software Foundation; either version 2 of the License, or (at your *
24  * option) any later version. *
25  * *
26  * or both in parallel, as here. *
27  * *
28  * GNU Prolog is distributed in the hope that it will be useful, *
29  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
30  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
31  * General Public License for more details. *
32  * *
33  * You should have received copies of the GNU General Public License and *
34  * the GNU Lesser General Public License along with this program. If *
35  * not, see http://www.gnu.org/licenses/. *
36  *-------------------------------------------------------------------------*/
37 
38 
39 #ifndef _GPROLOG_H
40 
41 #include <stdint.h>
42 
43 #define _GPROLOG_H
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 /*
49  * Since GNU Prolog 1.4.0 C types 'long' have been replaced by PlLong
50  * to work on X86_64/Windows (where long are 32-bits and not 64-bits).
51  * New foreign code should use PlLong instead of long.
52  *
53  * Since GNU Prolog 1.3.1 all public names are prefixed with Pl_, PL_ or pl_
54  * so you should avoid these prefixes.
55  * The names of C functions used in the foreign interface have been
56  * renamed to start with the Pl_ prefix. To keep a bacward compatibility
57  * with foreign code developed with gprolog < 1.3.1 macros are defined
58  * for old names.
59  * These macros can be deactivated if __GPROLOG_FOREIGN_STRICT__ is defined.
60  *
61  * #define __GPROLOG_FOREIGN_STRICT__
62  * #include <gprolog.h>
63  */
64 
65 /*---------------------------------*
66  * Constants *
67  *---------------------------------*/
68 
69 #include "gprolog_cst.h"
70 
71 #define PL_RECOVER 0
72 #define PL_CUT 1
73 #define PL_KEEP_FOR_PROLOG 2
74 
75 #define PL_FAILURE 0
76 #define PL_SUCCESS 1
77 #define PL_EXCEPTION 2
78 
79 
80 
81 
82 /*---------------------------------*
83  * Type Definitions *
84  *---------------------------------*/
85 
86 typedef enum { PL_FALSE, PL_TRUE } PlBool;
87 
88 typedef intptr_t PlLong;
89 
90 typedef uintptr_t PlULong;
91 
92 typedef intptr_t PlTerm;
93 
94 typedef struct
95 {
96  PlBool is_var;
97  PlBool unify;
98  union
99  {
100  PlLong l;
101  char *s;
102  double d;
103  }
104  value;
105 }
106 PlFIOArg;
107 
108 
109 /*---------------------------------*
110  * Global Variables *
111  *---------------------------------*/
112 
113 extern int pl_foreign_bkt_counter;
114 extern char *pl_foreign_bkt_buffer;
115 
116 extern int pl_type_atom;
117 extern int pl_type_atomic;
118 extern int pl_type_byte;
119 extern int pl_type_callable;
120 extern int pl_type_character;
121 extern int pl_type_compound;
122 extern int pl_type_evaluable;
123 extern int pl_type_float;
124 extern int pl_type_boolean;
125 extern int pl_type_in_byte;
126 extern int pl_type_in_character;
127 extern int pl_type_integer;
128 extern int pl_type_list;
129 extern int pl_type_number;
130 extern int pl_type_predicate_indicator;
131 extern int pl_type_variable; /* deprecated: new code should emit an uninstantiation_error */
132 extern int pl_type_fd_variable;
133 extern int pl_type_fd_evaluable;
134 extern int pl_type_fd_bool_evaluable;
135 
136 
138 extern int pl_domain_close_option;
139 extern int pl_domain_flag_value;
140 extern int pl_domain_io_mode;
141 extern int pl_domain_non_empty_list;
143 extern int pl_domain_operator_priority;
145 extern int pl_domain_prolog_flag;
146 extern int pl_domain_read_option;
147 extern int pl_domain_source_sink;
148 extern int pl_domain_stream;
149 extern int pl_domain_stream_option;
150 extern int pl_domain_stream_or_alias;
151 extern int pl_domain_stream_position;
152 extern int pl_domain_stream_property;
153 extern int pl_domain_write_option;
155 extern int pl_domain_g_array_index;
159 extern int pl_domain_os_path;
161 extern int pl_domain_selectable_item;
162 extern int pl_domain_date_time;
163 
164 extern int pl_existence_procedure;
165 extern int pl_existence_source_sink;
166 extern int pl_existence_stream;
167 extern int pl_existence_sr_descriptor;
168 
169 
178 
179 
181 extern int pl_permission_type_flag;
182 extern int pl_permission_type_operator;
187 extern int pl_permission_type_stream;
189 
190 
191 extern int pl_representation_character;
194 extern int pl_representation_max_arity;
198 
199 extern int pl_evluation_float_overflow;
200 extern int pl_evluation_int_overflow;
201 extern int pl_evluation_undefined;
202 extern int pl_evluation_underflow;
203 extern int pl_evluation_zero_divisor;
204 
205 
208 
209 
210 
211 
212 /*---------------------------------*
213  * Function Prototypes *
214  *---------------------------------*/
215 
216 int Pl_Start_Prolog(int argc, char *argv[]);
217 
218 void Pl_Stop_Prolog(void);
219 
220 void Pl_Reset_Prolog(void);
221 
222 PlBool Pl_Try_Execute_Top_Level(void);
223 
224 
225 
226 
227 #define Pl_Get_Choice_Counter() pl_foreign_bkt_counter
228 
229 #define Pl_Get_Choice_Buffer(t) ((t) pl_foreign_bkt_buffer)
230 
231 void Pl_No_More_Choice(void);
232 
233 
234 
235 char *Pl_Atom_Name(int atom);
236 
237 int Pl_Atom_Length(int atom);
238 
239 PlBool Pl_Atom_Needs_Quote(int atom);
240 
241 PlBool Pl_Atom_Needs_Scan(int atom);
242 
243 PlBool Pl_Is_Valid_Atom(int atom);
244 
245 int Pl_Create_Atom(const char *atom);
246 
247 int Pl_Create_Allocate_Atom(const char *atom);
248 
249 int Pl_Find_Atom(const char *atom);
250 
251 int Pl_Atom_Char(char c);
252 
253 int Pl_Atom_Nil(void);
254 
255 int Pl_Atom_False(void);
256 
257 int Pl_Atom_True(void);
258 
259 int Pl_Atom_End_Of_File(void);
260 
261 
262 
263 PlBool Pl_Unif(PlTerm term1, PlTerm term2);
264 
265 PlBool Pl_Unif_With_Occurs_Check(PlTerm term1, PlTerm term2);
266 
267 
268 
269 
270 PlLong Pl_Rd_Integer_Check(PlTerm term);
271 
272 PlLong Pl_Rd_Integer(PlTerm term);
273 
274 PlLong Pl_Rd_Positive_Check(PlTerm term);
275 
276 PlLong Pl_Rd_Positive(PlTerm term);
277 
278 double Pl_Rd_Float_Check(PlTerm term);
279 
280 double Pl_Rd_Float(PlTerm term);
281 
282 double Pl_Rd_Number_Check(PlTerm term);
283 
284 double Pl_Rd_Number(PlTerm term);
285 
286 int Pl_Rd_Atom_Check(PlTerm term);
287 
288 int Pl_Rd_Atom(PlTerm term);
289 
290 int Pl_Rd_Boolean_Check(PlTerm term);
291 
292 int Pl_Rd_Boolean(PlTerm term);
293 
294 int Pl_Rd_Char_Check(PlTerm term);
295 
296 int Pl_Rd_Char(PlTerm term);
297 
298 int Pl_Rd_In_Char_Check(PlTerm term);
299 
300 int Pl_Rd_In_Char(PlTerm term);
301 
302 int Pl_Rd_Code_Check(PlTerm term);
303 
304 int Pl_Rd_Code(PlTerm term);
305 
306 int Pl_Rd_In_Code_Check(PlTerm term);
307 
308 int Pl_Rd_In_Code(PlTerm term);
309 
310 int Pl_Rd_Byte_Check(PlTerm term);
311 
312 int Pl_Rd_Byte(PlTerm term);
313 
314 int Pl_Rd_In_Byte_Check(PlTerm term);
315 
316 int Pl_Rd_In_Byte(PlTerm term);
317 
318 char *Pl_Rd_String_Check(PlTerm term);
319 
320 char *Pl_Rd_String(PlTerm term);
321 
322 char *Pl_Rd_Chars_Check(PlTerm term);
323 
324 char *Pl_Rd_Chars(PlTerm term);
325 
326 char *Pl_Rd_Codes_Check(PlTerm term);
327 
328 char *Pl_Rd_Codes(PlTerm term);
329 
330 int Pl_Rd_Chars_Str_Check(PlTerm term, char *str);
331 
332 int Pl_Rd_Chars_Str(PlTerm term, char *str);
333 
334 int Pl_Rd_Codes_Str_Check(PlTerm term, char *str);
335 
336 int Pl_Rd_Codes_Str(PlTerm term, char *str);
337 
338 PlTerm *Pl_Rd_List_Check(PlTerm term);
339 
340 PlTerm *Pl_Rd_List(PlTerm term);
341 
342 int Pl_Rd_Proper_List_Check(PlTerm term, PlTerm *arg);
343 
344 int Pl_Rd_Proper_List(PlTerm term, PlTerm *arg);
345 
346 PlTerm *Pl_Rd_Compound_Check(PlTerm term, int *func, int *arity);
347 
348 PlTerm *Pl_Rd_Compound(PlTerm term, int *func, int *arity);
349 
350 PlTerm *Pl_Rd_Callable_Check(PlTerm term, int *func, int *arity);
351 
352 PlTerm *Pl_Rd_Callable(PlTerm term, int *func, int *arity);
353 
354 
355 
356 void Pl_Check_For_Un_Integer(PlTerm term);
357 
358 void Pl_Check_For_Un_Positive(PlTerm term);
359 
360 void Pl_Check_For_Un_Float(PlTerm term);
361 
362 void Pl_Check_For_Un_Number(PlTerm term);
363 
364 void Pl_Check_For_Un_Atom(PlTerm term);
365 
366 void Pl_Check_For_Un_Boolean(PlTerm term);
367 
368 void Pl_Check_For_Un_Char(PlTerm term);
369 
370 void Pl_Check_For_Un_In_Char(PlTerm term);
371 
372 void Pl_Check_For_Un_Code(PlTerm term);
373 
374 void Pl_Check_For_Un_In_Code(PlTerm term);
375 
376 void Pl_Check_For_Un_Byte(PlTerm term);
377 
378 void Pl_Check_For_Un_In_Byte(PlTerm term);
379 
380 void Pl_Check_For_Un_String(PlTerm term);
381 
382 void Pl_Check_For_Un_Chars(PlTerm term);
383 
384 void Pl_Check_For_Un_Codes(PlTerm term);
385 
386 void Pl_Check_For_Un_List(PlTerm term);
387 
388 void Pl_Check_For_Un_Compound(PlTerm term);
389 
390 void Pl_Check_For_Un_Callable(PlTerm term);
391 
392 void Pl_Check_For_Un_Variable(PlTerm term);
393 
394 
395 
396 PlBool Pl_Un_Integer_Check(PlLong value, PlTerm term);
397 
398 PlBool Pl_Un_Integer(PlLong value, PlTerm term);
399 
400 PlBool Pl_Un_Positive_Check(PlLong value, PlTerm term);
401 
402 PlBool Pl_Un_Positive(PlLong value, PlTerm term);
403 
404 PlBool Pl_Un_Float_Check(double value, PlTerm term);
405 
406 PlBool Pl_Un_Float(double value, PlTerm term);
407 
408 PlBool Pl_Un_Number_Check(double value, PlTerm term);
409 
410 PlBool Pl_Un_Number(double value, PlTerm term);
411 
412 PlBool Pl_Un_Atom_Check(int value, PlTerm term);
413 
414 PlBool Pl_Un_Atom(int value, PlTerm term);
415 
416 PlBool Pl_Un_Boolean_Check(int value, PlTerm term);
417 
418 PlBool Pl_Un_Boolean(int value, PlTerm term);
419 
420 PlBool Pl_Un_Char_Check(int value, PlTerm term);
421 
422 PlBool Pl_Un_Char(int value, PlTerm term);
423 
424 PlBool Pl_Un_In_Char_Check(int value, PlTerm term);
425 
426 PlBool Pl_Un_In_Char(int value, PlTerm term);
427 
428 PlBool Pl_Un_Code_Check(int value, PlTerm term);
429 
430 PlBool Pl_Un_Code(int value, PlTerm term);
431 
432 PlBool Pl_Un_In_Code_Check(int value, PlTerm term);
433 
434 PlBool Pl_Un_In_Code(int value, PlTerm term);
435 
436 PlBool Pl_Un_Byte_Check(int value, PlTerm term);
437 
438 PlBool Pl_Un_Byte(int value, PlTerm term);
439 
440 PlBool Pl_Un_In_Byte_Check(int value, PlTerm term);
441 
442 PlBool Pl_Un_In_Byte(int value, PlTerm term);
443 
444 PlBool Pl_Un_String_Check(const char *value, PlTerm term);
445 
446 PlBool Pl_Un_String(const char *value, PlTerm term);
447 
448 PlBool Pl_Un_Chars_Check(const char *value, PlTerm term);
449 
450 PlBool Pl_Un_Chars(const char *value, PlTerm term);
451 
452 PlBool Pl_Un_Codes_Check(const char *value, PlTerm term);
453 
454 PlBool Pl_Un_Codes(const char *value, PlTerm term);
455 
456 PlBool Pl_Un_List_Check(PlTerm *arg, PlTerm term);
457 
458 PlBool Pl_Un_List(PlTerm *arg, PlTerm term);
459 
460 PlBool Pl_Un_Proper_List_Check(int n, PlTerm *arg, PlTerm term);
461 
462 PlBool Pl_Un_Proper_List(int n, PlTerm *arg, PlTerm term);
463 
464 PlBool Pl_Un_Compound_Check(int func, int arity, PlTerm *arg,
465  PlTerm term);
466 
467 PlBool Pl_Un_Compound(int func, int arity, PlTerm *arg, PlTerm term);
468 
469 PlBool Pl_Un_Callable_Check(int func, int arity, PlTerm *arg,
470  PlTerm term);
471 
472 PlBool Pl_Un_Callable(int func, int arity, PlTerm *arg, PlTerm term);
473 
474 PlBool Pl_Un_Term(PlTerm term1, PlTerm term2);
475 
476 
477 
478 PlTerm Pl_Mk_Integer(PlLong value);
479 
480 PlTerm Pl_Mk_Positive(PlLong value);
481 
482 PlTerm Pl_Mk_Float(double value);
483 
484 PlTerm Pl_Mk_Number(double value);
485 
486 PlTerm Pl_Mk_Atom(int value);
487 
488 PlTerm Pl_Mk_Boolean(int value);
489 
490 PlTerm Pl_Mk_Char(int value);
491 
492 PlTerm Pl_Mk_In_Char(int value);
493 
494 PlTerm Pl_Mk_Code(int value);
495 
496 PlTerm Pl_Mk_In_Code(int value);
497 
498 PlTerm Pl_Mk_Byte(int value);
499 
500 PlTerm Pl_Mk_In_Byte(int value);
501 
502 PlTerm Pl_Mk_String(const char *value);
503 
504 PlTerm Pl_Mk_Chars(const char *value);
505 
506 PlTerm Pl_Mk_Codes(const char *value);
507 
508 PlTerm Pl_Mk_List(const PlTerm *arg);
509 
510 PlTerm Pl_Mk_Proper_List(int n, const PlTerm *arg);
511 
512 PlTerm Pl_Mk_Compound(int func, int arity, const PlTerm *arg);
513 
514 PlTerm Pl_Mk_Callable(int func, int arity, const PlTerm *arg);
515 
516 PlTerm Pl_Mk_Variable(void);
517 
518 
519 
520 
521 int Pl_Type_Of_Term(PlTerm term);
522 
523 int Pl_List_Length(PlTerm list);
524 
525 PlLong Pl_Term_Compare(PlTerm term1, PlTerm term2);
526 
527 
528 
529 PlBool Pl_Builtin_Var(PlTerm term);
530 
531 PlBool Pl_Builtin_Non_Var(PlTerm term);
532 
533 PlBool Pl_Builtin_Atom(PlTerm term);
534 
535 PlBool Pl_Builtin_Integer(PlTerm term);
536 
537 PlBool Pl_Builtin_Float(PlTerm term);
538 
539 PlBool Pl_Builtin_Number(PlTerm term);
540 
541 PlBool Pl_Builtin_Atomic(PlTerm term);
542 
543 PlBool Pl_Builtin_Compound(PlTerm term);
544 
545 PlBool Pl_Builtin_Callable(PlTerm term);
546 
547 PlBool Pl_Builtin_Fd_Var(PlTerm term);
548 
549 PlBool Pl_Builtin_Non_Fd_Var(PlTerm term);
550 
551 PlBool Pl_Builtin_Generic_Var(PlTerm term);
552 
553 PlBool Pl_Builtin_Non_Generic_Var(PlTerm term);
554 
555 PlBool Pl_Builtin_List(PlTerm term);
556 
557 PlBool Pl_Builtin_Partial_List(PlTerm term);
558 
559 PlBool Pl_Builtin_List_Or_Partial_List(PlTerm term);
560 
561 
562 
563 PlBool Pl_Builtin_Term_Eq(PlTerm term1, PlTerm term2);
564 
565 PlBool Pl_Builtin_Term_Neq(PlTerm term1, PlTerm term2);
566 
567 PlBool Pl_Builtin_Term_Lt(PlTerm term1, PlTerm term2);
568 
569 PlBool Pl_Builtin_Term_Lte(PlTerm term1, PlTerm term2);
570 
571 PlBool Pl_Builtin_Term_Gt(PlTerm term1, PlTerm term2);
572 
573 PlBool Pl_Builtin_Term_Gte(PlTerm term1, PlTerm term2);
574 
575 
576 
577 PlBool Pl_Builtin_Compare(PlTerm cmp, PlTerm term1, PlTerm term2);
578 
579 PlBool Pl_Builtin_Arg(PlTerm arg_no, PlTerm term, PlTerm sub_term);
580 
581 PlBool Pl_Builtin_Functor(PlTerm term, PlTerm functor, PlTerm arity);
582 
583 PlBool Pl_Builtin_Univ(PlTerm term, PlTerm list);
584 
585 
586 
587 
588 PlBool Pl_Builtin_Eq(PlTerm expr1, PlTerm expr2);
589 
590 PlBool Pl_Builtin_Neq(PlTerm expr1, PlTerm expr2);
591 
592 PlBool Pl_Builtin_Lt(PlTerm expr1, PlTerm expr2);
593 
594 PlBool Pl_Builtin_Lte(PlTerm expr1, PlTerm expr2);
595 
596 PlBool Pl_Builtin_Gt(PlTerm expr1, PlTerm expr2);
597 
598 PlBool Pl_Builtin_Gte(PlTerm expr1, PlTerm expr2);
599 
600 void Pl_Math_Evaluate(PlTerm expr, PlTerm *result);
601 
602 
603 
604 
605 int Pl_Term_Size(PlTerm term);
606 
607 void Pl_Copy_Term(PlTerm *dst_term, PlTerm *src_term);
608 
609 void Pl_Copy_Contiguous_Term(PlTerm *dst_term, PlTerm *src_term);
610 
611 
612 
613 
614 void Pl_Set_C_Bip_Name(const char *functor, int arity);
615 
616 void Pl_Unset_C_Bip_Name(void);
617 
618 
619 
620 
621 
622 void Pl_Err_Instantiation(void);
623 
624 void Pl_Err_Type(int atom_type, PlTerm term);
625 
626 void Pl_Err_Domain(int atom_domain, PlTerm term);
627 
628 void Pl_Err_Existence(int atom_object, PlTerm term);
629 
630 void Pl_Err_Permission(int atom_oper, int atom_perm, PlTerm term);
631 
632 void Pl_Err_Representation(int atom_flag);
633 
635 
636 void Pl_Err_Resource(int atom_resource);
637 
638 void Pl_Err_Syntax(int pl_atom_error);
639 
640 void Pl_Err_System(int pl_atom_error);
641 
642 
643 void Pl_Emit_Syntax_Error(char *file_name, int err_line, int err_col, char *err_msg);
644 
645 void Pl_Os_Error(void);
646 
647 
648 
649 
650 void Pl_Write(PlTerm term);
651 
652 char *Pl_Write_To_String(PlTerm term);
653 
654 char *Pl_Writeq_To_String(PlTerm term);
655 
656 char *Pl_Write_Canonical_To_String(PlTerm term);
657 
658 char *Pl_Display_To_String(PlTerm term);
659 
660 PlTerm Pl_Read_From_String(const char *str);
661 
662 
663 
664 
665 void Pl_Exec_Continuation(int func, int arity, PlTerm *arg_adr);
666 
667 void Pl_Throw(PlTerm ball);
668 
669 void Pl_Query_Begin(PlBool recoverable);
670 
671 int Pl_Query_Call(int func, int arity, PlTerm *arg_adr);
672 
673 int Pl_Query_Start(int func, int arity, PlTerm *arg_adr, PlBool recoverable);
674 
675 int Pl_Query_Next_Solution(void);
676 
677 void Pl_Query_End(int op);
678 
679 PlTerm Pl_Get_Exception(void);
680 
681 
682 
683 
684 #define PL_PLV PL_REF
685 
686 
687 
688 /*-------------------------------------------------------------------------*
689  * Deprecated API *
690  * *
691  * For backward compatibility purpose only. New code should use new API. *
692  *-------------------------------------------------------------------------*/
693 
694 #ifndef __GPROLOG_FOREIGN_STRICT__
695 
696 #ifdef FALSE
697 
698 # if FALSE != 0
699 # error "FALSE already defined with a value != 0"
700 # endif
701 
702 #else
703 
704 #define FALSE 0
705 
706 #endif
707 
708 #ifdef TRUE
709 
710 # if TRUE != 1
711 # error "TRUE already defined with a value != 1"
712 # endif
713 
714 #else
715 
716 #define TRUE 1
717 
718 #endif
719 
720 #ifndef Bool
721 typedef PlBool Bool;
722 #endif
723 
724 
725 typedef PlFIOArg FIOArg;
726 
727 #define type_atom pl_type_atom
728 #define type_atomic pl_type_atomic
729 #define type_byte pl_type_byte
730 #define type_callable pl_type_callable
731 #define type_character pl_type_character
732 #define type_compound pl_type_compound
733 #define type_evaluable pl_type_evaluable
734 #define type_float pl_type_float
735 #define type_boolean pl_type_boolean
736 #define type_in_byte pl_type_in_byte
737 #define type_in_character pl_type_in_character
738 #define type_integer pl_type_integer
739 #define type_list pl_type_list
740 #define type_number pl_type_number
741 #define type_predicate_indicator pl_type_predicate_indicator
742 #define type_variable pl_type_variable /* deprecated: new code should emit an uninstantiation_error */
743 
744 #define type_fd_variable pl_type_fd_variable
745 #define type_fd_evaluable pl_type_fd_evaluable
746 #define type_fd_bool_evaluable pl_type_fd_bool_evaluable
747 
748 
749 #define domain_character_code_list pl_domain_character_code_list
750 #define domain_close_option pl_domain_close_option
751 #define domain_flag_value pl_domain_flag_value
752 #define domain_io_mode pl_domain_io_mode
753 #define domain_non_empty_list pl_domain_non_empty_list
754 #define domain_not_less_than_zero pl_domain_not_less_than_zero
755 #define domain_operator_priority pl_domain_operator_priority
756 #define domain_operator_specifier pl_domain_operator_specifier
757 #define domain_prolog_flag pl_domain_prolog_flag
758 #define domain_read_option pl_domain_read_option
759 #define domain_source_sink pl_domain_source_sink
760 #define domain_stream pl_domain_stream
761 #define domain_stream_option pl_domain_stream_option
762 #define domain_stream_or_alias pl_domain_stream_or_alias
763 #define domain_stream_position pl_domain_stream_position
764 #define domain_stream_property pl_domain_stream_property
765 #define domain_write_option pl_domain_write_option
766 #define domain_term_stream_or_alias pl_domain_term_stream_or_alias
767 #define domain_g_array_index pl_domain_g_array_index
768 #define domain_g_argument_selector pl_domain_g_argument_selector
769 #define domain_stream_seek_method pl_domain_stream_seek_method
770 #define domain_format_control_sequence pl_domain_format_control_sequence
771 #define domain_os_path pl_domain_os_path
772 #define domain_os_file_permission pl_domain_os_file_permission
773 #define domain_selectable_item pl_domain_selectable_item
774 #define domain_date_time pl_domain_date_time
775 
776 
777 #define existence_procedure pl_existence_procedure
778 #define existence_source_sink pl_existence_source_sink
779 #define existence_stream pl_existence_stream
780 #define existence_sr_descriptor pl_existence_sr_descriptor
781 
782 
783 #define permission_operation_access pl_permission_operation_access
784 #define permission_operation_close pl_permission_operation_close
785 #define permission_operation_create pl_permission_operation_create
786 #define permission_operation_input pl_permission_operation_input
787 #define permission_operation_modify pl_permission_operation_modify
788 #define permission_operation_open pl_permission_operation_open
789 #define permission_operation_output pl_permission_operation_output
790 #define permission_operation_reposition pl_permission_operation_reposition
791 
792 
793 #define permission_type_binary_stream pl_permission_type_binary_stream
794 #define permission_type_flag pl_permission_type_flag
795 #define permission_type_operator pl_permission_type_operator
796 #define permission_type_past_end_of_stream pl_permission_type_past_end_of_stream
797 #define permission_type_private_procedure pl_permission_type_private_procedure
798 #define permission_type_static_procedure pl_permission_type_static_procedure
799 #define permission_type_source_sink pl_permission_type_source_sink
800 #define permission_type_stream pl_permission_type_stream
801 #define permission_type_text_stream pl_permission_type_text_stream
802 
803 
804 #define representation_character pl_representation_character
805 #define representation_character_code pl_representation_character_code
806 #define representation_in_character_code pl_representation_in_character_code
807 #define representation_max_arity pl_representation_max_arity
808 #define representation_max_integer pl_representation_max_integer
809 #define representation_min_integer pl_representation_min_integer
810 #define representation_too_many_variables pl_representation_too_many_variables
811 
812 #define evluation_float_overflow pl_evluation_float_overflow
813 #define evluation_int_overflow pl_evluation_int_overflow
814 #define evluation_undefined pl_evluation_undefined
815 #define evluation_underflow pl_evluation_underflow
816 #define evluation_zero_divisor pl_evluation_zero_divisor
817 
818 
819 #define resource_print_object_not_linked pl_resource_print_object_not_linked
820 #define resource_too_big_fd_constraint pl_resource_too_big_fd_constraint
821 
822 
823 
824 #define Start_Prolog(argc, argv) Pl_Start_Prolog(argc, argv)
825 
826 #define Stop_Prolog() Pl_Stop_Prolog()
827 
828 #define Reset_Prolog() Pl_Reset_Prolog()
829 
830 #define Try_Execute_Top_Level() Pl_Try_Execute_Top_Level()
831 
832 
833 
834 
835 
836 #define Get_Choice_Counter() Pl_Get_Choice_Counter()
837 
838 #define Get_Choice_Buffer(t) Pl_Get_Choice_Buffer(t)
839 
840 #define No_More_Choice() Pl_No_More_Choice()
841 
842 
843 #define Atom_Name(a) Pl_Atom_Name(a)
844 
845 #define Atom_Length(a) Pl_Atom_Length(a)
846 
847 #define Atom_Needs_Quote(a) Pl_Atom_Needs_Quote(a)
848 
849 #define Atom_Needs_Scan(a) Pl_Atom_Needs_Scan(a)
850 
851 #define Is_Valid_Atom(a) Pl_Is_Valid_Atom(a)
852 
853 #define Create_Atom(a) Pl_Create_Atom(a)
854 
855 #define Create_Allocate_Atom(a) Pl_Create_Allocate_Atom(a)
856 
857 #define Find_Atom(a) Pl_Find_Atom(a)
858 
859 #define ATOM_CHAR(c) Pl_Atom_Char(c)
860 
861 #define atom_nil Pl_Atom_Nil()
862 
863 #define atom_false Pl_Atom_False()
864 
865 #define atom_true Pl_Atom_True()
866 
867 #define atom_end_of_file Pl_Atom_End_Of_File()
868 
869 
870 
871 #define Rd_Integer_Check(term) Pl_Rd_Integer_Check(term)
872 
873 #define Rd_Integer(term) Pl_Rd_Integer(term)
874 
875 #define Rd_Positive_Check(term) Pl_Rd_Positive_Check(term)
876 
877 #define Rd_Positive(term) Pl_Rd_Positive(term)
878 
879 #define Rd_Float_Check(term) Pl_Rd_Float_Check(term)
880 
881 #define Rd_Float(term) Pl_Rd_Float(term)
882 
883 #define Rd_Number_Check(term) Pl_Rd_Number_Check(term)
884 
885 #define Rd_Number(term) Pl_Rd_Number(term)
886 
887 #define Rd_Atom_Check(term) Pl_Rd_Atom_Check(term)
888 
889 #define Rd_Atom(term) Pl_Rd_Atom(term)
890 
891 #define Rd_Boolean_Check(term) Pl_Rd_Boolean_Check(term)
892 
893 #define Rd_Boolean(term) Pl_Rd_Boolean(term)
894 
895 #define Rd_Char_Check(term) Pl_Rd_Char_Check(term)
896 
897 #define Rd_Char(term) Pl_Rd_Char(term)
898 
899 #define Rd_In_Char_Check(term) Pl_Rd_In_Char_Check(term)
900 
901 #define Rd_In_Char(term) Pl_Rd_In_Char(term)
902 
903 #define Rd_Code_Check(term) Pl_Rd_Code_Check(term)
904 
905 #define Rd_Code(term) Pl_Rd_Code(term)
906 
907 #define Rd_In_Code_Check(term) Pl_Rd_In_Code_Check(term)
908 
909 #define Rd_In_Code(term) Pl_Rd_In_Code(term)
910 
911 #define Rd_Byte_Check(term) Pl_Rd_Byte_Check(term)
912 
913 #define Rd_Byte(term) Pl_Rd_Byte(term)
914 
915 #define Rd_In_Byte_Check(term) Pl_Rd_In_Byte_Check(term)
916 
917 #define Rd_In_Byte(term) Pl_Rd_In_Byte(term)
918 
919 #define Rd_String_Check(term) Pl_Rd_String_Check(term)
920 
921 #define Rd_String(term) Pl_Rd_String(term)
922 
923 #define Rd_Chars_Check(term) Pl_Rd_Chars_Check(term)
924 
925 #define Rd_Chars(term) Pl_Rd_Chars(term)
926 
927 #define Rd_Codes_Check(term) Pl_Rd_Codes_Check(term)
928 
929 #define Rd_Codes(term) Pl_Rd_Codes(term)
930 
931 #define Rd_Chars_Str_Check(term, str) Pl_Rd_Chars_Str_Check(term, str)
932 
933 #define Rd_Chars_Str(term, str) Pl_Rd_Chars_Str(term, str)
934 
935 #define Rd_Codes_Str_Check(term, str) Pl_Rd_Codes_Str_Check(term, str)
936 
937 #define Rd_Codes_Str(term, str) Pl_Rd_Codes_Str(term, str)
938 
939 #define Rd_List_Check(term) Pl_Rd_List_Check(term)
940 
941 #define Rd_List(term) Pl_Rd_List(term)
942 
943 #define Rd_Proper_List_Check(term, arg) Pl_Rd_Proper_List_Check(term, arg)
944 
945 #define Rd_Proper_List(term, arg) Pl_Rd_Proper_List(term, arg)
946 
947 #define Rd_Compound_Check(term, func, arity) Pl_Rd_Compound_Check(term, func, arity)
948 
949 #define Rd_Compound(term, func, arity) Pl_Rd_Compound(term, func, arity)
950 
951 #define Rd_Callable_Check(term, func, arity) Pl_Rd_Callable_Check(term, func, arity)
952 
953 #define Rd_Callable(term, func, arity) Pl_Rd_Callable(term, func, arity)
954 
955 
956 
957 #define Check_For_Un_Integer(term) Pl_Check_For_Un_Integer(term)
958 
959 #define Check_For_Un_Positive(term) Pl_Check_For_Un_Positive(term)
960 
961 #define Check_For_Un_Float(term) Pl_Check_For_Un_Float(term)
962 
963 #define Check_For_Un_Number(term) Pl_Check_For_Un_Number(term)
964 
965 #define Check_For_Un_Atom(term) Pl_Check_For_Un_Atom(term)
966 
967 #define Check_For_Un_Boolean(term) Pl_Check_For_Un_Boolean(term)
968 
969 #define Check_For_Un_Char(term) Pl_Check_For_Un_Char(term)
970 
971 #define Check_For_Un_In_Char(term) Pl_Check_For_Un_In_Char(term)
972 
973 #define Check_For_Un_Code(term) Pl_Check_For_Un_Code(term)
974 
975 #define Check_For_Un_In_Code(term) Pl_Check_For_Un_In_Code(term)
976 
977 #define Check_For_Un_Byte(term) Pl_Check_For_Un_Byte(term)
978 
979 #define Check_For_Un_In_Byte(term) Pl_Check_For_Un_In_Byte(term)
980 
981 #define Check_For_Un_String(term) Pl_Check_For_Un_String(term)
982 
983 #define Check_For_Un_Chars(term) Pl_Check_For_Un_Chars(term)
984 
985 #define Check_For_Un_Codes(term) Pl_Check_For_Un_Codes(term)
986 
987 #define Check_For_Un_List(term) Pl_Check_For_Un_List(term)
988 
989 #define Check_For_Un_Compound(term) Pl_Check_For_Un_Compound(term)
990 
991 #define Check_For_Un_Callable(term) Pl_Check_For_Un_Callable(term)
992 
993 #define Check_For_Un_Variable(term) Pl_Check_For_Un_Variable(term)
994 
995 
996 
997 #define Un_Integer_Check(value, term) Pl_Un_Integer_Check(value, term)
998 
999 #define Un_Integer(value, term) Pl_Un_Integer(value, term)
1000 
1001 #define Un_Positive_Check(value, term) Pl_Un_Positive_Check(value, term)
1002 
1003 #define Un_Positive(value, term) Pl_Un_Positive(value, term)
1004 
1005 #define Un_Float_Check(value, term) Pl_Un_Float_Check(value, term)
1006 
1007 #define Un_Float(value, term) Pl_Un_Float(value, term)
1008 
1009 #define Un_Number_Check(value, term) Pl_Un_Number_Check(value, term)
1010 
1011 #define Un_Number(value, term) Pl_Un_Number(value, term)
1012 
1013 #define Un_Atom_Check(value, term) Pl_Un_Atom_Check(value, term)
1014 
1015 #define Un_Atom(value, term) Pl_Un_Atom(value, term)
1016 
1017 #define Un_Boolean_Check(value, term) Pl_Un_Boolean_Check(value, term)
1018 
1019 #define Un_Boolean(value, term) Pl_Un_Boolean(value, term)
1020 
1021 #define Un_Char_Check(value, term) Pl_Un_Char_Check(value, term)
1022 
1023 #define Un_Char(value, term) Pl_Un_Char(value, term)
1024 
1025 #define Un_In_Char_Check(value, term) Pl_Un_In_Char_Check(value, term)
1026 
1027 #define Un_In_Char(value, term) Pl_Un_In_Char(value, term)
1028 
1029 #define Un_Code_Check(value, term) Pl_Un_Code_Check(value, term)
1030 
1031 #define Un_Code(value, term) Pl_Un_Code(value, term)
1032 
1033 #define Un_In_Code_Check(value, term) Pl_Un_In_Code_Check(value, term)
1034 
1035 #define Un_In_Code(value, term) Pl_Un_In_Code(value, term)
1036 
1037 #define Un_Byte_Check(value, term) Pl_Un_Byte_Check(value, term)
1038 
1039 #define Un_Byte(value, term) Pl_Un_Byte(value, term)
1040 
1041 #define Un_In_Byte_Check(value, term) Pl_Un_In_Byte_Check(value, term)
1042 
1043 #define Un_In_Byte(value, term) Pl_Un_In_Byte(value, term)
1044 
1045 #define Un_String_Check(value, term) Pl_Un_String_Check(value, term)
1046 
1047 #define Un_String(value, term) Pl_Un_String(value, term)
1048 
1049 #define Un_Chars_Check(value, term) Pl_Un_Chars_Check(value, term)
1050 
1051 #define Un_Chars(value, term) Pl_Un_Chars(value, term)
1052 
1053 #define Un_Codes_Check(value, term) Pl_Un_Codes_Check(value, term)
1054 
1055 #define Un_Codes(value, term) Pl_Un_Codes(value, term)
1056 
1057 #define Un_List_Check(arg, term) Pl_Un_List_Check(arg, term)
1058 
1059 #define Un_List(arg, term) Pl_Un_List(arg, term)
1060 
1061 #define Un_Proper_List_Check(n, arg, term) Pl_Un_Proper_List_Check(n, arg, term)
1062 
1063 #define Un_Proper_List(n, arg, term) Pl_Un_Proper_List(n, arg, term)
1064 
1065 #define Un_Compound_Check(func, arity, arg, term) Pl_Un_Compound_Check(func, arity, arg, term)
1066 
1067 #define Un_Compound(func, arity, arg, term) Pl_Un_Compound(func, arity, arg, term)
1068 
1069 #define Un_Callable_Check(func, arity, arg, term) Pl_Un_Callable_Check(func, arity, arg, term)
1070 
1071 #define Un_Callable(func, arity, arg, term) Pl_Un_Callable(func, arity, arg, term)
1072 
1073 #define Un_Term(term1, term2) Pl_Un_Term(term1, term2)
1074 
1075 
1076 
1077 #define Mk_Integer(value) Pl_Mk_Integer(value)
1078 
1079 #define Mk_Positive(value) Pl_Mk_Positive(value)
1080 
1081 #define Mk_Float(value) Pl_Mk_Float(value)
1082 
1083 #define Mk_Number(value) Pl_Mk_Number(value)
1084 
1085 #define Mk_Atom(value) Pl_Mk_Atom(value)
1086 
1087 #define Mk_Boolean(value) Pl_Mk_Boolean(value)
1088 
1089 #define Mk_Char(value) Pl_Mk_Char(value)
1090 
1091 #define Mk_In_Char(value) Pl_Mk_In_Char(value)
1092 
1093 #define Mk_Code(value) Pl_Mk_Code(value)
1094 
1095 #define Mk_In_Code(value) Pl_Mk_In_Code(value)
1096 
1097 #define Mk_Byte(value) Pl_Mk_Byte(value)
1098 
1099 #define Mk_In_Byte(value) Pl_Mk_In_Byte(value)
1100 
1101 #define Mk_String(value) Pl_Mk_String(value)
1102 
1103 #define Mk_Chars(value) Pl_Mk_Chars(value)
1104 
1105 #define Mk_Codes(value) Pl_Mk_Codes(value)
1106 
1107 #define Mk_List(arg) Pl_Mk_List(arg)
1108 
1109 #define Mk_Proper_List(n, arg) Pl_Mk_Proper_List(n, arg)
1110 
1111 #define Mk_Compound(func, arity, arg) Pl_Mk_Compound(func, arity, arg)
1112 
1113 #define Mk_Callable(func, arity, arg) Pl_Mk_Callable(func, arity, arg)
1114 
1115 #define Mk_Variable() Pl_Mk_Variable()
1116 
1117 
1118 
1119 
1120 #define Blt_Var(term) Pl_Builtin_Var(term)
1121 
1122 #define Blt_Non_Var(term) Pl_Builtin_Non_Var(term)
1123 
1124 #define Blt_Atom(term) Pl_Builtin_Atom(term)
1125 
1126 #define Blt_Integer(term) Pl_Builtin_Integer(term)
1127 
1128 #define Blt_Float(term) Pl_Builtin_Float(term)
1129 
1130 #define Blt_Number(term) Pl_Builtin_Number(term)
1131 
1132 #define Blt_Atomic(term) Pl_Builtin_Atomic(term)
1133 
1134 #define Blt_Compound(term) Pl_Builtin_Compound(term)
1135 
1136 #define Blt_Callable(term) Pl_Builtin_Callable(term)
1137 
1138 #define Blt_Fd_Var(term) Pl_Builtin_Fd_Var(term)
1139 
1140 #define Blt_Non_Fd_Var(term) Pl_Builtin_Non_Fd_Var(term)
1141 
1142 #define Blt_Generic_Var(term) Pl_Builtin_Generic_Var(term)
1143 
1144 #define Blt_Non_Generic_Var(term) Pl_Builtin_Non_Generic_Var(term)
1145 
1146 #define Blt_List(term) Pl_Builtin_List(term)
1147 
1148 #define Blt_Partial_List(term) Pl_Builtin_Partial_List(term)
1149 
1150 #define Blt_List_Or_Partial_List(term) Pl_Builtin_List_Or_Partial_List(term)
1151 
1152 
1153 #define Blt_Term_Eq(term1, term2) Pl_Builtin_Term_Eq(term1, term2)
1154 
1155 #define Blt_Term_Neq(term1, term2) Pl_Builtin_Term_Neq(term1, term2)
1156 
1157 #define Blt_Term_Lt(term1, term2) Pl_Builtin_Term_Lt(term1, term2)
1158 
1159 #define Blt_Term_Lte(term1, term2) Pl_Builtin_Term_Lte(term1, term2)
1160 
1161 #define Blt_Term_Gt(term1, term2) Pl_Builtin_Term_Gt(term1, term2)
1162 
1163 #define Blt_Term_Gte(term1, term2) Pl_Builtin_Term_Gte(term1, term2)
1164 
1165 
1166 #define Blt_Eq(expr1, expr2) Pl_Builtin_Eq(expr1, expr2)
1167 
1168 #define Blt_Neq(expr1, expr2) Pl_Builtin_Neq(expr1, expr2)
1169 
1170 #define Blt_Lt(expr1, expr2) Pl_Builtin_Lt(expr1, expr2)
1171 
1172 #define Blt_Lte(expr1, expr2) Pl_Builtin_Lte(expr1, expr2)
1173 
1174 #define Blt_Gt(expr1, expr2) Pl_Builtin_Gt(expr1, expr2)
1175 
1176 #define Blt_Gte(expr1, expr2) Pl_Builtin_Gte(expr1, expr2)
1177 
1178 
1179 #define Math_Load_Value(expr, result) Pl_Math_Evaluate(expr, result)
1180 
1181 
1182 
1183 
1184 
1185 #define Type_Of_Term(term) Pl_Type_Of_Term(term)
1186 
1187 
1188 
1189 #define Term_Size(term) Pl_Term_Size(term)
1190 
1191 #define Copy_Term(dst_term, src_term) Pl_Copy_Term(dst_term, src_term)
1192 
1193 #define Copy_Contiguous_Term(dst_term, src_term) Pl_Copy_Contiguous_Term(dst_term, src_term)
1194 
1195 
1196 
1197 #define Set_C_Bip_Name(functor, arity) Pl_Set_C_Bip_Name(functor, arity)
1198 
1199 #define Unset_C_Bip_Name() Pl_Unset_C_Bip_Name()
1200 
1201 
1202 
1203 #define Emit_Syntax_Error(file_name, err_line, err_col, err_msg) \
1204  Pl_Emit_Syntax_Error(file_name, err_line, err_col, err_msg)
1205 
1206 
1207 
1208 #define Os_Error() Pl_Os_Error()
1209 
1210 #define PLV PL_PLV
1211 #define FDV PL_FDV
1212 #define INT PL_INT
1213 #define FLT PL_FLT
1214 #define ATM PL_ATM
1215 #define LST PL_LST
1216 #define STC PL_STC
1217 
1218 
1219 
1220 #define INT_LOWEST_VALUE PL_MIN_INTEGER
1221 #define INT_GREATEST_VALUE PL_MAX_INTEGER
1222 
1223 
1224 #define Unify(term1, term2) Pl_Unif(term1, term2)
1225 
1226 #define Unify_With_Occurs_Check(term1, term2) Pl_Unif_With_Occurs_Check(term1, term2)
1227 
1228 
1229 #endif /* !__GPROLOG_FOREIGN_STRICT__ */
1230 
1231 
1232 
1233 
1234 
1235 #ifdef __cplusplus
1236 }
1237 #endif
1238 #endif /* !_GPROLOG_H */
PlBool Pl_Builtin_Lt(PlTerm expr1, PlTerm expr2)
Definition: foreign_supp.c:992
int Pl_Rd_Char_Check(PlTerm term)
Definition: c_supp.c:453
int pl_domain_os_file_permission
void Pl_Check_For_Un_Float(PlTerm term)
Definition: c_supp.c:1280
PlBool Pl_Un_In_Char_Check(int value, PlTerm term)
Definition: c_supp.c:1803
int pl_existence_procedure
PlBool Pl_Is_Valid_Atom(int atom)
Definition: foreign_supp.c:549
int pl_permission_operation_open
PlBool Pl_Builtin_Non_Var(PlTerm term)
Definition: foreign_supp.c:665
PlTerm Pl_Mk_In_Code(int value)
Definition: c_supp.c:2390
Definition: gprolog.h:86
void Pl_Check_For_Un_Number(PlTerm term)
Definition: c_supp.c:1293
void Pl_Check_For_Un_List(PlTerm term)
Definition: c_supp.c:1512
PlBool Pl_Builtin_Non_Fd_Var(PlTerm term)
Definition: foreign_supp.c:773
int pl_domain_stream_or_alias
int pl_existence_source_sink
int pl_domain_flag_value
int Pl_Atom_Char(char c)
Definition: foreign_supp.c:561
PlBool Pl_Builtin_Eq(PlTerm expr1, PlTerm expr2)
Definition: foreign_supp.c:968
int pl_type_callable
int pl_existence_stream
PlBool Pl_Builtin_List(PlTerm term)
Definition: foreign_supp.c:809
PlLong Pl_Rd_Integer(PlTerm term)
Definition: c_supp.c:238
intptr_t PlTerm
Definition: gprolog.h:92
char * Pl_Rd_Chars_Check(PlTerm term)
Definition: c_supp.c:717
void Pl_Check_For_Un_In_Byte(PlTerm term)
Definition: c_supp.c:1397
int pl_representation_max_arity
int Pl_Rd_In_Code(PlTerm term)
Definition: c_supp.c:595
int pl_domain_character_code_list
PlBool Pl_Builtin_Gte(PlTerm expr1, PlTerm expr2)
Definition: foreign_supp.c:1028
int Pl_Rd_Char(PlTerm term)
Definition: c_supp.c:477
int Pl_Query_Next_Solution(void)
Definition: foreign_supp.c:383
PlBool Pl_Un_Atom_Check(int value, PlTerm term)
Definition: c_supp.c:1719
void Pl_Copy_Term(PlTerm *dst_term, PlTerm *src_term)
Definition: term_supp.c:337
void Pl_Check_For_Un_Boolean(PlTerm term)
Definition: c_supp.c:1319
void Pl_Check_For_Un_Integer(PlTerm term)
Definition: c_supp.c:1254
int pl_representation_too_many_variables
int pl_permission_operation_close
int pl_type_compound
int pl_domain_operator_priority
int Pl_Rd_Boolean(PlTerm term)
Definition: c_supp.c:433
int pl_existence_sr_descriptor
int Pl_List_Length(PlTerm list)
Definition: term_supp.c:248
PlBool Pl_Un_List(PlTerm *arg, PlTerm term)
Definition: c_supp.c:2094
int pl_evluation_int_overflow
PlBool Pl_Un_Callable(int func, int arity, PlTerm *arg, PlTerm term)
Definition: c_supp.c:2240
double Pl_Rd_Number_Check(PlTerm term)
Definition: c_supp.c:325
PlBool Pl_Un_Float_Check(double value, PlTerm term)
Definition: c_supp.c:1654
PlBool Pl_Builtin_Term_Gte(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:906
PlBool Pl_Builtin_Univ(PlTerm term, PlTerm list)
Definition: foreign_supp.c:955
int pl_permission_operation_output
PlTerm * Pl_Rd_Compound(PlTerm term, int *func, int *arity)
Definition: c_supp.c:1133
PlBool Pl_Builtin_Compound(PlTerm term)
Definition: foreign_supp.c:737
int Pl_Rd_In_Char(PlTerm term)
Definition: c_supp.c:521
static CHAR32_T c
Definition: scan_supp.c:65
PlTerm Pl_Mk_Char(int value)
Definition: c_supp.c:2351
PlBool unify
Definition: gprolog.h:97
PlBool Pl_Un_Code_Check(int value, PlTerm term)
Definition: c_supp.c:1833
char * Pl_Rd_Chars(PlTerm term)
Definition: c_supp.c:731
PlTerm Pl_Mk_Code(int value)
Definition: c_supp.c:2377
int pl_domain_g_argument_selector
int Pl_Rd_Byte_Check(PlTerm term)
Definition: c_supp.c:608
void Pl_Query_Begin(PlBool recoverable)
int Pl_Rd_Boolean_Check(PlTerm term)
Definition: c_supp.c:409
PlBool Pl_Un_Positive(PlLong value, PlTerm term)
Definition: c_supp.c:1641
PlBool Pl_Builtin_Arg(PlTerm arg_no, PlTerm term, PlTerm sub_term)
Definition: foreign_supp.c:931
PlBool Pl_Builtin_Generic_Var(PlTerm term)
Definition: foreign_supp.c:785
int pl_domain_read_option
int pl_domain_term_stream_or_alias
char * Pl_Write_Canonical_To_String(PlTerm term)
Definition: const_io_c.c:161
PlTerm Pl_Mk_Callable(int func, int arity, const PlTerm *arg)
int pl_domain_prolog_flag
PlTerm Pl_Mk_In_Byte(int value)
Definition: c_supp.c:2416
char * Pl_Rd_Codes(PlTerm term)
Definition: c_supp.c:759
int pl_permission_type_operator
int pl_domain_stream_seek_method
int pl_resource_too_big_fd_constraint
int pl_type_float
PlBool Pl_Un_String_Check(const char *value, PlTerm term)
void Pl_Err_Resource(int atom_resource)
Definition: error_supp.c:656
void Pl_Check_For_Un_Atom(PlTerm term)
Definition: c_supp.c:1306
int pl_domain_format_control_sequence
int pl_permission_type_stream
int pl_type_number
char * Pl_Display_To_String(PlTerm term)
Definition: const_io_c.c:180
PlBool Pl_Builtin_Term_Gt(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:894
PlTerm Pl_Mk_Variable(void)
Definition: c_supp.c:2607
PlBool Pl_Un_In_Code_Check(int value, PlTerm term)
Definition: c_supp.c:1861
PlBool Pl_Un_Byte_Check(int value, PlTerm term)
Definition: c_supp.c:1889
int pl_representation_character_code
PlBool Pl_Builtin_Functor(PlTerm term, PlTerm functor, PlTerm arity)
Definition: foreign_supp.c:943
int pl_permission_operation_modify
int pl_permission_operation_create
static char * err_msg
Definition: scan_supp.c:68
int pl_type_fd_bool_evaluable
int pl_atom_error
void Pl_Err_Permission(int atom_oper, int atom_perm, PlTerm term)
Definition: error_supp.c:609
int Pl_Rd_Chars_Str_Check(PlTerm term, char *str)
Definition: c_supp.c:773
char * Pl_Atom_Name(int atom)
Definition: foreign_supp.c:498
PlBool Pl_Builtin_Term_Neq(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:858
void Pl_Err_Instantiation(void)
Definition: error_supp.c:532
void Pl_Err_Domain(int atom_domain, PlTerm term)
Definition: error_supp.c:577
PlTerm * Pl_Rd_List_Check(PlTerm term)
Definition: c_supp.c:929
int pl_domain_close_option
int Pl_Type_Of_Term(PlTerm term)
Definition: foreign_supp.c:481
void Pl_Write(PlTerm term)
Definition: write_supp.c:252
int Pl_Rd_Code_Check(PlTerm term)
Definition: c_supp.c:544
int pl_type_integer
PlBool Pl_Builtin_Gt(PlTerm expr1, PlTerm expr2)
Definition: foreign_supp.c:1016
int pl_type_fd_evaluable
intptr_t PlLong
Definition: gprolog.h:88
int pl_type_in_character
PlBool Pl_Builtin_Partial_List(PlTerm term)
Definition: foreign_supp.c:821
int pl_type_in_byte
void Pl_Check_For_Un_Callable(PlTerm term)
Definition: c_supp.c:1572
int pl_evluation_float_overflow
PlBool
Definition: gprolog.h:86
PlBool Pl_Try_Execute_Top_Level(void)
Definition: engine.c:322
int pl_domain_os_path
int pl_type_atom
PlBool Pl_Un_Float(double value, PlTerm term)
Definition: c_supp.c:1669
PlTerm Pl_Mk_Number(double value)
Definition: c_supp.c:2305
PlLong Pl_Rd_Integer_Check(PlTerm term)
Definition: c_supp.c:216
PlBool Pl_Unif_With_Occurs_Check(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:635
PlBool Pl_Builtin_Integer(PlTerm term)
Definition: foreign_supp.c:689
PlBool Pl_Un_Chars_Check(const char *value, PlTerm term)
PlTerm Pl_Mk_Integer(PlLong value)
Definition: c_supp.c:2266
int pl_type_predicate_indicator
PlBool Pl_Un_Term(PlTerm term1, PlTerm term2)
Definition: c_supp.c:2253
int pl_evluation_undefined
PlTerm Pl_Mk_Atom(int value)
Definition: c_supp.c:2325
PlBool Pl_Builtin_Term_Eq(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:846
PlBool Pl_Builtin_Atom(PlTerm term)
Definition: foreign_supp.c:677
ArgInf arg[MAX_ARGS]
Definition: ma_parser.c:114
PlTerm * Pl_Rd_Callable(PlTerm term, int *func, int *arity)
Definition: c_supp.c:1213
int pl_type_character
PlBool Pl_Un_Proper_List(int n, PlTerm *arg, PlTerm term)
Definition: c_supp.c:2125
PlTerm Pl_Get_Exception(void)
Definition: foreign_supp.c:452
Definition: gprolog.h:86
int Pl_Rd_In_Byte_Check(PlTerm term)
Definition: c_supp.c:645
PlBool Pl_Un_Number(double value, PlTerm term)
Definition: c_supp.c:1701
void Pl_Check_For_Un_String(PlTerm term)
Definition: c_supp.c:1465
double d
Definition: asm.c:27
int Pl_Query_Start(int func, int arity, PlTerm *arg_adr, PlBool recoverable)
int pl_evluation_zero_divisor
PlBool Pl_Builtin_Term_Lt(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:870
int pl_representation_character
void Pl_Err_Type(int atom_type, PlTerm term)
Definition: error_supp.c:561
PlTerm Pl_Mk_Boolean(int value)
Definition: c_supp.c:2338
void Pl_Err_Existence(int atom_object, PlTerm term)
Definition: error_supp.c:593
int pl_representation_min_integer
int Pl_Rd_In_Char_Check(PlTerm term)
Definition: c_supp.c:496
char * Pl_Rd_Codes_Check(PlTerm term)
Definition: c_supp.c:745
int pl_domain_stream_option
int pl_type_byte
PlBool Pl_Builtin_Compare(PlTerm cmp, PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:919
PlTerm Pl_Mk_Codes(const char *value)
PlBool Pl_Un_In_Char(int value, PlTerm term)
Definition: c_supp.c:1819
PlTerm * Pl_Rd_Callable_Check(PlTerm term, int *func, int *arity)
Definition: c_supp.c:1167
void Pl_Check_For_Un_Char(PlTerm term)
Definition: c_supp.c:1332
PlTerm Pl_Mk_Positive(PlLong value)
Definition: c_supp.c:2279
PlBool Pl_Un_List_Check(PlTerm *arg, PlTerm term)
Definition: c_supp.c:2063
void Pl_Check_For_Un_Variable(PlTerm term)
Definition: c_supp.c:1585
int pl_permission_type_private_procedure
int Pl_Rd_Atom_Check(PlTerm term)
Definition: c_supp.c:370
int pl_type_variable
void Pl_Check_For_Un_Code(PlTerm term)
Definition: c_supp.c:1358
int Pl_Rd_In_Byte(PlTerm term)
Definition: c_supp.c:669
void Pl_Check_For_Un_Chars(PlTerm term)
Definition: c_supp.c:1431
void Pl_No_More_Choice(void)
Definition: foreign_supp.c:468
PlBool Pl_Builtin_Fd_Var(PlTerm term)
Definition: foreign_supp.c:761
PlBool Bool
Definition: gprolog.h:721
PlTerm * Pl_Rd_Compound_Check(PlTerm term, int *func, int *arity)
Definition: c_supp.c:1095
int pl_permission_type_source_sink
void Pl_Stop_Prolog(void)
Definition: engine.c:230
void Pl_Check_For_Un_In_Code(PlTerm term)
Definition: c_supp.c:1371
void Pl_Check_For_Un_Compound(PlTerm term)
Definition: c_supp.c:1559
char * pl_foreign_bkt_buffer
PlBool Pl_Un_Boolean(int value, PlTerm term)
Definition: c_supp.c:1762
PlTerm Pl_Mk_Compound(int func, int arity, const PlTerm *arg)
PlBool Pl_Un_Compound_Check(int func, int arity, PlTerm *arg, PlTerm term)
Definition: c_supp.c:2149
void Pl_Check_For_Un_Byte(PlTerm term)
Definition: c_supp.c:1384
int Pl_Query_Call(int func, int arity, PlTerm *arg_adr)
Definition: foreign_supp.c:339
void Pl_Emit_Syntax_Error(char *file_name, int err_line, int err_col, char *err_msg)
Definition: foreign_supp.c:233
PlBool Pl_Un_Boolean_Check(int value, PlTerm term)
Definition: c_supp.c:1747
int Pl_Rd_Atom(PlTerm term)
Definition: c_supp.c:392
int Pl_Rd_Byte(PlTerm term)
Definition: c_supp.c:632
PlBool Pl_Un_Number_Check(double value, PlTerm term)
Definition: c_supp.c:1682
PlBool Pl_Un_String(const char *value, PlTerm term)
int pl_representation_max_integer
int pl_domain_operator_specifier
int Pl_Create_Atom(const char *atom)
int pl_type_boolean
int pl_domain_write_option
void Pl_Err_Evaluation(int pl_atom_error)
Definition: error_supp.c:641
PlBool Pl_Un_Atom(int value, PlTerm term)
Definition: c_supp.c:1734
int pl_permission_type_binary_stream
PlBool Pl_Builtin_Atomic(PlTerm term)
Definition: foreign_supp.c:725
PlBool Pl_Builtin_Non_Generic_Var(PlTerm term)
Definition: foreign_supp.c:797
PlBool Pl_Un_Proper_List_Check(int n, PlTerm *arg, PlTerm term)
Definition: c_supp.c:2110
PlBool Pl_Un_Compound(int func, int arity, PlTerm *arg, PlTerm term)
Definition: c_supp.c:2181
PlBool Pl_Builtin_Float(PlTerm term)
Definition: foreign_supp.c:701
PlTerm Pl_Mk_Proper_List(int n, const PlTerm *arg)
PlBool Pl_Un_Integer_Check(PlLong value, PlTerm term)
Definition: c_supp.c:1598
int Pl_Create_Allocate_Atom(const char *atom)
void Pl_Exec_Continuation(int func, int arity, PlTerm *arg_adr)
Definition: foreign_supp.c:288
void Pl_Query_End(int op)
Definition: foreign_supp.c:400
int pl_foreign_bkt_counter
void Pl_Copy_Contiguous_Term(PlTerm *dst_term, PlTerm *src_term)
Definition: term_supp.c:483
Definition: foreign_supp.h:62
int Pl_Term_Size(PlTerm term)
Definition: term_supp.c:279
PlLong Pl_Term_Compare(PlTerm term1, PlTerm term2)
Definition: term_supp.c:89
PlBool Pl_Un_Positive_Check(PlLong value, PlTerm term)
Definition: c_supp.c:1626
PlBool Pl_Unif(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:621
PlBool Pl_Un_Byte(int value, PlTerm term)
Definition: c_supp.c:1904
PlBool Pl_Builtin_Var(PlTerm term)
Definition: foreign_supp.c:653
int Pl_Rd_Chars_Str(PlTerm term, char *str)
Definition: c_supp.c:817
void Pl_Math_Evaluate(PlTerm expr, PlTerm *result)
Definition: foreign_supp.c:1041
void Pl_Reset_Prolog(void)
Definition: engine.c:248
int Pl_Atom_False(void)
Definition: foreign_supp.c:584
PlBool Pl_Un_Codes(const char *value, PlTerm term)
int Pl_Rd_Codes_Str_Check(PlTerm term, char *str)
Definition: c_supp.c:852
void Pl_Err_Syntax(int pl_atom_error)
Definition: error_supp.c:671
int pl_representation_in_character_code
PlBool Pl_Atom_Needs_Quote(int atom)
Definition: foreign_supp.c:524
int pl_domain_selectable_item
int pl_domain_stream
char * Pl_Writeq_To_String(PlTerm term)
Definition: const_io_c.c:142
char * Pl_Rd_String_Check(PlTerm term)
Definition: c_supp.c:682
PlLong Pl_Rd_Positive(PlTerm term)
Definition: c_supp.c:273
int Pl_Rd_Proper_List_Check(PlTerm term, PlTerm *arg)
Definition: c_supp.c:979
int pl_type_evaluable
PlTerm Pl_Mk_Byte(int value)
Definition: c_supp.c:2403
PlBool Pl_Un_Char_Check(int value, PlTerm term)
PlTerm Pl_Mk_In_Char(int value)
Definition: c_supp.c:2364
int pl_domain_source_sink
int pl_domain_io_mode
PlBool Pl_Builtin_Term_Lte(PlTerm term1, PlTerm term2)
Definition: foreign_supp.c:882
void Pl_Err_System(int pl_atom_error)
Definition: error_supp.c:686
int pl_permission_operation_access
int pl_permission_type_static_procedure
void Pl_Throw(PlTerm ball)
Definition: foreign_supp.c:301
int Pl_Start_Prolog(int argc, char *argv[])
Definition: engine.c:122
int pl_domain_not_less_than_zero
int pl_permission_operation_reposition
void Pl_Set_C_Bip_Name(const char *functor, int arity)
int Pl_Find_Atom(const char *atom)
int Pl_Rd_In_Code_Check(PlTerm term)
Definition: c_supp.c:576
void Pl_Err_Representation(int atom_flag)
Definition: error_supp.c:626
PlBool Pl_Un_In_Code(int value, PlTerm term)
Definition: c_supp.c:1876
PlBool Pl_Un_Callable_Check(int func, int arity, PlTerm *arg, PlTerm term)
Definition: c_supp.c:2209
PlBool Pl_Builtin_Number(PlTerm term)
Definition: foreign_supp.c:713
int Pl_Atom_End_Of_File(void)
Definition: foreign_supp.c:608
double Pl_Rd_Float(PlTerm term)
Definition: c_supp.c:308
int pl_type_atomic
PlBool Pl_Un_In_Byte_Check(int value, PlTerm term)
Definition: c_supp.c:1917
int pl_permission_type_flag
void Pl_Unset_C_Bip_Name(void)
Definition: error_supp.c:329
int pl_domain_non_empty_list
int pl_permission_type_past_end_of_stream
int pl_permission_operation_input
PlTerm Pl_Mk_Chars(const char *value)
PlBool is_var
Definition: gprolog.h:96
PlTerm Pl_Mk_List(const PlTerm *arg)
int Pl_Rd_Code(PlTerm term)
Definition: c_supp.c:563
PlTerm Pl_Mk_Float(double value)
Definition: c_supp.c:2292
PlBool Pl_Un_Integer(PlLong value, PlTerm term)
Definition: c_supp.c:1613
PlLong Pl_Rd_Positive_Check(PlTerm term)
Definition: c_supp.c:255
PlBool Pl_Atom_Needs_Scan(int atom)
Definition: foreign_supp.c:537
PlBool Pl_Builtin_Lte(PlTerm expr1, PlTerm expr2)
Definition: foreign_supp.c:1004
int pl_domain_g_array_index
PlBool Pl_Builtin_List_Or_Partial_List(PlTerm term)
Definition: foreign_supp.c:833
int Pl_Rd_Proper_List(PlTerm term, PlTerm *arg)
Definition: c_supp.c:1063
int pl_evluation_underflow
void Pl_Os_Error(void)
double Pl_Rd_Number(PlTerm term)
Definition: c_supp.c:350
int pl_type_list
int pl_type_fd_variable
int Pl_Atom_True(void)
Definition: foreign_supp.c:596
PlBool Pl_Builtin_Callable(PlTerm term)
Definition: foreign_supp.c:749
int Pl_Atom_Nil(void)
Definition: foreign_supp.c:573
int pl_permission_type_text_stream
double Pl_Rd_Float_Check(PlTerm term)
Definition: c_supp.c:286
PlBool Pl_Un_Char(int value, PlTerm term)
char * Pl_Write_To_String(PlTerm term)
Definition: const_io_c.c:123
void Pl_Check_For_Un_Codes(PlTerm term)
Definition: c_supp.c:1478
PlBool Pl_Un_In_Byte(int value, PlTerm term)
Definition: c_supp.c:1932
PlTerm * Pl_Rd_List(PlTerm term)
Definition: c_supp.c:957
int pl_domain_date_time
int Pl_Atom_Length(int atom)
Definition: foreign_supp.c:511
PlTerm Pl_Mk_String(const char *value)
PlBool Pl_Builtin_Neq(PlTerm expr1, PlTerm expr2)
Definition: foreign_supp.c:980
void Pl_Check_For_Un_Positive(PlTerm term)
Definition: c_supp.c:1267
PlFIOArg FIOArg
Definition: gprolog.h:725
PlBool Pl_Un_Code(int value, PlTerm term)
Definition: c_supp.c:1848
void Pl_Check_For_Un_In_Char(PlTerm term)
Definition: c_supp.c:1345
uintptr_t PlULong
Definition: gprolog.h:90
PlBool Pl_Un_Chars(const char *value, PlTerm term)
char * Pl_Rd_String(PlTerm term)
Definition: c_supp.c:704
int pl_resource_print_object_not_linked
PlBool Pl_Un_Codes_Check(const char *value, PlTerm term)
PlTerm Pl_Read_From_String(const char *str)
int pl_domain_stream_position
int Pl_Rd_Codes_Str(PlTerm term, char *str)
Definition: c_supp.c:896
int pl_domain_stream_property