Following is a list of argument types that are defined in terms of the simple argument types. This is a formal description of the types/domains used in the Arguments sections of the reference pages for the built-ins. The rules are given in BNF (Backus-Naur form).
stream_object | ::= term {as defined in ref-iou-sfh-sob}
|
term | ::= {any Prolog term}
|
list of Type | ::= [] | [ Type| list of Type]
|
one of [Element|Rest] | ::= Element | one of Rest
|
arity | ::= {an integer X in the range 0..255}
|
byte | ::= {an integer X in the range 0..255}
|
char | ::= {an atom consisting of a single character}
|
chars | ::= list of char
|
code | ::= {an integer X >= 0}
|
codes | ::= list of code
|
pair | ::= term- term
|
simple_pred_spec | ::= atom/ arity
|
pred_spec | ::= simple_pred_spec | atom: pred_spec
|
pred_spec_forest | ::= [] | pred_spec
|
| [ pred_spec_forest| pred_spec_forest]
| |
| pred_spec_forest, pred_spec_forest
| |
pred_spec_tree | ::= pred_spec | list of pred_spec
|
foreign_spec | ::= callable {all arguments being foreign_arg}
|
foreign_arg | ::= + interf_arg_type | - interf_arg_type | [- interf_arg_type]
|
interf_arg_type | ::= integer | float | atom
|
| term | codes | string | address | address( atom)
| |
{see the description in Conversions between Prolog Arguments and C Types}
| |
file_spec | ::= atom | atom( file_spec)
|
expr | ::= {everything that is accepted as second argument to is/2 ;
|
see the description of arithmetic expressions in ref-ari-aex.}
|