rupkl 0.1.0 → 0.3.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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/rupkl/node/amend_expression.rb +48 -0
  4. data/lib/rupkl/node/any.rb +110 -0
  5. data/lib/rupkl/node/base.rb +75 -0
  6. data/lib/rupkl/node/boolean.rb +30 -5
  7. data/lib/rupkl/node/collection.rb +176 -0
  8. data/lib/rupkl/node/context.rb +27 -0
  9. data/lib/rupkl/node/data_size.rb +254 -0
  10. data/lib/rupkl/node/declared_type.rb +32 -0
  11. data/lib/rupkl/node/duration.rb +266 -0
  12. data/lib/rupkl/node/dynamic.rb +33 -60
  13. data/lib/rupkl/node/identifier.rb +19 -5
  14. data/lib/rupkl/node/if_expression.rb +45 -0
  15. data/lib/rupkl/node/intseq.rb +84 -0
  16. data/lib/rupkl/node/listing.rb +68 -0
  17. data/lib/rupkl/node/map.rb +120 -0
  18. data/lib/rupkl/node/mapping.rb +54 -0
  19. data/lib/rupkl/node/member_finder.rb +49 -0
  20. data/lib/rupkl/node/member_reference.rb +46 -21
  21. data/lib/rupkl/node/method_call.rb +63 -0
  22. data/lib/rupkl/node/method_definition.rb +199 -0
  23. data/lib/rupkl/node/node_common.rb +76 -0
  24. data/lib/rupkl/node/null.rb +24 -0
  25. data/lib/rupkl/node/number.rb +228 -10
  26. data/lib/rupkl/node/object.rb +626 -74
  27. data/lib/rupkl/node/operation.rb +175 -115
  28. data/lib/rupkl/node/pair.rb +58 -0
  29. data/lib/rupkl/node/pkl_module.rb +16 -28
  30. data/lib/rupkl/node/reference_resolver.rb +79 -0
  31. data/lib/rupkl/node/regex.rb +196 -0
  32. data/lib/rupkl/node/string.rb +415 -23
  33. data/lib/rupkl/node/struct_common.rb +150 -53
  34. data/lib/rupkl/node/this.rb +17 -0
  35. data/lib/rupkl/node/type_common.rb +34 -0
  36. data/lib/rupkl/node/value_common.rb +18 -13
  37. data/lib/rupkl/parser/expression.rb +197 -43
  38. data/lib/rupkl/parser/identifier.rb +2 -2
  39. data/lib/rupkl/parser/literal.rb +18 -12
  40. data/lib/rupkl/parser/method.rb +41 -0
  41. data/lib/rupkl/parser/misc.rb +24 -0
  42. data/lib/rupkl/parser/object.rb +141 -26
  43. data/lib/rupkl/parser/pkl_class.rb +37 -10
  44. data/lib/rupkl/parser/pkl_module.rb +5 -3
  45. data/lib/rupkl/parser/type.rb +28 -0
  46. data/lib/rupkl/parser.rb +8 -0
  47. data/lib/rupkl/pkl_object.rb +11 -7
  48. data/lib/rupkl/version.rb +1 -1
  49. data/lib/rupkl.rb +35 -6
  50. metadata +45 -7
  51. data/lib/rupkl/node/pkl_class.rb +0 -30
@@ -13,16 +13,16 @@ module RuPkl
13
13
 
14
14
  define_transform do
15
15
  rule(true_value: simple(:v)) do
16
- Node::Boolean.new(true, node_position(v))
16
+ Node::Boolean.new(nil, true, node_position(v))
17
17
  end
18
18
 
19
19
  rule(false_value: simple(:v)) do
20
- Node::Boolean.new(false, node_position(v))
20
+ Node::Boolean.new(nil, false, node_position(v))
21
21
  end
22
22
  end
23
23
 
24
24
  #
25
- # Integer literal
25
+ # Int literal
26
26
  #
27
27
  define_parser do
28
28
  rule(:bin_literal) do
@@ -41,18 +41,18 @@ module RuPkl
41
41
  str('0x') >> match('[\h]') >> match('[_\h]').repeat
42
42
  end
43
43
 
44
- rule(:integer_literal) do
44
+ rule(:int_literal) do
45
45
  (
46
46
  bin_literal | oct_literal | hex_literal | dec_literal
47
- ).as(:integer_literal)
47
+ ).as(:int_literal)
48
48
  end
