On Mon, 2002-11-25 at 13:06, Michael Lazzaro wrote:
> 0x0 # ok, == 0
> 0x0.0 # ok
> 0x.0 # ok
Given that .1 is wrong (from above), I would disallow it here simply for
consistency sakes.
> 0d1.1E5 # WRONG, exp not allowed in shorthand radix
>
> 0B0110 # WRONG, should be 0b0110
> 0O0123 # WRONG, should be 0o0123
> 0X00FF # WRONG, should be 0x00FF
>
> explicit radix:
>
> (radix 2-36)
>
> 20#1gj # base 20
> 20#1GJ # base 20 (identical)
> 20#1:G:J # base 20 (identical)
> 20#1_G_J # base 20 (identical)
> 20#1:16:19 # base 20 (identical)
> 20#1_16_19 # NOT identical, == 20:11619
> 20#1:1_6:19 # WRONG: colon form may not have underlines
>
> 20#0:0:1 # base 20
> 20#0:1 # base 20 (identical)
> 20#:1 # base 20 (identical) (leading : is ok)
> :1 # WRONG, need radix specifier
> 20# # WRONG, need at least an '0'
> 1#0 # WRONG, radix must be >= 2
>
> 20#1_G.J # ok, radix point (e.g. float) allowed
> 20#1:16.19 # ok, radix point (e.g. float) allowed
> 10#1.1E5 # WRONG, no exp notation in explicit radix
>
> -20#1GJ # base 20 (negative)
> -20#1:16:19 # base 20 (negative)
> 20#-1GJ # WRONG, - is an operator, not part of the literal
>
> (radix 37-RADIX_MAX)
>
> 256#0:253:254:255 # base 256
> 256#:253:254:255 # base 256 (identical)
> 256#0_253_254_255 # WRONG, digit 253254255 doesn't
> # exist in base 256.
>
>
> Other issues w/ literals:
>
> - radix <= 36, alpha digits may be upper or lowercase
> - radix > 36, only colon form is allowed, not alpha digits
> - underlines may appear ONLY between digits
> - colon form may therefore not have underlines
No 'therefore'. Your examples give such an example.
> - radix < 2 throws error
Is there a maximum?
> - negative sign goes before radix, e.g. -20#1GJ.
> - need to specify RADIX_MAX (platform dependent?)
I guess so. :-) May want to group those two.
> - explicit radix form may have radix point, '.',
> but cannot use exponential notation ('e')
>
> - can't have runtime radix, e.g. 2**8#10, because # binds tighter.
> - can't say (2**8)#10, because not a literal.
>
The examples are good and extrapolate nicely, but has the grammar been
defined somewhere (in one form or another)?
--
Bryan C. Warnock
bwarnock@(gtemail.net|raba.com)