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).
| term | ::= (any Prolog term) | var | nonvar
|
|
| |
| list | ::= [] | [term|list]
|
|
| |
| list of Type | ::= [] | [Type|list of Type]
|
|
| |
| one of [Element|Rest] | ::= Element | one of Rest
|
|
| |
| arity | ::= {An integer X in the range 0..255}
|
|
| |
| char | ::= {An integer X in the range 1..255}
|
|
| |
| chars | ::= [] | [char|chars]
|
|
| |
| pair | ::= term-term
|
|
| |
| simple_pred_spec | ::= atom/arity
|
|
| |
| pred_spec | ::= simple_pred_spec | atom:pred_spec
|
|
| |
| pred_spec_tree | ::= [] | pred_spec | [pred_spec_tree|pred_spec_tree]
|
|
| |
| pred_spec_forest | ::= [] | pred_spec
|
| [pred_spec_forest|pred_spec_forest]
| |
| pred_spec_forest,pred_spec_forest
| |
|
| |
| gen_pred_spec | ::= atom | atom:gen_pred_spec
|
| | simple_pred_spec
| |
|
| |
| gen_pred_spec_tree | ::= [] | gen_pred_spec
|
| [gen_pred_spec_tree|gen_pred_spec_tree]
| |
|
| |
| gen_pred_spec_tree_var | ::= gen_pred_spec_tree {in which all atoms also can be variables}
|
|
| |
| extern_spec | ::= atom
|
| | compound {all arguments being extern_arg}
| |
|
| |
| extern_arg | ::= +interf_arg_type | -interf_arg_type
|
|
| |
| foreign_spec | ::= atom
|
| | compound {all arguments being foreign_arg}
| |
|
| |
| foreign_arg | ::= +interf_arg_type | -interf_arg_type | [-interf_arg_type]
|
|
| |
| interf_arg_type | ::= integer | float | single | double | atom
|
| term | string | string(integer) | address | address(atom)
| |
|
| |
| 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.}
|