@@ -0,0 +1,51 @@
1+
2+Elm.Native.Prelude = function(elm) {
3+ 'use strict';
4+ if (elm.Native.Prelude) return elm.Native.Prelude;
5+
6+ var JS = Elm.Native.JavaScript(elm);
7+ var Maybe = Elm.Maybe(elm);
8+ var Char = Elm.Char(elm);
9+
10+ function readInt(str) {
11+ var s = JS.fromString(str);
12+ var len = s.length;
13+ if (len === 0) { return Maybe.Nothing; }
14+ var start = 0;
15+ if (s[0] == '-') {
16+ if (len === 1) { return Maybe.Nothing; }
17+ start = 1;
18+ }
19+ for (var i = start; i < len; ++i) {
20+ if (!Char.isDigit(s[i])) { return Maybe.Nothing; }
21+ }
22+ return Maybe.Just(parseInt(s, 10));
23+ }
24+
25+ function readFloat(str) {
26+ var s = JS.fromString(str);
27+ var len = s.length;
28+ if (len === 0) { return Maybe.Nothing; }
29+ var start = 0;
30+ if (s[0] == '-') {
31+ if (len === 1) { return Maybe.Nothing; }
32+ start = 1;
33+ }
34+ var dotCount = 0;
35+ for (var i = start; i < len; ++i) {
36+ if (Char.isDigit(s[i])) { continue; }
37+ if (s[i] === '.') {
38+ dotCount += 1;
39+ if (dotCount <= 1) { continue; }
40+ }
41+ return Maybe.Nothing;
42+ }
43+ return Maybe.Just(parseFloat(s));
44+ }
45+
46+ return elm.Native.Prelude = {
47+ readInt:readInt,
48+ readFloat:readFloat,
49+ };
50+
51+};