[ 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