49
49
  end
50
50
 
51
51
  define_transform do
52
- rule(integer_literal: simple(:v)) do
52
+ rule(int_literal: simple(:v)) do
53
53
  base = { 'b' => 2, 'o' => 8, 'x' => 16 }.fetch(v.to_s[1], 10)
54
54
  value = v.to_s.tr('_', '').to_i(base)
55
- Node::Integer.new(value, node_position(v))
55
+ Node::Int.new(nil, value, node_position(v))
56
56
  end
57
57
  end
58
58
 
@@ -75,7 +75,7 @@ module RuPkl
75
75
  define_transform do
76
76
  rule(float_literal: simple(:f)) do
77
77
  v = f.to_s.tr('_', '').to_f
78
- Node::Float.new(v, node_position(f))
78
+ Node::Float.new(nil, v, node_position(f))
79
79
  end
80
80
  end
81
81
 
@@ -225,19 +225,25 @@ module RuPkl
225
225
 
226
226
  define_transform do
227
227
  rule(ss_bq: simple(:bq), ss_eq: simple(:eq)) do
228
- Node::String.new(nil, nil, node_position(bq))
228
+ Node::String.new(nil, nil, nil, node_position(bq))
229
229
  end
230
230
 
231
231
  rule(ss_bq: simple(:bq), ss_portions: subtree(:portions), ss_eq: simple(:eq)) do
232
- Node::String.new(nil, process_ss_portions(portions, bq), node_position(bq))
232
+ Node::String.new(
233
+ nil, nil, process_ss_portions(portions, bq),
234
+ node_position(bq)
235
+ )
233
236
  end
234
237
 
235
238
  rule(ms_bq: simple(:bq), ms_eq: simple(:eq)) do
236
- Node::String.new(nil, nil, node_position(bq))
239
+ Node::String.new(nil, nil, nil, node_position(bq))
237
240
  end
238
241
 
239
242
  rule(ms_bq: simple(:bq), ms_portions: subtree(:portions), ms_eq: simple(:eq)) do
240
- Node::String.new(nil, process_ms_portions(portions, bq, eq), node_position(bq))
243
+ Node::String.new(
244
+ nil, nil, process_ms_portions(portions, bq, eq),
245
+ node_position(bq)
246
+ )
241
247
  end
242
248
 
243
249
  private
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuPkl
4
+ class Parser
5
+ define_parser do
6
+ rule(:method_header) do
7
+ kw_function.as(:kw_function) >> ws >>
8
+ id.as(:name) >> ws? >> method_params.as(:params) >>
9
+ (ws? >> type_annotation.as(:type)).maybe
10
+ end
11
+
12
+ rule(:method_params) do
13
+ bracketed(list(method_param).maybe, '(', ')').as(:method_params)
14
+ end
15
+
16
+ rule(:method_param) do
17
+ (
18
+ id.as(:name) >> (ws? >> type_annotation.as(:type)).maybe
19
+ ).as(:method_param)
20
+ end
21
+ end
22
+
23
+ define_transform do
24
+ rule(method_params: subtree(:params)) do
25
+ params == '' ? nil : Array(params)
26
+ end
27
+
28
+ rule(
29
+ method_param: { name: simple(:name) }
30
+ ) do
31
+ Node::MethodParam.new(nil, name, nil, name.position)
32
+ end
33
+
34
+ rule(
35
+ method_param: { name: simple(:name), type: simple(:type) }
36
+ ) do
37
+ Node::MethodParam.new(nil, name, type, name.position)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -45,6 +45,30 @@ module RuPkl
45
45
  .map { _1.is_a?(String) && str(_1).ignore || _1 }
46
46
  bra_matcher >> ws? >> atom >> ws? >> cket_matcher
47
47
  end
48
+
49
+ def list(atom, delimiter = ',')
50
+ atom >> (ws? >> str(delimiter).ignore >> ws? >> atom).repeat
51
+ end
52
+ end
53
+
54
+ define_parser do
55
+ rule(:modifier) do
56
+ kw_local.as(:modifier)
57
+ end
58
+
59
+ rule(:modifiers) do
60
+ (modifier >> ws).repeat(1).as(:modifiers)
61
+ end
62
+ end
63
+
64
+ define_transform do
65
+ rule(modifier: simple(:modifier)) do
66
+ modifier.to_sym
67
+ end
68
+
69
+ rule(modifiers: sequence(:modifiers)) do
70
+ modifiers.to_h { |m| [m.to_sym, true] }
71
+ end
48
72
  end
