code-ruby-parser 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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