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.
- checksums.yaml +4 -4
- data/Gemfile +1 -4
- data/language-ruby.gemspec +3 -3
- data/lib/language/atom/any.rb +8 -0
- data/lib/language/atom/repeat.rb +15 -0
- data/lib/language/atom.rb +25 -42
- data/lib/language/output.rb +13 -11
- data/lib/language/parser/absent/present.rb +2 -0
- data/lib/language/parser/absent.rb +2 -0
- data/lib/language/parser/end_of_input.rb +2 -0
- data/lib/language/parser/interuption.rb +2 -0
- data/lib/language/parser/not_end_of_input.rb +2 -0
- data/lib/language/parser/str/not_found.rb +2 -0
- data/lib/language/parser/str.rb +2 -0
- data/lib/language/parser.rb +10 -10
- data/lib/language/version.rb +3 -0
- data/lib/language-ruby.rb +0 -5
- data/lib/language.rb +9 -7
- data/spec/spec_helper.rb +1 -6
- metadata +7 -221
- data/.cherry.js +0 -21
- data/.editorconfig +0 -9
- data/.github/workflows/rspec.yml +0 -14
- data/.gitignore +0 -2
- data/.prettierrc +0 -3
- data/.rspec +0 -1
- data/.tool-versions +0 -1
- data/CHANGELOG.md +0 -55
- data/Gemfile.lock +0 -49
- data/LICENSE +0 -7
- data/README.md +0 -103
- data/TODO +0 -17
- data/bin/code +0 -76
- data/bin/format +0 -3
- data/bin/publish +0 -19
- data/bin/template +0 -85
- data/bin/test +0 -17
- data/code-ruby.gemspec +0 -17
- data/docs/class.code +0 -9
- data/docs/euler/1.template +0 -10
- data/docs/euler/2.template +0 -16
- data/docs/euler/3.template +0 -16
- data/docs/euler/4.template +0 -10
- data/docs/euler/5.template +0 -13
- data/docs/fibonnaci.template +0 -14
- data/docs/meetup.code +0 -12
- data/docs/precedence.template +0 -36
- data/docs/rain.code +0 -22
- data/docs/slack.code +0 -17
- data/docs/stripe.code +0 -7
- data/docs/twitter.code +0 -9
- data/lib/code/error.rb +0 -18
- data/lib/code/node/base_10.rb +0 -29
- data/lib/code/node/base_16.rb +0 -13
- data/lib/code/node/base_2.rb +0 -13
- data/lib/code/node/base_8.rb +0 -13
- data/lib/code/node/boolean.rb +0 -22
- data/lib/code/node/call.rb +0 -47
- data/lib/code/node/call_argument.rb +0 -21
- data/lib/code/node/chained_call.rb +0 -23
- data/lib/code/node/code.rb +0 -20
- data/lib/code/node/decimal.rb +0 -26
- data/lib/code/node/dictionnary.rb +0 -33
- data/lib/code/node/equal.rb +0 -34
- data/lib/code/node/function.rb +0 -20
- data/lib/code/node/function_parameter.rb +0 -31
- data/lib/code/node/if.rb +0 -59
- data/lib/code/node/if_modifier.rb +0 -47
- data/lib/code/node/list.rb +0 -16
- data/lib/code/node/negation.rb +0 -15
- data/lib/code/node/not.rb +0 -15
- data/lib/code/node/nothing.rb +0 -12
- data/lib/code/node/number.rb +0 -25
- data/lib/code/node/operation.rb +0 -38
- data/lib/code/node/power.rb +0 -20
- data/lib/code/node/rescue.rb +0 -17
- data/lib/code/node/splat.rb +0 -15
- data/lib/code/node/statement.rb +0 -59
- data/lib/code/node/string.rb +0 -53
- data/lib/code/node/ternary.rb +0 -24
- data/lib/code/node/unary_minus.rb +0 -15
- data/lib/code/node/while.rb +0 -35
- data/lib/code/node.rb +0 -13
- data/lib/code/object/argument.rb +0 -32
- data/lib/code/object/boolean.rb +0 -27
- data/lib/code/object/decimal.rb +0 -162
- data/lib/code/object/dictionnary.rb +0 -96
- data/lib/code/object/function.rb +0 -64
- data/lib/code/object/global.rb +0 -42
- data/lib/code/object/integer.rb +0 -221
- data/lib/code/object/list.rb +0 -207
- data/lib/code/object/nothing.rb +0 -23
- data/lib/code/object/number.rb +0 -6
- data/lib/code/object/range.rb +0 -146
- data/lib/code/object/ruby_function.rb +0 -31
- data/lib/code/object/string.rb +0 -102
- data/lib/code/object.rb +0 -197
- data/lib/code/parser/addition.rb +0 -21
- data/lib/code/parser/and_operator.rb +0 -17
- data/lib/code/parser/bitwise_and.rb +0 -17
- data/lib/code/parser/bitwise_or.rb +0 -21
- data/lib/code/parser/boolean.rb +0 -17
- data/lib/code/parser/call.rb +0 -122
- data/lib/code/parser/chained_call.rb +0 -47
- data/lib/code/parser/class.rb +0 -45
- data/lib/code/parser/code.rb +0 -25
- data/lib/code/parser/dictionnary.rb +0 -67
- data/lib/code/parser/equal.rb +0 -94
- data/lib/code/parser/equality.rb +0 -35
- data/lib/code/parser/equality_lower.rb +0 -9
- data/lib/code/parser/function.rb +0 -85
- data/lib/code/parser/greater.rb +0 -25
- data/lib/code/parser/group.rb +0 -22
- data/lib/code/parser/if.rb +0 -63
- data/lib/code/parser/if_modifier.rb +0 -55
- data/lib/code/parser/list.rb +0 -42
- data/lib/code/parser/multiplication.rb +0 -25
- data/lib/code/parser/name.rb +0 -107
- data/lib/code/parser/negation.rb +0 -30
- data/lib/code/parser/not_keyword.rb +0 -23
- data/lib/code/parser/nothing.rb +0 -22
- data/lib/code/parser/number.rb +0 -154
- data/lib/code/parser/operation.rb +0 -35
- data/lib/code/parser/or_keyword.rb +0 -21
- data/lib/code/parser/or_operator.rb +0 -17
- data/lib/code/parser/power.rb +0 -43
- data/lib/code/parser/range.rb +0 -17
- data/lib/code/parser/rescue.rb +0 -39
- data/lib/code/parser/shift.rb +0 -21
- data/lib/code/parser/splat.rb +0 -31
- data/lib/code/parser/statement.rb +0 -9
- data/lib/code/parser/string.rb +0 -78
- data/lib/code/parser/ternary.rb +0 -46
- data/lib/code/parser/unary_minus.rb +0 -31
- data/lib/code/parser/while.rb +0 -36
- data/lib/code/parser/whitespace.rb +0 -49
- data/lib/code/parser.rb +0 -19
- data/lib/code/ruby.rb +0 -174
- data/lib/code-ruby.rb +0 -10
- data/lib/code.rb +0 -47
- data/lib/template/node/code_part.rb +0 -13
- data/lib/template/node/part.rb +0 -19
- data/lib/template/node/template.rb +0 -15
- data/lib/template/node/text_part.rb +0 -13
- data/lib/template/node.rb +0 -4
- data/lib/template/parser/template.rb +0 -39
- data/lib/template/parser.rb +0 -19
- data/lib/template/version.rb +0 -3
- data/lib/template-ruby.rb +0 -10
- data/lib/template.rb +0 -50
- data/spec/code/addition_spec.rb +0 -13
- data/spec/code/and_operator_spec.rb +0 -13
- data/spec/code/bitwise_and_spec.rb +0 -13
- data/spec/code/bitwise_or_spec.rb +0 -13
- data/spec/code/boolean_spec.rb +0 -13
- data/spec/code/call_spec.rb +0 -21
- data/spec/code/chained_call_spec.rb +0 -16
- data/spec/code/code_spec.rb +0 -29
- data/spec/code/dictionnary_spec.rb +0 -17
- data/spec/code/equal_spec.rb +0 -26
- data/spec/code/equality_spec.rb +0 -13
- data/spec/code/function_spec.rb +0 -18
- data/spec/code/greater_spec.rb +0 -18
- data/spec/code/group_spec.rb +0 -12
- data/spec/code/if_modifier_spec.rb +0 -20
- data/spec/code/if_spec.rb +0 -25
- data/spec/code/list_spec.rb +0 -19
- data/spec/code/multiplication_spec.rb +0 -18
- data/spec/code/negation_spec.rb +0 -20
- data/spec/code/not_keyword_spec.rb +0 -13
- data/spec/code/nothing_spec.rb +0 -17
- data/spec/code/number_spec.rb +0 -22
- data/spec/code/or_keyword_spec.rb +0 -17
- data/spec/code/or_operator_spec.rb +0 -16
- data/spec/code/parser/boolean_spec.rb +0 -16
- data/spec/code/parser/call_spec.rb +0 -26
- data/spec/code/parser/chained_call.rb +0 -17
- data/spec/code/parser/dictionnary_spec.rb +0 -18
- data/spec/code/parser/function_spec.rb +0 -16
- data/spec/code/parser/group_spec.rb +0 -18
- data/spec/code/parser/list_spec.rb +0 -18
- data/spec/code/parser/number_spec.rb +0 -12
- data/spec/code/parser/string_spec.rb +0 -21
- data/spec/code/parser_spec.rb +0 -23
- data/spec/code/power_spec.rb +0 -13
- data/spec/code/range_spec.rb +0 -16
- data/spec/code/rescue_spec.rb +0 -13
- data/spec/code/shift_spec.rb +0 -13
- data/spec/code/splat_spec.rb +0 -13
- data/spec/code/string_spec.rb +0 -27
- data/spec/code/ternary_spec.rb +0 -18
- data/spec/code/unary_minus_spec.rb +0 -13
- data/spec/code/while_spec.rb +0 -18
- data/template-ruby.gemspec +0 -19
data/lib/code/parser/addition.rb
DELETED
data/lib/code/parser/boolean.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
class Code
|
2
|
-
class Parser
|
3
|
-
class Boolean < Language
|
4
|
-
def true_keyword
|
5
|
-
str("true")
|
6
|
-
end
|
7
|
-
|
8
|
-
def false_keyword
|
9
|
-
str("false")
|
10
|
-
end
|
11
|
-
|
12
|
-
def root
|
13
|
-
(true_keyword | false_keyword).aka(:boolean) | ::Code::Parser::Nothing
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
data/lib/code/parser/call.rb
DELETED
@@ -1,122 +0,0 @@
|
|
1
|
-
class Code
|
2
|
-
class Parser
|
3
|
-
class Call < Language
|
4
|
-
def name
|
5
|
-
::Code::Parser::Name
|
6
|
-
end
|
7
|
-
|
8
|
-
def whitespace
|
9
|
-
::Code::Parser::Whitespace
|
10
|
-
end
|
11
|
-
|
12
|
-
def whitespace?
|
13
|
-
whitespace.maybe
|
14
|
-
end
|
15
|
-
|
16
|
-
def code
|
17
|
-
::Code::Parser::Code
|
18
|
-
end
|
19
|
-
|
20
|
-
def code_present
|
21
|
-
::Code::Parser::Code.new.present
|
22
|
-
end
|
23
|
-
|
24
|
-
def colon
|
25
|
-
str(":")
|
26
|
-
end
|
27
|
-
|
28
|
-
def comma
|
29
|
-
str(",")
|
30
|
-
end
|
31
|
-
|
32
|
-
def pipe
|
33
|
-
str("|")
|
34
|
-
end
|
35
|
-
|
36
|
-
def equal
|
37
|
-
str("=")
|
38
|
-
end
|
39
|
-
|
40
|
-
def opening_curly_bracket
|
41
|
-
str("{")
|
42
|
-
end
|
43
|
-
|
44
|
-
def closing_curly_bracket
|
45
|
-
str("}")
|
46
|
-
end
|
47
|
-
|
48
|
-
def opening_parenthesis
|
49
|
-
str("(")
|
50
|
-
end
|
51
|
-
|
52
|
-
def closing_parenthesis
|
53
|
-
str(")")
|
54
|
-
end
|
55
|
-
|
56
|
-
def do_keyword
|
57
|
-
str("do")
|
58
|
-
end
|
59
|
-
|
60
|
-
def end_keyword
|
61
|
-
str("end")
|
62
|
-
end
|
63
|
-
|
64
|
-
def keyword_argument
|
65
|
-
name.aka(:name) << colon << code_present.aka(:value)
|
66
|
-
end
|
67
|
-
|
68
|
-
def regular_argument
|
69
|
-
code_present.aka(:value)
|
70
|
-
end
|
71
|
-
|
72
|
-
def argument
|
73
|
-
keyword_argument | regular_argument
|
74
|
-
end
|
75
|
-
|
76
|
-
def arguments
|
77
|
-
opening_parenthesis.ignore << whitespace? << argument.repeat(0, 1) <<
|
78
|
-
(comma << whitespace? << argument << whitespace?).repeat <<
|
79
|
-
whitespace? << closing_parenthesis.ignore.maybe
|
80
|
-
end
|
81
|
-
|
82
|
-
def keyword_parameter
|
83
|
-
name.aka(:name) << whitespace? << colon.aka(:keyword) <<
|
84
|
-
code_present.aka(:default).maybe
|
85
|
-
end
|
86
|
-
|
87
|
-
def regular_parameter
|
88
|
-
name.aka(:name) << whitespace? <<
|
89
|
-
(equal << whitespace? << code_present.aka(:default)).maybe
|
90
|
-
end
|
91
|
-
|
92
|
-
def parameter
|
93
|
-
keyword_parameter | regular_parameter
|
94
|
-
end
|
95
|
-
|
96
|
-
def parameters
|
97
|
-
pipe.ignore << whitespace? << parameter.repeat(0, 1) <<
|
98
|
-
(whitespace? << comma << whitespace? << parameter).repeat <<
|
99
|
-
whitespace? << pipe.ignore.maybe
|
100
|
-
end
|
101
|
-
|
102
|
-
def block
|
103
|
-
(
|
104
|
-
do_keyword << whitespace? << parameters.aka(:parameters).maybe <<
|
105
|
-
code.aka(:body) << end_keyword.maybe
|
106
|
-
) |
|
107
|
-
(
|
108
|
-
opening_curly_bracket << whitespace? <<
|
109
|
-
parameters.aka(:parameters).maybe << code.aka(:body) <<
|
110
|
-
closing_curly_bracket.maybe
|
111
|
-
)
|
112
|
-
end
|
113
|
-
|
114
|
-
def root
|
115
|
-
(
|
116
|
-
name.aka(:name) << (whitespace? << arguments.aka(:arguments)).maybe <<
|
117
|
-
(whitespace? << block.aka(:block)).maybe
|
118
|
-
).aka(:call)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
class Code
|
2
|
-
class Parser
|
3
|
-
class ChainedCall < Operation
|
4
|
-
def statement
|
5
|
-
::Code::Parser::Dictionnary
|
6
|
-
end
|
7
|
-
|
8
|
-
def whitespace
|
9
|
-
::Code::Parser::Whitespace
|
10
|
-
end
|
11
|
-
|
12
|
-
def whitespace?
|
13
|
-
whitespace.maybe
|
14
|
-
end
|
15
|
-
|
16
|
-
def dot
|
17
|
-
str(".")
|
18
|
-
end
|
19
|
-
|
20
|
-
def colon
|
21
|
-
str(":")
|
22
|
-
end
|
23
|
-
|
24
|
-
def operator
|
25
|
-
dot | (colon << colon)
|
26
|
-
end
|
27
|
-
|
28
|
-
def root
|
29
|
-
(
|
30
|
-
statement.aka(:first) <<
|
31
|
-
(whitespace? << operator << whitespace? << statement)
|
32
|
-
.repeat(1)
|
33
|
-
.aka(:others)
|
34
|
-
.maybe
|
35
|
-
)
|
36
|
-
.aka(:chained_call)
|
37
|
-
.then do |output|
|
38
|
-
if output[:chained_call][:others]
|
39
|
-
output
|
40
|
-
else
|
41
|
-
output[:chained_call][:first]
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
data/lib/code/parser/class.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
class Code
|
2
|
-
class Parser
|
3
|
-
class Class < Language
|
4
|
-
def statement
|
5
|
-
::Code::Parser::While
|
6
|
-
end
|
7
|
-
|
8
|
-
def name
|
9
|
-
::Code::Parser::Name
|
10
|
-
end
|
11
|
-
|
12
|
-
def code
|
13
|
-
::Code::Parser::Code
|
14
|
-
end
|
15
|
-
|
16
|
-
def whitespace
|
17
|
-
::Code::Parser::Whitespace
|
18
|
-
end
|
19
|
-
|
20
|
-
def whitespace?
|
21
|
-
whitespace.maybe
|
22
|
-
end
|
23
|
-
|
24
|
-
def class_keyword
|
25
|
-
str("class")
|
26
|
-
end
|
27
|
-
|
28
|
-
def end_keyword
|
29
|
-
str("end")
|
30
|
-
end
|
31
|
-
|
32
|
-
def lesser
|
33
|
-
str("<")
|
34
|
-
end
|
35
|
-
|
36
|
-
def root
|
37
|
-
(
|
38
|
-
class_keyword << whitespace? << name.aka(:name) <<
|
39
|
-
(whitespace? << lesser << name.aka(:superclass)).maybe <<
|
40
|
-
code.aka(:body) << end_keyword.maybe
|
41
|
-
).aka(:class) | statement
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
data/lib/code/parser/code.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
class Code
|
2
|
-
class Parser
|
3
|
-
class Code < Language
|
4
|
-
def whitespace
|
5
|
-
::Code::Parser::Whitespace
|
6
|
-
end
|
7
|
-
|
8
|
-
def whitespace?(&block)
|
9
|
-
whitespace.maybe(&block)
|
10
|
-
end
|
11
|
-
|
12
|
-
def statement
|
13
|
-
::Code::Parser::Statement
|
14
|
-
end
|
15
|
-
|
16
|
-
def present
|
17
|
-
(whitespace? << statement << whitespace?).repeat(1)
|
18
|
-
end
|
19
|
-
|
20
|
-
def root
|
21
|
-
present | whitespace?.then { [] }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -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
|
data/lib/code/parser/equal.rb
DELETED
@@ -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
|
data/lib/code/parser/equality.rb
DELETED
@@ -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
|
data/lib/code/parser/function.rb
DELETED
@@ -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
|
data/lib/code/parser/greater.rb
DELETED
@@ -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
|
data/lib/code/parser/group.rb
DELETED
@@ -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
|