language-ruby 0.5.6 → 0.6.0

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.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/language-ruby.gemspec +3 -3
  4. data/lib/language/atom/any.rb +8 -0
  5. data/lib/language/atom/repeat.rb +15 -0
  6. data/lib/language/atom.rb +25 -42
  7. data/lib/language/output.rb +13 -11
  8. data/lib/language/parser/absent/present.rb +2 -0
  9. data/lib/language/parser/absent.rb +2 -0
  10. data/lib/language/parser/end_of_input.rb +2 -0
  11. data/lib/language/parser/interuption.rb +2 -0
  12. data/lib/language/parser/not_end_of_input.rb +2 -0
  13. data/lib/language/parser/str/not_found.rb +2 -0
  14. data/lib/language/parser/str.rb +2 -0
  15. data/lib/language/parser.rb +10 -10
  16. data/lib/language/version.rb +3 -0
  17. data/lib/language-ruby.rb +0 -5
  18. data/lib/language.rb +9 -7
  19. data/spec/spec_helper.rb +1 -6
  20. metadata +7 -221
  21. data/.cherry.js +0 -21
  22. data/.editorconfig +0 -9
  23. data/.github/workflows/rspec.yml +0 -14
  24. data/.gitignore +0 -2
  25. data/.prettierrc +0 -3
  26. data/.rspec +0 -1
  27. data/.tool-versions +0 -1
  28. data/CHANGELOG.md +0 -55
  29. data/Gemfile.lock +0 -49
  30. data/LICENSE +0 -7
  31. data/README.md +0 -103
  32. data/TODO +0 -17
  33. data/bin/code +0 -76
  34. data/bin/format +0 -3
  35. data/bin/publish +0 -19
  36. data/bin/template +0 -85
  37. data/bin/test +0 -17
  38. data/code-ruby.gemspec +0 -17
  39. data/docs/class.code +0 -9
  40. data/docs/euler/1.template +0 -10
  41. data/docs/euler/2.template +0 -16
  42. data/docs/euler/3.template +0 -16
  43. data/docs/euler/4.template +0 -10
  44. data/docs/euler/5.template +0 -13
  45. data/docs/fibonnaci.template +0 -14
  46. data/docs/meetup.code +0 -12
  47. data/docs/precedence.template +0 -36
  48. data/docs/rain.code +0 -22
  49. data/docs/slack.code +0 -17
  50. data/docs/stripe.code +0 -7
  51. data/docs/twitter.code +0 -9
  52. data/lib/code/error.rb +0 -18
  53. data/lib/code/node/base_10.rb +0 -29
  54. data/lib/code/node/base_16.rb +0 -13
  55. data/lib/code/node/base_2.rb +0 -13
  56. data/lib/code/node/base_8.rb +0 -13
  57. data/lib/code/node/boolean.rb +0 -22
  58. data/lib/code/node/call.rb +0 -47
  59. data/lib/code/node/call_argument.rb +0 -21
  60. data/lib/code/node/chained_call.rb +0 -23
  61. data/lib/code/node/code.rb +0 -20
  62. data/lib/code/node/decimal.rb +0 -26
  63. data/lib/code/node/dictionnary.rb +0 -33
  64. data/lib/code/node/equal.rb +0 -34
  65. data/lib/code/node/function.rb +0 -20
  66. data/lib/code/node/function_parameter.rb +0 -31
  67. data/lib/code/node/if.rb +0 -59
  68. data/lib/code/node/if_modifier.rb +0 -47
  69. data/lib/code/node/list.rb +0 -16
  70. data/lib/code/node/negation.rb +0 -15
  71. data/lib/code/node/not.rb +0 -15
  72. data/lib/code/node/nothing.rb +0 -12
  73. data/lib/code/node/number.rb +0 -25
  74. data/lib/code/node/operation.rb +0 -38
  75. data/lib/code/node/power.rb +0 -20
  76. data/lib/code/node/rescue.rb +0 -17
  77. data/lib/code/node/splat.rb +0 -15
  78. data/lib/code/node/statement.rb +0 -59
  79. data/lib/code/node/string.rb +0 -53
  80. data/lib/code/node/ternary.rb +0 -24
  81. data/lib/code/node/unary_minus.rb +0 -15
  82. data/lib/code/node/while.rb +0 -35
  83. data/lib/code/node.rb +0 -13
  84. data/lib/code/object/argument.rb +0 -32
  85. data/lib/code/object/boolean.rb +0 -27
  86. data/lib/code/object/decimal.rb +0 -162
  87. data/lib/code/object/dictionnary.rb +0 -96
  88. data/lib/code/object/function.rb +0 -64
  89. data/lib/code/object/global.rb +0 -42
  90. data/lib/code/object/integer.rb +0 -221
  91. data/lib/code/object/list.rb +0 -207
  92. data/lib/code/object/nothing.rb +0 -23
  93. data/lib/code/object/number.rb +0 -6
  94. data/lib/code/object/range.rb +0 -146
  95. data/lib/code/object/ruby_function.rb +0 -31
  96. data/lib/code/object/string.rb +0 -102
  97. data/lib/code/object.rb +0 -197
  98. data/lib/code/parser/addition.rb +0 -21
  99. data/lib/code/parser/and_operator.rb +0 -17
  100. data/lib/code/parser/bitwise_and.rb +0 -17
  101. data/lib/code/parser/bitwise_or.rb +0 -21
  102. data/lib/code/parser/boolean.rb +0 -17
  103. data/lib/code/parser/call.rb +0 -122
  104. data/lib/code/parser/chained_call.rb +0 -47
  105. data/lib/code/parser/class.rb +0 -45
  106. data/lib/code/parser/code.rb +0 -25
  107. data/lib/code/parser/dictionnary.rb +0 -67
  108. data/lib/code/parser/equal.rb +0 -94
  109. data/lib/code/parser/equality.rb +0 -35
  110. data/lib/code/parser/equality_lower.rb +0 -9
  111. data/lib/code/parser/function.rb +0 -85
  112. data/lib/code/parser/greater.rb +0 -25
  113. data/lib/code/parser/group.rb +0 -22
  114. data/lib/code/parser/if.rb +0 -63
  115. data/lib/code/parser/if_modifier.rb +0 -55
  116. data/lib/code/parser/list.rb +0 -42
  117. data/lib/code/parser/multiplication.rb +0 -25
  118. data/lib/code/parser/name.rb +0 -107
  119. data/lib/code/parser/negation.rb +0 -30
  120. data/lib/code/parser/not_keyword.rb +0 -23
  121. data/lib/code/parser/nothing.rb +0 -22
  122. data/lib/code/parser/number.rb +0 -154
  123. data/lib/code/parser/operation.rb +0 -35
  124. data/lib/code/parser/or_keyword.rb +0 -21
  125. data/lib/code/parser/or_operator.rb +0 -17
  126. data/lib/code/parser/power.rb +0 -43
  127. data/lib/code/parser/range.rb +0 -17
  128. data/lib/code/parser/rescue.rb +0 -39
  129. data/lib/code/parser/shift.rb +0 -21
  130. data/lib/code/parser/splat.rb +0 -31
  131. data/lib/code/parser/statement.rb +0 -9
  132. data/lib/code/parser/string.rb +0 -78
  133. data/lib/code/parser/ternary.rb +0 -46
  134. data/lib/code/parser/unary_minus.rb +0 -31
  135. data/lib/code/parser/while.rb +0 -36
  136. data/lib/code/parser/whitespace.rb +0 -49
  137. data/lib/code/parser.rb +0 -19
  138. data/lib/code/ruby.rb +0 -174
  139. data/lib/code-ruby.rb +0 -10
  140. data/lib/code.rb +0 -47
  141. data/lib/template/node/code_part.rb +0 -13
  142. data/lib/template/node/part.rb +0 -19
  143. data/lib/template/node/template.rb +0 -15
  144. data/lib/template/node/text_part.rb +0 -13
  145. data/lib/template/node.rb +0 -4
  146. data/lib/template/parser/template.rb +0 -39
  147. data/lib/template/parser.rb +0 -19
  148. data/lib/template/version.rb +0 -3
  149. data/lib/template-ruby.rb +0 -10
  150. data/lib/template.rb +0 -50
  151. data/spec/code/addition_spec.rb +0 -13
  152. data/spec/code/and_operator_spec.rb +0 -13
  153. data/spec/code/bitwise_and_spec.rb +0 -13
  154. data/spec/code/bitwise_or_spec.rb +0 -13
  155. data/spec/code/boolean_spec.rb +0 -13
  156. data/spec/code/call_spec.rb +0 -21
  157. data/spec/code/chained_call_spec.rb +0 -16
  158. data/spec/code/code_spec.rb +0 -29
  159. data/spec/code/dictionnary_spec.rb +0 -17
  160. data/spec/code/equal_spec.rb +0 -26
  161. data/spec/code/equality_spec.rb +0 -13
  162. data/spec/code/function_spec.rb +0 -18
  163. data/spec/code/greater_spec.rb +0 -18
  164. data/spec/code/group_spec.rb +0 -12
  165. data/spec/code/if_modifier_spec.rb +0 -20
  166. data/spec/code/if_spec.rb +0 -25
  167. data/spec/code/list_spec.rb +0 -19
  168. data/spec/code/multiplication_spec.rb +0 -18
  169. data/spec/code/negation_spec.rb +0 -20
  170. data/spec/code/not_keyword_spec.rb +0 -13
  171. data/spec/code/nothing_spec.rb +0 -17
  172. data/spec/code/number_spec.rb +0 -22
  173. data/spec/code/or_keyword_spec.rb +0 -17
  174. data/spec/code/or_operator_spec.rb +0 -16
  175. data/spec/code/parser/boolean_spec.rb +0 -16
  176. data/spec/code/parser/call_spec.rb +0 -26
  177. data/spec/code/parser/chained_call.rb +0 -17
  178. data/spec/code/parser/dictionnary_spec.rb +0 -18
  179. data/spec/code/parser/function_spec.rb +0 -16
  180. data/spec/code/parser/group_spec.rb +0 -18
  181. data/spec/code/parser/list_spec.rb +0 -18
  182. data/spec/code/parser/number_spec.rb +0 -12
  183. data/spec/code/parser/string_spec.rb +0 -21
  184. data/spec/code/parser_spec.rb +0 -23
  185. data/spec/code/power_spec.rb +0 -13
  186. data/spec/code/range_spec.rb +0 -16
  187. data/spec/code/rescue_spec.rb +0 -13
  188. data/spec/code/shift_spec.rb +0 -13
  189. data/spec/code/splat_spec.rb +0 -13
  190. data/spec/code/string_spec.rb +0 -27
  191. data/spec/code/ternary_spec.rb +0 -18
  192. data/spec/code/unary_minus_spec.rb +0 -13
  193. data/spec/code/while_spec.rb +0 -18
  194. data/template-ruby.gemspec +0 -19
