code-ruby-parser 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b15c16ff3280c0d1e95cb596d6996470d7addfe9fecdc706daa3b4e38ab6e8e1
4
- data.tar.gz: 23b55a3ea3c729dc7fd62a19ff9ba1a2760a66f5781a9015fc2a9b3a3cee7131
3
+ metadata.gz: b3e647bf3d41f5621be93a7310057002d71ea02eef1b6a5a6eed283d5ff43939
4
+ data.tar.gz: 79f489764b7917e8692cae7227f7f895b0104c59465fbcf52f34f0886e2c2d3b
5
5
  SHA512:
6
- metadata.gz: '077491d9fe0c1b251f8e576b9a444751b61faf061e5c7961ad3ae0540027a33fb5da0dfe4439c009c8f6eea5f0806344ea98d8dbb60e3ffa0b9a496fb231d213'
7
- data.tar.gz: 83183df4672061421e1160d9203f6b7cdc9c967b39fcc2e3df376bd92aa0ab4b39a258539a0ee9ca400e43a5af3151f6645adc52a8aef6248e9df3b351cd5a7f
6
+ metadata.gz: b9bc1d2ccda202cc1da972babdcaaf96418f6e17ccce5247d840fad78b478cd300f0780933a5a6b20f659c7c96dcaac4334597610a9162eeb64d453666e744a5
7
+ data.tar.gz: b08df0949e99f19a10f5a932d975bf4d67941987a873214cf5d56d001052cf7f08dbf9732140a3fc6fb852d7df67c82cba1019e49870960c622c1a56b3ccd28d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### 0.1.5 - November 13, 2022
2
+
3
+ - Restrict equal to simplify
4
+
5
+ ### 0.1.4 - November 13, 2022
6
+
7
+ - Fix a || b
8
+
1
9
  ### 0.1.3 - November 13, 2022
2
10
 
3
11
  - Fix parsing &, *, **
data/bin/parse-docs ADDED
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ for f in docs/*.code
4
+ do
5
+ bin/code-parser -i $f
6
+ done
@@ -2,13 +2,13 @@ class Code
2
2
  class Parser
3
3
  class Equal < ::Code::Parser
4
4
  def parse
5
- left = parse_subclass(::Code::Parser::Rescue)
6
-
7
5
  previous_cursor = cursor
8
6
 
7
+ left = parse_left
8
+
9
9
  comments_before = parse_comments
10
10
 
11
- if operator = match(EQUALS)
11
+ if left && operator = match(EQUALS)
12
12
  comments_after = parse_comments
13
13
 
14
14
  right = parse_subclass(::Code::Parser::Equal)
@@ -25,7 +25,36 @@ class Code
25
25
  else
26
26
  @cursor = previous_cursor
27
27
  buffer!
28
- left
28
+ parse_next
29
+ end
30
+ else
31
+ @cursor = previous_cursor
32
+ buffer!
33
+ parse_next
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def parse_next
40
+ parse_subclass(::Code::Parser::Rescue)
41
+ end
42
+
43
+ def parse_left
44
+ left = parse_subclass(::Code::Parser::Name)
45
+ return unless left
46
+
47
+ previous_cursor = cursor
48
+ comments_before = parse_comments
49
+
50
+ if match(DOT) || match(COLON + COLON)
51
+ right = parse_subclass(::Code::Parser::Name)
52
+ if right
53
+ { left: left, right: right }
54
+ else
55
+ @cursor = previous_cursor
56
+ buffer!
57
+ return
29
58
  end
30
59
  else
31
60
  @cursor = previous_cursor
@@ -19,15 +19,20 @@ class Code
19
19
  while operator = match(operators)
20
20
  comments_before = parse_comments
21
21
  statement = parse_subclass(subclass)
22
- previous_cursor = cursor
23
22
  comments_after = parse_comments
24
23
 
25
- right << {
26
- statement: statement,
27
- operator: operator,
28
- comments_before: comments_before,
29
- comments_after: comments_after
30
- }.compact
24
+ if statement
25
+ right << {
26
+ statement: statement,
27
+ operator: operator,
28
+ comments_before: comments_before,
29
+ comments_after: comments_after
30
+ }.compact
31
+ else
32
+ @cursor = previous_cursor
33
+ buffer!
34
+ break
35
+ end
31
36
  end
32
37
 
33
38
  if right.empty?
@@ -35,9 +40,6 @@ class Code
35
40
  buffer!
36
41
  left
37
42
  else
38
- @cursor = previous_cursor
39
- buffer!
40
-
41
43
  right[-1].delete(:comments_after)
42
44
 
43
45
  {
@@ -1,6 +1,6 @@
1
1
  class Template
2
2
  class Parser < ::Code::Parser
3
- Version = Gem::Version.new("0.1.3")
3
+ Version = Gem::Version.new("0.1.5")
4
4
 
5
5
  def parse
6
6
  parts = []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code-ruby-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
@@ -23,6 +23,7 @@ files:
23
23
  - Gemfile.lock
24
24
  - bin/code-parser
25
25
  - bin/format
26
+ - bin/parse-docs
26
27
  - bin/push
27
28
  - bin/template-parser
28
29
  - code-ruby-parser.gemspec