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.}
|