@@ -1,63 +0,0 @@
1
- class Code
2
- class Parser
3
- class If < Language
4
- def statement
5
- ::Code::Parser::IfModifier
6
- end
7
-
8
- def if_class
9
- ::Code::Parser::If
10
- end
11
-
12
- def whitespace
13
- ::Code::Parser::Whitespace
14
- end
15
-
16
- def code
17
- ::Code::Parser::Code
18
- end
19
-
20
- def whitespace?
21
- whitespace.maybe
22
- end
23
-
24
- def if_keyword
25
- str("if")
26
- end
27
-
28
- def unless_keyword
29
- str("unless")
30
- end
31
-
32
- def elsif_keyword
33
- str("elsif")
34
- end
35
-
36
- def else_keyword
37
- str("else")
38
- end
39
-
40
- def end_keyword
41
- str("end")
42
- end
43
-
44
- def root
45
- (
46
- (if_keyword | unless_keyword).aka(:first_operator) << whitespace <<
47
- statement.aka(:first_statement) << code.aka(:first_body) <<
48
- (
49
- (
50
- elsif_keyword.aka(:operator) << whitespace <<
51
- statement.aka(:statement) << code.aka(:body)
52
- ) |
53
- (
54
- else_keyword << whitespace <<
55
- (if_keyword | unless_keyword).aka(:operator) <<
56
- whitespace << statement.aka(:statement) << code.aka(:body)
57
- ) | (else_keyword.aka(:operator) << code.aka(:body))
58
- ).repeat(1).aka(:elses).maybe << end_keyword.maybe
59
- ).aka(:if) | statement
60
- end
61
- end
62
- end
63
- end
@@ -1,55 +0,0 @@
1
- class Code
2
- class Parser
3
- class IfModifier < Language
4
- def statement
5
- ::Code::Parser::OrKeyword
6
- end
7
-
8
- def if_modifier
9
- ::Code::Parser::IfModifier
10
- end
11
-
12
- def whitespace
13
- ::Code::Parser::Whitespace.new.without_newline
14
- end
15
-
16
- def whitespace?
17
- whitespace.maybe
18
- end
19
-
20
- def if_keyword
21
- str("if")
22
- end
23
-
24
- def unless_keyword
25
- str("unless")
26
- end
27
-
28
- def while_keyword
29
- str("while")
30
- end
31
-
32
- def until_keyword
33
- str("until")
34
- end
35
-
36
- def operator
37
- if_keyword | unless_keyword | while_keyword | until_keyword
38
- end
39
-
40
- def root
41
- (
42
- statement.aka(:left) <<
43
- (
44
- whitespace? << operator.aka(:operator) << whitespace? <<
45
- if_modifier.aka(:right)
46
- ).maybe
47
- )
48
- .aka(:if_modifier)
49
- .then do |output|
50
- output[:if_modifier][:right] ? output : output[:if_modifier][:left]
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,42 +0,0 @@
1
- class Code
2
- class Parser
3
- class List < Language
4
- def code
5
- ::Code::Parser::Code.new.present
6
- end
7
-
8
- def whitespace
9
- ::Code::Parser::Whitespace
10
- end
11
-
12
- def whitespace?
13
- whitespace.maybe
14
- end
15
-
16
- def opening_square_bracket
17
- str("[")
18
- end
19
-
20
- def closing_square_bracket
21
- str("]")
22
- end
23
-
24
- def comma
25
- str(",")
26
- end
27
-
28
- def element
29
- code
30
- end
31
-
32
- def root
33
- (
34
- opening_square_bracket.ignore << whitespace? <<
35
- element.repeat(0, 1) <<
36
- (whitespace? << comma << whitespace? << element).repeat <<
37
- (whitespace? << closing_square_bracket.ignore).maybe
38
- ).aka(:list) | ::Code::Parser::String
39
- end
40
- end
41
- end
42
- end
@@ -1,25 +0,0 @@
1
- class Code
2
- class Parser
3
- class Multiplication < Operation
4
- def statement
5
- ::Code::Parser::UnaryMinus
6
- end
7
-
8
- def asterisk
9
- str("*")
10
- end
11
-
12
- def slash
13
- str("/")
14
- end
15
-
16
- def percent
17
- str("%")
18
- end
19
-
20
- def operator
21
- asterisk | slash | percent
22
- end
23
- end
24
- end
25
- end
@@ -1,107 +0,0 @@
1
- class Code
2
- class Parser
3
- class Name < Language
4
- def space
5
- str(" ")
6
- end
7
-
8
- def newline
9
- str("\n")
10
- end
11
-
12
- def comma
13
- str(",")
14
- end
15
-
16
- def equal
17
- str("=")
18
- end
19
-
20
- def colon
21
- str(":")
22
- end
23
-
24
- def opening_curly_bracket
25
- str("{")
26
- end
27
-
28
- def closing_curly_bracket
29
- str("}")
30
- end
31
-
32
- def opening_square_bracket
33
- str("[")
34
- end
35
-
36
- def closing_square_bracket
37
- str("]")
38
- end
39
-
40
- def opening_parenthesis
41
- str("(")
42
- end
43
-
44
- def closing_parenthesis
45
- str(")")
46
- end
47
-
48
- def single_quote
49
- str("'")
50
- end
51
-
52
- def double_quote
53
- str('"')
54
- end
55
-
56
- def dot
57
- str(".")
58
- end
59
-
60
- def pipe
61
- str("|")
62
- end
63
-
64
- def ampersand
65
- str("&")
66
- end
67
-
68
- def do_keyword
69
- str("do")
70
- end
71
-
72
- def end_keyword
73
- str("end")
74
- end
75
-
76
- def elsif_keyword
77
- str("elsif")
78
- end
79
-
80
- def else_keyword
81
- str("else")
82
- end
83
-
84
- def special_character
85
- ampersand | equal | pipe | dot | colon | comma | space | newline |
86
- opening_curly_bracket | closing_curly_bracket | opening_parenthesis |
87
- closing_parenthesis | opening_square_bracket |
88
- closing_square_bracket | single_quote | double_quote
89
- end
90
-
91
- def character
92
- special_character.absent << any
93
- end
94
-
95
- def separator
96
- special_character
97
- end
98
-
99
- def root
100
- (do_keyword << separator).absent <<
101
- (else_keyword << separator).absent <<
102
- (elsif_keyword << separator).absent <<
103
- (end_keyword << separator).absent << character.repeat(1)
104
- end
105
- end
106
- end
107
- end
@@ -1,30 +0,0 @@
1
- class Code
2
- class Parser
3
- class Negation < Language
4
- def exclamation_point
5
- str("!")
6
- end
7
-
8
- def tilde
9
- str("~")
10
- end
11
-
12
- def plus
13
- str("+")
14
- end
15
-
16
- def operator
17
- exclamation_point | tilde | plus
18
- end
19
-
20
- def negation
21
- ::Code::Parser::Negation
22
- end
23
-
24
- def root
25
- (operator.aka(:operator) << negation.aka(:right)).aka(:negation) |
26
- ::Code::Parser::Function
27
- end
28
- end
29
- end
30
- end
@@ -1,23 +0,0 @@
1
- class Code
2
- class Parser
3
- class NotKeyword < Language
4
- def not_class
5
- ::Code::Parser::NotKeyword
6
- end
7
-
8
- def whitespace
9
- ::Code::Parser::Whitespace
10
- end
11
-
12
- def not_keyword
13
- str("not")
14
- end
15
-
16
- def root
17
- (not_keyword.aka(:operator) << whitespace << not_class.aka(:right)).aka(
18
- :not
19
- ) | ::Code::Parser::Equal
20
- end
21
- end
22
- end
23
- end
@@ -1,22 +0,0 @@
1
- class Code
2
- class Parser
3
- class Nothing < Language
4
- def nothing_keyword
5
- str("nothing")
6
- end
7
-
8
- def null_keyword
9
- str("null")
10
- end
11
-
12
- def nil_keyword
13
- str("nil")
14
- end
15
-
16
- def root
17
- (nothing_keyword | null_keyword | nil_keyword).aka(:nothing) |
18
- ::Code::Parser::Group
19
- end
20
- end
21
- end
22
- end
@@ -1,154 +0,0 @@
1
- class Code
2
- class Parser
3
- class Number < Language
4
- def number
5
- ::Code::Parser::Number
6
- end
7
-
8
- def zero
9
- str("0")
10
- end
11
-
12
- def one
13
- str("1")
14
- end
15
-
16
- def two
17
- str("2")
18
- end
19
-
20
- def three
21
- str("3")
22
- end
23
-
24
- def four
25
- str("4")
26
- end
27
-
28
- def five
29
- str("5")
30
- end
31
-
32
- def six
33
- str("6")
34
- end
35
-
36
- def seven
37
- str("7")
38
- end
39
-
40
- def eight
41
- str("8")
42
- end
43
-
44
- def nine
45
- str("9")
46
- end
47
-
48
- def dot
49
- str(".")
50
- end
51
-
52
- def a
53
- str("a") | str("A")
54
- end
55
-
56
- def b
57
- str("b") | str("B")
58
- end
59
-
60
- def c
61
- str("c") | str("C")
62
- end
63
-
64
- def d
65
- str("d") | str("D")
66
- end
67
-
68
- def e
69
- str("e") | str("E")
70
- end
71
-
72
- def f
73
- str("f") | str("F")
74
- end
75
-
76
- def o
77
- str("o") | str("O")
78
- end
79
-
80
- def x
81
- str("x") | str("X")
82
- end
83
-
84
- def underscore
85
- str("_")
86
- end
87
-
88
- def base_16_digit
89
- zero | one | two | three | four | five | six | seven | eight | nine |
90
- a | b | c | d | e | f
91
- end
92
-
93
- def base_10_digit
94
- zero | one | two | three | four | five | six | seven | eight | nine
95
- end
96
-
97
- def base_8_digit
98
- zero | one | two | three | four | five | six | seven
99
- end
100
-
101
- def base_2_digit
102
- zero | one
103
- end
104
-
105
- def base_16_whole
106
- base_16_digit << (underscore.ignore | base_16_digit).repeat
107
- end
108
-
109
- def base_10_whole
110
- base_10_digit << (underscore.ignore | base_10_digit).repeat
111
- end
112
-
113
- def base_8_whole
114
- base_8_digit << (underscore.ignore | base_8_digit).repeat
115
- end
116
-
117
- def base_2_whole
118
- base_2_digit << (underscore.ignore | base_2_digit).repeat
119
- end
120
-
121
- def exponent
122
- (e << number).aka(:exponent)
123
- end
124
-
125
- def decimal
126
- (base_10_whole << dot << base_10_whole).aka(:decimal) << exponent.maybe
127
- end
128
-
129
- def base_16_number
130
- zero.ignore << x.ignore << base_16_whole
131
- end
132
-
133
- def base_10_number
134
- base_10_whole.aka(:whole) << exponent.maybe
135
- end
136
-
137
- def base_8_number
138
- zero.ignore << o.ignore << base_8_whole
139
- end
140
-
141
- def base_2_number
142
- zero.ignore << b.ignore << base_2_whole
143
- end
144
-
145
- def root
146
- (
147
- decimal.aka(:decimal) | base_16_number.aka(:base_16) |
148
- base_8_number.aka(:base_8) | base_2_number.aka(:base_2) |
149
- base_10_number.aka(:base_10)
150
- ).aka(:number) | ::Code::Parser::Boolean
151
- end
152
- end
153
- end
154
- end
@@ -1,35 +0,0 @@
1
- class Code
2
- class Parser
3
- class Operation < Language
4
- def statement
5
- raise NotImplementedError
6
- end
7
-
8
- def whitespace
9
- ::Code::Parser::Whitespace
10
- end
11
-
12
- def whitespace?
13
- whitespace.maybe
14
- end
15
-
16
- def operator
17
- raise NotImplementedError
18
- end
19
-
20
- def root
21
- (
22
- statement.aka(:first) <<
23
- (
24
- whitespace? << operator.aka(:operator) << whitespace? <<
25
- statement.aka(:statement)
26
- ).repeat(1).aka(:others).maybe
27
- )
28
- .aka(:operation)
29
- .then do |output|
30
- output[:operation][:others] ? output : output[:operation][:first]
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,21 +0,0 @@
1
- class Code
2
- class Parser
3
- class OrKeyword < Operation
4
- def statement
5
- ::Code::Parser::NotKeyword
6
- end
7
-
8
- def or_keyword
9
- str("or")
10
- end
11
-
12
- def and_keyword
13
- str("and")
14
- end
15
-
16
- def operator
17
- or_keyword | and_keyword
18
- end
19
- end
20
- end
21
- end
@@ -1,17 +0,0 @@
1
- class Code
2
- class Parser
3
- class OrOperator < Operation
4
- def statement
5
- ::Code::Parser::AndOperator
6
- end
7
-
8
- def pipe
9
- str("|")
10
- end
11
-
12
- def operator
13
- pipe << pipe
14
- end
15
- end
16
- end
17
- end
@@ -1,43 +0,0 @@
1
- class Code
2
- class Parser
3
- class Power < Language
4
- def power
5
- ::Code::Parser::Power
6
- end
7
-
8
- def statement
9
- ::Code::Parser::Negation
10
- end
11
-
12
- def whitespace
13
- ::Code::Parser::Whitespace
14
- end
15
-
16
- def whitespace?
17
- whitespace.maybe
18
- end
19
-
20
- def asterisk
21
- str("*")
22
- end
23
-
24
- def operator
25
- asterisk << asterisk
26
- end
27
-
28
- def root
29
- (
30
- statement.aka(:left) <<
31
- (
32
- whitespace? << operator.aka(:operator) << whitespace? <<
33
- power.aka(:right)
34
- ).maybe
35
- )
36
- .aka(:power)
37
- .then do |output|
38
- output[:power][:right] ? output : output[:power][:left]
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,17 +0,0 @@
1
- class Code
2
- class Parser
3
- class Range < Operation
4
- def statement
5
- ::Code::Parser::OrOperator
6
- end
7
-
8
- def dot
9
- str(".")
10
- end
11
-
12
- def operator
13
- (dot << dot << dot) | (dot << dot)
14
- end
15
- end
16
- end
17
- end
@@ -1,39 +0,0 @@
1
- class Code
2
- class Parser
3
- class Rescue < Language
4
- def statement
5
- ::Code::Parser::Ternary
6
- end
7
-
8
- def rescue_class
9
- ::Code::Parser::Rescue
10
- end
11
-
12
- def whitespace
13
- ::Code::Parser::Whitespace
14
- end
15
-
16
- def whitespace?
17
- whitespace.maybe
18
- end
19
-
20
- def rescue_keyword
21
- str("rescue")
22
- end
23
-
24
- def root
25
- (
26
- statement.aka(:left) <<
27
- (
28
- whitespace? << rescue_keyword << whitespace? <<
29
- rescue_class.aka(:right)
30
- ).maybe
31
- )
32
- .aka(:rescue)
33
- .then do |output|
34
- output[:rescue][:right] ? output : output[:rescue][:left]
35
- end
36
- end
37
- end
38
- end
39
- end