Elm.Native.Prelude = function(elm) { 'use strict'; if (elm.Native.Prelude) return elm.Native.Prelude; var JS = Elm.Native.JavaScript(elm); var Maybe = Elm.Maybe(elm); var Char = Elm.Char(elm); function readInt(str) { var s = JS.fromString(str); var len = s.length; if (len === 0) { return Maybe.Nothing; } var start = 0; if (s[0] == '-') { if (len === 1) { return Maybe.Nothing; } start = 1; } for (var i = start; i < len; ++i) { if (!Char.isDigit(s[i])) { return Maybe.Nothing; } } return Maybe.Just(parseInt(s, 10)); } function readFloat(str) { var s = JS.fromString(str); var len = s.length; if (len === 0) { return Maybe.Nothing; } var start = 0; if (s[0] == '-') { if (len === 1) { return Maybe.Nothing; } start = 1; } var dotCount = 0; for (var i = start; i < len; ++i) { if (Char.isDigit(s[i])) { continue; } if (s[i] === '.') { dotCount += 1; if (dotCount <= 1) { continue; } } return Maybe.Nothing; } return Maybe.Just(parseFloat(s)); } return elm.Native.Prelude = { readInt:readInt, readFloat:readFloat, }; };