49
73
  end
50
74
  end
@@ -4,27 +4,32 @@ module RuPkl
4
4
  class Parser
5
5
  define_parser do
6
6
  rule(:object) do
7
+ (object_body >> (ws? >> object_body).repeat).as(:bodies).as(:object)
8
+ end
9
+
10
+ rule(:object_body) do
7
11
  bracketed(
8
- object_members.as(:members).maybe,
9
- str('{').as(:start), '}'
10
- ).as(:object)
12
+ object_items.as(:items).maybe,
13
+ str('{').as(:body_begin), '}'
14
+ ).as(:object_body)
11
15
  end
12
16
 
13
- rule(:object_members) do
14
- object_member >> (ws >> object_member).repeat
17
+ rule(:object_items) do
18
+ object_item >> (ws >> object_item).repeat
15
19
  end
16
20
 
17
- rule(:object_member) do
18
- object_property | object_entry | object_element
21
+ rule(:object_item) do
22
+ [
23
+ when_generator, for_generator,
24
+ object_method, object_element,
25
+ object_property, object_entry
26
+ ].inject(:|)
19
27
  end
20
28
 
21
29
  rule(:object_property) do
22
30
  (
23
- id.as(:name) >> ws? >>
24
- (
25
- (str('=').ignore >> ws? >> expression.as(:value)) |
26
- (object >> (ws? >> object).repeat).as(:objects)
27
- )
31
+ modifiers.as(:modifiers).maybe >> id.as(:name) >> ws? >>
32
+ ((str('=').ignore >> ws? >> expression) | object).as(:value)
28
33
  ).as(:object_property)
29
34
  end
30
35
 
@@ -32,40 +37,150 @@ module RuPkl
32
37
  (
33
38
  bracketed(expression.as(:key), '[', ']') >> ws? >>
34
39
  (
35
- (str('=').ignore >> ws? >> expression.as(:value)) |
36
- (object >> (ws? >> object).repeat).as(:objects)
37
- )
40
+ (str('=').ignore >> ws? >> expression) | object
41
+ ).as(:value)
38
42
  ).as(:object_entry)
39
43
  end
40
44
 
41
45
  rule(:object_element) do
42
- expression
46
+ (
47
+ modifiers.absent? >> expression >> (ws? >> match('[={]')).absent?
48
+ ).as(:object_element)
49
+ end
50
+
51
+ rule(:object_method) do
52
+ (
53
+ method_header >> ws? >>
54
+ str('=').ignore >> ws? >> expression.as(:body)
55
+ ).as(:object_method)
56
+ end
57
+
58
+ rule(:when_generator) do
59
+ (
60
+ kw_when.as(:kw_when) >> ws? >>
61
+ bracketed(expression.as(:condition), '(', ')') >> ws? >>
62
+ object_body.as(:when_body) >>
63
+ (ws? >> kw_else.ignore >> ws? >> object_body.as(:else_body)).maybe
64
+ ).as(:when_generator)
65
+ end
66
+
67
+ rule(:for_generator) do
68
+ (
69
+ header =
70
+ (id.as(:key_name) >> ws? >> str(',') >> ws?).maybe >>
71
+ id.as(:value_name) >> ws >> kw_in >> ws >> expression.as(:iterable)
72
+ kw_for.as(:kw_for) >> ws? >>
73
+ bracketed(header, '(', ')') >> ws? >> object_body.as(:body)
74
+ ).as(:for_generator)
43
75
  end
44
76
  end
45
77
 
46
78
  define_transform do
47
- rule(object: { start: simple(:s) }) do
48
- Node::UnresolvedObject.new(nil, node_position(s))
79
+ rule(object: { bodies: subtree(:b) }) do
80
+ bodies = Array(b)
81
+ Node::UnresolvedObject.new(nil, nil, bodies, bodies.first.position)
49
82
  end
50
83
 
