code-ruby-parser 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/code/parser/number.rb +30 -12
- data/lib/code/parser.rb +1 -0
- data/lib/template/parser.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4f1c3766c85835e0e849b956b2046e67d68c5f61ae462ad2bbcf436f194e8e6
|
4
|
+
data.tar.gz: 22aaf2adc257c7d481d1be68cc8dafa366fd32aeb71764e7fcf14c94c140af7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1928d766297e5c755bccc6c6832ad056dd77638235738489488f733f2e44cba1c3d372b0873a97db577cf4ed40805c326c876ba0860ff3df186591093f23435b
|
7
|
+
data.tar.gz: c49ba9bd87d69e3283f29553c03a5dbd474259ce2ade47d7f6f0b3da0bc36171f9355b39565d63ee6274ed6c30afad5f50db4879219772395e9170a18fde2abe
|
data/CHANGELOG.md
CHANGED
data/lib/code/parser/number.rb
CHANGED
@@ -10,18 +10,7 @@ class Code
|
|
10
10
|
elsif match(B)
|
11
11
|
parse_base(2)
|
12
12
|
else
|
13
|
-
|
14
|
-
|
15
|
-
if next?(DOT) && next_next?(DIGITS)
|
16
|
-
consume
|
17
|
-
while (next?(DIGITS) || next?(UNDERSCORE)) && !end_of_input?
|
18
|
-
consume
|
19
|
-
end
|
20
|
-
|
21
|
-
{ decimal: buffer.gsub(UNDERSCORE, EMPTY_STRING) }
|
22
|
-
else
|
23
|
-
{ integer: buffer.gsub(UNDERSCORE, EMPTY_STRING).to_i }
|
24
|
-
end
|
13
|
+
parse_number
|
25
14
|
end
|
26
15
|
else
|
27
16
|
parse_subclass(::Code::Parser::Boolean)
|
@@ -34,6 +23,35 @@ class Code
|
|
34
23
|
|
35
24
|
{ integer: buffer.gsub(UNDERSCORE, EMPTY_STRING).to_i(base) }
|
36
25
|
end
|
26
|
+
|
27
|
+
def parse_number
|
28
|
+
consume while (next?(DIGITS) || next?(UNDERSCORE)) && !end_of_input?
|
29
|
+
|
30
|
+
if next?(DOT) && next_next?(DIGITS)
|
31
|
+
consume
|
32
|
+
consume while (next?(DIGITS) || next?(UNDERSCORE)) && !end_of_input?
|
33
|
+
|
34
|
+
decimal = buffer!.gsub(UNDERSCORE, EMPTY_STRING)
|
35
|
+
|
36
|
+
if match(E)
|
37
|
+
buffer!
|
38
|
+
exponent = parse_number
|
39
|
+
{ decimal: { value: decimal, exponent: exponent } }
|
40
|
+
else
|
41
|
+
{ decimal: decimal }
|
42
|
+
end
|
43
|
+
else
|
44
|
+
integer = buffer!.gsub(UNDERSCORE, EMPTY_STRING).to_i
|
45
|
+
|
46
|
+
if match(E)
|
47
|
+
buffer!
|
48
|
+
exponent = parse_number
|
49
|
+
{ integer: { value: integer, exponent: exponent } }
|
50
|
+
else
|
51
|
+
{ integer: integer }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
37
55
|
end
|
38
56
|
end
|
39
57
|
end
|
data/lib/code/parser.rb
CHANGED
data/lib/template/parser.rb
CHANGED