Skip to content

Commit 879b473

Browse files
Merge pull request #91 from lorenzwalthert/speedup
wrap parse + transform + serialize in new function
2 parents 0a9f468 + 8919160 commit 879b473

File tree

3 files changed

+59
-29
lines changed

3 files changed

+59
-29
lines changed

R/serialized_tests.R

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,13 @@ style_indent_round <- function(text) {
137137
transformers <- list(
138138
filler = create_filler,
139139
line_break = NULL,
140-
space = partial(indent_round, indent_by = 2),
140+
space = partial(indent_round, indent_by = 2),
141141
token = NULL,
142142
eol = strip_eol_spaces,
143143
NULL
144144
)
145-
146-
text %>%
147-
compute_parse_data_nested() %>%
148-
apply_transformers(transformers) %>%
149-
serialize_parse_data_nested()
145+
transformed_text <- parse_transform_serialize(text, transformers)
146+
transformed_text
150147
}
151148

152149

@@ -155,10 +152,16 @@ style_indent_round <- function(text) {
155152
#' transformations but remove EOL spaces and indention due to the way the
156153
#' serialization is set up.
157154
style_empty <- function(text) {
158-
text %>%
159-
compute_parse_data_nested() %>%
160-
pre_visit(funs = c(create_filler, strip_eol_spaces)) %>%
161-
serialize_parse_data_nested()
155+
transformers <- list(
156+
filler = create_filler,
157+
line_break = NULL,
158+
space = NULL,
159+
token = NULL,
160+
eol = strip_eol_spaces,
161+
NULL
162+
)
163+
transformed_text <- parse_transform_serialize(text, transformers)
164+
transformed_text
162165
}
163166

164167
#' @describeIn test_transformer Transformations for indention based on curly
@@ -173,11 +176,8 @@ style_indent_curly <- function(text) {
173176
eol = strip_eol_spaces,
174177
NULL
175178
)
176-
177-
text %>%
178-
compute_parse_data_nested() %>%
179-
apply_transformers(transformers) %>%
180-
serialize_parse_data_nested()
179+
transformed_text <- parse_transform_serialize(text, transformers)
180+
transformed_text
181181
}
182182

183183

@@ -187,7 +187,7 @@ style_indent_curly_round <- function(text) {
187187
transformers <- list(
188188
filler = create_filler,
189189
line_break = NULL,
190-
space = c(partial(indent_curly, indent_by = 2),
190+
space = c(partial(indent_curly, indent_by = 2),
191191
partial(indent_round, indent_by = 2)),
192192
token = NULL,
193193
eol = strip_eol_spaces,
@@ -203,11 +203,17 @@ style_indent_curly_round <- function(text) {
203203

204204
#' @describeIn test_transformer Transformations for indention based on operators
205205
style_op <- function(text) {
206-
text %>%
207-
compute_parse_data_nested() %>%
208-
pre_visit(funs = c(create_filler,
209-
partial(indent_op, indent_by = 2),
210-
strip_eol_spaces)) %>%
211206

212-
serialize_parse_data_nested()
207+
transformers <- list(
208+
filler = create_filler,
209+
line_break = NULL,
210+
space = partial(indent_op, indent_by = 2),
211+
token = NULL,
212+
eol = strip_eol_spaces,
213+
NULL
214+
)
215+
216+
transformed_text <- parse_transform_serialize(text, transformers)
217+
transformed_text
218+
213219
}

R/transform.R

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,27 @@ make_transformer_flat <- function(transformers) {
6969
#' @family make transformers
7070
make_transformer_nested <- function(transformers) {
7171
function(text) {
72-
text <- gsub(" +$", "", text)
73-
text <- gsub("\t", " ", text)
7472
if (is.null(transformers$space)) return(text)
73+
transformed_text <- parse_transform_serialize(text, transformers)
74+
transformed_text
7575

76-
pd_nested <- compute_parse_data_nested(text)
77-
transformed_pd <- apply_transformers(pd_nested, transformers)
78-
# TODO verify_roundtrip
79-
new_text <- serialize_parse_data_nested(transformed_pd)
80-
new_text
8176
}
8277
}
8378

8479

80+
#' Parse, transform and serialize text
81+
#'
82+
#' Wrapper function for the common three operations.
83+
#' @inheritParams compute_parse_data_nested
84+
#' @inheritParams apply_transformers
85+
parse_transform_serialize <- function(text, transformers) {
86+
pd_nested <- compute_parse_data_nested(text)
87+
transformed_pd <- apply_transformers(pd_nested, transformers)
88+
# TODO verify_roundtrip
89+
serialized_transformed_text <- serialize_parse_data_nested(transformed_pd)
90+
serialized_transformed_text
91+
}
92+
8593

8694
#' Apply transformers to a parse table
8795
#'

man/parse_transform_serialize.Rd

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)