51
- rule(object: { start: simple(:s), members: subtree(:m) }) do
52
- Node::UnresolvedObject.new(Array(m), node_position(s))
84
+ rule(object_body: { body_begin: simple(:body_begin) }) do
85
+ Node::ObjectBody.new(nil, nil, node_position(body_begin))
86
+ end
87
+
88
+ rule(
89
+ object_body: {
90
+ body_begin: simple(:body_begin), items: subtree(:items)
91
+ }
92
+ ) do
93
+ Node::ObjectBody.new(nil, Array(items), node_position(body_begin))
53
94
  end
54
95
 
55
96
  rule(object_property: { name: simple(:n), value: simple(:v) }) do
56
- Node::ObjectProperty.new(n, v, nil, n.position)
97
+ Node::ObjectProperty.new(nil, n, v, nil, n.position)
57
98
  end
58
99
 
59
- rule(object_property: { name: simple(:n), objects: subtree(:o) }) do
60
- Node::ObjectProperty.new(n, nil, Array(o), n.position)
100
+ rule(
101
+ object_property:
102
+ {
103
+ modifiers: subtree(:m), name: simple(:n), value: simple(:v)
104
+ }
105
+ ) do
106
+ Node::ObjectProperty.new(nil, n, v, m, n.position)
61
107
  end
62
108
 
63
109
  rule(object_entry: { key: simple(:k), value: simple(:v) }) do
64
- Node::ObjectEntry.new(k, v, nil, k.position)
110
+ Node::ObjectEntry.new(nil, k, v, k.position)
111
+ end
112
+
113
+ rule(object_element: simple(:e)) do
114
+ Node::ObjectElement.new(nil, e, e.position)
115
+ end
116
+
117
+ rule(
118
+ object_method:
119
+ {
120
+ kw_function: simple(:kw), name: simple(:name),
121
+ params: subtree(:params), body: simple(:body)
122
+ }
123
+ ) do
124
+ Node::MethodDefinition.new(nil, name, params, nil, body, node_position(kw))
125
+ end
126
+
127
+ rule(
128
+ object_method:
129
+ {
130
+ kw_function: simple(:kw), name: simple(:name),
131
+ params: subtree(:params), type: simple(:type), body: simple(:body)
132
+ }
133
+ ) do
134
+ Node::MethodDefinition.new(nil, name, params, type, body, node_position(kw))
135
+ end
136
+
137
+ rule(
138
+ when_generator:
139
+ {
140
+ kw_when: simple(:kw), condition: simple(:condition),
141
+ when_body: simple(:when_body)
142
+ }
143
+ ) do
144
+ Node::WhenGenerator.new(
145
+ nil, condition, when_body, nil, nil, node_position(kw)
146
+ )
147
+ end
148
+
149
+ rule(
150
+ when_generator:
151
+ {
152
+ kw_when: simple(:kw), condition: simple(:condition),
153
+ when_body: simple(:when_body), else_body: simple(:else_body)
154
+ }
155
+ ) do
156
+ Node::WhenGenerator.new(
157
+ nil, condition, when_body, else_body, nil, node_position(kw)
158
+ )
159
+ end
160
+
161
+ rule(
162
+ for_generator:
163
+ {
164
+ kw_for: simple(:kw), value_name: simple(:value_name),
165
+ iterable: simple(:iterable), body: simple(:body)
166
+ }
167
+ ) do
168
+ Node::ForGenerator.new(
169
+ nil, nil, value_name, iterable, body, nil, node_position(kw)
170
+ )
65
171
  end
66
172
 
67
- rule(object_entry: { key: simple(:k), objects: subtree(:o) }) do
68
- Node::ObjectEntry.new(k, nil, Array(o), k.position)
173
+ rule(
174
+ for_generator:
175
+ {
176
+ kw_for: simple(:kw),
177
+ key_name: simple(:key_name), value_name: simple(:value_name),
178
+ iterable: simple(:iterable), body: simple(:body)
179
+ }
180
+ ) do
181
+ Node::ForGenerator.new(
182
+ nil, key_name, value_name, iterable, body, nil, node_position(kw)
183
+ )
69
184
  end
70
185
  end
71
186
  end
@@ -5,24 +5,51 @@ module RuPkl
5
5
  define_parser do
6
6
  rule(:pkl_class_property) do
