2 var Parser
= require("./parser");
4 var array_
= Array
.prototype;
6 module
.exports
= parseNumber
;
7 function parseNumber(callback
, options
) {
8 var font
= options
.font
;
9 var makeColumn
= font
.makeColumn
;
10 return parseDigits(function (digits
) {
12 return parseConvert(callback
, digits
.join(""), makeColumn
);
19 var digits
= "0123456789";
20 var parseDigit
= function (callback
) {
21 return function (character
) {
22 if (character
!== "" && digits
.indexOf(character
) !== -1) {
23 return callback(character
);
25 return callback()(character
);
30 function parseConvert(callback
, number
, makeColumn
) {
31 return Parser
.countPrimes(function (primes
) {
32 return callback(convert(number
, primes
, makeColumn
));
36 function convert(string
, primes
, makeColumn
) {
45 var number
= parseInt(string
, 10);
46 var string
= number
.toString(radix
).split("");
47 return string
.map(function (character
) {
48 var column
= makeColumn(""+parseInt(character
, 12));
50 column
.addError("Numbers can only be parsed in either decimal or dudecimal.");
56 var parseDigits
= Parser
.makeParseSome(parseDigit
);