In CLforJava, the Reader extracts numbers from console or string inputs. Thus, all parsing of numerals is done in the Reader.
Western positional numbers
CLforJava natively reads and prints Western (i.e. ASCII #x0030 - #x0039) numerals and the '.' character (ASCII #x002E). Thus it is capable of parsing both Western integers and Western floating point numbers. The Reader is also capable of parsing scientific and engineering notation. We plan to implement parsing and printing of ratios (e.g. 3/5, ¾) in the Spring 2006 semester.
Non-Western positional numbers
CLforJava natively reads non-Western (e.g. Thai, Gujarati) numerals, provided the underlying number system is positional in nature. Practically, this means that if a string of input characters all have the Unicode "digit" property (i.e. can be interpreted as one of 0-9), and all come from the same Unicode block, the Reader will attempt to parse that string into a number, interpreting the digits positionally. Note that the Reader is only capable of parsing non-Western integers.
Non-Western non-positional numbers
Currently, there is no support in CLforJava for these numbers. However, we plan to implement support for reading and printing these numbers in the Spring 2006 semester. We hope to support non-positional integers and ratios from any character set represented in Unicode.