7
7
  (
8
- id.as(:name) >> ws? >>
9
- (
10
- (str('=').ignore >> ws? >> expression.as(:value)) |
11
- (object >> (ws? >> object).repeat).as(:objects)
12
- )
8
+ modifiers.as(:modifiers).maybe >> id.as(:name) >> ws? >>
9
+ ((str('=').ignore >> ws? >> expression) | object).as(:value)
13
10
  ).as(:class_property)
14
11
  end
12
+
13
+ rule(:pkl_class_method) do
14
+ (
15
+ method_header >> ws? >>
16
+ str('=').ignore >> ws? >> expression.as(:body)
17
+ ).as(:pkl_class_method)
18
+ end
15
19
  end
16
20
 
17
21
  define_transform do
18
22
  rule(class_property: { name: simple(:n), value: simple(:v) }) do
19
- Node::PklClassProperty.new(n, v, nil, n.position)
23
+ Node::ObjectProperty.new(nil, n, v, nil, n.position)
20
24
  end
21
- end
22
25
 
23
- define_transform do
24
- rule(class_property: { name: simple(:n), objects: subtree(:o) }) do
25
- Node::PklClassProperty.new(n, nil, Array(o), n.position)
26
+ rule(
27
+ class_property:
28
+ {
29
+ modifiers: subtree(:m), name: simple(:n), value: simple(:v)
30
+ }
31
+ ) do
32
+ Node::ObjectProperty.new(nil, n, v, m, n.position)
33
+ end
34
+
35
+ rule(
36
+ pkl_class_method:
37
+ {
38
+ kw_function: simple(:kw), name: simple(:name),
39
+ params: subtree(:params), body: simple(:body)
40
+ }
41
+ ) do
42
+ Node::MethodDefinition.new(nil, name, params, nil, body, node_position(kw))
43
+ end
44
+
45
+ rule(
46
+ pkl_class_method:
47
+ {
48
+ kw_function: simple(:kw), name: simple(:name),
49
+ params: subtree(:params), type: simple(:type), body: simple(:body)
50
+ }
51
+ ) do
52
+ Node::MethodDefinition.new(nil, name, params, type, body, node_position(kw))
26
53
  end
27
54
  end
28
55
  end
@@ -14,18 +14,20 @@ module RuPkl
14
14
  end
15
15
 
16
16
  rule(:pkl_module_item) do
17
- pkl_class_property
17
+ pkl_class_method | pkl_class_property
18
18
  end
19
19
  end
20
20
 
21
21
  define_transform do
22
22
  rule(pkl_module: simple(:_)) do
23
- Node::PklModule.new(nil, sof_position)
23
+ body = Node::ObjectBody.new(nil, nil, sof_position)
24
+ Node::PklModule.new(nil, body, sof_position)
24
25
  end
25
26
 
26
27
  rule(pkl_module: { items: subtree(:items) }) do
27
28
  Array(items)
28
- .then { Node::PklModule.new(_1, _1.first.position) }
29
+ .then { Node::ObjectBody.new(nil, _1, _1.first.position) }
30
+ .then { Node::PklModule.new(nil, _1, _1.position) }
29
31
  end
30
32
  end
31
33
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuPkl
4
+ class Parser
5
+ define_parser do
6
+ rule(:declared_type) do
7
+ id.as(:type).as(:declared_type)
8
+ end
9
+
10
+ rule(:type) do
11
+ declared_type
12
+ end
13
+
14
+ rule(:type_annotation) do
15
+ str(':').ignore >> ws? >> type
16
+ end
17
+ end
18
+
19
+ define_transform do
20
+ rule(
21
+ declared_type:
22
+ { type: simple(:t) }
23
+ ) do
24
+ Node::DeclaredType.new(nil, Array(t), t.position)
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/rupkl/parser.rb CHANGED
@@ -73,6 +73,14 @@ module RuPkl
73
73
  end
74
74
 
75
75
  class Transform < Parslet::Transform
76
+ class << self
77
+ private
78
+
79
+ def define_helper(name, &body)
80
+ private define_method(name, &body)
81
+ end
82
+ end
83
+
76
84
  def apply(obj, context = nil, filename: nil)
77
85
  @filename = filename if filename
78
86
  super(obj, context)
@@ -4,10 +4,8 @@ module RuPkl
4
4
  class PklObject
5
5
  include Enumerable
6
6
 
