oppen 0.9.2 → 0.9.4
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/lib/oppen/print_stack.rb +3 -1
- data/lib/oppen/version.rb +1 -1
- data/lib/wadler/print.rb +71 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a2178222eed2a9789223d62624ee4d5b468ec35dbd65c602bfdea24e5e08c77
|
4
|
+
data.tar.gz: 3ef37f2ad458bac064f77e7a37959fac18f33fc2d31dfc9ddbf4a4b88f527270
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a83e465f4279d02b9689d58f4023c61287b5f2ba03a0f209fcfdedc55e8451e05802fa61e01c0f1c898afb3e5577b0321fd60002a1c08924130991e9769a490
|
7
|
+
data.tar.gz: 11d507ea9e4f5e6b5c0fe258c478b47243fd04c1a348bd935ce4404cd56d005776f161f11d52d93326ca1ecf5739bbbed2f360d397c37a5e497ec1b1ed103bcd
|
data/lib/oppen/print_stack.rb
CHANGED
@@ -246,7 +246,9 @@ module Oppen
|
|
246
246
|
#
|
247
247
|
# @return [Nil]
|
248
248
|
def indent(amount)
|
249
|
-
|
249
|
+
raise ArgumentError 'Indenting using negative amount' if amount.negative?
|
250
|
+
|
251
|
+
write genspace.call(amount) if amount.positive?
|
250
252
|
end
|
251
253
|
end
|
252
254
|
end
|
data/lib/oppen/version.rb
CHANGED
data/lib/wadler/print.rb
CHANGED
@@ -35,6 +35,10 @@ module Oppen
|
|
35
35
|
|
36
36
|
# @return [String]
|
37
37
|
def output
|
38
|
+
if !tokens.first.is_a? Token::Begin
|
39
|
+
tokens.unshift Oppen.begin_consistent(offset: 0)
|
40
|
+
tokens << Oppen.end
|
41
|
+
end
|
38
42
|
if !tokens.last.is_a? Oppen::Token::EOF
|
39
43
|
tokens << Oppen.eof
|
40
44
|
end
|
@@ -128,5 +132,72 @@ module Oppen
|
|
128
132
|
def break(line_continuation: '')
|
129
133
|
tokens << Oppen.line_break(line_continuation:, offset: current_indent)
|
130
134
|
end
|
135
|
+
|
136
|
+
# @!group Helpers
|
137
|
+
|
138
|
+
# Set a base indenetaion level to the printer.
|
139
|
+
#
|
140
|
+
# @param indent [Integer]
|
141
|
+
#
|
142
|
+
# @return [Nil]
|
143
|
+
def base_indent(indent = 0)
|
144
|
+
@current_indent = indent if !indent.nil?
|
145
|
+
end
|
146
|
+
|
147
|
+
# Open a consistent group.
|
148
|
+
#
|
149
|
+
# @param indent [Integer]
|
150
|
+
#
|
151
|
+
# @return [Nil]
|
152
|
+
def group_open(indent: 0)
|
153
|
+
tokens << Oppen.begin_consistent(offset: indent)
|
154
|
+
end
|
155
|
+
|
156
|
+
# Close a group.
|
157
|
+
#
|
158
|
+
# @return [Nil]
|
159
|
+
def group_close(_)
|
160
|
+
tokens << Oppen.end
|
161
|
+
end
|
162
|
+
|
163
|
+
# Open a consistent group with indent.
|
164
|
+
#
|
165
|
+
# @param indent [Integer]
|
166
|
+
#
|
167
|
+
# @return [Nil]
|
168
|
+
def indent_open(indent)
|
169
|
+
@current_indent += indent
|
170
|
+
group_open
|
171
|
+
end
|
172
|
+
|
173
|
+
# Close a group with indent.
|
174
|
+
#
|
175
|
+
# @param indent [Integer]
|
176
|
+
#
|
177
|
+
# @return [Nil]
|
178
|
+
def indent_close(group, indent)
|
179
|
+
@current_indent -= indent
|
180
|
+
group_close(group)
|
181
|
+
end
|
182
|
+
|
183
|
+
# Open a nest by indent.
|
184
|
+
#
|
185
|
+
# @param indent [Integer]
|
186
|
+
#
|
187
|
+
# @return [Nil]
|
188
|
+
def nest_open(indent)
|
189
|
+
@current_indent += indent
|
190
|
+
end
|
191
|
+
|
192
|
+
# Close a nest by indent.
|
193
|
+
#
|
194
|
+
# @param indent [Integer]
|
195
|
+
#
|
196
|
+
# @return [Nil]
|
197
|
+
def nest_close(indent)
|
198
|
+
@current_indent -= indent
|
199
|
+
end
|
200
|
+
|
201
|
+
# @!endgroup
|
131
202
|
end
|
132
203
|
end
|