
local syntax_option(++Option)
export syntax_option(++Option)
set_flag(syntax_option, ++Option)

   Select or unselect a syntax option.

Arguments
   Option              an atom or a term not(Atom)

Type
   Syntax Settings

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
   syntax_option(++) is det

See Also
   local / 1, export / 1, get_flag / 2, set_flag / 2
