Major Section: OTHER
Example: ACL2 !>#ub1000_1000_1000_ 2184 ACL2 !>#b100010001000 2184 ACL2 !>#uo1_1 9 ACL2 !>#o11 9 ACL2 !>#u34_5 345 ACL2 !>#u345 345 ACL2 !>345 345 ACL2 !>#ux12_a 298 ACL2 !>#ux12a 298 ACL2 !>#u x12a 298 ACL2 !>#x12a 298 ACL2 !>#u123_456/7_919 123456/7919 ACL2 !>
The ACL2 reader supports the use of #ub
, #uo
, and #ux
where one
would otherwise write #b
, #o
, and #x
, respectively (for binary,
octal, and hexadecimal numerals), but where underscore characters (`_
')
are allowed but ignored. Also supported is the prefix #u
in front of a
an expression that is a decimal numeral except that underscore characteres
are allowed but ignored.
The precise specification of #u
is as follows. The Lisp reader reads one
expression after the #u
. If the result is a number, then that number is
returned by the reader. Otherwise the result must be a symbol whose name
begins with one of the characters `B
', `O
', or `X
', or else a
decimal digit (one of the characters `0
, 1
, ..., 9
'). All
underscores are removed from the name of that symbol to obtain a string and
in the first three cases only, a `#
' character is prepended to that
string. The resulting string is then handed to the Lisp reader in order to
obtain the final result, which must be a number or else an error occurs.