language-ruby 0.5.6 → 0.6.1

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 (203) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.ruby-version +1 -0
  4. data/.tool-versions +1 -1
  5. data/Gemfile +5 -4
  6. data/Gemfile.lock +12 -23
  7. data/README.md +2 -102
  8. data/language-ruby.gemspec +7 -5
  9. data/lib/language/atom/absent.rb +29 -0
  10. data/lib/language/atom/aka.rb +32 -0
  11. data/lib/language/atom/and.rb +32 -0
  12. data/lib/language/atom/any.rb +15 -0
  13. data/lib/language/atom/ignore.rb +27 -0
  14. data/lib/language/atom/maybe.rb +32 -0
  15. data/lib/language/atom/or.rb +46 -0
  16. data/lib/language/atom/repeat.rb +57 -0
  17. data/lib/language/atom/str.rb +21 -0
  18. data/lib/language/atom/then.rb +21 -0
  19. data/lib/language/atom.rb +10 -291
  20. data/lib/language/output.rb +13 -11
  21. data/lib/language/parser/absent/present.rb +2 -0
  22. data/lib/language/parser/absent.rb +2 -0
  23. data/lib/language/parser/end_of_input.rb +2 -0
  24. data/lib/language/parser/interuption.rb +2 -0
  25. data/lib/language/parser/not_end_of_input.rb +2 -0
  26. data/lib/language/parser/str/not_found.rb +2 -0
  27. data/lib/language/parser/str.rb +2 -0
  28. data/lib/language/parser.rb +10 -10
  29. data/lib/language/version.rb +5 -0
  30. data/lib/language-ruby.rb +2 -5
  31. data/lib/language.rb +9 -7
  32. data/spec/language_spec.rb +21 -0
  33. data/spec/spec_helper.rb +2 -5
  34. metadata +18 -218
  35. data/.cherry.js +0 -21
  36. data/.editorconfig +0 -9
  37. data/.github/workflows/rspec.yml +0 -14
  38. data/.prettierrc +0 -3
  39. data/CHANGELOG.md +0 -55
  40. data/LICENSE +0 -7
  41. data/TODO +0 -17
  42. data/bin/code +0 -76
  43. data/bin/format +0 -3
  44. data/bin/publish +0 -19
  45. data/bin/template +0 -85
  46. data/bin/test +0 -17
  47. data/code-ruby.gemspec +0 -17
  48. data/docs/class.code +0 -9
  49. data/docs/euler/1.template +0 -10
  50. data/docs/euler/2.template +0 -16
  51. data/docs/euler/3.template +0 -16
  52. data/docs/euler/4.template +0 -10
  53. data/docs/euler/5.template +0 -13
  54. data/docs/fibonnaci.template +0 -14
  55. data/docs/meetup.code +0 -12
  56. data/docs/precedence.template +0 -36
  57. data/docs/rain.code +0 -22
  58. data/docs/slack.code +0 -17
  59. data/docs/stripe.code +0 -7
  60. data/docs/twitter.code +0 -9
  61. data/lib/code/error.rb +0 -18
  62. data/lib/code/node/base_10.rb +0 -29
  63. data/lib/code/node/base_16.rb +0 -13
  64. data/lib/code/node/base_2.rb +0 -13
  65. data/lib/code/node/base_8.rb +0 -13
  66. data/lib/code/node/boolean.rb +0 -22
  67. data/lib/code/node/call.rb +0 -47
  68. data/lib/code/node/call_argument.rb +0 -21
  69. data/lib/code/node/chained_call.rb +0 -23
  70. data/lib/code/node/code.rb +0 -20
  71. data/lib/code/node/decimal.rb +0 -26
  72. data/lib/code/node/dictionnary.rb +0 -33
  73. data/lib/code/node/equal.rb +0 -34
  74. data/lib/code/node/function.rb +0 -20
  75. data/lib/code/node/function_parameter.rb +0 -31
  76. data/lib/code/node/if.rb +0 -59
  77. data/lib/code/node/if_modifier.rb +0 -47
  78. data/lib/code/node/list.rb +0 -16
  79. data/lib/code/node/negation.rb +0 -15
  80. data/lib/code/node/not.rb +0 -15
  81. data/lib/code/node/nothing.rb +0 -12
  82. data/lib/code/node/number.rb +0 -25
  83. data/lib/code/node/operation.rb +0 -38
  84. data/lib/code/node/power.rb +0 -20
  85. data/lib/code/node/rescue.rb +0 -17
  86. data/lib/code/node/splat.rb +0 -15
  87. data/lib/code/node/statement.rb +0 -59
  88. data/lib/code/node/string.rb +0 -53
  89. data/lib/code/node/ternary.rb +0 -24
  90. data/lib/code/node/unary_minus.rb +0 -15
  91. data/lib/code/node/while.rb +0 -35
  92. data/lib/code/node.rb +0 -13
  93. data/lib/code/object/argument.rb +0 -32
  94. data/lib/code/object/boolean.rb +0 -27
  95. data/lib/code/object/decimal.rb +0 -162
  96. data/lib/code/object/dictionnary.rb +0 -96
  97. data/lib/code/object/function.rb +0 -64
  98. data/lib/code/object/global.rb +0 -42
  99. data/lib/code/object/integer.rb +0 -221
  100. data/lib/code/object/list.rb +0 -207
  101. data/lib/code/object/nothing.rb +0 -23
  102. data/lib/code/object/number.rb +0 -6
  103. data/lib/code/object/range.rb +0 -146
  104. data/lib/code/object/ruby_function.rb +0 -31
  105. data/lib/code/object/string.rb +0 -102
  106. data/lib/code/object.rb +0 -197
  107. data/lib/code/parser/addition.rb +0 -21
  108. data/lib/code/parser/and_operator.rb +0 -17
  109. data/lib/code/parser/bitwise_and.rb +0 -17
  110. data/lib/code/parser/bitwise_or.rb +0 -21
  111. data/lib/code/parser/boolean.rb +0 -17
  112. data/lib/code/parser/call.rb +0 -122
  113. data/lib/code/parser/chained_call.rb +0 -47
  114. data/lib/code/parser/class.rb +0 -45
  115. data/lib/code/parser/code.rb +0 -25
  116. data/lib/code/parser/dictionnary.rb +0 -67
  117. data/lib/code/parser/equal.rb +0 -94
  118. data/lib/code/parser/equality.rb +0 -35
  119. data/lib/code/parser/equality_lower.rb +0 -9
  120. data/lib/code/parser/function.rb +0 -85
  121. data/lib/code/parser/greater.rb +0 -25
  122. data/lib/code/parser/group.rb +0 -22
  123. data/lib/code/parser/if.rb +0 -63
  124. data/lib/code/parser/if_modifier.rb +0 -55
  125. data/lib/code/parser/list.rb +0 -42
  126. data/lib/code/parser/multiplication.rb +0 -25
  127. data/lib/code/parser/name.rb +0 -107
  128. data/lib/code/parser/negation.rb +0 -30
  129. data/lib/code/parser/not_keyword.rb +0 -23
  130. data/lib/code/parser/nothing.rb +0 -22
  131. data/lib/code/parser/number.rb +0 -154
  132. data/lib/code/parser/operation.rb +0 -35
  133. data/lib/code/parser/or_keyword.rb +0 -21
  134. data/lib/code/parser/or_operator.rb +0 -17
  135. data/lib/code/parser/power.rb +0 -43
  136. data/lib/code/parser/range.rb +0 -17
  137. data/lib/code/parser/rescue.rb +0 -39
  138. data/lib/code/parser/shift.rb +0 -21
  139. data/lib/code/parser/splat.rb +0 -31
  140. data/lib/code/parser/statement.rb +0 -9
  141. data/lib/code/parser/string.rb +0 -78
  142. data/lib/code/parser/ternary.rb +0 -46
  143. data/lib/code/parser/unary_minus.rb +0 -31
  144. data/lib/code/parser/while.rb +0 -36
  145. data/lib/code/parser/whitespace.rb +0 -49
  146. data/lib/code/parser.rb +0 -19
  147. data/lib/code/ruby.rb +0 -174
  148. data/lib/code-ruby.rb +0 -10
  149. data/lib/code.rb +0 -47
  150. data/lib/template/node/code_part.rb +0 -13
  151. data/lib/template/node/part.rb +0 -19
  152. data/lib/template/node/template.rb +0 -15
  153. data/lib/template/node/text_part.rb +0 -13
  154. data/lib/template/node.rb +0 -4
  155. data/lib/template/parser/template.rb +0 -39
  156. data/lib/template/parser.rb +0 -19
  157. data/lib/template/version.rb +0 -3
  158. data/lib/template-ruby.rb +0 -10
  159. data/lib/template.rb +0 -50
  160. data/spec/code/addition_spec.rb +0 -13
  161. data/spec/code/and_operator_spec.rb +0 -13
  162. data/spec/code/bitwise_and_spec.rb +0 -13
  163. data/spec/code/bitwise_or_spec.rb +0 -13
  164. data/spec/code/boolean_spec.rb +0 -13
  165. data/spec/code/call_spec.rb +0 -21
  166. data/spec/code/chained_call_spec.rb +0 -16
  167. data/spec/code/code_spec.rb +0 -29
  168. data/spec/code/dictionnary_spec.rb +0 -17
  169. data/spec/code/equal_spec.rb +0 -26
  170. data/spec/code/equality_spec.rb +0 -13
  171. data/spec/code/function_spec.rb +0 -18
  172. data/spec/code/greater_spec.rb +0 -18
  173. data/spec/code/group_spec.rb +0 -12
  174. data/spec/code/if_modifier_spec.rb +0 -20
  175. data/spec/code/if_spec.rb +0 -25
  176. data/spec/code/list_spec.rb +0 -19
  177. data/spec/code/multiplication_spec.rb +0 -18
  178. data/spec/code/negation_spec.rb +0 -20
  179. data/spec/code/not_keyword_spec.rb +0 -13
  180. data/spec/code/nothing_spec.rb +0 -17
  181. data/spec/code/number_spec.rb +0 -22
  182. data/spec/code/or_keyword_spec.rb +0 -17
  183. data/spec/code/or_operator_spec.rb +0 -16
  184. data/spec/code/parser/boolean_spec.rb +0 -16
  185. data/spec/code/parser/call_spec.rb +0 -26
  186. data/spec/code/parser/chained_call.rb +0 -17
  187. data/spec/code/parser/dictionnary_spec.rb +0 -18
  188. data/spec/code/parser/function_spec.rb +0 -16
  189. data/spec/code/parser/group_spec.rb +0 -18
  190. data/spec/code/parser/list_spec.rb +0 -18
  191. data/spec/code/parser/number_spec.rb +0 -12
  192. data/spec/code/parser/string_spec.rb +0 -21
  193. data/spec/code/parser_spec.rb +0 -23
  194. data/spec/code/power_spec.rb +0 -13
  195. data/spec/code/range_spec.rb +0 -16
  196. data/spec/code/rescue_spec.rb +0 -13
  197. data/spec/code/shift_spec.rb +0 -13
  198. data/spec/code/splat_spec.rb +0 -13
  199. data/spec/code/string_spec.rb +0 -27
  200. data/spec/code/ternary_spec.rb +0 -18
  201. data/spec/code/unary_minus_spec.rb +0 -13
  202. data/spec/code/while_spec.rb +0 -18
  203. data/template-ruby.gemspec +0 -19
