[ Syntax Settings | Reference Manual | Alphabetic Index ]
local syntax_option(++Option)
export syntax_option(++Option)
set_flag(syntax_option, ++Option)
Select or unselect a syntax option.
- Option
- an atom or a term not(Atom)
Description
Syntax options affect the way the ECLiPSe parser (i.e. the predicates
of the read-family and the compiler) works. Together with operator-,
macro- and structure-declarations they determine the exact syntax that
is accepted as valid input. Note that most compatibility packages
affect these flags as well, leading to different default settings.
An option Option is selected via syntax_option(Option)
and unselected via syntax_option(not(Option)).
Options can be declared as local to the contect module, or exported.
The following options are available:
- atom_subscripts
-
allow atoms to be followed by subscripts, and parse as subscript/2.
Useful for parsing other languages, e.g. FlatZinc.
- bar_is_no_atom
-
disallow the use of an unquoted vertical bar as atom or functor,
except when it occurs in infix-position.
- bar_is_semicolon
-
translate occurrences of unquoted infix vertical bars into terms
with functor ;/2, e.g. (a|b) = (a;b).
- based_bignums
-
Allow base notation even for integers longer than the
wordsize (i.e. they are always positive).
- blanks_after_sign
-
ignore blank space between a sign and a number (by default,
this space is significant and will lead to the sign being
taken as prefix operator rather than the number's sign).
Also allow signs of numbers to be quoted.
- blanks_in_nil
-
has no effect (obsolete).
- curly_args_as_list
-
Parse terms written as {a,b,c} as {}([a,b,c]) instead of
the default {}((a,b,c)).
- dense_output
-
If set, all predicates of the write-family will print terms with
the spacing(compact) option by default, otherwise spacing(generous).
- doubled_quote_is_quote
-
parse a pair of quotes within a quoted item as one
occurrence of the quote within the item. If this option is
off (the default), consecutive string-quoted and list-quoted
items are parsed as a single (concatenated) item, while
consecutive quoted atoms are parsed as consecutive atoms.
- eof_is_no_fullstop
-
do not treat end-of-file as a fullstop.
- float_needs_point
-
require floating point numbers to be written with a decimal point,
e.g. 1.0e-3 instead of 1e-3.
- general_subscripts
-
allow atoms, parenthesized subterms and subscripted subterms
to be followed by subscripts, and parse as subscript/2.
Useful for parsing other languages, e.g. Zinc.
- iso_base_prefix
-
allow binary, octal or hexadecimal numbers to be written
with 0b, 0o or 0x prefix respectively, and disallow the
base'number notation.
- iso_escapes
-
ISO-Prolog compatible escape sequences within strings and atoms.
- iso_restrictions
-
enable all ISO-Prolog syntax restrictions that are not controlled
by individual settings. This includes: disallowing operators as
operands of operators; disallowing an atom to be declared as both
an infix and a postfix operator; restrictions on changing operator
properties for comma, vertical bar, and the empty-bracket atoms.
- limit_arg_precedence
-
do not allow terms with a precedence higher than 999 as
structure arguments, unless parenthesised.
- nested_comments
-
allow bracketed comments to be nested.
- nl_in_quotes
-
allow newlines to occur inside quotes (default).
- no_array_subscripts
-
do not allow array subscript syntax for subscript/2.
- no_attributes
-
disallow the Eclipse specific syntax for variable attributes
in curly braces.
- no_blanks
-
do not allow blanks between functor and opening parenthesis (default).
- no_curly_arguments
-
disallow the Eclipse specific syntax for structures with
named arguments in curly braces.
- no_string_concatenation
-
do not parse consecutive string literals as a single
(concatenated) string.
- plus_is_no_sign
-
do not interpret a plus sign preceding a number as the
number's sign (effectively ignoring it), but treat it as
a possible prefix operator +/1.
- read_floats_as_breals
-
read all floating point numbers as bounded reals rather than as
floats. The resulting breal is a small interval enclosing the
true value of the number in decimal notation.
- syntax_errors_fail
-
the predicates of the read-family fail when encountering a
syntax error (after printing an error message). Without this
option, the predicates throw an error term of the form
error(syntax_error(MessageString),context(...)).
- var_functor_is_apply
-
allow variables as functors, and parse a term like X(A,B,C)
as apply(X,[A,B,C]).
Modes and Determinism
See Also
local / 1, export / 1, get_flag / 2, set_flag / 2