7
- def initialize(properties, entries, elements)
8
- @properties = properties
9
- @entries = entries
10
- @elements = elements
7
+ def initialize
8
+ @properties, @entries, @elements = yield(self)
11
9
  define_property_accessors
12
10
  end
13
11
 
@@ -84,12 +82,18 @@ module RuPkl
84
82
  end
85
83
  end
86
84
 
85
+ def pretty_print_cycle(pp)
86
+ if element_only?
87
+ pp.text('[...]')
88
+ else
89
+ pp.text('{...}')
90
+ end
91
+ end
92
+
87
93
  private
88
94
 
89
95
  def define_property_accessors
90
- return unless @properties
91
-
92
- properties.each_key do |name|
96
+ @properties&.each_key do |name|
93
97
  singleton_class.class_eval(<<~M, __FILE__, __LINE__ + 1)
94
98
  # def foo
95
99
  # properties[__method__]
data/lib/rupkl/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RuPkl
4
- VERSION = '0.1.0'
4
+ VERSION = '0.3.0'
5
5
  end
data/lib/rupkl.rb CHANGED
@@ -1,29 +1,58 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'base64'
4
+ require 'digest/md5'
5
+ require 'digest/sha1'
6
+ require 'digest/sha2'
7
+ require 'singleton'
3
8
  require 'stringio'
4
9
  require 'parslet'
5
- require 'facets/module/basename'
10
+ require 'regexp_parser'
6
11
 
7
12
  require_relative 'rupkl/version'
8
13
  require_relative 'rupkl/exception'
9
14
  require_relative 'rupkl/pkl_object'
15
+ require_relative 'rupkl/node/context'
16
+ require_relative 'rupkl/node/node_common'
10
17
  require_relative 'rupkl/node/value_common'
18
+ require_relative 'rupkl/node/type_common'
19
+ require_relative 'rupkl/node/member_finder'
11
20
  require_relative 'rupkl/node/struct_common'
12
- require_relative 'rupkl/node/boolean'
13
- require_relative 'rupkl/node/number'
14
- require_relative 'rupkl/node/string'
21
+ require_relative 'rupkl/node/reference_resolver'
15
22
  require_relative 'rupkl/node/identifier'
23
+ require_relative 'rupkl/node/declared_type'
16
24
  require_relative 'rupkl/node/member_reference'
25
+ require_relative 'rupkl/node/method_definition'
26
+ require_relative 'rupkl/node/method_call'
27
+ require_relative 'rupkl/node/amend_expression'
28
+ require_relative 'rupkl/node/if_expression'
17
29
  require_relative 'rupkl/node/operation'
18
- require_relative 'rupkl/node/object'
30
+ require_relative 'rupkl/node/this'
31
+ require_relative 'rupkl/node/any'
32
+ require_relative 'rupkl/node/null'
33
+ require_relative 'rupkl/node/boolean'
34
+ require_relative 'rupkl/node/number'
35
+ require_relative 'rupkl/node/string'
36
+ require_relative 'rupkl/node/regex'
37
+ require_relative 'rupkl/node/data_size'
38
+ require_relative 'rupkl/node/duration'
39
+ require_relative 'rupkl/node/pair'
40
+ require_relative 'rupkl/node/collection'
41
+ require_relative 'rupkl/node/map'
42
+ require_relative 'rupkl/node/intseq'
19
43
  require_relative 'rupkl/node/dynamic'
20
- require_relative 'rupkl/node/pkl_class'
44
+ require_relative 'rupkl/node/mapping'
45
+ require_relative 'rupkl/node/listing'
46
+ require_relative 'rupkl/node/object'
21
47
  require_relative 'rupkl/node/pkl_module'
48
+ require_relative 'rupkl/node/base'
22
49
  require_relative 'rupkl/parser'
23
50
  require_relative 'rupkl/parser/misc'
24
51
  require_relative 'rupkl/parser/literal'
25
52
  require_relative 'rupkl/parser/identifier'
53
+ require_relative 'rupkl/parser/type'
26
54
  require_relative 'rupkl/parser/expression'
55
+ require_relative 'rupkl/parser/method'
27
56
  require_relative 'rupkl/parser/object'
28
57
  require_relative 'rupkl/parser/pkl_class'
29
58
  require_relative 'rupkl/parser/pkl_module'