@@ -1,67 +0,0 @@
1
- class Code
2
- class Parser
3
- class Dictionnary < Language
4
- def code
5
- ::Code::Parser::Code.new.present
6
- end
7
-
8
- def statement
9
- ::Code::Parser::Statement
10
- end
11
-
12
- def name
13
- ::Code::Parser::Name
14
- end
15
-
16
- def whitespace
17
- ::Code::Parser::Whitespace
18
- end
19
-
20
- def whitespace?
21
- whitespace.maybe
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 comma
33
- str(",")
34
- end
35
-
36
- def colon
37
- str(":")
38
- end
39
-
40
- def equal
41
- str("=")
42
- end
43
-
44
- def greater
45
- str(">")
46
- end
47
-
48
- def key_value
49
- (name.aka(:name) << colon << code.aka(:value)) |
50
- (statement.aka(:statement) << colon << code.aka(:value)) |
51
- (
52
- statement.aka(:statement) << whitespace? << equal << greater <<
53
- code.aka(:value)
54
- )
55
- end
56
-
57
- def root
58
- (
59
- opening_curly_bracket.ignore << whitespace? <<
60
- key_value.repeat(0, 1) <<
61
- (whitespace? << comma << whitespace? << key_value).repeat <<
62
- (whitespace? << closing_curly_bracket.ignore).maybe
63
- ).aka(:dictionnary) | ::Code::Parser::List
64
- end
65
- end
66
- end
67
- end
@@ -1,94 +0,0 @@
1
- class Code
2
- class Parser
3
- class Equal < Language
4
- def statement
5
- ::Code::Parser::Rescue
6
- end
7
-
8
- def name
9
- ::Code::Parser::Name
10
- end
11
-
12
- def equal_class
13
- ::Code::Parser::Equal
14
- end
15
-
16
- def whitespace
17
- ::Code::Parser::Whitespace
18
- end
19
-
20
- def whitespace?
21
- whitespace.maybe
22
- end
23
-
24
- def equal
25
- str("=")
26
- end
27
-
28
- def plus
29
- str("+")
30
- end
31
-
32
- def minus
33
- str("-")
34
- end
35
-
36
- def asterisk
37
- str("*")
38
- end
39
-
40
- def slash
41
- str("/")
42
- end
43
-
44
- def percent
45
- str("%")
46
- end
47
-
48
- def greater
49
- str(">")
50
- end
51
-
52
- def lesser
53
- str("<")
54
- end
55
-
56
- def ampersand
57
- str("&")
58
- end
59
-
60
- def pipe
61
- str("|")
62
- end
63
-
64
- def caret
65
- str("^")
66
- end
67
-
68
- def dot
69
- str(".")
70
- end
71
-
72
- def operator
73
- equal.ignore | (plus << equal.ignore) | (minus << equal.ignore) |
74
- (asterisk << equal.ignore) | (slash << equal.ignore) |
75
- (percent << equal.ignore) | (greater << greater << equal.ignore) |
76
- (lesser << lesser << equal.ignore) | (ampersand << equal.ignore) |
77
- (pipe << equal.ignore) | (caret << equal.ignore) |
78
- (pipe << pipe << equal.ignore) |
79
- (ampersand << ampersand << equal.ignore)
80
- end
81
-
82
- def names
83
- name << (dot << name).repeat
84
- end
85
-
86
- def root
87
- (
88
- names.aka(:left) << whitespace? << operator.aka(:operator) <<
89
- whitespace? << equal_class.aka(:right)
90
- ).aka(:equal) | statement
91
- end
92
- end
93
- end
94
- end
@@ -1,35 +0,0 @@
1
- class Code
2
- class Parser
3
- class Equality < Operation
4
- def statement
5
- ::Code::Parser::Splat
6
- end
7
-
8
- def equal
9
- str("=")
10
- end
11
-
12
- def greater
13
- str(">")
14
- end
15
-
16
- def lesser
17
- str("<")
18
- end
19
-
20
- def exclamation_point
21
- str("!")
22
- end
23
-
24
- def tilde
25
- str("~")
26
- end
27
-
28
- def operator
29
- (equal << equal << equal) | (equal << equal) |
30
- (lesser << equal << greater) | (exclamation_point << equal) |
31
- (equal << tilde) | (tilde << equal) | (exclamation_point << tilde)
32
- end
33
- end
34
- end
35
- end
@@ -1,9 +0,0 @@
1
- class Code
2
- class Parser
3
- class EqualityLower < Equality
4
- def statement
5
- ::Code::Parser::Greater
6
- end
7
- end
8
- end
9
- end
@@ -1,85 +0,0 @@
1
- class Code
2
- class Parser
3
- class Function < Language
4
- def name
5
- ::Code::Parser::Name
6
- end
7
-
8
- def code
9
- ::Code::Parser::Code
10
- end
11
-
12
- def code_present
13
- ::Code::Parser::Code.new.present
14
- end
15
-
16
- def whitespace
17
- ::Code::Parser::Whitespace
18
- end
19
-
20
- def whitespace?
21
- whitespace.maybe
22
- end
23
-
24
- def opening_parenthesis
25
- str("(")
26
- end
27
-
28
- def closing_parenthesis
29
- str(")")
30
- end
31
-
32
- def colon
33
- str(":")
34
- end
35
-
36
- def comma
37
- str(",")
38
- end
39
-
40
- def equal
41
- str("=")
42
- end
43
-
44
- def greater
45
- str(">")
46
- end
47
-
48
- def opening_curly_bracket
49
- str("{")
50
- end
51
-
52
- def closing_curly_bracket
53
- str("}")
54
- end
55
-
56
- def keyword_parameter
57
- name.aka(:name) << whitespace? << colon.aka(:keyword) <<
58
- code_present.aka(:default).maybe
59
- end
60
-
61
- def regular_parameter
62
- name.aka(:name) << whitespace? <<
63
- (equal << whitespace? << code_present.aka(:default)).maybe
64
- end
65
-
66
- def parameter
67
- keyword_parameter | regular_parameter
68
- end
69
-
70
- def parameters
71
- opening_parenthesis.ignore << whitespace? << parameter.repeat(0, 1) <<
72
- (whitespace? << comma << whitespace? << parameter).repeat <<
73
- whitespace? << closing_parenthesis.ignore.maybe
74
- end
75
-
76
- def root
77
- (
78
- parameters.aka(:parameters) << whitespace? << equal << greater <<
79
- whitespace? << opening_curly_bracket << code.aka(:body) <<
80
- closing_curly_bracket.maybe
81
- ).aka(:function) | ::Code::Parser::ChainedCall
82
- end
83
- end
84
- end
85
- end
@@ -1,25 +0,0 @@
1
- class Code
2
- class Parser
3
- class Greater < Operation
4
- def statement
5
- ::Code::Parser::BitwiseOr
6
- end
7
-
8
- def greater
9
- str(">")
10
- end
11
-
12
- def lesser
13
- str("<")
14
- end
15
-
16
- def equal
17
- str("=")
18
- end
19
-
20
- def operator
21
- (greater << equal) | (lesser << equal) | greater | lesser
22
- end
23
- end
24
- end
25
- end
@@ -1,22 +0,0 @@
1
- class Code
2
- class Parser
3
- class Group < Language
4
- def code
5
- ::Code::Parser::Code
6
- end
7
-
8
- def opening_parenthesis
9
- str("(")
10
- end
11
-
12
- def closing_parenthesis
13
- str(")")
14
- end
15
-
16
- def root
17
- (opening_parenthesis << code << closing_parenthesis.maybe).aka(:group) |
18
- ::Code::Parser::Call
19
- end
20
- end
21
- end
22
- end
@@ -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