 
 
 
A.5  Changing the Parser behaviour
Some of these properties can be changed by choosing one of the following
syntax_options.
The following options exist:
- 
bar_is_no_atom
-  disallow the use of an unquoted vertical bar as
 atom or functor (and turns it into a synonym for a semicolon instead).
- based_bignums
-  Allow base notation even to write integers longer
 than the wordsize (this implies they are always positive because the
 most significant bit is not interpreted as a sign bit).
- 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).
- doubled_quote_is_quote
-  parse a pair of quotes within a quoted item
 as one occurrence of the quote within the string. If this option is off
 (the default), consecutive string-quoted and list-quoted items are parsed
 as a single (concatenated) item, and consecutive quoted atoms are parsed
 as consecutive atoms.
- iso_escapes
-  ISO-Prolog compatible escape sequences within
 strings and atoms.
- iso_base_prefix
-  allow binary, octal or hexadecimal numbers to be written
 with 0b, 0o or 0x prefix respectively, and disallow the base'numbernotation.
- 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.
- no_array_subscripts
-  disallow the ECLiPSe specific array-subscript
 syntax.
- no_attributes
-  disallow the ECLiPSe specific syntax for
 variable attributes in curly braces.
- no_blanks
-  do not allow blanks between functor an opening parenthesis
- no_curly_arguments
-  disallow the ECLiPSe specific syntax for
 structures with named arguments in curly braces.
- 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.
- var_functor_is_apply
-  allow variables as functors, and parse a term
 like X(A,B,C)asapply(X,[A,B,C]).
A number of further syntax options is provided for the purpose of parsing
non-Prolog-like languages, in particular the Zinc family:- 
atom_subscripts
-  allow subscripts after atoms, and parse a term
 like a[B,C]assubscript(a,[B,C]).
- general_subscripts
-  allow subscripts after atoms, parenthesized
 subterms and subscripted terms, and parse a term
 like a[B][C]assubscript(subscript(a,[B]),[C]),
 or(a-b)[C]assubscript(a-b,[C]).
- curly_args_as_list
-  parse the arguments of a term in curly
 brackets as a list, i.e. parse {a,b,c}as{}([a,b,c])instead of the default{}((a,b,c)).
Syntax option settings can be local to a module or exported, e.g.
:- local syntax_option(not nl_in_quotes).
:- export syntax_option(var_functor_is_apply).
 
 
