From 23972b3039cb3d3e3ced5d985dd44da0231ebfed Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Fri, 7 Apr 2023 21:39:28 +0000 Subject: [PATCH 001/238] script for generating roxygen-examples-complete --- .dev/gen_roxygen_tests.R | 17 ++ .../test-roxygen-examples-complete-01.R | 5 + .../test-roxygen-examples-complete-02.R | 5 + .../test-roxygen-examples-complete-03.R | 5 + .../test-roxygen-examples-complete-04.R | 5 + .../test-roxygen-examples-complete-05.R | 5 + .../test-roxygen-examples-complete-06.R | 5 + .../test-roxygen-examples-complete-07.R | 5 + .../test-roxygen-examples-complete-08.R | 5 + .../test-roxygen-examples-complete-09.R | 5 + .../test-roxygen-examples-complete-10.R | 5 + .../test-roxygen-examples-complete-11.R | 5 + .../test-roxygen-examples-complete-12.R | 5 + .../test-roxygen-examples-complete-13.R | 5 + .../test-roxygen-examples-complete-14.R | 5 + .../test-roxygen-examples-complete-15.R | 5 + .../test-roxygen-examples-complete-16.R | 5 + .../test-roxygen-examples-complete-17.R | 5 + .../test-roxygen-examples-complete-18.R | 5 + .../test-roxygen-examples-complete-19.R | 5 + .../test-roxygen-examples-complete-20.R | 5 + .../test-roxygen-examples-complete-21.R | 5 + .../test-roxygen-examples-complete-22.R | 5 + .../test-roxygen-examples-complete-23.R | 5 + .../test-roxygen-examples-complete-24.R | 5 + .../test-roxygen-examples-complete-25.R | 5 + .../test-roxygen-examples-complete-26.R | 5 + .../test-roxygen-examples-complete-27.R | 5 + .../test-roxygen-examples-complete-28.R | 5 + .../test-roxygen-examples-complete-29.R | 5 + .../testthat/test-roxygen-examples-complete.R | 152 ------------------ 31 files changed, 162 insertions(+), 152 deletions(-) create mode 100755 .dev/gen_roxygen_tests.R create mode 100644 tests/testthat/test-roxygen-examples-complete-01.R create mode 100644 tests/testthat/test-roxygen-examples-complete-02.R create mode 100644 tests/testthat/test-roxygen-examples-complete-03.R create mode 100644 tests/testthat/test-roxygen-examples-complete-04.R create mode 100644 tests/testthat/test-roxygen-examples-complete-05.R create mode 100644 tests/testthat/test-roxygen-examples-complete-06.R create mode 100644 tests/testthat/test-roxygen-examples-complete-07.R create mode 100644 tests/testthat/test-roxygen-examples-complete-08.R create mode 100644 tests/testthat/test-roxygen-examples-complete-09.R create mode 100644 tests/testthat/test-roxygen-examples-complete-10.R create mode 100644 tests/testthat/test-roxygen-examples-complete-11.R create mode 100644 tests/testthat/test-roxygen-examples-complete-12.R create mode 100644 tests/testthat/test-roxygen-examples-complete-13.R create mode 100644 tests/testthat/test-roxygen-examples-complete-14.R create mode 100644 tests/testthat/test-roxygen-examples-complete-15.R create mode 100644 tests/testthat/test-roxygen-examples-complete-16.R create mode 100644 tests/testthat/test-roxygen-examples-complete-17.R create mode 100644 tests/testthat/test-roxygen-examples-complete-18.R create mode 100644 tests/testthat/test-roxygen-examples-complete-19.R create mode 100644 tests/testthat/test-roxygen-examples-complete-20.R create mode 100644 tests/testthat/test-roxygen-examples-complete-21.R create mode 100644 tests/testthat/test-roxygen-examples-complete-22.R create mode 100644 tests/testthat/test-roxygen-examples-complete-23.R create mode 100644 tests/testthat/test-roxygen-examples-complete-24.R create mode 100644 tests/testthat/test-roxygen-examples-complete-25.R create mode 100644 tests/testthat/test-roxygen-examples-complete-26.R create mode 100644 tests/testthat/test-roxygen-examples-complete-27.R create mode 100644 tests/testthat/test-roxygen-examples-complete-28.R create mode 100644 tests/testthat/test-roxygen-examples-complete-29.R delete mode 100644 tests/testthat/test-roxygen-examples-complete.R diff --git a/.dev/gen_roxygen_tests.R b/.dev/gen_roxygen_tests.R new file mode 100755 index 000000000..71866d057 --- /dev/null +++ b/.dev/gen_roxygen_tests.R @@ -0,0 +1,17 @@ +#!/usr/bin/Rscript +# execute from package TLD: ./.dev/gen_roxygen_tests.R +all_examples <- list.files("tests/testthat/roxygen-examples-complete", full.names = TRUE) +unique_tests <- unique(sub("-.*", "", basename(all_examples))) + +for (test in unique_tests) { + out_file <- file.path("tests", "testthat", paste0("test-roxygen-examples-complete-", test, ".R")) + extras <- if (test == "15") ', scope = "spaces"' else "" + writeLines(con = out_file, c( + "# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R.", + "", + sprintf('test_that("analogous to test-roxygen-examples-complete: %s", {', test), + sprintf(' expect_warning(test_collection("roxygen-examples-complete", "^%s-", transformer = style_text%s), NA)', test, extras), + "})", + NULL + )) +} diff --git a/tests/testthat/test-roxygen-examples-complete-01.R b/tests/testthat/test-roxygen-examples-complete-01.R new file mode 100644 index 000000000..478217bbd --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-01.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 01", { + expect_warning(test_collection("roxygen-examples-complete", "^01-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-02.R b/tests/testthat/test-roxygen-examples-complete-02.R new file mode 100644 index 000000000..19bc51362 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-02.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 02", { + expect_warning(test_collection("roxygen-examples-complete", "^02-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-03.R b/tests/testthat/test-roxygen-examples-complete-03.R new file mode 100644 index 000000000..8a2d15512 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-03.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 03", { + expect_warning(test_collection("roxygen-examples-complete", "^03-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-04.R b/tests/testthat/test-roxygen-examples-complete-04.R new file mode 100644 index 000000000..87612f3e9 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-04.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 04", { + expect_warning(test_collection("roxygen-examples-complete", "^04-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-05.R b/tests/testthat/test-roxygen-examples-complete-05.R new file mode 100644 index 000000000..c93864dde --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-05.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 05", { + expect_warning(test_collection("roxygen-examples-complete", "^05-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-06.R b/tests/testthat/test-roxygen-examples-complete-06.R new file mode 100644 index 000000000..e2e069183 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-06.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 06", { + expect_warning(test_collection("roxygen-examples-complete", "^06-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-07.R b/tests/testthat/test-roxygen-examples-complete-07.R new file mode 100644 index 000000000..7b3ac96ab --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-07.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 07", { + expect_warning(test_collection("roxygen-examples-complete", "^07-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-08.R b/tests/testthat/test-roxygen-examples-complete-08.R new file mode 100644 index 000000000..c1225c62b --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-08.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 08", { + expect_warning(test_collection("roxygen-examples-complete", "^08-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-09.R b/tests/testthat/test-roxygen-examples-complete-09.R new file mode 100644 index 000000000..fe3d7b7ae --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-09.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 09", { + expect_warning(test_collection("roxygen-examples-complete", "^09-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-10.R b/tests/testthat/test-roxygen-examples-complete-10.R new file mode 100644 index 000000000..98e23a915 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-10.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 10", { + expect_warning(test_collection("roxygen-examples-complete", "^10-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-11.R b/tests/testthat/test-roxygen-examples-complete-11.R new file mode 100644 index 000000000..9bcd7a142 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-11.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 11", { + expect_warning(test_collection("roxygen-examples-complete", "^11-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-12.R b/tests/testthat/test-roxygen-examples-complete-12.R new file mode 100644 index 000000000..baddb8143 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-12.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 12", { + expect_warning(test_collection("roxygen-examples-complete", "^12-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-13.R b/tests/testthat/test-roxygen-examples-complete-13.R new file mode 100644 index 000000000..c2a711fb6 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-13.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 13", { + expect_warning(test_collection("roxygen-examples-complete", "^13-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-14.R b/tests/testthat/test-roxygen-examples-complete-14.R new file mode 100644 index 000000000..9d9447335 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-14.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 14", { + expect_warning(test_collection("roxygen-examples-complete", "^14-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-15.R b/tests/testthat/test-roxygen-examples-complete-15.R new file mode 100644 index 000000000..2c309d95a --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-15.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 15", { + expect_warning(test_collection("roxygen-examples-complete", "^15-", transformer = style_text, scope = "spaces"), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-16.R b/tests/testthat/test-roxygen-examples-complete-16.R new file mode 100644 index 000000000..f15429d75 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-16.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 16", { + expect_warning(test_collection("roxygen-examples-complete", "^16-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-17.R b/tests/testthat/test-roxygen-examples-complete-17.R new file mode 100644 index 000000000..66cbf9b1a --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-17.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 17", { + expect_warning(test_collection("roxygen-examples-complete", "^17-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-18.R b/tests/testthat/test-roxygen-examples-complete-18.R new file mode 100644 index 000000000..814d057b0 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-18.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 18", { + expect_warning(test_collection("roxygen-examples-complete", "^18-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-19.R b/tests/testthat/test-roxygen-examples-complete-19.R new file mode 100644 index 000000000..93d205826 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-19.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 19", { + expect_warning(test_collection("roxygen-examples-complete", "^19-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-20.R b/tests/testthat/test-roxygen-examples-complete-20.R new file mode 100644 index 000000000..79ac89408 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-20.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 20", { + expect_warning(test_collection("roxygen-examples-complete", "^20-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-21.R b/tests/testthat/test-roxygen-examples-complete-21.R new file mode 100644 index 000000000..6e6fa4948 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-21.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 21", { + expect_warning(test_collection("roxygen-examples-complete", "^21-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-22.R b/tests/testthat/test-roxygen-examples-complete-22.R new file mode 100644 index 000000000..0e2c4334e --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-22.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 22", { + expect_warning(test_collection("roxygen-examples-complete", "^22-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-23.R b/tests/testthat/test-roxygen-examples-complete-23.R new file mode 100644 index 000000000..dcc7bc42f --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-23.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 23", { + expect_warning(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-24.R b/tests/testthat/test-roxygen-examples-complete-24.R new file mode 100644 index 000000000..7ceb13a83 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-24.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 24", { + expect_warning(test_collection("roxygen-examples-complete", "^24-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-25.R b/tests/testthat/test-roxygen-examples-complete-25.R new file mode 100644 index 000000000..f36b00424 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-25.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 25", { + expect_warning(test_collection("roxygen-examples-complete", "^25-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-26.R b/tests/testthat/test-roxygen-examples-complete-26.R new file mode 100644 index 000000000..ee55bcd21 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-26.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 26", { + expect_warning(test_collection("roxygen-examples-complete", "^26-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-27.R b/tests/testthat/test-roxygen-examples-complete-27.R new file mode 100644 index 000000000..8dfa9e0b2 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-27.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 27", { + expect_warning(test_collection("roxygen-examples-complete", "^27-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-28.R b/tests/testthat/test-roxygen-examples-complete-28.R new file mode 100644 index 000000000..d12fb6696 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-28.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 28", { + expect_warning(test_collection("roxygen-examples-complete", "^28-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete-29.R b/tests/testthat/test-roxygen-examples-complete-29.R new file mode 100644 index 000000000..bf30fe968 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-29.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 29", { + expect_warning(test_collection("roxygen-examples-complete", "^29-", transformer = style_text), NA) +}) diff --git a/tests/testthat/test-roxygen-examples-complete.R b/tests/testthat/test-roxygen-examples-complete.R deleted file mode 100644 index 0d78cc4f0..000000000 --- a/tests/testthat/test-roxygen-examples-complete.R +++ /dev/null @@ -1,152 +0,0 @@ -test_that("analogous to test-roxygen-examples-complete", { - expect_warning(test_collection( - "roxygen-examples-complete", "^01", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^11", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^12-fun", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^12-dont", - transformer = style_text - ), NA) - - - expect_warning(test_collection( - "roxygen-examples-complete", "^13", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^14", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^02", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^03", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^04", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^05", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^06", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^07", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^08", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^09", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^10", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^15", - transformer = style_text, scope = "spaces" - ), NA) - - # Don't warn about empty strings in roxygen comments - expect_warning(test_collection( - "roxygen-examples-complete", "^16", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^17", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^18", - transformer = style_text - ), NA) - expect_warning(test_collection( - "roxygen-examples-complete", "^19", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^20", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^21", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^22", - transformer = style_text - ), NA) - - expect_error(test_collection( - "roxygen-examples-complete", "^23", - transformer = style_text - ), "issues/1242") - - expect_warning(test_collection( - "roxygen-examples-complete", "^24", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^25", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^26", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^27", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^28", - transformer = style_text - ), NA) - - expect_warning(test_collection( - "roxygen-examples-complete", "^29", - transformer = style_text - ), NA) -}) From ecfed101c32c15e5cfcca77c6479c94b40e47a94 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 21 May 2023 19:23:02 -0700 Subject: [PATCH 002/238] use feedback --- .dev/gen_roxygen_tests.R | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.dev/gen_roxygen_tests.R b/.dev/gen_roxygen_tests.R index 71866d057..88e2f6eb9 100755 --- a/.dev/gen_roxygen_tests.R +++ b/.dev/gen_roxygen_tests.R @@ -1,16 +1,23 @@ #!/usr/bin/Rscript # execute from package TLD: ./.dev/gen_roxygen_tests.R -all_examples <- list.files("tests/testthat/roxygen-examples-complete", full.names = TRUE) -unique_tests <- unique(sub("-.*", "", basename(all_examples))) +roxygen_stub <- "roxygen-examples-complete" +all_examples <- list.files(file.path("tests", "testthat", roxygen_stub)) +unique_tests <- unique(sub("-.*", "", all_examples)) + +# tests using 'scope = "spaces"' in test_collection() +tests_scope_spaces <- "15" for (test in unique_tests) { - out_file <- file.path("tests", "testthat", paste0("test-roxygen-examples-complete-", test, ".R")) - extras <- if (test == "15") ', scope = "spaces"' else "" + out_file <- file.path("tests", "testthat", paste0("test-", roxygen_stub, "-", test, ".R")) + extras <- if (test %in% tests_scope_spaces) ', scope = "spaces"' else "" writeLines(con = out_file, c( "# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R.", "", - sprintf('test_that("analogous to test-roxygen-examples-complete: %s", {', test), - sprintf(' expect_warning(test_collection("roxygen-examples-complete", "^%s-", transformer = style_text%s), NA)', test, extras), + sprintf('test_that("analogous to test-%s: %s", {', roxygen_stub, test), + sprintf( + ' expect_warning(test_collection("%s", "^%s-", transformer = style_text%s), NA)', + roxygen_stub, test, extras + ), "})", NULL )) From 037dc472a870bfbbbbb5820c015634c54f65d014 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 21 May 2023 19:42:27 -0700 Subject: [PATCH 003/238] missed warning test in 23 --- .dev/gen_roxygen_tests.R | 6 ++++-- tests/testthat/test-roxygen-examples-complete-23.R | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.dev/gen_roxygen_tests.R b/.dev/gen_roxygen_tests.R index 88e2f6eb9..9acb681af 100755 --- a/.dev/gen_roxygen_tests.R +++ b/.dev/gen_roxygen_tests.R @@ -7,6 +7,8 @@ unique_tests <- unique(sub("-.*", "", all_examples)) # tests using 'scope = "spaces"' in test_collection() tests_scope_spaces <- "15" +warning_map <- c(`23` = '"issues/1242"') + for (test in unique_tests) { out_file <- file.path("tests", "testthat", paste0("test-", roxygen_stub, "-", test, ".R")) extras <- if (test %in% tests_scope_spaces) ', scope = "spaces"' else "" @@ -15,8 +17,8 @@ for (test in unique_tests) { "", sprintf('test_that("analogous to test-%s: %s", {', roxygen_stub, test), sprintf( - ' expect_warning(test_collection("%s", "^%s-", transformer = style_text%s), NA)', - roxygen_stub, test, extras + ' expect_warning(test_collection("%s", "^%s-", transformer = style_text%s), %s)', + roxygen_stub, test, extras, warning_map[test] ), "})", NULL diff --git a/tests/testthat/test-roxygen-examples-complete-23.R b/tests/testthat/test-roxygen-examples-complete-23.R index dcc7bc42f..ce931abe3 100644 --- a/tests/testthat/test-roxygen-examples-complete-23.R +++ b/tests/testthat/test-roxygen-examples-complete-23.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 23", { - expect_warning(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), NA) + expect_warning(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), "issues/1242") }) From 0f58421a442ed38f893a018842e5c7605f906cf2 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 21 May 2023 22:17:54 -0700 Subject: [PATCH 004/238] error not warning --- .dev/gen_roxygen_tests.R | 8 +++++--- tests/testthat/test-roxygen-examples-complete-23.R | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.dev/gen_roxygen_tests.R b/.dev/gen_roxygen_tests.R index 9acb681af..01ce7e436 100755 --- a/.dev/gen_roxygen_tests.R +++ b/.dev/gen_roxygen_tests.R @@ -7,18 +7,20 @@ unique_tests <- unique(sub("-.*", "", all_examples)) # tests using 'scope = "spaces"' in test_collection() tests_scope_spaces <- "15" -warning_map <- c(`23` = '"issues/1242"') +condition_map <- list(`23` = c("error", '"issues/1242"')) for (test in unique_tests) { out_file <- file.path("tests", "testthat", paste0("test-", roxygen_stub, "-", test, ".R")) extras <- if (test %in% tests_scope_spaces) ', scope = "spaces"' else "" + condition <- condition_map[[test]] + if (is.null(condition)) condition <- c("warning", "NA") writeLines(con = out_file, c( "# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R.", "", sprintf('test_that("analogous to test-%s: %s", {', roxygen_stub, test), sprintf( - ' expect_warning(test_collection("%s", "^%s-", transformer = style_text%s), %s)', - roxygen_stub, test, extras, warning_map[test] + ' expect_%s(test_collection("%s", "^%s-", transformer = style_text%s), %s)', + condition[1L], roxygen_stub, test, extras, condition[2L] ), "})", NULL diff --git a/tests/testthat/test-roxygen-examples-complete-23.R b/tests/testthat/test-roxygen-examples-complete-23.R index ce931abe3..ce1b5833a 100644 --- a/tests/testthat/test-roxygen-examples-complete-23.R +++ b/tests/testthat/test-roxygen-examples-complete-23.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 23", { - expect_warning(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), "issues/1242") + expect_error(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), "issues/1242") }) From 8337f15f351126352bfe8806f8ee6ac8669a0959 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 21 May 2023 22:27:25 -0700 Subject: [PATCH 005/238] missing .Rbuildignore entry --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 8f4e9970b..cbf4dd311 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -7,6 +7,7 @@ ^README-.*\.png$ ^README\.Rmd$ ^\.Rproj\.user$ +^\.dev$ ^\.github$ ^\.gitsum$ ^\.lintr$ From 01f426117dbb867f0204738f4443ca436b3a3a89 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sat, 10 Jun 2023 16:00:17 -0700 Subject: [PATCH 006/238] avoid warning when missing R cache dir --- R/zzz.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/zzz.R b/R/zzz.R index 77b90ee17..9bdc76c48 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -36,7 +36,7 @@ delete_if_cache_directory <- function(path) { if (getRversion() < package_version("4.0.0")) { return(FALSE) } - designated_cache_path <- normalizePath(tools::R_user_dir("R.cache", which = "cache")) + designated_cache_path <- normalizePath(tools::R_user_dir("R.cache", which = "cache"), mustWork = FALSE) is_in_tools_cache <- startsWith(path, designated_cache_path) temp_dir <- normalizePath(dirname(tempdir())) is_in_generic_cache <- startsWith(path, temp_dir) From b0e895b8c25c60a759b1385f3a8c2cc8e02648dd Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 12 Jun 2023 07:56:29 +0200 Subject: [PATCH 007/238] use latest package versions --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a45eaf64f..d3722e4fb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,8 +34,8 @@ repos: - id: roxygenize additional_dependencies: - r-lib/pkgapi - - dplyr@1.0.9 - - roxygen2@7.2.2 + - dplyr@1.1.2 + - roxygen2@7.2.3 - id: use-tidy-description - id: spell-check exclude: > From 69f5ab008d6b3bac16a00e84bf28aadd5ae5db59 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 12 Jun 2023 08:09:24 +0200 Subject: [PATCH 008/238] latest rlang --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d3722e4fb..7c0a31b31 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -36,6 +36,7 @@ repos: - r-lib/pkgapi - dplyr@1.1.2 - roxygen2@7.2.3 + - rlang@1.1.0 - id: use-tidy-description - id: spell-check exclude: > From bac9a1dde8bbe579ff25895c583f59ba32e9a688 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 11 Jun 2023 17:20:46 +0200 Subject: [PATCH 009/238] don't require dplyr anywhere --- DESCRIPTION | 1 - R/compat-dplyr.R | 9 +++++++++ tests/testthat/test-cache-low-level-api.R | 16 ++++++++-------- vignettes/customizing_styler.Rmd | 10 +++++----- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 434ff833e..27ae3bd79 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -37,7 +37,6 @@ Imports: Suggests: data.tree (>= 0.1.6), digest, - dplyr, here, knitr, prettycode, diff --git a/R/compat-dplyr.R b/R/compat-dplyr.R index 340810003..bbeb3c919 100644 --- a/R/compat-dplyr.R +++ b/R/compat-dplyr.R @@ -57,3 +57,12 @@ map_dfr <- function(.x, .f, ...) { res <- map(.x, .f, ...) vec_rbind(!!!res) } + +mutate <- function(.data, ...) { + collected <- list(...) + for (idx in seq_along(collected)) { + .data[names(collected)[idx]] <- unname(collected[[idx]]) + } + + .data +} diff --git a/tests/testthat/test-cache-low-level-api.R b/tests/testthat/test-cache-low-level-api.R index 0c9ed6acd..b5f29b342 100644 --- a/tests/testthat/test-cache-low-level-api.R +++ b/tests/testthat/test-cache-low-level-api.R @@ -1,16 +1,16 @@ test_that("caching utils make right blocks with semi-colon", { blocks_simple_uncached <- compute_parse_data_nested(c("1 + 1", "2; 1+1")) %>% - dplyr::mutate(is_cached = FALSE) %>% + mutate(is_cached = FALSE) %>% cache_find_block() expect_equal(blocks_simple_uncached, c(1, 1, 1, 1)) blocks_simple_cached <- compute_parse_data_nested(c("1 + 1", "2; 1+1")) %>% - dplyr::mutate(is_cached = TRUE) %>% + mutate(is_cached = TRUE) %>% cache_find_block() expect_equal(blocks_simple_cached, c(1, 1, 1, 1)) blocks_edge <- compute_parse_data_nested(c("1 + 1", "2; 1+1")) %>% - dplyr::mutate(is_cached = c(TRUE, TRUE, FALSE, FALSE)) %>% + mutate(is_cached = c(TRUE, TRUE, FALSE, FALSE)) %>% cache_find_block() expect_equal(blocks_edge, c(1, 2, 2, 2)) }) @@ -30,7 +30,7 @@ test_that("caching utils make right blocks with comments", { blocks_simple_uncached <- compute_parse_data_nested(text) %>% - dplyr::mutate(is_cached = c( + mutate(is_cached = c( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE )) %>% @@ -48,7 +48,7 @@ test_that("caching utils make right blocks with comments", { tau1 = 1 # here? " blocks_simple_cached <- compute_parse_data_nested(text) %>% - dplyr::mutate(is_cached = c( + mutate(is_cached = c( FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE )) %>% cache_find_block() @@ -101,17 +101,17 @@ test_that("blank lines are correctly identified", { test_that("caching utils make right blocks with comments", { blocks_simple_uncached <- compute_parse_data_nested(c("1 + 1", "2 # comment")) %>% - dplyr::mutate(is_cached = FALSE) %>% + mutate(is_cached = FALSE) %>% cache_find_block() expect_equal(blocks_simple_uncached, c(1, 1, 1)) blocks_simple_cached <- compute_parse_data_nested(c("1 + 1", "2 # comment2")) %>% - dplyr::mutate(is_cached = TRUE) %>% + mutate(is_cached = TRUE) %>% cache_find_block() expect_equal(blocks_simple_cached, c(1, 1, 1)) blocks_edge <- compute_parse_data_nested(c("1 + 1", "2 # 1+1")) %>% - dplyr::mutate(is_cached = c(TRUE, TRUE, FALSE)) %>% + mutate(is_cached = c(TRUE, TRUE, FALSE)) %>% cache_find_block() expect_equal(blocks_edge, c(1, 2, 2)) }) diff --git a/vignettes/customizing_styler.Rmd b/vignettes/customizing_styler.Rmd index e566daabd..7742b9e18 100644 --- a/vignettes/customizing_styler.Rmd +++ b/vignettes/customizing_styler.Rmd @@ -32,8 +32,8 @@ The `transformers` argument is, apart from the code to style, the key argument o ```{r, message = FALSE} library("styler") +library("magrittr") cache_deactivate() -library("dplyr") names(tidyverse_style()) str(tidyverse_style(), give.attr = FALSE, list.len = 3) ``` @@ -50,8 +50,9 @@ As the name says, this function removes spaces after the opening parenthesis. Bu string_to_format <- "call( 3)" pd <- styler:::compute_parse_data_nested(string_to_format) %>% styler:::pre_visit_one(default_style_guide_attributes) -pd$child[[1]] %>% - select(token, terminal, text, newlines, spaces) + +cols <- c('token', 'terminal', 'text', 'newlines', 'spaces') +pd$child[[1]][, cols] ``` `default_style_guide_attributes()` is called to initialize some variables, it does not actually transform the parse table. @@ -59,8 +60,7 @@ pd$child[[1]] %>% All the function `remove_space_after_opening_paren()` now does is to look for the opening bracket and set the column `spaces` of the token to zero. Note that it is very important to check whether there is also a line break following after that token. If so, `spaces` should not be touched because of the way `spaces` and `newlines` are defined. `spaces` are the number of spaces after a token and `newlines`. Hence, if a line break follows, spaces are not EOL spaces, but rather the spaces directly before the next token. If there was a line break after the token and the rule did not check for that, indention for the token following `(` would be removed. This would be unwanted for example if `use_raw_indention` is set to `TRUE` (which means indention should not be touched). If we apply the rule to our parse table, we can see that the column `spaces` changes and is now zero for all tokens: ```{r} -styler:::remove_space_after_opening_paren(pd$child[[1]]) %>% - select(token, terminal, text, newlines, spaces) +styler:::remove_space_after_opening_paren(pd$child[[1]])[, cols] ``` All top-level styling functions have a `style` argument (which defaults to `tidyverse_style`). If you check out the help file, you can see that the argument `style` is only used to create the default `transformers` argument, which defaults to `style(...)`. This allows for the styling options to be set without having to specify them inside the function passed to `transformers`. From eec8c06e82c81902e94e2d16a47b1e87035213da Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 12 Jun 2023 07:40:46 +0200 Subject: [PATCH 010/238] avoid mutate() since it has not exactly dplyr::mutate() schemantics (nse, !!, etc.) and it's not intended to be used in source code anyways --- R/compat-dplyr.R | 9 --------- tests/testthat/test-cache-low-level-api.R | 16 ++++++++-------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/R/compat-dplyr.R b/R/compat-dplyr.R index bbeb3c919..340810003 100644 --- a/R/compat-dplyr.R +++ b/R/compat-dplyr.R @@ -57,12 +57,3 @@ map_dfr <- function(.x, .f, ...) { res <- map(.x, .f, ...) vec_rbind(!!!res) } - -mutate <- function(.data, ...) { - collected <- list(...) - for (idx in seq_along(collected)) { - .data[names(collected)[idx]] <- unname(collected[[idx]]) - } - - .data -} diff --git a/tests/testthat/test-cache-low-level-api.R b/tests/testthat/test-cache-low-level-api.R index b5f29b342..f4b4694ea 100644 --- a/tests/testthat/test-cache-low-level-api.R +++ b/tests/testthat/test-cache-low-level-api.R @@ -1,16 +1,16 @@ test_that("caching utils make right blocks with semi-colon", { blocks_simple_uncached <- compute_parse_data_nested(c("1 + 1", "2; 1+1")) %>% - mutate(is_cached = FALSE) %>% + base::transform(is_cached = FALSE) %>% cache_find_block() expect_equal(blocks_simple_uncached, c(1, 1, 1, 1)) blocks_simple_cached <- compute_parse_data_nested(c("1 + 1", "2; 1+1")) %>% - mutate(is_cached = TRUE) %>% + base::transform(is_cached = TRUE) %>% cache_find_block() expect_equal(blocks_simple_cached, c(1, 1, 1, 1)) blocks_edge <- compute_parse_data_nested(c("1 + 1", "2; 1+1")) %>% - mutate(is_cached = c(TRUE, TRUE, FALSE, FALSE)) %>% + base::transform(is_cached = c(TRUE, TRUE, FALSE, FALSE)) %>% cache_find_block() expect_equal(blocks_edge, c(1, 2, 2, 2)) }) @@ -30,7 +30,7 @@ test_that("caching utils make right blocks with comments", { blocks_simple_uncached <- compute_parse_data_nested(text) %>% - mutate(is_cached = c( + base::transform(is_cached = c( FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, FALSE )) %>% @@ -48,7 +48,7 @@ test_that("caching utils make right blocks with comments", { tau1 = 1 # here? " blocks_simple_cached <- compute_parse_data_nested(text) %>% - mutate(is_cached = c( + base::transform(is_cached = c( FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE )) %>% cache_find_block() @@ -101,17 +101,17 @@ test_that("blank lines are correctly identified", { test_that("caching utils make right blocks with comments", { blocks_simple_uncached <- compute_parse_data_nested(c("1 + 1", "2 # comment")) %>% - mutate(is_cached = FALSE) %>% + base::transform(is_cached = FALSE) %>% cache_find_block() expect_equal(blocks_simple_uncached, c(1, 1, 1)) blocks_simple_cached <- compute_parse_data_nested(c("1 + 1", "2 # comment2")) %>% - mutate(is_cached = TRUE) %>% + base::transform(is_cached = TRUE) %>% cache_find_block() expect_equal(blocks_simple_cached, c(1, 1, 1)) blocks_edge <- compute_parse_data_nested(c("1 + 1", "2 # 1+1")) %>% - mutate(is_cached = c(TRUE, TRUE, FALSE)) %>% + base::transform(is_cached = c(TRUE, TRUE, FALSE)) %>% cache_find_block() expect_equal(blocks_edge, c(1, 2, 2)) }) From e24dc6812316ba0cb7506a4978ac0f27a163571f Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Wed, 28 Jun 2023 15:39:12 -0400 Subject: [PATCH 011/238] Exclude R/import-standalone.+R files from restyling. --- R/ui-styling.R | 12 ++++++++---- man/prettify_any.Rd | 4 ++-- man/prettify_pkg.Rd | 4 ++-- man/style_dir.Rd | 4 ++-- man/style_pkg.Rd | 4 ++-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/R/ui-styling.R b/R/ui-styling.R index bb4cc136c..a5a3bd3e8 100644 --- a/R/ui-styling.R +++ b/R/ui-styling.R @@ -69,7 +69,7 @@ style_pkg <- function(pkg = ".", style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), - exclude_files = c("R/RcppExports.R", "R/cpp11.R"), + exclude_files = c("R/RcppExports.R", "R/cpp11.R", "R/import-standalone.+R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, @@ -91,8 +91,8 @@ style_pkg <- function(pkg = ".", #' ".Rmd")`, or `c("r", "rmd")`. Supported values (after standardization) are: #' "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as #' Rmd. -#' @param exclude_files Character vector with paths to files that should be -#' excluded from styling. +#' @param exclude_files Character vector with paths or regular expressions to files +#' that should be excluded from styling. #' @param exclude_dirs Character vector with directories to exclude #' (recursively). Note that the default values were set for consistency with #' [style_dir()] and as these directories are anyways not styled. @@ -107,8 +107,10 @@ prettify_pkg <- function(transformers, dry) { filetype_ <- set_and_assert_arg_filetype(filetype) r_files <- rprofile_files <- vignette_files <- readme <- NULL + exclude_files <- set_arg_paths(exclude_files) + exclude_files_regex <- paste0(exclude_files[!file.exists(exclude_files)], collapse = "|") exclude_files <- c( - set_arg_paths(exclude_files), + exclude_files, dir_without_.(exclude_dirs, pattern = map_filetype_to_pattern(filetype)) ) if ("\\.r" %in% filetype_) { @@ -171,6 +173,8 @@ prettify_pkg <- function(transformers, c(r_files, rprofile_files, vignette_files, readme), exclude_files ) + # Remove the regex. + files <- files[!grepl(exclude_files_regex, files)] transform_files(files, transformers = transformers, include_roxygen_examples = include_roxygen_examples, diff --git a/man/prettify_any.Rd b/man/prettify_any.Rd index c4b7fc5a1..590560522 100644 --- a/man/prettify_any.Rd +++ b/man/prettify_any.Rd @@ -28,8 +28,8 @@ Rmd.} \item{recursive}{A logical value indicating whether or not files in subdirectories should be styled as well.} -\item{exclude_files}{Character vector with paths to files that should be -excluded from styling.} +\item{exclude_files}{Character vector with paths or regular expressions to files +that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude (recursively). Note that the default values were set for consistency with diff --git a/man/prettify_pkg.Rd b/man/prettify_pkg.Rd index 4e9a40cb8..53a946575 100644 --- a/man/prettify_pkg.Rd +++ b/man/prettify_pkg.Rd @@ -23,8 +23,8 @@ be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".R "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as Rmd.} -\item{exclude_files}{Character vector with paths to files that should be -excluded from styling.} +\item{exclude_files}{Character vector with paths or regular expressions to files +that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude (recursively). Note that the default values were set for consistency with diff --git a/man/style_dir.Rd b/man/style_dir.Rd index 9f8294354..3913c53ff 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -41,8 +41,8 @@ Rmd.} \item{recursive}{A logical value indicating whether or not files in sub directories of \code{path} should be styled as well.} -\item{exclude_files}{Character vector with paths to files that should be -excluded from styling.} +\item{exclude_files}{Character vector with paths or regular expressions to files +that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude (recursively).} diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index 303dc7693..59232b1dc 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -37,8 +37,8 @@ be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".R "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as Rmd.} -\item{exclude_files}{Character vector with paths to files that should be -excluded from styling.} +\item{exclude_files}{Character vector with paths or regular expressions to files +that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude (recursively). Note that the default values were set for consistency with From 6d2f25d2fac86cf234d39b7a1c322d35198d2215 Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Wed, 28 Jun 2023 15:52:30 -0400 Subject: [PATCH 012/238] document --- API | 2 +- man/style_pkg.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/API b/API index 46b34bbcd..b392a14b4 100644 --- a/API +++ b/API @@ -27,7 +27,7 @@ specify_reindention(regex_pattern = NULL, indention = 0L, comments_only = TRUE) specify_transformers_drop(spaces = NULL, indention = NULL, line_breaks = NULL, tokens = NULL) style_dir(path = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), recursive = TRUE, exclude_files = NULL, exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") style_file(path, ..., style = tidyverse_style, transformers = style(...), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") -style_pkg(pkg = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), exclude_files = c("R/RcppExports.R", "R/cpp11.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") +style_pkg(pkg = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), exclude_files = c("R/RcppExports.R", "R/cpp11.R", "R/import-standalone.+R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") style_text(text, ..., style = tidyverse_style, transformers = style(...), include_roxygen_examples = TRUE, base_indention = 0L) tidyverse_math_token_spacing() tidyverse_reindention() diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index 59232b1dc..9d07b235a 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -10,7 +10,7 @@ style_pkg( style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), - exclude_files = c("R/RcppExports.R", "R/cpp11.R"), + exclude_files = c("R/RcppExports.R", "R/cpp11.R", "R/import-standalone.+R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, From a2b8ad472310975c0dc8e9eba24805969302ecad Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 16 Jul 2023 20:13:53 +0200 Subject: [PATCH 013/238] exclude files is not interpreteted as a regex instead of plain file names and R/import-standalone.*\\.R is added --- API | 2 +- R/ui-styling.R | 8 ++++---- man/prettify_any.Rd | 2 +- man/prettify_pkg.Rd | 2 +- man/style_dir.Rd | 2 +- man/style_pkg.Rd | 5 +++-- tests/testthat/test-public_api-0.R | 12 ++++++++++-- 7 files changed, 21 insertions(+), 12 deletions(-) diff --git a/API b/API index b392a14b4..429de55f4 100644 --- a/API +++ b/API @@ -27,7 +27,7 @@ specify_reindention(regex_pattern = NULL, indention = 0L, comments_only = TRUE) specify_transformers_drop(spaces = NULL, indention = NULL, line_breaks = NULL, tokens = NULL) style_dir(path = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), recursive = TRUE, exclude_files = NULL, exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") style_file(path, ..., style = tidyverse_style, transformers = style(...), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") -style_pkg(pkg = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), exclude_files = c("R/RcppExports.R", "R/cpp11.R", "R/import-standalone.+R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") +style_pkg(pkg = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), exclude_files = c("R/RcppExports\\.R", "R/cpp11\\.R", "R/import-standalone.*\\.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") style_text(text, ..., style = tidyverse_style, transformers = style(...), include_roxygen_examples = TRUE, base_indention = 0L) tidyverse_math_token_spacing() tidyverse_reindention() diff --git a/R/ui-styling.R b/R/ui-styling.R index a5a3bd3e8..e25eed10c 100644 --- a/R/ui-styling.R +++ b/R/ui-styling.R @@ -69,7 +69,7 @@ style_pkg <- function(pkg = ".", style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), - exclude_files = c("R/RcppExports.R", "R/cpp11.R", "R/import-standalone.+R"), + exclude_files = c("R/RcppExports\\.R", "R/cpp11\\.R", "R/import-standalone.*\\.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, @@ -91,7 +91,7 @@ style_pkg <- function(pkg = ".", #' ".Rmd")`, or `c("r", "rmd")`. Supported values (after standardization) are: #' "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as #' Rmd. -#' @param exclude_files Character vector with paths or regular expressions to files +#' @param exclude_files Character vector with regular expressions to files #' that should be excluded from styling. #' @param exclude_dirs Character vector with directories to exclude #' (recursively). Note that the default values were set for consistency with @@ -107,6 +107,8 @@ prettify_pkg <- function(transformers, dry) { filetype_ <- set_and_assert_arg_filetype(filetype) r_files <- rprofile_files <- vignette_files <- readme <- NULL + all_files <- list.files(".", recursive = TRUE, all.files = TRUE) + exclude_files <- grep(paste0(exclude_files, collapse = "|"), all_files, value = TRUE) exclude_files <- set_arg_paths(exclude_files) exclude_files_regex <- paste0(exclude_files[!file.exists(exclude_files)], collapse = "|") exclude_files <- c( @@ -173,8 +175,6 @@ prettify_pkg <- function(transformers, c(r_files, rprofile_files, vignette_files, readme), exclude_files ) - # Remove the regex. - files <- files[!grepl(exclude_files_regex, files)] transform_files(files, transformers = transformers, include_roxygen_examples = include_roxygen_examples, diff --git a/man/prettify_any.Rd b/man/prettify_any.Rd index 590560522..b1db51e44 100644 --- a/man/prettify_any.Rd +++ b/man/prettify_any.Rd @@ -28,7 +28,7 @@ Rmd.} \item{recursive}{A logical value indicating whether or not files in subdirectories should be styled as well.} -\item{exclude_files}{Character vector with paths or regular expressions to files +\item{exclude_files}{Character vector with regular expressions to files that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude diff --git a/man/prettify_pkg.Rd b/man/prettify_pkg.Rd index 53a946575..0c999550c 100644 --- a/man/prettify_pkg.Rd +++ b/man/prettify_pkg.Rd @@ -23,7 +23,7 @@ be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".R "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as Rmd.} -\item{exclude_files}{Character vector with paths or regular expressions to files +\item{exclude_files}{Character vector with regular expressions to files that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude diff --git a/man/style_dir.Rd b/man/style_dir.Rd index 3913c53ff..7f0f61a58 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -41,7 +41,7 @@ Rmd.} \item{recursive}{A logical value indicating whether or not files in sub directories of \code{path} should be styled as well.} -\item{exclude_files}{Character vector with paths or regular expressions to files +\item{exclude_files}{Character vector with regular expressions to files that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index 9d07b235a..0eca9278e 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -10,7 +10,8 @@ style_pkg( style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), - exclude_files = c("R/RcppExports.R", "R/cpp11.R", "R/import-standalone.+R"), + exclude_files = c("R/RcppExports\\\\.R", "R/cpp11\\\\.R", + "R/import-standalone.*\\\\.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, @@ -37,7 +38,7 @@ be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".R "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as Rmd.} -\item{exclude_files}{Character vector with paths or regular expressions to files +\item{exclude_files}{Character vector with regular expressions to files that should be excluded from styling.} \item{exclude_dirs}{Character vector with directories to exclude diff --git a/tests/testthat/test-public_api-0.R b/tests/testthat/test-public_api-0.R index e0d46f105..70e90cbec 100644 --- a/tests/testthat/test-public_api-0.R +++ b/tests/testthat/test-public_api-0.R @@ -32,7 +32,7 @@ test_that("styler can style package and exclude some directories and files", { capture_output(expect_true({ styled <- style_pkg(testthat_file("public-api", "xyzpackage"), exclude_dirs = "tests", - exclude_files = ".Rprofile" + exclude_files = "\\.Rprofile" ) nrow(styled) == 1 })) @@ -40,10 +40,18 @@ test_that("styler can style package and exclude some directories and files", { capture_output(expect_true({ styled <- style_pkg(testthat_file("public-api", "xyzpackage"), exclude_dirs = "tests", - exclude_files = "./.Rprofile" + exclude_files = ".*ofile" ) nrow(styled) == 1 })) + + capture_output(expect_true({ + styled <- style_pkg(testthat_file("public-api", "xyzpackage"), + exclude_dirs = "tests", + exclude_files = "hello" + ) + nrow(styled) == 0 + })) }) From bfb6cf6251167b5f22f4055ea8ef1e396bc5be27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 03:52:56 +0000 Subject: [PATCH 014/238] Bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.4.2 to 4.4.3. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.4.2...v4.4.3) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index d227c59cf..520d1e570 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.4.2 + uses: JamesIves/github-pages-deploy-action@v4.4.3 with: clean: false branch: gh-pages From d9f3f6a4d52b17559c947a9354e3f1afd596c6c9 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 21 Aug 2023 15:37:44 +0200 Subject: [PATCH 015/238] show warning --- .github/workflows/check-full.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 8f98653d0..b0eba4048 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -59,3 +59,4 @@ jobs: error-on: 'ifelse(getRversion() > 3.6, "warning", "note")' env: _R_CHECK_FORCE_SUGGESTS_: false + _R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_: true From de938c575eca15931bc7894ed04eb995d2e0a15d Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 21 Aug 2023 17:21:10 +0200 Subject: [PATCH 016/238] fix the issue --- R/set-assert-args.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/set-assert-args.R b/R/set-assert-args.R index db49c4097..7cccd0aa5 100644 --- a/R/set-assert-args.R +++ b/R/set-assert-args.R @@ -21,7 +21,7 @@ set_arg_write_tree <- function(write_tree) { #' @inheritParams make_transformer #' @keywords internal assert_transformers <- function(transformers) { - version_cutoff <- 2.0 + version_cutoff <- "2.0" no_name <- is.null(transformers$style_guide_name) no_version <- is.null(transformers$style_guide_version) if (no_name || no_version) { From 696663dec432d6863672f68d510ccec5696bca89 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 21 Aug 2023 20:34:25 +0200 Subject: [PATCH 017/238] upgrade pre-commit to stable release that does not contain reference to bleeding lintr --- .pre-commit-config.yaml | 2 +- R/nest.R | 2 +- R/testing.R | 2 +- R/ui-caching.R | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7c0a31b31..d6dd581fa 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: f3498c421d68a1db26de1a1fe3ecc91dd6f03b5e + rev: v0.3.2.9019 hooks: - id: style-files args: diff --git a/R/nest.R b/R/nest.R index f56cdc6e3..f6e26d210 100644 --- a/R/nest.R +++ b/R/nest.R @@ -343,7 +343,7 @@ nest_parse_data <- function(pd_flat) { rhs <- nest_(child, "child", setdiff(names(child), "parent_")) - nested <- left_join(internal, rhs, by = c("id" = "parent_")) + nested <- left_join(internal, rhs, by = c(id = "parent_")) children <- nested$child for (i in seq_along(children)) { diff --git a/R/testing.R b/R/testing.R index 5d48d6852..4b94d7e1b 100644 --- a/R/testing.R +++ b/R/testing.R @@ -327,7 +327,7 @@ local_test_setup <- function(cache = FALSE, .local_envir = parent.frame()) { current_cache <- cache_info(format = "tabular") withr::local_options( - list("styler.quiet" = TRUE, "R.cache.rootPath" = tempfile()), + list(styler.quiet = TRUE, R.cache.rootPath = tempfile()), .local_envir = .local_envir ) if (cache) { diff --git a/R/ui-caching.R b/R/ui-caching.R index 9aace1eb1..42e80f529 100644 --- a/R/ui-caching.R +++ b/R/ui-caching.R @@ -138,7 +138,7 @@ cache_info <- function(cache_name = NULL, format = "both") { #' @export cache_activate <- function(cache_name = NULL, verbose = !getOption("styler.quiet", FALSE)) { - options("styler.cache_name" = cache_name %||% styler_version) + options(styler.cache_name = cache_name %||% styler_version) path <- cache_find_path(cache_name) if (verbose) { @@ -155,7 +155,7 @@ cache_activate <- function(cache_name = NULL, #' @rdname cache_activate #' @export cache_deactivate <- function(verbose = !getOption("styler.quiet", FALSE)) { - options("styler.cache_name" = NULL) + options(styler.cache_name = NULL) if (verbose) { cat("Deactivated cache.\n") From 0c9ff1f382ffcdd6298c8e735a5e79639e06fe96 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 21 Aug 2023 20:37:43 +0200 Subject: [PATCH 018/238] fix line starts --- tests/testthat/test-create_token.R | 2 -- tests/testthat/test-create_tree.R | 2 -- tests/testthat/test-curly-curly.R | 2 -- tests/testthat/test-exception_handling.R | 2 -- tests/testthat/test-helpers.R | 2 -- tests/testthat/test-identify-roxygen-examples.R | 2 -- tests/testthat/test-indention_curly.R | 2 -- tests/testthat/test-indention_fun_calls.R | 2 -- tests/testthat/test-indention_multiple.R | 2 -- tests/testthat/test-indention_operators.R | 2 -- tests/testthat/test-indention_round_brackets.R | 2 -- tests/testthat/test-insertion_comment_interaction.R | 2 -- tests/testthat/test-line_breaks_and_other.R | 2 -- tests/testthat/test-line_breaks_fun_call.R | 1 - tests/testthat/test-math_token_spacing.R | 2 -- tests/testthat/test-parsing.R | 2 -- tests/testthat/test-relocate_eq_assign.R | 1 - tests/testthat/test-rmd.R | 2 -- tests/testthat/test-rnw.R | 2 -- tests/testthat/test-roundtrip.R | 3 --- tests/testthat/test-roxygen-examples-parse.R | 2 -- tests/testthat/test-scope-AsIs.R | 2 -- tests/testthat/test-scope-character.R | 2 -- tests/testthat/test-serialize_tests.R | 2 -- tests/testthat/test-spacing.R | 2 -- tests/testthat/test-square_brackets.R | 2 -- tests/testthat/test-start_line.R | 2 -- tests/testthat/test-strict.R | 2 -- tests/testthat/test-tidyeval.R | 2 -- tests/testthat/test-token_adding_removing.R | 2 -- tests/testthat/test-unary.R | 2 -- tests/testthat/test-unindention.R | 2 -- tests/testthat/test-unindention_regex.R | 1 - tests/testthat/test-utils.R | 2 -- tests/testthat/test-varia.R | 2 -- 35 files changed, 68 deletions(-) diff --git a/tests/testthat/test-create_token.R b/tests/testthat/test-create_token.R index c00892808..bf99b6dcb 100644 --- a/tests/testthat/test-create_token.R +++ b/tests/testthat/test-create_token.R @@ -1,5 +1,3 @@ - - test_that("can create a token that has relevant columns", { pd_names <- c( "token", "text", "short", "lag_newlines", "newlines", "pos_id", diff --git a/tests/testthat/test-create_tree.R b/tests/testthat/test-create_tree.R index c8bcfb319..e6ab27068 100644 --- a/tests/testthat/test-create_tree.R +++ b/tests/testthat/test-create_tree.R @@ -1,5 +1,3 @@ - - test_that("create_trees outputs identical structure if trees have same structure", { skip_if_not_installed("DiagrammeR") skip_if_not_installed("data.tree") diff --git a/tests/testthat/test-curly-curly.R b/tests/testthat/test-curly-curly.R index d61299e75..7d1008cf5 100644 --- a/tests/testthat/test-curly-curly.R +++ b/tests/testthat/test-curly-curly.R @@ -1,5 +1,3 @@ - - test_that("curly-culry", { expect_warning(test_collection("curly-curly", "mixed", diff --git a/tests/testthat/test-exception_handling.R b/tests/testthat/test-exception_handling.R index 74afef5e8..7bf1b9f1d 100644 --- a/tests/testthat/test-exception_handling.R +++ b/tests/testthat/test-exception_handling.R @@ -1,5 +1,3 @@ - - test_that("style_text returns custom error", { expect_error(style_text("a <- 3 4"), "unexpected numeric constant") }) diff --git a/tests/testthat/test-helpers.R b/tests/testthat/test-helpers.R index c5f3a5619..139a86314 100644 --- a/tests/testthat/test-helpers.R +++ b/tests/testthat/test-helpers.R @@ -1,5 +1,3 @@ - - test_that("can construct and print vertical", { skip_if_not_installed("prettycode") expect_snapshot({ diff --git a/tests/testthat/test-identify-roxygen-examples.R b/tests/testthat/test-identify-roxygen-examples.R index 8eee143e2..0b89c6fde 100644 --- a/tests/testthat/test-identify-roxygen-examples.R +++ b/tests/testthat/test-identify-roxygen-examples.R @@ -1,5 +1,3 @@ - - #' Things to consider: #' * one function declaration or many #' * example(s) is last tag or not? diff --git a/tests/testthat/test-indention_curly.R b/tests/testthat/test-indention_curly.R index 5064dcb4d..fe0e1d928 100644 --- a/tests/testthat/test-indention_curly.R +++ b/tests/testthat/test-indention_curly.R @@ -1,5 +1,3 @@ - - test_that("indention on one-liner curley only is not changed", { expect_warning(test_collection("indention_curly_brackets", "one_line_curly", diff --git a/tests/testthat/test-indention_fun_calls.R b/tests/testthat/test-indention_fun_calls.R index f44c037b8..eddb4e639 100644 --- a/tests/testthat/test-indention_fun_calls.R +++ b/tests/testthat/test-indention_fun_calls.R @@ -1,5 +1,3 @@ - - test_that("edge cases work", { expect_warning(test_collection("indention_fun_calls", transformer = style_text, strict = FALSE diff --git a/tests/testthat/test-indention_multiple.R b/tests/testthat/test-indention_multiple.R index a99634f3d..c9d68feac 100644 --- a/tests/testthat/test-indention_multiple.R +++ b/tests/testthat/test-indention_multiple.R @@ -1,5 +1,3 @@ - - test_that("multiple round brackets don't cause extraindention", { expect_warning(test_collection("indention_multiple", "round_only", diff --git a/tests/testthat/test-indention_operators.R b/tests/testthat/test-indention_operators.R index 3e62f85f8..2e7d1d4ff 100644 --- a/tests/testthat/test-indention_operators.R +++ b/tests/testthat/test-indention_operators.R @@ -1,5 +1,3 @@ - - test_that("pipe is indended correctly", { expect_warning(test_collection("indention_operators", "pipe", diff --git a/tests/testthat/test-indention_round_brackets.R b/tests/testthat/test-indention_round_brackets.R index c0c6a9409..1e01ade44 100644 --- a/tests/testthat/test-indention_round_brackets.R +++ b/tests/testthat/test-indention_round_brackets.R @@ -1,5 +1,3 @@ - - test_that("one-line function call yields correct indention", { expect_warning(test_collection("indention_round_brackets", "one_line", diff --git a/tests/testthat/test-insertion_comment_interaction.R b/tests/testthat/test-insertion_comment_interaction.R index 698b58d03..e9b97cdc4 100644 --- a/tests/testthat/test-insertion_comment_interaction.R +++ b/tests/testthat/test-insertion_comment_interaction.R @@ -1,5 +1,3 @@ - - ## ............................................................................ ## strict = TRUE #### diff --git a/tests/testthat/test-line_breaks_and_other.R b/tests/testthat/test-line_breaks_and_other.R index 7568ac71f..512f09fe7 100644 --- a/tests/testthat/test-line_breaks_and_other.R +++ b/tests/testthat/test-line_breaks_and_other.R @@ -1,5 +1,3 @@ - - test_that("line breaks involing curly brackets", { expect_warning(test_collection("line_breaks_and_other", "curly", transformer = style_text diff --git a/tests/testthat/test-line_breaks_fun_call.R b/tests/testthat/test-line_breaks_fun_call.R index 939a95d1b..375232630 100644 --- a/tests/testthat/test-line_breaks_fun_call.R +++ b/tests/testthat/test-line_breaks_fun_call.R @@ -1,4 +1,3 @@ - test_that("line breaks work in general", { expect_warning(test_collection("line_breaks_fun_call", "token_dependent_mixed", diff --git a/tests/testthat/test-math_token_spacing.R b/tests/testthat/test-math_token_spacing.R index 9b1aa9009..dd03370f0 100644 --- a/tests/testthat/test-math_token_spacing.R +++ b/tests/testthat/test-math_token_spacing.R @@ -1,5 +1,3 @@ - - test_that("invalid tokens return error", { expect_error(test_collection( "math_token_spacing", "non_strict_math_spacing_all", diff --git a/tests/testthat/test-parsing.R b/tests/testthat/test-parsing.R index c5cb2463a..f64314009 100644 --- a/tests/testthat/test-parsing.R +++ b/tests/testthat/test-parsing.R @@ -1,5 +1,3 @@ - - test_that("repreated parsing solves wrong parent assignment", { expect_warning( test_collection( diff --git a/tests/testthat/test-relocate_eq_assign.R b/tests/testthat/test-relocate_eq_assign.R index fe7b13bc1..0fbcd40b8 100644 --- a/tests/testthat/test-relocate_eq_assign.R +++ b/tests/testthat/test-relocate_eq_assign.R @@ -1,4 +1,3 @@ - # Tests code in R/relevel.R test_that("tree hierarchy is the same no matter whether = or <- is used", { skip_if_not_installed("DiagrammeR") diff --git a/tests/testthat/test-rmd.R b/tests/testthat/test-rmd.R index 6ff803d80..79811ba60 100644 --- a/tests/testthat/test-rmd.R +++ b/tests/testthat/test-rmd.R @@ -1,5 +1,3 @@ - - test_that("can style .Rmd files", { expect_warning(test_collection("rmd", "simple", transformer = transform_mixed, diff --git a/tests/testthat/test-rnw.R b/tests/testthat/test-rnw.R index 1a9158d3f..206d63b89 100644 --- a/tests/testthat/test-rnw.R +++ b/tests/testthat/test-rnw.R @@ -1,5 +1,3 @@ - - test_that("can style .Rnw files", { expect_warning(test_collection( "rnw", "008-outdec", diff --git a/tests/testthat/test-roundtrip.R b/tests/testthat/test-roundtrip.R index d50242bc2..a92dd8598 100644 --- a/tests/testthat/test-roundtrip.R +++ b/tests/testthat/test-roundtrip.R @@ -1,6 +1,3 @@ - - - test_that("parse_tree_must_be_identical works", { expect_true( parse_tree_must_be_identical(tidyverse_style(scope = "line_breaks")) diff --git a/tests/testthat/test-roxygen-examples-parse.R b/tests/testthat/test-roxygen-examples-parse.R index d733b1585..5a1a56c96 100644 --- a/tests/testthat/test-roxygen-examples-parse.R +++ b/tests/testthat/test-roxygen-examples-parse.R @@ -1,5 +1,3 @@ - - test_that("simple examples can be parsed", { expected_out <- c("\n", "x <- 1\n") expect_equal(parse_roxygen(c("#' @examples", "#' x <- 1"))$text, expected_out) diff --git a/tests/testthat/test-scope-AsIs.R b/tests/testthat/test-scope-AsIs.R index 97eec4ebf..5ea573ca2 100644 --- a/tests/testthat/test-scope-AsIs.R +++ b/tests/testthat/test-scope-AsIs.R @@ -1,5 +1,3 @@ - - test_that("no indention manipulation but spaces manipulation", { expect_warning(test_collection( "scope-AsIs", "scope_spaces-", diff --git a/tests/testthat/test-scope-character.R b/tests/testthat/test-scope-character.R index 256f7d670..ef7ee0d2d 100644 --- a/tests/testthat/test-scope-character.R +++ b/tests/testthat/test-scope-character.R @@ -1,5 +1,3 @@ - - test_that("no indention manipulation but spaces manipulation", { expect_warning(test_collection( "scope-character", "scope_spaces", diff --git a/tests/testthat/test-serialize_tests.R b/tests/testthat/test-serialize_tests.R index 2b858a77a..cab2100e3 100644 --- a/tests/testthat/test-serialize_tests.R +++ b/tests/testthat/test-serialize_tests.R @@ -1,5 +1,3 @@ - - test_that("No files to compare returns error", { expect_error(test_collection("serialize_tests", "xyz", transformer = as_is diff --git a/tests/testthat/test-spacing.R b/tests/testthat/test-spacing.R index 9caadf9e4..7fdb6e55a 100644 --- a/tests/testthat/test-spacing.R +++ b/tests/testthat/test-spacing.R @@ -1,5 +1,3 @@ - - test_that("curly braces", { expect_warning(test_collection( "spacing", "round", diff --git a/tests/testthat/test-square_brackets.R b/tests/testthat/test-square_brackets.R index a400c1f30..7f4c4d481 100644 --- a/tests/testthat/test-square_brackets.R +++ b/tests/testthat/test-square_brackets.R @@ -1,5 +1,3 @@ - - test_that("square brackets cause indention", { expect_warning(test_collection( "indention_square_brackets", diff --git a/tests/testthat/test-start_line.R b/tests/testthat/test-start_line.R index f154dc555..bb17a2aad 100644 --- a/tests/testthat/test-start_line.R +++ b/tests/testthat/test-start_line.R @@ -1,5 +1,3 @@ - - test_that("leading spaces are preserved at start of text", { expect_warning(test_collection("start_line", transformer = style_empty diff --git a/tests/testthat/test-strict.R b/tests/testthat/test-strict.R index 774096980..da8ea93e4 100644 --- a/tests/testthat/test-strict.R +++ b/tests/testthat/test-strict.R @@ -1,5 +1,3 @@ - - test_that("can style example source file with strict = TRUE", { expect_warning(test_collection( "strict", "strict", diff --git a/tests/testthat/test-tidyeval.R b/tests/testthat/test-tidyeval.R index 76b7a2457..5d1c074f6 100644 --- a/tests/testthat/test-tidyeval.R +++ b/tests/testthat/test-tidyeval.R @@ -1,5 +1,3 @@ - - test_that("no spaces within bang-bang operator !!!", { expect_warning(test_collection("tidyeval", "bang_bang", transformer = style_text diff --git a/tests/testthat/test-token_adding_removing.R b/tests/testthat/test-token_adding_removing.R index cd0026a0f..47ad6703d 100644 --- a/tests/testthat/test-token_adding_removing.R +++ b/tests/testthat/test-token_adding_removing.R @@ -1,5 +1,3 @@ - - test_that("other manipulations are correct (add braces, semi-colon etc.)", { expect_warning(test_collection("token_adding_removing", "mixed_token", transformer = style_text diff --git a/tests/testthat/test-unary.R b/tests/testthat/test-unary.R index 8fe52eb0c..264e58ae7 100644 --- a/tests/testthat/test-unary.R +++ b/tests/testthat/test-unary.R @@ -1,5 +1,3 @@ - - test_that("no spaces before unary operator", { expect_warning(test_collection("unary_spacing", "unary_simple", diff --git a/tests/testthat/test-unindention.R b/tests/testthat/test-unindention.R index cd06de29c..ea48778d1 100644 --- a/tests/testthat/test-unindention.R +++ b/tests/testthat/test-unindention.R @@ -1,5 +1,3 @@ - - test_that("round brackets are unindented correctly", { expect_warning(test_collection("unindention", "mixed", diff --git a/tests/testthat/test-unindention_regex.R b/tests/testthat/test-unindention_regex.R index 7e364fa46..1eace2b0b 100644 --- a/tests/testthat/test-unindention_regex.R +++ b/tests/testthat/test-unindention_regex.R @@ -1,4 +1,3 @@ - test_that("forced regex token-dependent indention", { expect_warning(test_collection( "unindention_regex", "regex_force_with", diff --git a/tests/testthat/test-utils.R b/tests/testthat/test-utils.R index ed43923ff..f11e241fd 100644 --- a/tests/testthat/test-utils.R +++ b/tests/testthat/test-utils.R @@ -1,5 +1,3 @@ - - test_that("non-comment-helpers", { pd <- compute_parse_data_nested("a <- # hi \n x %>% b()") child <- pd$child[[1]] diff --git a/tests/testthat/test-varia.R b/tests/testthat/test-varia.R index 422363a0d..effc0f865 100644 --- a/tests/testthat/test-varia.R +++ b/tests/testthat/test-varia.R @@ -1,5 +1,3 @@ - - test_that("ensure_last_n_empty", { expect_equal( ensure_last_n_empty("x"), From 1e52d5a03273cb78b9a9dffcf7cc1edccee151a3 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Tue, 22 Aug 2023 14:00:37 +0200 Subject: [PATCH 019/238] fix workflow --- .github/workflows/check-full.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index b0eba4048..bb5bb162b 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -56,7 +56,7 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true - error-on: 'ifelse(getRversion() > 3.6, "warning", "note")' + error-on: 'ifelse(getRversion() > "3.6", "warning", "note")' env: _R_CHECK_FORCE_SUGGESTS_: false _R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_: true From f7fdd00f7d5962bfae8d4293fd87ca1a9a4cd203 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Tue, 22 Aug 2023 18:01:25 +0200 Subject: [PATCH 020/238] Bump version to 1.10.2 --- DESCRIPTION | 2 +- NEWS.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 27ae3bd79..e38798e39 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: styler Title: Non-Invasive Pretty Printing of R Code -Version: 1.10.1 +Version: 1.10.2 Authors@R: c(person(given = "Kirill", family = "Müller", diff --git a/NEWS.md b/NEWS.md index 6dc69a941..1e5adc0c9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,10 @@ + + +# styler 1.10.2 + +- Same as previous version. + + # styler 1.10.1 This release was requested by CRAN due to accidentally populating a user cache while building vignettes for R >= 4.3.0. From 70a7b78d45082b124e4583fa83586f4fe548ddf4 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Wed, 23 Aug 2023 08:43:41 +0200 Subject: [PATCH 021/238] update news --- NEWS.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 1e5adc0c9..d189fd61f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,8 +2,21 @@ # styler 1.10.2 -- Same as previous version. +This release was requested by the CRAN team to fix CRAN warning on invalid +numeric version inputs (#1143). +**Minor changes** + +* Use cli messaging for cache (#1127). +* Use latest (and stable!) pre-commit (#1144). +* Fix CRAN warning on invalid numeric version inputs (#1143). +* Bump JamesIves/github-pages-deploy-action from 4.4.2 to 4.4.3 (#1139). +* fix pre-commit (#1132). +* Don't require dplyr anywhere (#1131). + +We thank everyone who helped making this release possible. + +[@krlmlr](https://github.com/krlmlr), [@lorenzwalthert](https://github.com/lorenzwalthert), [@MichaelChirico](https://github.com/MichaelChirico), [@olivroy](https://github.com/olivroy), [@rkrug](https://github.com/rkrug), and [@rossdrucker](https://github.com/rossdrucker). # styler 1.10.1 From afdf5d25f0f39480d355d1ea0fde9c8ecf2c4a71 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Wed, 23 Aug 2023 08:46:51 +0200 Subject: [PATCH 022/238] update cran comments --- cran-comments.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index ed38adf29..747d0b082 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -4,8 +4,8 @@ editor_options: wrap: 79 --- -This is a release requested by the CRAN team to delete the population of the -user's cache while building vignettes. +This is a release requested by the CRAN team to comply with +`R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS`. ## Test environments From 790bbcca61b0deb12b717e36af422afa007ddce2 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Wed, 23 Aug 2023 08:51:16 +0200 Subject: [PATCH 023/238] fix windevel warnings --- R/parse.R | 1 - R/rules-line-breaks.R | 4 +++- man/is_insufficiently_parsed_string.Rd | 2 -- man/set_line_break_after_opening_if_call_is_multi_line.Rd | 6 ++++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/R/parse.R b/R/parse.R index 6beadd942..4ddbb72db 100644 --- a/R/parse.R +++ b/R/parse.R @@ -182,7 +182,6 @@ ensure_correct_txt <- function(pd, text) { #' changes from "all strings" to "all problematic strings", is partly #' misleading and this approach was chosen for performance reasons only. #' @param pd A parse table. -#' @param text The initial code to style. #' @keywords internal is_insufficiently_parsed_string <- function(pd) { grepl("^\\[", pd$text) & pd$token == "STR_CONST" diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index badff81eb..f0805cc94 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -282,7 +282,9 @@ set_line_break_after_assignment <- function(pd) { NULL #' Sets line break after opening parenthesis -#' +#' @param pd The parse table. +#' @param except_token_after,except_token_before The tokens before or after the +#' token that cause an exception. #' @details #' In general, every call that is multi-line has a line break after the opening #' parenthesis. Exceptions: diff --git a/man/is_insufficiently_parsed_string.Rd b/man/is_insufficiently_parsed_string.Rd index 83cdfb67a..0344443c4 100644 --- a/man/is_insufficiently_parsed_string.Rd +++ b/man/is_insufficiently_parsed_string.Rd @@ -8,8 +8,6 @@ is_insufficiently_parsed_string(pd) } \arguments{ \item{pd}{A parse table.} - -\item{text}{The initial code to style.} } \description{ Identifies strings that were not fully parsed due to their vast length. diff --git a/man/set_line_break_after_opening_if_call_is_multi_line.Rd b/man/set_line_break_after_opening_if_call_is_multi_line.Rd index 417c04a1a..328d56391 100644 --- a/man/set_line_break_after_opening_if_call_is_multi_line.Rd +++ b/man/set_line_break_after_opening_if_call_is_multi_line.Rd @@ -11,6 +11,12 @@ set_line_break_after_opening_if_call_is_multi_line( force_text_before = NULL ) } +\arguments{ +\item{pd}{The parse table.} + +\item{except_token_after, except_token_before}{The tokens before or after the +token that cause an exception.} +} \description{ Sets line break after opening parenthesis } From 9402414e72f06dbea2201bcc6a01a40d1f2ec267 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sat, 26 Aug 2023 21:39:16 +0200 Subject: [PATCH 024/238] fix roxygen --- R/rules-line-breaks.R | 22 +++++++++---------- ...eak_after_opening_if_call_is_multi_line.Rd | 9 ++++++-- man/set_line_break_if_call_is_multi_line.Rd | 16 +++++--------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index f0805cc94..6febecc6a 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -268,14 +268,8 @@ set_line_break_after_assignment <- function(pd) { #' Set line break for multi-line function calls #' @param pd A parse table. -#' @param except_token_after A character vector with tokens after "'('" that do -#' not cause a line break after "'('". -#' @param except_text_before A character vector with text before "'('" that do -#' not cause a line break after "'('". -#' @param except_token_before A character vector with text before "')'" that do -#' not cause a line break before "')'". -#' @param force_text_before A character vector with text before "'('" that -#' forces a line break after every argument in the call. +#' @param except_token_before A character vector with tokens that do +#' not cause a line break after them. #' @name set_line_break_if_call_is_multi_line #' #' @keywords internal @@ -283,8 +277,11 @@ NULL #' Sets line break after opening parenthesis #' @param pd The parse table. -#' @param except_token_after,except_token_before The tokens before or after the -#' token that cause an exception. +#' @param except_token_after The tokens after the token that cause an exception. +#' @param except_text_before A character vector with text before a token that +#' does not cause a line break. +#' @param force_text_before A character vector with text before "'('" that +#' forces a line break after every argument in the call. #' @details #' In general, every call that is multi-line has a line break after the opening #' parenthesis. Exceptions: @@ -343,7 +340,7 @@ set_line_break_after_opening_if_call_is_multi_line <- function(pd, #' position of the first named argument and breaks returns the index of it. #' If there is no named argument, the line is broken right after the opening #' parenthesis. -#' @inheritParams set_line_break_if_call_is_multi_line +#' @param pd A parse table. #' @keywords internal find_line_break_position_in_multiline_call <- function(pd) { candidate <- (which(pd$token == "EQ_SUB") - 1L)[1L] @@ -379,7 +376,8 @@ set_line_break_before_closing_call <- function(pd, except_token_before) { } -#' @rdname set_line_break_if_call_is_multi_line +#' @describeIn set_line_break_if_call_is_multi_line Remove line breaks in +#' function calls. #' @keywords internal remove_line_break_in_fun_call <- function(pd, strict) { if (is_function_call(pd)) { diff --git a/man/set_line_break_after_opening_if_call_is_multi_line.Rd b/man/set_line_break_after_opening_if_call_is_multi_line.Rd index 328d56391..174bee142 100644 --- a/man/set_line_break_after_opening_if_call_is_multi_line.Rd +++ b/man/set_line_break_after_opening_if_call_is_multi_line.Rd @@ -14,8 +14,13 @@ set_line_break_after_opening_if_call_is_multi_line( \arguments{ \item{pd}{The parse table.} -\item{except_token_after, except_token_before}{The tokens before or after the -token that cause an exception.} +\item{except_token_after}{The tokens after the token that cause an exception.} + +\item{except_text_before}{A character vector with text before a token that +does not cause a line break.} + +\item{force_text_before}{A character vector with text before "'('" that +forces a line break after every argument in the call.} } \description{ Sets line break after opening parenthesis diff --git a/man/set_line_break_if_call_is_multi_line.Rd b/man/set_line_break_if_call_is_multi_line.Rd index a8482a378..b7ad972eb 100644 --- a/man/set_line_break_if_call_is_multi_line.Rd +++ b/man/set_line_break_if_call_is_multi_line.Rd @@ -13,17 +13,8 @@ remove_line_break_in_fun_call(pd, strict) \arguments{ \item{pd}{A parse table.} -\item{except_token_before}{A character vector with text before "')'" that do -not cause a line break before "')'".} - -\item{except_token_after}{A character vector with tokens after "'('" that do -not cause a line break after "'('".} - -\item{except_text_before}{A character vector with text before "'('" that do -not cause a line break after "'('".} - -\item{force_text_before}{A character vector with text before "'('" that -forces a line break after every argument in the call.} +\item{except_token_before}{A character vector with tokens that do +not cause a line break after them.} } \description{ Set line break for multi-line function calls @@ -33,5 +24,8 @@ Set line break for multi-line function calls \item \code{set_line_break_before_closing_call()}: Sets line break before closing parenthesis. +\item \code{remove_line_break_in_fun_call()}: Remove line breaks in +function calls. + }} \keyword{internal} From f6a311d813b8e05858c75594f3e32e9736d0468d Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 27 Aug 2023 14:08:23 +0200 Subject: [PATCH 025/238] make benchmark less tight --- tests/testthat/tests-cache-require-serial.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testthat/tests-cache-require-serial.R b/tests/testthat/tests-cache-require-serial.R index 96c861247..ae7226b3c 100644 --- a/tests/testthat/tests-cache-require-serial.R +++ b/tests/testthat/tests-cache-require-serial.R @@ -25,7 +25,7 @@ test_that("top-level test: Caches top-level expressions efficiently on style_tex partially_cached_benchmark["elapsed"] * 1.5, not_cached_benchmark["elapsed"] ) - expect_lt(full_cached_benchmark["elapsed"] * 35, benchmark["elapsed"]) + expect_lt(full_cached_benchmark["elapsed"] * 30, benchmark["elapsed"]) }) From 9b31d04972d285c20f090963b06be20c4eb06922 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 03:56:49 +0000 Subject: [PATCH 026/238] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-all-examples.yaml | 2 +- .github/workflows/check-full.yaml | 2 +- .github/workflows/check-link-rot.yaml | 2 +- .github/workflows/pkgdown.yaml | 2 +- .github/workflows/pre-commit.yaml | 2 +- .github/workflows/test-coverage.yaml | 2 +- .github/workflows/touchstone-receive.yaml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-all-examples.yaml b/.github/workflows/check-all-examples.yaml index 7de30a17f..36415fc90 100644 --- a/.github/workflows/check-all-examples.yaml +++ b/.github/workflows/check-all-examples.yaml @@ -22,7 +22,7 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-r@v2 with: diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index bb5bb162b..dfeb4cc4e 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -38,7 +38,7 @@ jobs: R_KEEP_PKG_SOURCE: yes steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/check-link-rot.yaml b/.github/workflows/check-link-rot.yaml index 666d27c86..3d977b694 100644 --- a/.github/workflows/check-link-rot.yaml +++ b/.github/workflows/check-link-rot.yaml @@ -15,7 +15,7 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 520d1e570..48e1d1dc7 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -20,7 +20,7 @@ jobs: env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 0ab0603db..fbbded7a6 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -21,7 +21,7 @@ jobs: uses: styfle/cancel-workflow-action@0.11.0 with: access_token: ${{ github.token }} - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install system dependencies diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index fe87549b5..d9d5c3d89 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -15,7 +15,7 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-r@v2 with: diff --git a/.github/workflows/touchstone-receive.yaml b/.github/workflows/touchstone-receive.yaml index b1b462650..361368720 100644 --- a/.github/workflows/touchstone-receive.yaml +++ b/.github/workflows/touchstone-receive.yaml @@ -24,7 +24,7 @@ jobs: config: ${{ steps.read_touchstone_config.outputs.config }} steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 From 25992d8e3967310904dafc7bf16788e0649ca7e3 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 11 Sep 2023 09:26:28 +0200 Subject: [PATCH 027/238] Clean new lints --- R/rules-indention.R | 2 +- R/rules-line-breaks.R | 1 - R/transform-files.R | 9 +++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/R/rules-indention.R b/R/rules-indention.R index 7019ef7e6..30cf7b246 100644 --- a/R/rules-indention.R +++ b/R/rules-indention.R @@ -20,7 +20,7 @@ indent_braces <- function(pd, indent_by) { #' @keywords internal unindent_fun_dec <- function(pd, indent_by = 2L) { if (is_function_declaration(pd)) { - idx_closing_brace <- which(pd$token %in% "')'") + idx_closing_brace <- which(pd$token == "')'") fun_dec_head <- seq2(2L, idx_closing_brace) if (is_double_indent_function_declaration(pd, indent_by = indent_by)) { pd$indent[fun_dec_head] <- 2L * indent_by diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 6febecc6a..5c6f3345b 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -153,7 +153,6 @@ style_line_break_around_curly <- function(strict, pd) { closing_before <- pd$token == "'}'" opening_before <- (pd$token == "'{'") to_break <- lag(opening_before, default = FALSE) | closing_before - len_to_break <- sum(to_break) pd$lag_newlines[to_break] <- ifelse( pd$token[to_break] == "COMMENT", pmin(1L, pd$lag_newlines[to_break]), diff --git a/R/transform-files.R b/R/transform-files.R index 3fb769fbc..a79c4a61b 100644 --- a/R/transform-files.R +++ b/R/transform-files.R @@ -116,9 +116,12 @@ make_transformer <- function(transformers, use_cache <- FALSE } - if (!use_cache) { + if (use_cache) { + text + } else { transformed_code <- text %>% - parse_transform_serialize_r(transformers, + parse_transform_serialize_r( + transformers, base_indention = base_indention, warn_empty = warn_empty ) @@ -139,8 +142,6 @@ make_transformer <- function(transformers, } transformed_code - } else { - text } } } From 07d93915c6fd91af2a37ba7e8bd3faa439760bd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 03:32:10 +0000 Subject: [PATCH 028/238] Bump styfle/cancel-workflow-action from 0.11.0 to 0.12.0 Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.11.0 to 0.12.0. - [Release notes](https://github.com/styfle/cancel-workflow-action/releases) - [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.11.0...0.12.0) --- updated-dependencies: - dependency-name: styfle/cancel-workflow-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index fbbded7a6..14b388dea 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -18,7 +18,7 @@ jobs: ) steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 + uses: styfle/cancel-workflow-action@0.12.0 with: access_token: ${{ github.token }} - uses: actions/checkout@v4 From f9a9bbd16e061e47e00e4550433d5eb0307c4656 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 16:08:54 +0100 Subject: [PATCH 029/238] update lintr config file and clean new lints --- .lintr | 53 +++++++++++++++++++------------------- R/detect-alignment-utils.R | 36 ++++++++++++-------------- R/detect-alignment.R | 6 ++--- R/io.R | 3 ++- R/nested-to-tree.R | 7 +---- R/parse.R | 3 +-- R/roxygen-examples.R | 6 ++--- R/rules-spaces.R | 6 +++-- R/rules-tokens.R | 3 +-- R/transform-files.R | 3 ++- R/utils-cache.R | 16 +++++++----- 11 files changed, 71 insertions(+), 71 deletions(-) diff --git a/.lintr b/.lintr index 8244162db..74b12b34c 100644 --- a/.lintr +++ b/.lintr @@ -1,27 +1,28 @@ -linters: linters_with_defaults( - commented_code_linter = NULL, - cyclocomp_linter = cyclocomp_linter(40), - fixed_regex_linter = NULL, - function_argument_linter = NULL, - indentation_linter = NULL, - line_length_linter(120), - namespace_linter = NULL, - nested_ifelse_linter = NULL, - object_name_linter = NULL, - object_length_linter(70), - object_usage_linter = NULL, - todo_comment_linter = NULL, - extraction_operator_linter = NULL, - nonportable_path_linter = NULL, - string_boundary_linter = NULL, - undesirable_function_linter = NULL, - undesirable_operator_linter = NULL, - defaults = linters_with_tags(tags = NULL) - ) +linters: linters_with_tags( + tags = NULL, + commented_code_linter = NULL, + cyclocomp_linter = cyclocomp_linter(40), + fixed_regex_linter = NULL, + function_argument_linter = NULL, + indentation_linter = NULL, + line_length_linter(120L), + namespace_linter = NULL, + nested_ifelse_linter = NULL, + object_name_linter = NULL, + object_length_linter(70L), + object_overwrite_linter = NULL, + object_usage_linter = NULL, + todo_comment_linter = NULL, + extraction_operator_linter = NULL, + nonportable_path_linter = NULL, + string_boundary_linter = NULL, + undesirable_function_linter = NULL, + undesirable_operator_linter = NULL + ) exclusions: list( - "inst", - "man", - "tests", - "touchstone", - "vignettes" - ) + "inst", + "man", + "tests", + "touchstone", + "vignettes" + ) diff --git a/R/detect-alignment-utils.R b/R/detect-alignment-utils.R index ead1d041e..50e1b07f7 100644 --- a/R/detect-alignment-utils.R +++ b/R/detect-alignment-utils.R @@ -32,9 +32,8 @@ alignment_drop_comments <- function(pd_by_line) { out <- vec_slice(x, x$token != "COMMENT") if (nrow(out) < 1L) { return(NULL) - } else { - out } + out }) %>% compact() } @@ -82,22 +81,22 @@ alignment_ensure_trailing_comma <- function(pd_by_line) { last_pd$spaces[nrow(last_pd)] <- 0L if (last(last_pd$token) == "','") { return(pd_by_line) - } else { - tokens <- create_tokens( - tokens = "','", - texts = ",", - lag_newlines = 0L, - spaces = 0L, - pos_ids = NA, - stylerignore = last_pd$stylerignore[1L], - indents = last_pd$indent[1L] - ) - tokens$.lag_spaces <- 0L - - tokens$lag_newlines <- tokens$pos_id <- NULL - pd_by_line[[length(pd_by_line)]] <- rbind(last_pd, tokens) - pd_by_line } + + tokens <- create_tokens( + tokens = "','", + texts = ",", + lag_newlines = 0L, + spaces = 0L, + pos_ids = NA, + stylerignore = last_pd$stylerignore[1L], + indents = last_pd$indent[1L] + ) + tokens$.lag_spaces <- 0L + + tokens$lag_newlines <- tokens$pos_id <- NULL + pd_by_line[[length(pd_by_line)]] <- rbind(last_pd, tokens) + pd_by_line } #' Checks if all arguments of column 1 are named @@ -161,9 +160,8 @@ alignment_serialize <- function(pd_sub) { }, pd_sub$terminal, pd_sub$text, pd_sub$child, pd_sub$spaces, pd_sub$newlines) if (anyNA(out)) { return(NA) - } else { - paste0(out, collapse = "") } + paste0(out, collapse = "") } #' Check if spacing around comma is correct diff --git a/R/detect-alignment.R b/R/detect-alignment.R index 970ab6ffd..bf8ffbe7c 100644 --- a/R/detect-alignment.R +++ b/R/detect-alignment.R @@ -101,11 +101,11 @@ token_is_on_aligned_line <- function(pd_flat) { if (length(pd_by_line) < 1L) { return(TRUE) } - pd_by_line <- alignment_drop_last_expr(pd_by_line) %>% + pd_by_line <- pd_by_line %>% + alignment_drop_last_expr() %>% alignment_ensure_no_closing_brace(last_line_is_closing_brace_only) - pd_by_line <- pd_by_line %>% - alignment_ensure_trailing_comma() + pd_by_line <- alignment_ensure_trailing_comma(pd_by_line) # now, pd only contains arguments separated by values, ideal for iterating # over columns. n_cols <- map_int(pd_by_line, ~ sum(.x$token == "','")) diff --git a/R/io.R b/R/io.R index 565afb400..ea1b96d32 100644 --- a/R/io.R +++ b/R/io.R @@ -103,7 +103,8 @@ read_utf8_bare <- function(con, warn = TRUE) { "The file ", con, " is not encoded in UTF-8. ", "These lines contain invalid UTF-8 characters: " ), - toString(c(utils::head(i), if (n > 6L) "...")) + toString(c(utils::head(i), if (n > 6L) "...")), + call. = FALSE ) } x diff --git a/R/nested-to-tree.R b/R/nested-to-tree.R index c51445140..90787fecd 100644 --- a/R/nested-to-tree.R +++ b/R/nested-to-tree.R @@ -66,13 +66,8 @@ create_node_from_nested <- function(pd_nested, parent, structure_only) { if (is.null(pd_nested)) { return() } - node_info <- create_node_info(pd_nested, structure_only) - - child_nodes <- - node_info %>% - map(parent$AddChild) - + child_nodes <- map(node_info, parent$AddChild) map2(pd_nested$child, child_nodes, create_node_from_nested, structure_only) } diff --git a/R/parse.R b/R/parse.R index 4ddbb72db..629203934 100644 --- a/R/parse.R +++ b/R/parse.R @@ -102,8 +102,7 @@ get_parse_data <- function(text, include_text = TRUE, ...) { )) } } - pd <- pd %>% - add_id_and_short() + pd <- add_id_and_short(pd) pd } diff --git a/R/roxygen-examples.R b/R/roxygen-examples.R index 242d422e1..588006df8 100644 --- a/R/roxygen-examples.R +++ b/R/roxygen-examples.R @@ -46,8 +46,7 @@ style_roxygen_code_example_one <- function(example_one, } ) } - unmasked %>% - add_roxygen_mask(example_one, bare$example_type) + add_roxygen_mask(unmasked, example_one, bare$example_type) } #' Style a roxygen code example segment @@ -118,8 +117,9 @@ style_roxygen_example_snippet <- function(code_snippet, ) ) if (!is_cached || !cache_is_active) { - code_snippet <- code_snippet %>% + code_snippet <- parse_transform_serialize_r( + code_snippet, transformers, base_indention = base_indention, warn_empty = FALSE, diff --git a/R/rules-spaces.R b/R/rules-spaces.R index f9dbb293f..580a0cdc7 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -58,14 +58,16 @@ style_space_around_math_token <- function(strict, zero, one, pd_flat) { # We remove spaces for zero (e.g., around ^ in the tidyverse style guide) # even for strict = FALSE to be consistent with the : operator if (any(pd_flat$token %in% zero)) { - pd_flat <- pd_flat %>% + pd_flat <- style_space_around_token( + pd_flat, strict = TRUE, tokens = zero, level_before = 0L, level_after = 0L ) } if (any(pd_flat$token %in% one)) { - pd_flat <- pd_flat %>% + pd_flat <- style_space_around_token( + pd_flat, strict = strict, tokens = one, level_before = 1L, level_after = 1L ) } diff --git a/R/rules-tokens.R b/R/rules-tokens.R index f36ba289a..1a2e857a4 100644 --- a/R/rules-tokens.R +++ b/R/rules-tokens.R @@ -81,8 +81,7 @@ wrap_if_else_while_for_fun_multi_line_in_curly <- function(pd, indent_by = 2L) { ) } if (is_conditional_expr(pd)) { - pd <- pd %>% - wrap_else_multiline_curly(indent_by, space_after = 0L) + pd <- wrap_else_multiline_curly(pd, indent_by, space_after = 0L) } pd } diff --git a/R/transform-files.R b/R/transform-files.R index a79c4a61b..c49c54cc6 100644 --- a/R/transform-files.R +++ b/R/transform-files.R @@ -119,8 +119,9 @@ make_transformer <- function(transformers, if (use_cache) { text } else { - transformed_code <- text %>% + transformed_code <- parse_transform_serialize_r( + text, transformers, base_indention = base_indention, warn_empty = warn_empty diff --git a/R/utils-cache.R b/R/utils-cache.R index 2465a51a2..6b57fb788 100644 --- a/R/utils-cache.R +++ b/R/utils-cache.R @@ -102,8 +102,10 @@ cache_make_key <- function(text, transformers, more_specs) { text = hash_standardize(text), style_guide_name = transformers$style_guide_name, style_guide_version = transformers$style_guide_version, - more_specs_style_guide = as.character(transformers$more_specs_style_guide) %>% - set_names(names(transformers$more_specs_style_guide)), + more_specs_style_guide = set_names( + as.character(transformers$more_specs_style_guide), + names(transformers$more_specs_style_guide) + ), more_specs = more_specs ) } @@ -157,8 +159,7 @@ cache_by_expression <- function(text, expressions <- parse(text = text, keep.source = TRUE) %>% utils::getParseData(includeText = TRUE) if (env_current$any_stylerignore) { - expressions <- expressions %>% - add_stylerignore() + expressions <- add_stylerignore(expressions) } else { expressions$stylerignore <- rep(FALSE, length(expressions$text)) } @@ -169,8 +170,11 @@ cache_by_expression <- function(text, # which the indention # was removed via parse, same as it is in cache_by_expression) and add the # base indention. - expressions[expressions$parent == 0L & expressions$token != "COMMENT" & !expressions$stylerignore, "text"] %>% - map(cache_write, transformers = transformers, more_specs) + map( + expressions[expressions$parent == 0L & expressions$token != "COMMENT" & !expressions$stylerignore, "text"], + cache_write, + transformers = transformers, more_specs + ) } From 4f5e30aef4ade8d1af68ebb32e2d6e8a84b199c0 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 16:19:51 +0100 Subject: [PATCH 030/238] clean more nesting issues --- R/io.R | 38 +++++++++++++++++++++----------------- R/utils.R | 5 ++--- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/R/io.R b/R/io.R index ea1b96d32..7d582b51f 100644 --- a/R/io.R +++ b/R/io.R @@ -31,30 +31,34 @@ transform_utf8_one <- function(path, fun, dry) { identical_content <- identical(file_with_info$text, new) identical <- identical_content && !file_with_info$missing_EOF_line_break if (!identical) { - if (dry == "fail") { - rlang::abort( - paste0( - "File `", path, "` would be modified by styler and argument dry", - " is set to 'fail'." - ), - class = "dryError" - ) - } else if (dry == "on") { - # don't do anything - } else if (dry == "off") { - write_utf8(new, path) - } else { - # not implemented - } + switch(dry, + "fail" = { + rlang::abort( + paste0( + "File `", path, "` would be modified by styler and argument dry", + " is set to 'fail'." + ), + class = "dryError" + ) + }, + "on" = { + # don't do anything + }, + "off" = { + write_utf8(new, path) + }, + { + # not implemented + } + ) } !identical }, error = function(e) { if (inherits(e, "dryError")) { rlang::abort(conditionMessage(e)) - } else { - warn(paste0("When processing ", path, ": ", conditionMessage(e))) } + warn(paste0("When processing ", path, ": ", conditionMessage(e))) NA } ) diff --git a/R/utils.R b/R/utils.R index e1a235469..6602efd75 100644 --- a/R/utils.R +++ b/R/utils.R @@ -117,11 +117,10 @@ calls_sys <- function(sys_call, ...) { #' option was not set. #' @keywords internal option_read <- function(x, default = NULL, error_if_not_found = TRUE) { - if (x %in% names(options()) || !error_if_not_found) { - getOption(x, default) - } else { + if (!(x %in% names(options())) && error_if_not_found) { rlang::abort(paste("R option", x, "must be set.")) } + getOption(x, default) } #' @keywords internal From 0daaede9310fa7207fbdca6621055268cf8faa43 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 16:33:30 +0100 Subject: [PATCH 031/238] clean keyword and brace related lints --- .lintr | 2 ++ R/io.R | 22 +++++++++------------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.lintr b/.lintr index 74b12b34c..75698f02c 100644 --- a/.lintr +++ b/.lintr @@ -8,6 +8,8 @@ linters: linters_with_tags( line_length_linter(120L), namespace_linter = NULL, nested_ifelse_linter = NULL, + # TODO: remove this once the lint message is fixed + nzchar_linter = NULL, object_name_linter = NULL, object_length_linter(70L), object_overwrite_linter = NULL, diff --git a/R/io.R b/R/io.R index 7d582b51f..26ad6d9fe 100644 --- a/R/io.R +++ b/R/io.R @@ -32,21 +32,17 @@ transform_utf8_one <- function(path, fun, dry) { identical <- identical_content && !file_with_info$missing_EOF_line_break if (!identical) { switch(dry, - "fail" = { - rlang::abort( - paste0( - "File `", path, "` would be modified by styler and argument dry", - " is set to 'fail'." - ), - class = "dryError" - ) - }, - "on" = { + fail = rlang::abort( + paste0( + "File `", path, "` would be modified by styler and argument dry", + " is set to 'fail'." + ), + class = "dryError" + ), + on = { # don't do anything }, - "off" = { - write_utf8(new, path) - }, + off = write_utf8(new, path), { # not implemented } From f8a12b6561a3fd7632b0c75b38a788fb573d6c55 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 3 Dec 2023 15:37:38 +0000 Subject: [PATCH 032/238] pre-commit --- inst/WORDLIST | 1 + 1 file changed, 1 insertion(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index 1e14ad162..9302ce870 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -145,6 +145,7 @@ NONINFRINGEMENT nonportable nph NUM +nzchar oldrel oneliner ORCID From 1288cccfa06b6c0bfc79f57bcc8a5fdc89e24ea8 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 16:39:12 +0100 Subject: [PATCH 033/238] move generation script to `tests/dev` folder --- {.dev => tests/dev}/gen_roxygen_tests.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {.dev => tests/dev}/gen_roxygen_tests.R (94%) diff --git a/.dev/gen_roxygen_tests.R b/tests/dev/gen_roxygen_tests.R similarity index 94% rename from .dev/gen_roxygen_tests.R rename to tests/dev/gen_roxygen_tests.R index 01ce7e436..d260e4797 100755 --- a/.dev/gen_roxygen_tests.R +++ b/tests/dev/gen_roxygen_tests.R @@ -1,5 +1,5 @@ #!/usr/bin/Rscript -# execute from package TLD: ./.dev/gen_roxygen_tests.R +# execute from package TLD: ./tests/dev/gen_roxygen_tests.R roxygen_stub <- "roxygen-examples-complete" all_examples <- list.files(file.path("tests", "testthat", roxygen_stub)) unique_tests <- unique(sub("-.*", "", all_examples)) From d835b15fb6f1be8633d75e9617033ada90238c0a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 16:46:20 +0100 Subject: [PATCH 034/238] Delete unused snapshot --- tests/testthat/_snaps/public_api.md | 54 ----------------------------- 1 file changed, 54 deletions(-) delete mode 100644 tests/testthat/_snaps/public_api.md diff --git a/tests/testthat/_snaps/public_api.md b/tests/testthat/_snaps/public_api.md deleted file mode 100644 index b55a037eb..000000000 --- a/tests/testthat/_snaps/public_api.md +++ /dev/null @@ -1,54 +0,0 @@ -# messages (via cat()) of style_file are correct - - Code - cat(catch_style_file_output(file.path("public-api", "xyzdir-dirty", - "dirty-sample-with-scope-tokens.R")), sep = "\n") - Output - Styling 1 files: - dirty-sample-with-scope-tokens.R i - ---------------------------------------- - Status Count Legend - v 0 File unchanged. - i 1 File changed. - x 0 Styling threw an error. - ---------------------------------------- - Please review the changes carefully! - ---- - - Code - cat(catch_style_file_output(file.path("public-api", "xyzdir-dirty", - "clean-sample-with-scope-tokens.R")), sep = "\n") - Output - Styling 1 files: - clean-sample-with-scope-tokens.R v - ---------------------------------------- - Status Count Legend - v 1 File unchanged. - i 0 File changed. - x 0 Styling threw an error. - ---------------------------------------- - ---- - - Code - cat(catch_style_file_output(file.path("public-api", "xyzdir-dirty", - "dirty-sample-with-scope-spaces.R")), sep = "\n") - Output - Styling 1 files: - dirty-sample-with-scope-spaces.R i - ---------------------------------------- - Status Count Legend - v 0 File unchanged. - i 1 File changed. - x 0 Styling threw an error. - ---------------------------------------- - Please review the changes carefully! - -# No sensitive to decimal option - - Code - style_text("1") - Output - 1 - From ae7b351a32919d6741096ef0565eea830c51f5b1 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 16:53:31 +0100 Subject: [PATCH 035/238] Delete URL check workflow --- .github/workflows/check-link-rot.yaml | 43 --------------------------- NEWS.md | 2 +- 2 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 .github/workflows/check-link-rot.yaml diff --git a/.github/workflows/check-link-rot.yaml b/.github/workflows/check-link-rot.yaml deleted file mode 100644 index 3d977b694..000000000 --- a/.github/workflows/check-link-rot.yaml +++ /dev/null @@ -1,43 +0,0 @@ -on: - pull_request: - branches: [main, master] - schedule: - # * is a special character in YAML so you have to quote this string - # Trigger once a month at 00:00 on the 1st day of the month. - - cron: "0 0 1 * *" - -name: check-link-rot - -jobs: - check-link-rot: - runs-on: ubuntu-latest - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - R_KEEP_PKG_SOURCE: yes - steps: - - uses: actions/checkout@v4 - - - uses: r-lib/actions/setup-pandoc@v2 - - - uses: r-lib/actions/setup-r@v2 - with: - r-version: "devel" - http-user-agent: "release" - use-public-rspm: true - - - uses: r-lib/actions/setup-r-dependencies@v2 - with: - pak-version: devel - extra-packages: | - any::rcmdcheck - any::urlchecker - - - name: Run URL checker - run: | - options(crayon.enabled = TRUE) - rotten_links <- urlchecker::url_check(progress = FALSE) - print(rotten_links) - if (length(rotten_links$URL) > 0L) { - stop("Some URLs are outdated and need to be updated.", call. = FALSE) - } - shell: Rscript {0} diff --git a/NEWS.md b/NEWS.md index d189fd61f..9e715f3d4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -161,7 +161,7 @@ A big shout out to anyone who contributed to this release: This release was requested by CRAN to resolve an R CMD Check note (#1044). A big hand to everyone who made this release possible: -[@DaveJarvis](https://github.com/DaveJarvis), +Dave Jarvis, [@IndrajeetPatil](https://github.com/IndrajeetPatil), [@lorenzwalthert](https://github.com/lorenzwalthert), [@MichaelChirico](https://github.com/MichaelChirico), From 30bee53cb8d55811b19d79ef5536a616b0c961bf Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 21:02:47 +0100 Subject: [PATCH 036/238] Update roxygen test comments --- tests/dev/{gen_roxygen_tests.R => generate_roxygen_tests.R} | 4 ++-- tests/testthat/test-roxygen-examples-complete-01.R | 2 +- tests/testthat/test-roxygen-examples-complete-02.R | 2 +- tests/testthat/test-roxygen-examples-complete-03.R | 2 +- tests/testthat/test-roxygen-examples-complete-04.R | 2 +- tests/testthat/test-roxygen-examples-complete-05.R | 2 +- tests/testthat/test-roxygen-examples-complete-06.R | 2 +- tests/testthat/test-roxygen-examples-complete-07.R | 2 +- tests/testthat/test-roxygen-examples-complete-08.R | 2 +- tests/testthat/test-roxygen-examples-complete-09.R | 2 +- tests/testthat/test-roxygen-examples-complete-10.R | 2 +- tests/testthat/test-roxygen-examples-complete-11.R | 2 +- tests/testthat/test-roxygen-examples-complete-12.R | 2 +- tests/testthat/test-roxygen-examples-complete-13.R | 2 +- tests/testthat/test-roxygen-examples-complete-14.R | 2 +- tests/testthat/test-roxygen-examples-complete-15.R | 2 +- tests/testthat/test-roxygen-examples-complete-16.R | 2 +- tests/testthat/test-roxygen-examples-complete-17.R | 2 +- tests/testthat/test-roxygen-examples-complete-18.R | 2 +- tests/testthat/test-roxygen-examples-complete-19.R | 2 +- tests/testthat/test-roxygen-examples-complete-20.R | 2 +- tests/testthat/test-roxygen-examples-complete-21.R | 2 +- tests/testthat/test-roxygen-examples-complete-22.R | 2 +- tests/testthat/test-roxygen-examples-complete-23.R | 2 +- tests/testthat/test-roxygen-examples-complete-24.R | 2 +- tests/testthat/test-roxygen-examples-complete-25.R | 2 +- tests/testthat/test-roxygen-examples-complete-26.R | 2 +- tests/testthat/test-roxygen-examples-complete-27.R | 2 +- tests/testthat/test-roxygen-examples-complete-28.R | 2 +- tests/testthat/test-roxygen-examples-complete-29.R | 2 +- 30 files changed, 31 insertions(+), 31 deletions(-) rename tests/dev/{gen_roxygen_tests.R => generate_roxygen_tests.R} (87%) diff --git a/tests/dev/gen_roxygen_tests.R b/tests/dev/generate_roxygen_tests.R similarity index 87% rename from tests/dev/gen_roxygen_tests.R rename to tests/dev/generate_roxygen_tests.R index d260e4797..e48e417b8 100755 --- a/tests/dev/gen_roxygen_tests.R +++ b/tests/dev/generate_roxygen_tests.R @@ -1,5 +1,5 @@ #!/usr/bin/Rscript -# execute from package TLD: ./tests/dev/gen_roxygen_tests.R +# execute from: ./tests/dev/generate_roxygen_tests.R roxygen_stub <- "roxygen-examples-complete" all_examples <- list.files(file.path("tests", "testthat", roxygen_stub)) unique_tests <- unique(sub("-.*", "", all_examples)) @@ -15,7 +15,7 @@ for (test in unique_tests) { condition <- condition_map[[test]] if (is.null(condition)) condition <- c("warning", "NA") writeLines(con = out_file, c( - "# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R.", + "# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R.", "", sprintf('test_that("analogous to test-%s: %s", {', roxygen_stub, test), sprintf( diff --git a/tests/testthat/test-roxygen-examples-complete-01.R b/tests/testthat/test-roxygen-examples-complete-01.R index 478217bbd..4fd7a6623 100644 --- a/tests/testthat/test-roxygen-examples-complete-01.R +++ b/tests/testthat/test-roxygen-examples-complete-01.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 01", { expect_warning(test_collection("roxygen-examples-complete", "^01-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-02.R b/tests/testthat/test-roxygen-examples-complete-02.R index 19bc51362..eb4df78e4 100644 --- a/tests/testthat/test-roxygen-examples-complete-02.R +++ b/tests/testthat/test-roxygen-examples-complete-02.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 02", { expect_warning(test_collection("roxygen-examples-complete", "^02-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-03.R b/tests/testthat/test-roxygen-examples-complete-03.R index 8a2d15512..9ed759d9d 100644 --- a/tests/testthat/test-roxygen-examples-complete-03.R +++ b/tests/testthat/test-roxygen-examples-complete-03.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 03", { expect_warning(test_collection("roxygen-examples-complete", "^03-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-04.R b/tests/testthat/test-roxygen-examples-complete-04.R index 87612f3e9..4546d35d2 100644 --- a/tests/testthat/test-roxygen-examples-complete-04.R +++ b/tests/testthat/test-roxygen-examples-complete-04.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 04", { expect_warning(test_collection("roxygen-examples-complete", "^04-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-05.R b/tests/testthat/test-roxygen-examples-complete-05.R index c93864dde..8175d376f 100644 --- a/tests/testthat/test-roxygen-examples-complete-05.R +++ b/tests/testthat/test-roxygen-examples-complete-05.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 05", { expect_warning(test_collection("roxygen-examples-complete", "^05-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-06.R b/tests/testthat/test-roxygen-examples-complete-06.R index e2e069183..bc0275c0b 100644 --- a/tests/testthat/test-roxygen-examples-complete-06.R +++ b/tests/testthat/test-roxygen-examples-complete-06.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 06", { expect_warning(test_collection("roxygen-examples-complete", "^06-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-07.R b/tests/testthat/test-roxygen-examples-complete-07.R index 7b3ac96ab..13cb25a03 100644 --- a/tests/testthat/test-roxygen-examples-complete-07.R +++ b/tests/testthat/test-roxygen-examples-complete-07.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 07", { expect_warning(test_collection("roxygen-examples-complete", "^07-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-08.R b/tests/testthat/test-roxygen-examples-complete-08.R index c1225c62b..81ea97b6f 100644 --- a/tests/testthat/test-roxygen-examples-complete-08.R +++ b/tests/testthat/test-roxygen-examples-complete-08.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 08", { expect_warning(test_collection("roxygen-examples-complete", "^08-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-09.R b/tests/testthat/test-roxygen-examples-complete-09.R index fe3d7b7ae..400f34894 100644 --- a/tests/testthat/test-roxygen-examples-complete-09.R +++ b/tests/testthat/test-roxygen-examples-complete-09.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 09", { expect_warning(test_collection("roxygen-examples-complete", "^09-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-10.R b/tests/testthat/test-roxygen-examples-complete-10.R index 98e23a915..3ff518b40 100644 --- a/tests/testthat/test-roxygen-examples-complete-10.R +++ b/tests/testthat/test-roxygen-examples-complete-10.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 10", { expect_warning(test_collection("roxygen-examples-complete", "^10-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-11.R b/tests/testthat/test-roxygen-examples-complete-11.R index 9bcd7a142..94d1f670d 100644 --- a/tests/testthat/test-roxygen-examples-complete-11.R +++ b/tests/testthat/test-roxygen-examples-complete-11.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 11", { expect_warning(test_collection("roxygen-examples-complete", "^11-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-12.R b/tests/testthat/test-roxygen-examples-complete-12.R index baddb8143..0b3251105 100644 --- a/tests/testthat/test-roxygen-examples-complete-12.R +++ b/tests/testthat/test-roxygen-examples-complete-12.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 12", { expect_warning(test_collection("roxygen-examples-complete", "^12-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-13.R b/tests/testthat/test-roxygen-examples-complete-13.R index c2a711fb6..8239835c4 100644 --- a/tests/testthat/test-roxygen-examples-complete-13.R +++ b/tests/testthat/test-roxygen-examples-complete-13.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 13", { expect_warning(test_collection("roxygen-examples-complete", "^13-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-14.R b/tests/testthat/test-roxygen-examples-complete-14.R index 9d9447335..44ce40e4c 100644 --- a/tests/testthat/test-roxygen-examples-complete-14.R +++ b/tests/testthat/test-roxygen-examples-complete-14.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 14", { expect_warning(test_collection("roxygen-examples-complete", "^14-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-15.R b/tests/testthat/test-roxygen-examples-complete-15.R index 2c309d95a..5914361df 100644 --- a/tests/testthat/test-roxygen-examples-complete-15.R +++ b/tests/testthat/test-roxygen-examples-complete-15.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 15", { expect_warning(test_collection("roxygen-examples-complete", "^15-", transformer = style_text, scope = "spaces"), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-16.R b/tests/testthat/test-roxygen-examples-complete-16.R index f15429d75..bebf64cd4 100644 --- a/tests/testthat/test-roxygen-examples-complete-16.R +++ b/tests/testthat/test-roxygen-examples-complete-16.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 16", { expect_warning(test_collection("roxygen-examples-complete", "^16-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-17.R b/tests/testthat/test-roxygen-examples-complete-17.R index 66cbf9b1a..875334179 100644 --- a/tests/testthat/test-roxygen-examples-complete-17.R +++ b/tests/testthat/test-roxygen-examples-complete-17.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 17", { expect_warning(test_collection("roxygen-examples-complete", "^17-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-18.R b/tests/testthat/test-roxygen-examples-complete-18.R index 814d057b0..291f64c01 100644 --- a/tests/testthat/test-roxygen-examples-complete-18.R +++ b/tests/testthat/test-roxygen-examples-complete-18.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 18", { expect_warning(test_collection("roxygen-examples-complete", "^18-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-19.R b/tests/testthat/test-roxygen-examples-complete-19.R index 93d205826..bf8786736 100644 --- a/tests/testthat/test-roxygen-examples-complete-19.R +++ b/tests/testthat/test-roxygen-examples-complete-19.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 19", { expect_warning(test_collection("roxygen-examples-complete", "^19-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-20.R b/tests/testthat/test-roxygen-examples-complete-20.R index 79ac89408..74722eca1 100644 --- a/tests/testthat/test-roxygen-examples-complete-20.R +++ b/tests/testthat/test-roxygen-examples-complete-20.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 20", { expect_warning(test_collection("roxygen-examples-complete", "^20-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-21.R b/tests/testthat/test-roxygen-examples-complete-21.R index 6e6fa4948..07fefc1e1 100644 --- a/tests/testthat/test-roxygen-examples-complete-21.R +++ b/tests/testthat/test-roxygen-examples-complete-21.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 21", { expect_warning(test_collection("roxygen-examples-complete", "^21-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-22.R b/tests/testthat/test-roxygen-examples-complete-22.R index 0e2c4334e..767d540f2 100644 --- a/tests/testthat/test-roxygen-examples-complete-22.R +++ b/tests/testthat/test-roxygen-examples-complete-22.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 22", { expect_warning(test_collection("roxygen-examples-complete", "^22-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-23.R b/tests/testthat/test-roxygen-examples-complete-23.R index ce1b5833a..cc06ca56d 100644 --- a/tests/testthat/test-roxygen-examples-complete-23.R +++ b/tests/testthat/test-roxygen-examples-complete-23.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 23", { expect_error(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), "issues/1242") diff --git a/tests/testthat/test-roxygen-examples-complete-24.R b/tests/testthat/test-roxygen-examples-complete-24.R index 7ceb13a83..c4796db5d 100644 --- a/tests/testthat/test-roxygen-examples-complete-24.R +++ b/tests/testthat/test-roxygen-examples-complete-24.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 24", { expect_warning(test_collection("roxygen-examples-complete", "^24-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-25.R b/tests/testthat/test-roxygen-examples-complete-25.R index f36b00424..57049d82e 100644 --- a/tests/testthat/test-roxygen-examples-complete-25.R +++ b/tests/testthat/test-roxygen-examples-complete-25.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 25", { expect_warning(test_collection("roxygen-examples-complete", "^25-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-26.R b/tests/testthat/test-roxygen-examples-complete-26.R index ee55bcd21..c3df6ca42 100644 --- a/tests/testthat/test-roxygen-examples-complete-26.R +++ b/tests/testthat/test-roxygen-examples-complete-26.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 26", { expect_warning(test_collection("roxygen-examples-complete", "^26-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-27.R b/tests/testthat/test-roxygen-examples-complete-27.R index 8dfa9e0b2..bd1e9f473 100644 --- a/tests/testthat/test-roxygen-examples-complete-27.R +++ b/tests/testthat/test-roxygen-examples-complete-27.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 27", { expect_warning(test_collection("roxygen-examples-complete", "^27-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-28.R b/tests/testthat/test-roxygen-examples-complete-28.R index d12fb6696..5cb2fc87a 100644 --- a/tests/testthat/test-roxygen-examples-complete-28.R +++ b/tests/testthat/test-roxygen-examples-complete-28.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 28", { expect_warning(test_collection("roxygen-examples-complete", "^28-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-29.R b/tests/testthat/test-roxygen-examples-complete-29.R index bf30fe968..8e909a86b 100644 --- a/tests/testthat/test-roxygen-examples-complete-29.R +++ b/tests/testthat/test-roxygen-examples-complete-29.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by .dev/gen_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 29", { expect_warning(test_collection("roxygen-examples-complete", "^29-", transformer = style_text), NA) From 1c5864691e5afbefcbf04241cb7ec5d4ba961fc1 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 21:04:40 +0100 Subject: [PATCH 037/238] correct relative path to the root --- tests/dev/generate_roxygen_tests.R | 2 +- tests/testthat/test-roxygen-examples-complete-01.R | 2 +- tests/testthat/test-roxygen-examples-complete-02.R | 2 +- tests/testthat/test-roxygen-examples-complete-03.R | 2 +- tests/testthat/test-roxygen-examples-complete-04.R | 2 +- tests/testthat/test-roxygen-examples-complete-05.R | 2 +- tests/testthat/test-roxygen-examples-complete-06.R | 2 +- tests/testthat/test-roxygen-examples-complete-07.R | 2 +- tests/testthat/test-roxygen-examples-complete-08.R | 2 +- tests/testthat/test-roxygen-examples-complete-09.R | 2 +- tests/testthat/test-roxygen-examples-complete-10.R | 2 +- tests/testthat/test-roxygen-examples-complete-11.R | 2 +- tests/testthat/test-roxygen-examples-complete-12.R | 2 +- tests/testthat/test-roxygen-examples-complete-13.R | 2 +- tests/testthat/test-roxygen-examples-complete-14.R | 2 +- tests/testthat/test-roxygen-examples-complete-15.R | 2 +- tests/testthat/test-roxygen-examples-complete-16.R | 2 +- tests/testthat/test-roxygen-examples-complete-17.R | 2 +- tests/testthat/test-roxygen-examples-complete-18.R | 2 +- tests/testthat/test-roxygen-examples-complete-19.R | 2 +- tests/testthat/test-roxygen-examples-complete-20.R | 2 +- tests/testthat/test-roxygen-examples-complete-21.R | 2 +- tests/testthat/test-roxygen-examples-complete-22.R | 2 +- tests/testthat/test-roxygen-examples-complete-23.R | 2 +- tests/testthat/test-roxygen-examples-complete-24.R | 2 +- tests/testthat/test-roxygen-examples-complete-25.R | 2 +- tests/testthat/test-roxygen-examples-complete-26.R | 2 +- tests/testthat/test-roxygen-examples-complete-27.R | 2 +- tests/testthat/test-roxygen-examples-complete-28.R | 2 +- tests/testthat/test-roxygen-examples-complete-29.R | 2 +- 30 files changed, 30 insertions(+), 30 deletions(-) diff --git a/tests/dev/generate_roxygen_tests.R b/tests/dev/generate_roxygen_tests.R index e48e417b8..27a47e123 100755 --- a/tests/dev/generate_roxygen_tests.R +++ b/tests/dev/generate_roxygen_tests.R @@ -15,7 +15,7 @@ for (test in unique_tests) { condition <- condition_map[[test]] if (is.null(condition)) condition <- c("warning", "NA") writeLines(con = out_file, c( - "# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R.", + "# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R.", "", sprintf('test_that("analogous to test-%s: %s", {', roxygen_stub, test), sprintf( diff --git a/tests/testthat/test-roxygen-examples-complete-01.R b/tests/testthat/test-roxygen-examples-complete-01.R index 4fd7a6623..6e6e65c9b 100644 --- a/tests/testthat/test-roxygen-examples-complete-01.R +++ b/tests/testthat/test-roxygen-examples-complete-01.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 01", { expect_warning(test_collection("roxygen-examples-complete", "^01-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-02.R b/tests/testthat/test-roxygen-examples-complete-02.R index eb4df78e4..b04e9dcb8 100644 --- a/tests/testthat/test-roxygen-examples-complete-02.R +++ b/tests/testthat/test-roxygen-examples-complete-02.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 02", { expect_warning(test_collection("roxygen-examples-complete", "^02-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-03.R b/tests/testthat/test-roxygen-examples-complete-03.R index 9ed759d9d..ce0a3222a 100644 --- a/tests/testthat/test-roxygen-examples-complete-03.R +++ b/tests/testthat/test-roxygen-examples-complete-03.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 03", { expect_warning(test_collection("roxygen-examples-complete", "^03-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-04.R b/tests/testthat/test-roxygen-examples-complete-04.R index 4546d35d2..cd2b273af 100644 --- a/tests/testthat/test-roxygen-examples-complete-04.R +++ b/tests/testthat/test-roxygen-examples-complete-04.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 04", { expect_warning(test_collection("roxygen-examples-complete", "^04-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-05.R b/tests/testthat/test-roxygen-examples-complete-05.R index 8175d376f..b6eb4381c 100644 --- a/tests/testthat/test-roxygen-examples-complete-05.R +++ b/tests/testthat/test-roxygen-examples-complete-05.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 05", { expect_warning(test_collection("roxygen-examples-complete", "^05-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-06.R b/tests/testthat/test-roxygen-examples-complete-06.R index bc0275c0b..7ea758c03 100644 --- a/tests/testthat/test-roxygen-examples-complete-06.R +++ b/tests/testthat/test-roxygen-examples-complete-06.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 06", { expect_warning(test_collection("roxygen-examples-complete", "^06-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-07.R b/tests/testthat/test-roxygen-examples-complete-07.R index 13cb25a03..e81ad2583 100644 --- a/tests/testthat/test-roxygen-examples-complete-07.R +++ b/tests/testthat/test-roxygen-examples-complete-07.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 07", { expect_warning(test_collection("roxygen-examples-complete", "^07-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-08.R b/tests/testthat/test-roxygen-examples-complete-08.R index 81ea97b6f..8b5ed8bd4 100644 --- a/tests/testthat/test-roxygen-examples-complete-08.R +++ b/tests/testthat/test-roxygen-examples-complete-08.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 08", { expect_warning(test_collection("roxygen-examples-complete", "^08-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-09.R b/tests/testthat/test-roxygen-examples-complete-09.R index 400f34894..464b937ca 100644 --- a/tests/testthat/test-roxygen-examples-complete-09.R +++ b/tests/testthat/test-roxygen-examples-complete-09.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 09", { expect_warning(test_collection("roxygen-examples-complete", "^09-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-10.R b/tests/testthat/test-roxygen-examples-complete-10.R index 3ff518b40..125bee5e2 100644 --- a/tests/testthat/test-roxygen-examples-complete-10.R +++ b/tests/testthat/test-roxygen-examples-complete-10.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 10", { expect_warning(test_collection("roxygen-examples-complete", "^10-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-11.R b/tests/testthat/test-roxygen-examples-complete-11.R index 94d1f670d..041683ea9 100644 --- a/tests/testthat/test-roxygen-examples-complete-11.R +++ b/tests/testthat/test-roxygen-examples-complete-11.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 11", { expect_warning(test_collection("roxygen-examples-complete", "^11-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-12.R b/tests/testthat/test-roxygen-examples-complete-12.R index 0b3251105..7cdb1af67 100644 --- a/tests/testthat/test-roxygen-examples-complete-12.R +++ b/tests/testthat/test-roxygen-examples-complete-12.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 12", { expect_warning(test_collection("roxygen-examples-complete", "^12-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-13.R b/tests/testthat/test-roxygen-examples-complete-13.R index 8239835c4..0bd1d9a63 100644 --- a/tests/testthat/test-roxygen-examples-complete-13.R +++ b/tests/testthat/test-roxygen-examples-complete-13.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 13", { expect_warning(test_collection("roxygen-examples-complete", "^13-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-14.R b/tests/testthat/test-roxygen-examples-complete-14.R index 44ce40e4c..a93c20704 100644 --- a/tests/testthat/test-roxygen-examples-complete-14.R +++ b/tests/testthat/test-roxygen-examples-complete-14.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 14", { expect_warning(test_collection("roxygen-examples-complete", "^14-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-15.R b/tests/testthat/test-roxygen-examples-complete-15.R index 5914361df..243697af7 100644 --- a/tests/testthat/test-roxygen-examples-complete-15.R +++ b/tests/testthat/test-roxygen-examples-complete-15.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 15", { expect_warning(test_collection("roxygen-examples-complete", "^15-", transformer = style_text, scope = "spaces"), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-16.R b/tests/testthat/test-roxygen-examples-complete-16.R index bebf64cd4..40b577824 100644 --- a/tests/testthat/test-roxygen-examples-complete-16.R +++ b/tests/testthat/test-roxygen-examples-complete-16.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 16", { expect_warning(test_collection("roxygen-examples-complete", "^16-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-17.R b/tests/testthat/test-roxygen-examples-complete-17.R index 875334179..cd8f2ee19 100644 --- a/tests/testthat/test-roxygen-examples-complete-17.R +++ b/tests/testthat/test-roxygen-examples-complete-17.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 17", { expect_warning(test_collection("roxygen-examples-complete", "^17-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-18.R b/tests/testthat/test-roxygen-examples-complete-18.R index 291f64c01..53497fe61 100644 --- a/tests/testthat/test-roxygen-examples-complete-18.R +++ b/tests/testthat/test-roxygen-examples-complete-18.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 18", { expect_warning(test_collection("roxygen-examples-complete", "^18-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-19.R b/tests/testthat/test-roxygen-examples-complete-19.R index bf8786736..26d44dd98 100644 --- a/tests/testthat/test-roxygen-examples-complete-19.R +++ b/tests/testthat/test-roxygen-examples-complete-19.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 19", { expect_warning(test_collection("roxygen-examples-complete", "^19-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-20.R b/tests/testthat/test-roxygen-examples-complete-20.R index 74722eca1..8ea8533b0 100644 --- a/tests/testthat/test-roxygen-examples-complete-20.R +++ b/tests/testthat/test-roxygen-examples-complete-20.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 20", { expect_warning(test_collection("roxygen-examples-complete", "^20-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-21.R b/tests/testthat/test-roxygen-examples-complete-21.R index 07fefc1e1..2531a16cb 100644 --- a/tests/testthat/test-roxygen-examples-complete-21.R +++ b/tests/testthat/test-roxygen-examples-complete-21.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 21", { expect_warning(test_collection("roxygen-examples-complete", "^21-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-22.R b/tests/testthat/test-roxygen-examples-complete-22.R index 767d540f2..087415675 100644 --- a/tests/testthat/test-roxygen-examples-complete-22.R +++ b/tests/testthat/test-roxygen-examples-complete-22.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 22", { expect_warning(test_collection("roxygen-examples-complete", "^22-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-23.R b/tests/testthat/test-roxygen-examples-complete-23.R index cc06ca56d..79472b937 100644 --- a/tests/testthat/test-roxygen-examples-complete-23.R +++ b/tests/testthat/test-roxygen-examples-complete-23.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 23", { expect_error(test_collection("roxygen-examples-complete", "^23-", transformer = style_text), "issues/1242") diff --git a/tests/testthat/test-roxygen-examples-complete-24.R b/tests/testthat/test-roxygen-examples-complete-24.R index c4796db5d..af6550d67 100644 --- a/tests/testthat/test-roxygen-examples-complete-24.R +++ b/tests/testthat/test-roxygen-examples-complete-24.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 24", { expect_warning(test_collection("roxygen-examples-complete", "^24-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-25.R b/tests/testthat/test-roxygen-examples-complete-25.R index 57049d82e..88412a341 100644 --- a/tests/testthat/test-roxygen-examples-complete-25.R +++ b/tests/testthat/test-roxygen-examples-complete-25.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 25", { expect_warning(test_collection("roxygen-examples-complete", "^25-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-26.R b/tests/testthat/test-roxygen-examples-complete-26.R index c3df6ca42..6d741da8b 100644 --- a/tests/testthat/test-roxygen-examples-complete-26.R +++ b/tests/testthat/test-roxygen-examples-complete-26.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 26", { expect_warning(test_collection("roxygen-examples-complete", "^26-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-27.R b/tests/testthat/test-roxygen-examples-complete-27.R index bd1e9f473..ef2beb0fa 100644 --- a/tests/testthat/test-roxygen-examples-complete-27.R +++ b/tests/testthat/test-roxygen-examples-complete-27.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 27", { expect_warning(test_collection("roxygen-examples-complete", "^27-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-28.R b/tests/testthat/test-roxygen-examples-complete-28.R index 5cb2fc87a..bdc2d75fa 100644 --- a/tests/testthat/test-roxygen-examples-complete-28.R +++ b/tests/testthat/test-roxygen-examples-complete-28.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 28", { expect_warning(test_collection("roxygen-examples-complete", "^28-", transformer = style_text), NA) diff --git a/tests/testthat/test-roxygen-examples-complete-29.R b/tests/testthat/test-roxygen-examples-complete-29.R index 8e909a86b..354b791fd 100644 --- a/tests/testthat/test-roxygen-examples-complete-29.R +++ b/tests/testthat/test-roxygen-examples-complete-29.R @@ -1,4 +1,4 @@ -# NB: DO NOT EDIT. Auto-generated by tests/dev/generate_roxygen_tests.R. +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 29", { expect_warning(test_collection("roxygen-examples-complete", "^29-", transformer = style_text), NA) From dc606ef9c03ba8c96df42e0a64c7e81f721ed453 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 21:51:51 +0100 Subject: [PATCH 038/238] Remove outdated test about repeated parsing cf. #1161 --- tests/testthat/parsing/repeated_parsing-in.R | 21 --- .../testthat/parsing/repeated_parsing-in_tree | 152 ------------------ tests/testthat/parsing/repeated_parsing-out.R | 21 --- tests/testthat/test-parsing.R | 27 ---- 4 files changed, 221 deletions(-) delete mode 100644 tests/testthat/parsing/repeated_parsing-in.R delete mode 100644 tests/testthat/parsing/repeated_parsing-in_tree delete mode 100644 tests/testthat/parsing/repeated_parsing-out.R diff --git a/tests/testthat/parsing/repeated_parsing-in.R b/tests/testthat/parsing/repeated_parsing-in.R deleted file mode 100644 index 28d1e49c0..000000000 --- a/tests/testthat/parsing/repeated_parsing-in.R +++ /dev/null @@ -1,21 +0,0 @@ -# -# -# -r <- function(y, s, g = 10) { - b("", "") - - # - q <- g(d(i), function(i) { - d(op(t[[p]]), n(i = i)) - }) - f(calls) <- f(g) - - mb <- j(c( - q(a::b), r, - y(u = 1) - )) - k(b) -} - -# -# diff --git a/tests/testthat/parsing/repeated_parsing-in_tree b/tests/testthat/parsing/repeated_parsing-in_tree deleted file mode 100644 index c43c3b88e..000000000 --- a/tests/testthat/parsing/repeated_parsing-in_tree +++ /dev/null @@ -1,152 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # [0/0] {1} - ¦--COMMENT: # [1/0] {2} - ¦--COMMENT: # [1/0] {3} - ¦--expr: r <- [1/0] {4} - ¦ ¦--expr: r [0/1] {6} - ¦ ¦ °--SYMBOL: r [0/0] {5} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {7} - ¦ °--expr: funct [0/0] {8} - ¦ ¦--FUNCTION: funct [0/0] {9} - ¦ ¦--'(': ( [0/0] {10} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {11} - ¦ ¦--',': , [0/1] {12} - ¦ ¦--SYMBOL_FORMALS: s [0/0] {13} - ¦ ¦--',': , [0/1] {14} - ¦ ¦--SYMBOL_FORMALS: g [0/1] {15} - ¦ ¦--EQ_FORMALS: = [0/1] {16} - ¦ ¦--expr: 10 [0/0] {18} - ¦ ¦ °--NUM_CONST: 10 [0/0] {17} - ¦ ¦--')': ) [0/1] {19} - ¦ °--expr: { - b [0/0] {20} - ¦ ¦--'{': { [0/2] {21} - ¦ ¦--expr: b("", [1/2] {22} - ¦ ¦ ¦--expr: b [0/0] {24} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {23} - ¦ ¦ ¦--'(': ( [0/0] {25} - ¦ ¦ ¦--expr: "" [0/0] {27} - ¦ ¦ ¦ °--STR_CONST: "" [0/0] {26} - ¦ ¦ ¦--',': , [0/1] {28} - ¦ ¦ ¦--expr: "" [0/0] {30} - ¦ ¦ ¦ °--STR_CONST: "" [0/0] {29} - ¦ ¦ °--')': ) [0/0] {31} - ¦ ¦--COMMENT: # [2/2] {32} - ¦ ¦--expr: q <- [1/2] {33} - ¦ ¦ ¦--expr: q [0/1] {35} - ¦ ¦ ¦ °--SYMBOL: q [0/0] {34} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {36} - ¦ ¦ °--expr: g(d(i [0/0] {37} - ¦ ¦ ¦--expr: g [0/0] {39} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {38} - ¦ ¦ ¦--'(': ( [0/0] {40} - ¦ ¦ ¦--expr: d(i) [0/0] {41} - ¦ ¦ ¦ ¦--expr: d [0/0] {43} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {42} - ¦ ¦ ¦ ¦--'(': ( [0/0] {44} - ¦ ¦ ¦ ¦--expr: i [0/0] {46} - ¦ ¦ ¦ ¦ °--SYMBOL: i [0/0] {45} - ¦ ¦ ¦ °--')': ) [0/0] {47} - ¦ ¦ ¦--',': , [0/1] {48} - ¦ ¦ ¦--expr: funct [0/0] {49} - ¦ ¦ ¦ ¦--FUNCTION: funct [0/0] {50} - ¦ ¦ ¦ ¦--'(': ( [0/0] {51} - ¦ ¦ ¦ ¦--SYMBOL_FORMALS: i [0/0] {52} - ¦ ¦ ¦ ¦--')': ) [0/1] {53} - ¦ ¦ ¦ °--expr: { - [0/0] {54} - ¦ ¦ ¦ ¦--'{': { [0/4] {55} - ¦ ¦ ¦ ¦--expr: d(op( [1/2] {56} - ¦ ¦ ¦ ¦ ¦--expr: d [0/0] {58} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {57} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {59} - ¦ ¦ ¦ ¦ ¦--expr: op(t[ [0/0] {60} - ¦ ¦ ¦ ¦ ¦ ¦--expr: op [0/0] {62} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: op [0/0] {61} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {63} - ¦ ¦ ¦ ¦ ¦ ¦--expr: t[[p] [0/0] {64} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: t [0/0] {66} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: t [0/0] {65} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--LBB: [[ [0/0] {67} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: p [0/0] {69} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: p [0/0] {68} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--']': ] [0/0] {70} - ¦ ¦ ¦ ¦ ¦ ¦ °--']': ] [0/0] {71} - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {72} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {73} - ¦ ¦ ¦ ¦ ¦--expr: n(i = [0/0] {74} - ¦ ¦ ¦ ¦ ¦ ¦--expr: n [0/0] {76} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {75} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {77} - ¦ ¦ ¦ ¦ ¦ ¦--SYMBOL_SUB: i [0/1] {78} - ¦ ¦ ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {79} - ¦ ¦ ¦ ¦ ¦ ¦--expr: i [0/0] {81} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: i [0/0] {80} - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {82} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {83} - ¦ ¦ ¦ °--'}': } [1/0] {84} - ¦ ¦ °--')': ) [0/0] {85} - ¦ ¦--expr: f(cal [1/2] {86} - ¦ ¦ ¦--expr: f(cal [0/1] {87} - ¦ ¦ ¦ ¦--expr: f [0/0] {89} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {88} - ¦ ¦ ¦ ¦--'(': ( [0/0] {90} - ¦ ¦ ¦ ¦--expr: calls [0/0] {92} - ¦ ¦ ¦ ¦ °--SYMBOL: calls [0/0] {91} - ¦ ¦ ¦ °--')': ) [0/0] {93} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {94} - ¦ ¦ °--expr: f(g) [0/0] {95} - ¦ ¦ ¦--expr: f [0/0] {97} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {96} - ¦ ¦ ¦--'(': ( [0/0] {98} - ¦ ¦ ¦--expr: g [0/0] {100} - ¦ ¦ ¦ °--SYMBOL: g [0/0] {99} - ¦ ¦ °--')': ) [0/0] {101} - ¦ ¦--expr: mb <- [2/2] {102} - ¦ ¦ ¦--expr: mb [0/1] {104} - ¦ ¦ ¦ °--SYMBOL: mb [0/0] {103} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {105} - ¦ ¦ °--expr: j(c( - [0/0] {106} - ¦ ¦ ¦--expr: j [0/0] {108} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: j [0/0] {107} - ¦ ¦ ¦--'(': ( [0/0] {109} - ¦ ¦ ¦--expr: c( - [0/0] {110} - ¦ ¦ ¦ ¦--expr: c [0/0] {112} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {111} - ¦ ¦ ¦ ¦--'(': ( [0/4] {113} - ¦ ¦ ¦ ¦--expr: q(a:: [1/0] {114} - ¦ ¦ ¦ ¦ ¦--expr: q [0/0] {116} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {115} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {117} - ¦ ¦ ¦ ¦ ¦--expr: a::b [0/0] {118} - ¦ ¦ ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: a [0/0] {119} - ¦ ¦ ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {120} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: b [0/0] {121} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {122} - ¦ ¦ ¦ ¦--',': , [0/1] {123} - ¦ ¦ ¦ ¦--expr: r [0/0] {125} - ¦ ¦ ¦ ¦ °--SYMBOL: r [0/0] {124} - ¦ ¦ ¦ ¦--',': , [0/4] {126} - ¦ ¦ ¦ ¦--expr: y(u = [1/2] {127} - ¦ ¦ ¦ ¦ ¦--expr: y [0/0] {129} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: y [0/0] {128} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {130} - ¦ ¦ ¦ ¦ ¦--SYMBOL_SUB: u [0/1] {131} - ¦ ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {132} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {134} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {133} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {135} - ¦ ¦ ¦ °--')': ) [1/0] {136} - ¦ ¦ °--')': ) [0/0] {137} - ¦ ¦--expr: k(b) [1/0] {138} - ¦ ¦ ¦--expr: k [0/0] {140} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {139} - ¦ ¦ ¦--'(': ( [0/0] {141} - ¦ ¦ ¦--expr: b [0/0] {143} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {142} - ¦ ¦ °--')': ) [0/0] {144} - ¦ °--'}': } [1/0] {145} - ¦--COMMENT: # [2/0] {146} - °--COMMENT: # [1/0] {147} diff --git a/tests/testthat/parsing/repeated_parsing-out.R b/tests/testthat/parsing/repeated_parsing-out.R deleted file mode 100644 index 28d1e49c0..000000000 --- a/tests/testthat/parsing/repeated_parsing-out.R +++ /dev/null @@ -1,21 +0,0 @@ -# -# -# -r <- function(y, s, g = 10) { - b("", "") - - # - q <- g(d(i), function(i) { - d(op(t[[p]]), n(i = i)) - }) - f(calls) <- f(g) - - mb <- j(c( - q(a::b), r, - y(u = 1) - )) - k(b) -} - -# -# diff --git a/tests/testthat/test-parsing.R b/tests/testthat/test-parsing.R index f64314009..f0a7bfcc4 100644 --- a/tests/testthat/test-parsing.R +++ b/tests/testthat/test-parsing.R @@ -1,30 +1,3 @@ -test_that("repreated parsing solves wrong parent assignment", { - expect_warning( - test_collection( - "parsing", "repeated_parsing", - transformer = style_text, - strict = FALSE - ), - NA - ) - - # move to temp dir - dir <- tempfile("styler") - dir.create(dir) - path_temp <- file.path(dir, "repeated_parsing-in.R") - path_perm <- testthat_file("parsing", "repeated_parsing-in.R") - file.copy(path_perm, dir) - - sys_call <- paste0( - "R -q -e \"styler::cache_deactivate(); styler::style_file(\\\"", path_temp, "\\\")\"" - ) - calls_sys(sys_call, intern = FALSE, ignore.stdout = TRUE, ignore.stderr = TRUE) - ref <- read_utf8_bare(testthat_file("parsing", "repeated_parsing-out.R")) - result <- read_utf8_bare(path_temp) - expect_equal(ref, result) - unlink(dir) -}) - test_that("long strings are parsed correctly", { expect_warning( test_collection("parsing", "long_strings", transformer = style_text), From cbe4769b7dce2ee172595865853e537965897ee6 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 3 Dec 2023 22:08:23 +0100 Subject: [PATCH 039/238] Clean up unnecessary YAML front matter in README --- README.Rmd | 7 +------ README.md | 12 ++++++------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/README.Rmd b/README.Rmd index 14fa12a86..5a6d5f59a 100644 --- a/README.Rmd +++ b/README.Rmd @@ -1,10 +1,5 @@ --- -output: - github_document: - html_preview: true -editor_options: - markdown: - wrap: 79 +output: github_document --- diff --git a/README.md b/README.md index 08213d935..dd25e5930 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ can direct your attention to the content of your code. It helps to keep the coding style consistent across projects and facilitate collaboration. You can access styler through -- the RStudio Addin as demonstrated below -- R functions like `style_pkg()`, `style_file()` or `style_text()` -- various other tools described in - `vignette("third-party-integrations")` +- the RStudio Addin as demonstrated below +- R functions like `style_pkg()`, `style_file()` or `style_text()` +- various other tools described in + `vignette("third-party-integrations")` @@ -50,6 +50,6 @@ remotes::install_github("r-lib/styler") The following online docs are available: -- [latest CRAN release](https://styler.r-lib.org). +- [latest CRAN release](https://styler.r-lib.org). -- [GitHub development version](https://styler.r-lib.org/dev/). +- [GitHub development version](https://styler.r-lib.org/dev/). From 62c4800313195f6037b41e0b8f6b5aa711d7d451 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 03:04:30 +0000 Subject: [PATCH 040/238] Bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.4.3 to 4.5.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.4.3...v4.5.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 48e1d1dc7..921325d8e 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.5.0 with: clean: false branch: gh-pages From ee2b7c8def88c7edbefd1bc6f4c64282c9463a18 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 4 Dec 2023 09:22:54 +0100 Subject: [PATCH 041/238] Fix new lints about implicit return --- R/detect-alignment-utils.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/detect-alignment-utils.R b/R/detect-alignment-utils.R index 50e1b07f7..caed586d7 100644 --- a/R/detect-alignment-utils.R +++ b/R/detect-alignment-utils.R @@ -153,9 +153,9 @@ alignment_serialize_line <- function(relevant_pd_by_line, column) { alignment_serialize <- function(pd_sub) { out <- Map(function(terminal, text, child, spaces, newlines) { if (terminal) { - return(paste0(text, rep_char(" ", spaces))) + paste0(text, rep_char(" ", spaces)) } else { - return(paste0(alignment_serialize(child), rep_char(" ", spaces))) + paste0(alignment_serialize(child), rep_char(" ", spaces)) } }, pd_sub$terminal, pd_sub$text, pd_sub$child, pd_sub$spaces, pd_sub$newlines) if (anyNA(out)) { From ff8f6a30c5e961ff2572d09755536208ff17f63c Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 4 Dec 2023 20:30:17 +0100 Subject: [PATCH 042/238] retain Visual editor relevant fields in YAML --- README.Rmd | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.Rmd b/README.Rmd index 5a6d5f59a..314230e53 100644 --- a/README.Rmd +++ b/README.Rmd @@ -1,5 +1,8 @@ --- output: github_document +editor_options: + markdown: + wrap: 79 --- From aac55d7bc2dd9de69ed4d950164f3214c7117fe4 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 8 Dec 2023 08:52:32 +0100 Subject: [PATCH 043/238] suppress warning in test-io Closes #1161 --- tests/testthat/test-io.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test-io.R b/tests/testthat/test-io.R index 6195fd52d..89fca4dff 100644 --- a/tests/testthat/test-io.R +++ b/tests/testthat/test-io.R @@ -6,8 +6,10 @@ test_that("non-ASCII characters are handled properly for text styling", { test_that("non-ASCII characters are handled properly for file styling", { - skip_if(.Platform$OS.type != "windows") - + # to avoid warnings + # on unix: 'OS reports request to set locale to "English_United States.1252" cannot be honored' + # on win: 'using locale code page other than 65001 ("UTF-8") may cause problems' + withr::local_options(list(warn = -1L)) withr::with_locale( c(LC_CTYPE = "English_United States.1252"), { From 4c2c0aba0eb0afb0185f4c1c6c86ec45da4198b5 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 8 Dec 2023 18:12:42 +0100 Subject: [PATCH 044/238] relax benchmarking test --- tests/testthat/tests-cache-require-serial.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/testthat/tests-cache-require-serial.R b/tests/testthat/tests-cache-require-serial.R index ae7226b3c..ca0807866 100644 --- a/tests/testthat/tests-cache-require-serial.R +++ b/tests/testthat/tests-cache-require-serial.R @@ -25,7 +25,7 @@ test_that("top-level test: Caches top-level expressions efficiently on style_tex partially_cached_benchmark["elapsed"] * 1.5, not_cached_benchmark["elapsed"] ) - expect_lt(full_cached_benchmark["elapsed"] * 30, benchmark["elapsed"]) + expect_lt(full_cached_benchmark["elapsed"] * 20, benchmark["elapsed"]) }) From 37367613ffe9c037552132b2514da90a1baefd06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 03:13:22 +0000 Subject: [PATCH 045/238] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 14b388dea..e90c6ff25 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -30,7 +30,7 @@ jobs: # your system installation code here # sudo apt-get install -y libcurl4-openssl-dev - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.9" architecture: "x64" From 60b19a4452e489a41104c074b44990cb073c5cea Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 22 Dec 2023 14:34:47 +0100 Subject: [PATCH 046/238] initial sticker draft Closes #516 --- .Rbuildignore | 1 + README.Rmd | 5 +++++ README.md | 7 +++++++ hextools/hexsticker.R | 46 ++++++++++++++++++++++++++++++++++++++++++ hextools/logo.png | Bin 0 -> 121410 bytes hextools/suit.png | Bin 0 -> 30417 bytes man/figures/logo.png | Bin 0 -> 121410 bytes 7 files changed, 59 insertions(+) create mode 100644 hextools/hexsticker.R create mode 100644 hextools/logo.png create mode 100644 hextools/suit.png create mode 100644 man/figures/logo.png diff --git a/.Rbuildignore b/.Rbuildignore index cbf4dd311..0a9543250 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -17,6 +17,7 @@ ^doc$ ^docs$ ^gitsum$ +^hextools ^inst/WORDLIST$ ^inst/hooks/.*$ ^revdep$ diff --git a/README.Rmd b/README.Rmd index 314230e53..059d55dff 100644 --- a/README.Rmd +++ b/README.Rmd @@ -68,3 +68,8 @@ The following online docs are available: - [latest CRAN release](https://styler.r-lib.org). - [GitHub development version](https://styler.r-lib.org/dev/). + +## Acknowledgments + +Hex sticker font is [Gayathri](https://fonts.google.com/specimen/Gayathri), and the image is taken from icon made by [Freepik](https://www.freepik.com) and available at +[flaticon.com](https://www.flaticon.com/free-icon/suit_1355137). diff --git a/README.md b/README.md index dd25e5930..d882eefe7 100644 --- a/README.md +++ b/README.md @@ -53,3 +53,10 @@ The following online docs are available: - [latest CRAN release](https://styler.r-lib.org). - [GitHub development version](https://styler.r-lib.org/dev/). + +## Acknowledgments + +Hex sticker font is +[Gayathri](https://fonts.google.com/specimen/Gayathri), and the image is +taken from icon made by [Freepik](https://www.freepik.com) and available +at [flaticon.com](https://www.flaticon.com/free-icon/suit_1355137). diff --git a/hextools/hexsticker.R b/hextools/hexsticker.R new file mode 100644 index 000000000..4239d9109 --- /dev/null +++ b/hextools/hexsticker.R @@ -0,0 +1,46 @@ +library(hexSticker) +library(magick) +library(showtext) +library(sysfonts) + +# Loading Google fonts (http://www.google.com/fonts) +google_font_name <- "Gayathri" +font_add_google(google_font_name) + +# Automatically use showtext to render text for future devices +showtext_auto() + +project_root <- here::here() + +# https://www.flaticon.com/free-icon/suit_1355137 +image <- image_read(file.path(project_root, "hextools", "suit.png")) + +sticker( + # image + subplot = image, + s_x = 1.1, + s_y = 1, + s_width = 1, + s_height = 1.2, + # package name + package = "styler", + p_color = "#F6ECA9", + p_family = google_font_name, + p_size = 58, + p_x = 0.35, + p_y = 0.95, + angle = 90, + # image + h_color = "white", + h_fill = "#11235A", + # package URL + url = " https://styler.r-lib.org/", + u_size = 10, + u_color = "#F6ECA9", + # saving sticker + filename = file.path(project_root, "hextools", "logo.png"), + dpi = 600, +) + +manual_logo_path <- file.path(project_root, "man", "figures", "logo.png") +fs::file_move("logo.png", manual_logo_path) diff --git a/hextools/logo.png b/hextools/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..90f659b4b1bdbd7367adf66d14a690a89291b1bf GIT binary patch literal 121410 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 literal 0 HcmV?d00001 diff --git a/hextools/suit.png b/hextools/suit.png new file mode 100644 index 0000000000000000000000000000000000000000..21b1155fac1c677b8406c2b5866703b37aff0e0b GIT binary patch literal 30417 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

CD4@)w*iO=iS5&#&Salg46iq)i`Af^X7K(31<8I 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 #N= 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 literal 0 HcmV?d00001 diff --git a/man/figures/logo.png b/man/figures/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..90f659b4b1bdbd7367adf66d14a690a89291b1bf GIT binary patch literal 121410 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 literal 0 HcmV?d00001 From 07b97d6e6240ecd0b2085a51888ee4f00d3b2ca9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 22 Dec 2023 13:39:10 +0000 Subject: [PATCH 047/238] pre-commit --- inst/WORDLIST | 1305 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1305 insertions(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index 9302ce870..b87b8e1bb 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,27 +1,163 @@ +݉ +֛ +۪ +ۜ +֡ +֚ +݀ +ۡ +ۢ +ۘ +֣ +֭ +ﹳ +֞ +֯ +̓ +҅ +̄ +̍ +͝ +҄ +̎ +͆ +͌ +݆ +̖ +̼ +̬ +̝ +͎ +̵ +̑ +̤ +̮ +̱ +ְ +ֶ +ָ +ֿ +َ +ٗ +ܰ +ܱ +ܾ +ʺ +a֮ +ͣ +ª +ă +ǎ +Ǻ +Ǡ +ַa +aa +aai +aaq +aD addin Addin addins Addins +aDr +aee +aEJ +af +aF +Af +aH +ai +aiy +aj +AJ +AJ휲 +ak +Akݩr +al +annv +ÃO +aP api +aPi AppVeyor apriori +AQ +aR arg +aS AsIs AST +AUQ aut autothresholdr +aYVn +Aἃ'r +Aϙ +aЀ +aدi +̸aݨQů +͘B +ba backport +bb +bd +Bd +BD +BDD bdr benchmarking +BFD +BFDaLo +BFE +Bh +BHOj +BǏ biocthis +Bj +bM +bm̺ +Bmo bootswatch +bp +bP +Bp +Bq +BQ +BQΠA +br +bS +Bs BugReports +bv +Bv +bw +Bz +ƀA +ɓR +ɓۯ cancelling +caqy +cb +ccƕ +ͨD +Cɖ +cF cff +cG +cǦ chnages ci +cI +cj +cjjj +CKC +cL cli CMD +cMӠ +cN +Cn +cO codebase codecov codegrip @@ -33,71 +169,321 @@ CONST counterpair coventions covr +cp +CPˍ cpp +cq +cQ +Cř cran cre +ĉS ctb +cU +cv +cW +cx +CX +CY cyclocomp cynkra +C̯yX +cZ +cٱ +cڰ +֤D +ͩ +ď +d̏ +ð +dA +Da datastructures +dCTg +DDD +DDDDDDd +DDDDDDD +DDDDDDf +DDr +dE dec dependabot deps desc dev devtools +Df +dfk +DG +Dgڡo +di +Dį dir +dJ +Dj +dk +DK +ͩmK docsearch dont dontrun dontshow dontshowdontrun donttest +dow dplyr +DQ +DQD +dR +dri DSLs +dt +dT +Dv +DW +dY +Dyd +dyÏ +dYn +DZ +ʥ +Ê +ė +Ę +E'x +eA +EAj +eAp +Eb +EB +EDDDDDdY +ee +ef +eF +E͜fA +ei +EĪ +eJ +ek +eKE +el +eLMf +eɫ emacs emph env +eǑ EOF EOL EOLs +ep epigraphdb eq EQ +EQH +EQQ +eS +Et +eu +ĒU eval +ͤW +eWe +eWm examplesIf exampletestr +EXD expr expr EQ +ey +eY +EY +eYhL +eݎ +Ǝm +Ə +Ɛ +ɘ +ɚ +ɞ +ٕf fansi +FB +FBfq +Fc +FDD +FDnr +FfjBޕ +fgq +fGQJ +fh +fHH +FI fileext filetype +flaticon +fm forcond formatter +fp +fP +FP +fq +Fq +Freepik +FRk +fs +fS +FS +fT +fu funct +fv +fvc +fvq +fW +fY +fY֜O +fz +FZ +fzL +fδ +fδqf +fµL +FҒ +fچuB +ƒ +Ģ gadenbuie +Gayathri gcc +gd +GDD +gE getChecksum getOption getRversion +gf +gfO +Gg ggplot +GgS +gǥ ghclass github gitsum +gj +Gj +gk +gkl +Gkx +gl +GL +gM gmail +gn +gN +GN +gNa +GNjZ +gp +Gp +gq +Gq grkstyle +gS GSOC +GTpT +gU +gŪ +gv +gV +gVX +gw +Gwt +gWY +gY +GY +gz +gϵ +gݟޞ +ǥ +ɠ +Ɠ +ɠQ +ɣ +Ɣ +Ȟ +٘h hashFiles +hb +HB +Hc +hcc helpfiles +hEW +HFs +hG +hgxЇ +hh +HhDDD +hI +hIDKK +hj +hJ +Hj +HJ +HJy +Hjz +hl +hɮte +hP +hPp +hPP +hq +hR href +Hɼ http https +HU +hv +hV +hw +hy +hyo +HҷVQ +Hٽ +hްp +Ƕ +Ĭ +Ï +Į +ȋ +i't +Ǐb +iBA icloud +IDD +iE ifelse +IG +Ih +IH +IHDR +iikfL +iIr +ij +Ij +IJ +iK +ikN +IM impl Indrajeet infinitively initializer +iNl inode integrations interaces @@ -105,20 +491,136 @@ internal's invasiveness iNZightTools io +iP +iQ +Iq +ìr +irE +IRQ +IRQk +iT +ITMCO +iu +Iu +IǙ +IǙν +iV +̀iVT +IW ixmypi +Iy +IY +iZ +Iz +IZ ized +izN +iϺ +iڒZ +iݜsZ +ƖH +֒j +jA JamesIves +jb +jB +ٓJD +Je +JE +JEv +jf +jF +Jf +jh +JH +Ji +JI +jJ +Jj +JK +jm +Jm +JM +jۤn +jO +jP +jQ +jTI +ju Jupyterlab +jux +jV +jW +JX +jY +Jy +jZ +jzBR +JκA +jμ +ɟ +ķ +́k +K'ɲ +kA +Kbou +KD +KDT +kE +kf +kfg +kh +kH +Kh +KH Kirill kirill +KJ +kk +Kk +kkh +KkU +KMu +Knc knitr +ko +kq krlmlr +kRn +krqRJ +KUϯ +KV +kWT +kx +kz +Kz +kȤ +Ƙ +ƘE +l͛ +ł +ŀ +͎l +LˑJ labelled +ŁaK languageserver +laz LazyData +ؐlb +lB +Lc +LD learnr levelName LF +lf +ŀf +lfv +lG +LGD +lGh +LH LIBS lifecycle Ligges @@ -126,31 +628,177 @@ linter linters lintr linux +lj +Lj +lJD +lJNH +lK +Lk +LK +ܱlkK +lL +lM +Lm +LM +ln +LnnB +lȠ lorenz lorenzwalthert +lQp +lQȒk +lR lst +lV +lw +Lw +LwW +Lx +ly +Ly +lϵw +Lӄ +lڞR +lۆa +ƛ +ׅm +mۨ +ͫ macOS magrittr +mc +mC +mcbb md +MDD MERCHANTABILITY +mG +MH +MJ +MJiV +mJT +mk +mKG +MLN mlr +moțZ +Mox +mQ +MQĞ +mr +mR +mSה +mU Müller mutli +mw +MWmoo +mY +Mz +Mϵ +Mϝ +Mӆ +mىO +ɱp +Ń +ǹ +ñ na navbar +NbA +nbffn +nc +nca +nd netlify netReg +nf +nG +NgM +ni +NJp +nk +NK +nl +NL +nm +nM +NmQP +nO nocomments NONINFRINGEMENT nonportable +nP nph +ns +Nt +nuK NUM +nV +Nv +ny +nz +nZ +Nz nzchar +nҠ +NѠA +nފ +ɴa +ɴhR +Ɲ +ȠP +ɳ +ȵL +ŋ +ŊV +ò +ö +Ö +ő +Ȯ +ø +ǭ +Ō +o݅ +ȍ +Ơ +oA +Oa +ƠA +ƠAA +Oall +OCx +Od +ođ +ODDR +œO +ȏg +oJ +OJɷ +OL oldrel +omb oneliner +oO +oP +OPJ +OQ +oQJ ORCID +ORiB os ourself +oWپ +oy +oY +oyݡ +oނ +Oޟ +ɔ +Ɔ +Ɔg +֢p packagemanager packrat pandoc @@ -161,24 +809,99 @@ parsesum Patil patilindrajeet patilindrajeets +pb +Pbb +pc +Pe pgkdown +pI +PJ +pjJ +pJJ +PJɿ pkgapi pkgconfig pkgdown pkgs +pL +plq +pN +pNJ pos pre precommit prefill prettycode +pRi priori +pRJ PRs purrr +pVXn +Px +py +PY +pz +pze +pұ +PШ +pזQ +pۺ +qb +qB +qc +qd +qDDD +qDDDDDD +QDEQ +QDI +Qe +qf +qG +qi +qI +qJ +QJ +QJA +qK +Ql +QL qmd Qmd +qo +Qo +qq +Qq +qR +qTJb questionr +qV +qVm +QȲLe +QϘu +qϽ +QЀ +QҚ +qТ +qЎ +Qս +qץ +ʠ +ř +ŗ +ȓ +rٕ +̾r +r'W +rBD +rBr +rc +rcB rcmdcheck RcppExports +rD +rDAA +RDD rds readline readme @@ -192,15 +915,37 @@ renv repo reprex revdepcheck +ŕEX +rF +rg RHUB +ri +Ri +Riz +rj +Rj +RJ +RJe +RJK +RkD +Rʞ +RL rlang rlang's +RLD +RLmm rmarkdown RMarkdown rmd Rmd +rn +rN +Rnj rnw Rnw +rNY +RO +ŗO roadmap roclet roclets @@ -213,10 +958,16 @@ roxygen Roxygen roxygenise RoxygenNote +rp rplumber rprofile Rprofile rprojroot +rq +rQ +Rq +Rqg +rqQ Rscript rspm RSPM @@ -224,8 +975,38 @@ rstudio RStudio RStudio's rstudioapi +rT +rtk +rV +RW +ŗx +Rxͫn +RXX +ry +RYr +Rz +RZ +rσ +rٷ +rޯK +Ʀ +ɺ +ɺN +ʵ +ɼ +֖s +Ŝ +ṧ +̜S +S'TA'p +sA saamwerk saveRDS +sBF +sc +SDDr +sdM +sE seealso semicoloner sep @@ -233,6 +1014,9 @@ sessioninfo setCacheRootPath setdiff setenv +sg +Sg +Sgϧ Shallowify sharding shinydashboardPlus @@ -240,27 +1024,72 @@ shinymeta shinyMonacoEditor shinyobjects ShinyQuickStarter +shT +si +sI +sJ +sJI +skN +sm +smٵq +sNQ +sõ +SOb +sp spaceout sprintf +sQ +ss +sS +ssw stackoverflow StackOverflow startsWith staticimports +StI STR styler stylerignore stylerignored stylers +SU subexpr sublicense sudo summarises +sV +̝Sʋ +sW +swu +sX +Sx +sy +Sy +SY Sys sysreq sysreqs systemPipeShiny +sΡ +SϾA +SЀ +Sєm +SЌq +Sե +Sٱk +sض +t̏ +Tä +tC +tD tempfile testthat +Tf +TF +Tfj +tG +th +tH tibble tibbles tidyeval @@ -269,13 +1098,63 @@ tidyr tidyverse Tidyverse Tierney +TJ +TJaeu +tO +tÓ todo tokenized travis +TrT tryCatch tryGugus +TTƺ +TVV +tw +tY +tz +tƼ +TӀ +ŧe +Ⱦ +ʈi +ʈK +ù +Ù +û +ǘ +Ǘ +ǜ +ǚ +ű +Ű +Ų +Ū +ȗ +ua +Ub +UB ubuntu +Ud +UDd +uDQ +uE +UE +uED +uf +uF +UF +Uʻ ui +uI +uj +uk +uK +Uk +uL +Űl +UlJ +Un uncached unexplainable unicode @@ -286,27 +1165,453 @@ unlinkunindention unnest unparsable unstyled +ÛO +UpP upsetjs +uR +uS +Ǘs +ųs usethis +uT utf +UU +uUv +UW Uwe +uwI +uX +UZ +uΝS +ɯ +Ɯ +Vc +vct vctrs +VE vec VignetteBuilder Visit'em +vj +Vj +vʝS +VK +vl +Vl +vlT +Vn +vO +VOqW +vp +vQ +Vq +V̜S +vsy +VȖ +vv +VV +VVq +vw +VX +vz +Vʓ +Ʋ +ʌ +ʷ +wܽ +wA walthert Walthert +Waz +wB +Wc wch +wf +wI +wIDbD +wiȅ winbuilder withr +wJ +WJ +wK +WLA +WLI +wN +Wo +WoB +WPSS +wqӍ +wr +Wr writeLines +Ws +ww +wW www +WX +wyB +wZ +Wܞ +Wޮe +ͯ +x̛ +ًX +xa +xA +XA +xar xaringan +Xb +Xbz +Xc +xcJ +xd +XDr +xE xenial +XF xfun +xgZP +xI Xie +xj +xm +Xm +xo +XoN +xR +XR +xS +Xs +XT +xTLTz +XUؒg +Xw +XY +XYYA +XYYK xyzpackage +Xʏ +XZZIz +x쉧 +Ÿ +Ȳ +YAE +yÂlޭ YAML yaml +yb +yB +yC +YC +YDQ +yF +yi +yID yihui +Yj +YjA +yk +yK +YKp +yLg +yLLn +ym +YM +Yó +yQ +yRҪYu +Ysr +yU +yV +YW +yX +YX +yy +YY +yZ +Yz +yӱ +yٺsz +yۮ +ʏA +Ƴ +ȜiH +ȜS +ȜSԳ +ȜSԼy +ż +zܼ +z'i +z'w +ZA +Zɑ +Z֒B +zbÏ +ZCf +Zd +ZD +zdd +zE +Zê +zf +zFGV +zg +zGz +ZIW +ZJ +Zk +zL̟ +Zm +ZM +ZMe +znO +Zo +ZP +Zq +zR +zU +ZV +ZyE zzz +Zΐ +zզ +zշ +ZޞV +ȥ +ʒ +Þb +ƿ +ƅ +ɁT +ˀ +ʕ +ʖ +ǀ +ǀV +ǁ +ǁñ +ʬ +Ά +δ +δI +Έ +ϝ +ζ +Ζ +ή +Ι +ί +κd +ϗ +μ +µ +ΝR +Ξ +Ξ̙ +ϖ +ϟ +Ϟi +ϙ +Ϙ +ϘA +ϲܵ +ϽA +ϓ +ΰ +Ω +Ώ +Ϸ +Ϧ +ϦԱ +Ϫ +ϭ +ϭa +Ϯތu +г +ҔbATT +ӷd +ԁ +ђͺ +ҙs +Ѐ +ё +ӝ +Ԅq +Ԇ +Ѝ +Ӥ +иg +ҋ +Ӄ +ҞC +Љ +ԉ +НI +Ӈ +ӇR +ӈs +ҥ +ӧ +ОX +оyL +өh +ҁ +РO +С +Ԍ +ҫ +ҪqQjV +ԏ +Ӱ +ӳ +Ӳ +Ӯ +ӯQ +ѹ +Ѹ +Ѹi +Ѹn +ф +һg +ҺUK +Ѡl +ѽX +ѻAF +ц +ӵhP +Ҷ +Ш +щ +Щ +Ъ +ь +Ьg +Ѣ +Я +ѧ֒ +ѦF +Ѩ +Ѭ +ѯe +ѱ +ѱo +ѵ +Ҩ +ⰳ +Բ +ժe +Լ +խ +ծ +կg +յ +չ +Չ +ռv +Վqy +Տ +Ր +ց +ցñ +Ւ +Փ +Ք +ב +בt +ז +ח +כ +כYk +ם +ןt +פ +ٱ +ٻ +ݑI +ݖ +ڿ +ځA +ڂR +څx +ݗ +ݗf +د +ڍ +ڎ +ڏ +زV +ڗ +ڗȤ +صg +صo +ضz +ع +ﻋ +ۼ +ݝ +ڥQ +ڧLy +ك +گ +ڲm +ڴ +ڵEADD +ڹO +ݨ +ۂn +ۿs +ە +ۀW +ۇx +ۈ +ۉc +ۊ +ىӒK +يc +ۍr +ۑ +ے +ےlˀ +ܒ +ܯ +ܯG +ܗ +ܞ +ܠ +ܤc +ܥX +ހ +ހο +ޙ +ށC +ނ +ބ +ފ +ދ +ލO +ޑ +ޓ +ޔZ +ޕj +ޗ +ާ +ެ +ร +뀔 +뤔 +믺 +뵋 +뺬 +쌑 +좀s +좋 +쨴 +큈 +푽P +핲 +헟Ċ +휜VJ +ᆏF݃ +紐t From c87fa2514f18ae2f13b796e707dceb8e6f30d9f3 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 22 Dec 2023 14:41:56 +0100 Subject: [PATCH 048/238] store logo in manual and use it in README --- .gitignore | 1 + README.Rmd | 2 +- README.md | 2 +- hextools/hexsticker.R | 8 ++++---- hextools/logo.png | Bin 121410 -> 0 bytes man/figures/logo.png | Bin 121410 -> 118294 bytes 6 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 hextools/logo.png diff --git a/.gitignore b/.gitignore index 930a72e86..f648567a3 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ revdep/ touchstone/* !touchstone/config.json !touchstone/script.R +README.html diff --git a/README.Rmd b/README.Rmd index 059d55dff..bddbad445 100644 --- a/README.Rmd +++ b/README.Rmd @@ -15,7 +15,7 @@ knitr::opts_chunk$set( ) ``` -# styler +# styler diff --git a/README.md b/README.md index d882eefe7..6aad1c1fb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# styler +# styler diff --git a/hextools/hexsticker.R b/hextools/hexsticker.R index 4239d9109..0b73117fb 100644 --- a/hextools/hexsticker.R +++ b/hextools/hexsticker.R @@ -14,6 +14,7 @@ project_root <- here::here() # https://www.flaticon.com/free-icon/suit_1355137 image <- image_read(file.path(project_root, "hextools", "suit.png")) +manual_logo_path <- file.path(project_root, "man", "figures", "logo.png") sticker( # image @@ -31,16 +32,15 @@ sticker( p_y = 0.95, angle = 90, # image - h_color = "white", + h_color = "black", h_fill = "#11235A", # package URL url = " https://styler.r-lib.org/", u_size = 10, u_color = "#F6ECA9", # saving sticker - filename = file.path(project_root, "hextools", "logo.png"), + filename = manual_logo_path, dpi = 600, ) -manual_logo_path <- file.path(project_root, "man", "figures", "logo.png") -fs::file_move("logo.png", manual_logo_path) +rmarkdown::render("README.Rmd") diff --git a/hextools/logo.png b/hextools/logo.png deleted file mode 100644 index 90f659b4b1bdbd7367adf66d14a690a89291b1bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121410 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 diff --git a/man/figures/logo.png b/man/figures/logo.png index 90f659b4b1bdbd7367adf66d14a690a89291b1bf..1f90784d3d93d80ce4b76d398048232cca2b9a8b 100644 GIT binary patch literal 118294 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

-t9kZ*1&q+YMR4U60*4Y(b>*s%C4nR2c(7}SjS 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 o?Va_0=!RA5v*B1wBLpPBuLuXUNswC%s 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 From 9d9c54df58572a2a1dee09cb1ff93e8635f4dd22 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 22 Dec 2023 13:46:59 +0000 Subject: [PATCH 049/238] pre-commit --- .gitignore | 2 +- inst/WORDLIST | 838 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 839 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f648567a3..0855f6831 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .gitsum Meta R/scratch +README.html doc docs gitsum @@ -14,4 +15,3 @@ revdep/ touchstone/* !touchstone/config.json !touchstone/script.R -README.html diff --git a/inst/WORDLIST b/inst/WORDLIST index b87b8e1bb..cb833aaf8 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -13,8 +13,19 @@ ﹳ ֞ ֯ +۟ +ׄ +ؐ +ׅ +ۙ +֙ +ۛ +֤ +֒ +ۚ ̓ ҅ +̀ ̄ ̍ ͝ @@ -22,49 +33,83 @@ ̎ ͆ ͌ +݁ ݆ ̖ ̼ ̬ ̝ ͎ +̯ +̳ +͖ +̠ +͓ +͕ ̵ +̉ ̑ +̛ +̡ +̢ ̤ +̭ ̮ ̱ +̴ ְ ֶ ָ +ׇ +ׂ ֿ َ +ٖ ٗ ܰ ܱ +ܷ +ܸ +ܽ ܾ +ܿ ʺ +ˆ +ˉ +ˎ +ː a֮ ͣ ª ă + ǎ Ǻ +ǟ Ǡ ַa +Áˆ aa +àA aai aaq +āB +abb aD +ADDDDDDD addin Addin addins Addins aDr +æ aee aEJ af aF Af +ag +aGU aH ai aiy @@ -72,9 +117,15 @@ aj AJ AJ휲 ak +Äk +aKF Akݩr al +aL +aM annv +ao +aO ÃO aP api @@ -90,20 +141,33 @@ AST AUQ aut autothresholdr +awf +Ǟx aYVn +Az +azB +AzZ Aἃ'r +aϞ Aϙ aЀ +AցkK +AڿBo aدi ̸aݨQů +̴b ͘B +b'm ba backport +bǞF +balS bb bd Bd BD BDD +BDDDDD bdr benchmarking BFD @@ -113,34 +177,61 @@ Bh BHOj BǏ biocthis +biq Bj +bj bM bm̺ Bmo +bmwz +bñ +BnOh bootswatch bp bP Bp +Bph Bq BQ +bq +BQD +Bqo BQΠA br bS Bs +bs +Bt BugReports bv Bv bw +Bw̻ +Byu Bz +bz +Bź +bZk +BZX +ƀ ƀA ɓR ɓۯ +Cۭ +č +̖C +cæF cancelling caqy cb +CbZ ccƕ +Ccq +cCqh +cd ͨD Cɖ +cE cF cff cG @@ -150,6 +241,7 @@ ci cI cj cjjj +cK CKC cL cli @@ -157,6 +249,7 @@ CMD cMӠ cN Cn +cnn cO codebase codecov @@ -174,12 +267,20 @@ CPˍ cpp cq cQ +CQz +cr Cř cran cre +CrG +crRc ĉS +csec +cT ctb +cTg cU +cuwpB cv cW cx @@ -189,23 +290,34 @@ cyclocomp cynkra C̯yX cZ +cZk +CҔ +Cפy cٱ cڰ +ɕ ֤D +֗D ͩ ď d̏ ð dA Da +DAi datastructures dCTg DDD +DDd DDDDDDd DDDDDDD DDDDDDf +DDDn +DDDnav DDr +DDz dE +De dec dependabot deps @@ -218,12 +330,18 @@ DG Dgڡo di Dį +diD +diF dir dJ Dj +dj dk DK +dK +dKn ͩmK +dn docsearch dont dontrun @@ -231,47 +349,80 @@ dontshow dontshowdontrun donttest dow +ðp dplyr DQ +Dq DQD dR dri DSLs dt dT +dU Dv DW +Dx dY Dyd dyÏ dYn DZ ʥ +ʥV +DԹ +Dډ +Dڢ +dܨT +ɖd +Ɗ +ɗː +ɗgB +ƌ +ƌo +É +È Ê ė Ę +e݅ +E'ׂ E'x eA EAj eAp +eaY Eb EB +eC +Ec +eCl +EDDDDDD EDDDDDdY +EDƔB +eDp +EDr ee +ėE ef eF +ĔF +ėf E͜fA ei EĪ eJ ek +eK eKE el +ELDD eLMf eɫ emacs emph env +eo eǑ EOF EOL @@ -280,13 +431,21 @@ ep epigraphdb eq EQ +EQb EQH EQQ +eR eS Et +eT +Ět eu ĒU +Euv +ev eval +ew +eW ͤW eWe eWm @@ -298,31 +457,55 @@ expr EQ ey eY EY +ęY eYhL +EZ +eѪ +eܙ eݎ +Eܩi +Ǝ Ǝm Ə Ɛ ɘ ɚ ɞ +ʚ +ɤ ٕf +FAk fansi FB FBfq Fc +fc +fC FDD FDnr +fEQ FfjBޕ +FG fgq fGQJ fh fHH +fhꈪ FI +Fi +FiJ fileext filetype +fj +FK flaticon +Fʫ fm +fMN +fn +fN +fnO +fOk forcond formatter fp @@ -330,6 +513,7 @@ fP FP fq Fq +FQT Freepik FRk fs @@ -342,23 +526,36 @@ fv fvc fvq fW +Fw +FX fY fY֜O fz FZ fzL +fzv +fˁ fδ fδqf fµL FҒ fچuB +f뮆V ƒ +G֮ +ǧ Ģ +̪g +̡g gadenbuie Gayathri +Gazb +gB +gC gcc gd GDD +GDp gE getChecksum getOption @@ -369,7 +566,11 @@ Gg ggplot GgS gǥ +gH +Gh ghclass +Ghj +gI github gitsum gj @@ -381,20 +582,25 @@ gl GL gM gmail +gmJ gn gN GN gNa GNjZ +gO +gODn gp Gp gq Gq grkstyle +gȓΰKy gS GSOC GTpT gU +Gu gŪ gv gV @@ -402,26 +608,38 @@ gVX gw Gwt gWY +gx gY GY +gy +Gy gz gϵ +gϝA gݟޞ ǥ ɠ Ɠ ɠQ +ƓUlw +Ɠڽ ɣ Ɣ Ȟ ٘h +HaM hashFiles hb HB +hB Hc hcc +HcD +hcw +HD helpfiles hEW +hF HFs hG hgxЇ @@ -435,50 +653,79 @@ Hj HJ HJy Hjz +ʰK hl hɮte +hN hP hPp hPP hq hR href +hRF Hɼ +hsh http https HU +Hu hv hV hw +Hx hy hyo +HҠ +hӧ +HҎ HҷVQ Hٽ hްp Ƕ +ʱ +ʽ +ì Ĭ +I̊ Ï Į ȋ i't +ib Ǐb iBA +Ibm +Ic +icee icloud +iD IDD +iDDD iE +ie +Ie ifelse IG +ig Ih IH +ih +iH IHDR iikfL iIr ij Ij IJ +iJ iK +İK ikN +ilj IM +Im +IM֫ impl Indrajeet infinitively @@ -491,116 +738,186 @@ internal's invasiveness iNZightTools io +ǏO iP +ip +ipd +ipD +IpDm iQ Iq +iR ìr irE +IRp IRQ IRQk +iS +is͐ +ǐS iT ITMCO iu Iu +IǗ IǙ IǙν iV ̀iVT IW +iw +Iw +iWsh ixmypi Iy IY +IYq iZ Iz IZ +iz ized izN iϺ +IҜ +IҎҩ iڒZ iݜsZ +ıF +Ɩe ƖH ֒j +Ĵ jA JamesIves jb jB +jc +JC +jD ٓJD +JDDd Je JE JEv jf jF Jf +֬jG jh JH Ji JI jJ Jj +jj JK +jk +Jk +jkk +jLL jm Jm JM +jMo jۤn +JN +JnL jO jP +JPr jQ +Jsu +jTg jTI ju Jupyterlab +Juv jux jV +Jv jW +jw JX +jX jY Jy jZ +jz +Jz jzBR +Jƿ JκA jμ ɟ +ǩ ķ ́k +̰K +ܰK K'ɲ +kˊy kA +Ka Kbou KD +Kd KDT kE kf kfg +KGh kh kH Kh KH +Kiq Kirill kirill KJ kk Kk kkh +kkM KkU +kM KMu +ۛKN Knc knitr ko +kp kq +kqT +kr +krl krlmlr kRn krqRJ +kU +Ku KUϯ KV kWT kx +KXXX +ky +Kyi kz Kz kȤ +Kξ +Kԃ +kц +kڄi Ƙ ƘE +Ľ l͛ ł ŀ ͎l +̺L LˑJ labelled ŁaK @@ -610,17 +927,24 @@ LazyData ؐlb lB Lc +lcg LD +ld +LDz learnr +leH levelName LF lf +lF ŀf +lfK lfv lG LGD lGh LH +li LIBS lifecycle Ligges @@ -628,6 +952,7 @@ linter linters lintr linux +LJ lj Lj lJD @@ -635,16 +960,25 @@ lJNH lK Lk LK +lk ܱlkK +Lku lL lM Lm LM +LMG ln +lN +LNMbqa LnnB +LNNp lȠ lorenz lorenzwalthert +lP +lq +LQDv lQp lQȒk lR @@ -656,24 +990,33 @@ LwW Lx ly Ly +lƻϽ lϵw Lӄ lڞR lۆa +lޞ ƛ ׅm mۨ ͫ +mٙ macOS magrittr +mA뭃 +Mbaq mc mC mcbb md MDD MERCHANTABILITY +mES +mf +MF mG MH +mH MJ MJiV mJT @@ -681,27 +1024,45 @@ mk mKG MLN mlr +mM +mn +mO moțZ Mox +Mpm mQ MQĞ +MqQ mr mR +mrO +MSN mSה mU Müller mutli +Muv +Mv +MvN mw MWmoo +mX +MX mY Mz Mϵ Mϝ +MӔ Mӆ +Mڭ mىO +ɱ ɱp +ɱs Ń ǹ +ň +Ň ñ na navbar @@ -709,13 +1070,20 @@ NbA nbffn nc nca +Ncv nd netlify netReg nf nG +Ng NgM +NHgė ni +nj +nJ +NjA +NJah NJp nk NK @@ -724,38 +1092,53 @@ NL nm nM NmQP +nnttQ nO nocomments +nom NONINFRINGEMENT nonportable nP +nPd nph +NqЀ ns Nt +nU nuK NUM nV Nv +nvײ +nw ny +ŅY nz nZ Nz nzchar +nÞ nҠ NѠA nފ ɴa ɴhR Ɲ +ɲ ȠP ɳ ȵL ŋ ŊV +Oۜ +ؓO +Ó ò ö Ö +ȫ ő +ȭ Ȯ ø ǭ @@ -763,41 +1146,72 @@ nފ o݅ ȍ Ơ +o'Z oA Oa ƠA ƠAA Oall +oB +Ōb +ºc OCx Od ođ ODDR +oE +oEH œO +og +oG ȏg oJ +oj OJɷ +oK OL +oL +OL'gX oldrel +Oɬ +oM omb +ŏn oneliner +OnQܦ oO +Oo +oOhgG oP OPJ +OPp +OPz'ﹸ OQ oQJ ORCID ORiB +oRJLMM os +oSH +oƪ +oŧx +ou ourself +Ov oWپ oy oY +oyq oyݡ +OZLU +oБa +oفk oނ Oޟ ɔ Ɔ Ɔg +ɵ ֢p packagemanager packrat @@ -813,6 +1227,8 @@ pb Pbb pc Pe +pF +pG pgkdown pI PJ @@ -823,11 +1239,17 @@ pkgapi pkgconfig pkgdown pkgs +pKP pL plq +pLz +pM +pML pN +pn pNJ pos +pP pre precommit prefill @@ -836,6 +1258,7 @@ pRi priori pRJ PRs +pʈd purrr pVXn Px @@ -843,41 +1266,61 @@ py PY pz pze +pЀm pұ PШ +pՍ pזQ pۺ +Ƥ +Ƥx +̕q +q'Pl qb qB qc +qC +QcZ qd qDDD qDDDDDD QDEQ QDI Qe +qe qf +qfl qG +qh qi qI +Qɩ qJ QJ +qj QJA qK Ql QL +qL +Qld qmd Qmd qo Qo qq Qq +qQ qR +qRJx qTJb questionr qV qVm +qŵ +QY QȲLe +qz QϘu qϽ QЀ @@ -885,12 +1328,16 @@ QҚ qТ qЎ Qս +qםw qץ +QݞB ʠ +ʠA ř ŗ ȓ rٕ +Rٝ ̾r r'W rBD @@ -902,7 +1349,10 @@ RcppExports rD rDAA RDD +rdh rds +rdT +rE readline readme README @@ -918,26 +1368,33 @@ revdepcheck ŕEX rF rg +rh RHUB ri Ri Riz +rɨ rj Rj RJ RJe +rJg RJK +RJx RkD +rKM Rʞ RL rlang rlang's RLD RLmm +rlݦF rmarkdown RMarkdown rmd Rmd +RMDqa rn rN Rnj @@ -949,6 +1406,7 @@ RO roadmap roclet roclets +rOǸ rootPath ROOTPATH ropensci @@ -959,6 +1417,7 @@ Roxygen roxygenise RoxygenNote rp +ȑP rplumber rprofile Rprofile @@ -968,6 +1427,8 @@ rQ Rq Rqg rqQ +rr +Rr Rscript rspm RSPM @@ -983,30 +1444,48 @@ RW Rxͫn RXX ry +RYf +rYK RYr Rz RZ rσ +rБҤ rٷ rޯK Ʀ +Ʀč ɺ ɺN +ɻ ʵ ɼ +ʶL ֖s Ŝ +ŝ +š ṧ +ș ̜S +ٍs S'TA'p sA +sa +Sa saamwerk +sæ saveRDS +sb +sB sBF sc +sD SDDr sdM +sDWY sE +SEDz seealso semicoloner sep @@ -1014,9 +1493,13 @@ sessioninfo setCacheRootPath setdiff setenv +Ŝf +Şf sg Sg +sGO Sgϧ +sH Shallowify sharding shinydashboardPlus @@ -1028,20 +1511,29 @@ shT si sI sJ +sj +Sj sJI skN +SL sm smٵq +sn sNQ +sNδ sõ SOb sp +sP spaceout sprintf sQ +sqۍ +sr ss sS ssw +sT stackoverflow StackOverflow startsWith @@ -1053,11 +1545,15 @@ stylerignore stylerignored stylers SU +su subexpr sublicense sudo summarises sV +sv +Sv +svŝB ̝Sʋ sW swu @@ -1072,14 +1568,22 @@ sysreqs systemPipeShiny sΡ SϾA +SҔ SЀ Sєm SЌq Sե Sٱk sض +ƪd +ʆ +ʆK +ť +ţ t̏ +ֱT Tä +Tbwf tC tD tempfile @@ -1088,6 +1592,7 @@ Tf TF Tfj tG +Tg th tH tibble @@ -1099,29 +1604,49 @@ tidyverse Tidyverse Tierney TJ +tj +tJ TJaeu +tK +TkU +tL tO tÓ todo tokenized +tPn +tq +Tq +tR +T֗R travis TrT tryCatch tryGugus +TT TTƺ +Ttܤ +Tv TVV tw tY tz tƼ TӀ +tգ +Ŧ ŧe Ⱦ +ʈ ʈi ʈK +ȶ +ʇΑ +Ú ù Ù û +ů ǘ Ǘ ǜ @@ -1131,11 +1656,15 @@ TӀ Ų Ū ȗ +ٕU ua Ub UB ubuntu +uc +ǖC Ud +ud UDd uDQ uE @@ -1144,6 +1673,11 @@ uED uf uF UF +Ȗf +ufl +uG +uH +uhP Uʻ ui uI @@ -1154,7 +1688,12 @@ Uk uL Űl UlJ +ulOG +Ŭm +UMQ +ǖmY Un +un uncached unexplainable unicode @@ -1165,10 +1704,12 @@ unlinkunindention unnest unparsable unstyled +uo ÛO UpP upsetjs uR +ùreGNNx uS Ǘs ųs @@ -1176,20 +1717,37 @@ usethis uT utf UU +uu +Uu uUv UW +uW Uwe uwI +uwla uX +ux UZ uΝS +Uګ +uຼ ɯ Ɯ +ɰ +Ʊc +v'W +vǟڷ Vc vct vctrs +Vcwfb +vd VE vec +vf +vG +vGI +vGq VignetteBuilder Visit'em vj @@ -1198,26 +1756,43 @@ vʝS VK vl Vl +vL vlT +vm +vM +Vm +Vmh Vn +vNH vO +VoDxLJo VOqW vp +vP vQ Vq +vQN V̜S vsy +vͭ +vU VȖ +VǕU vv VV +VVk VVq +vvXZ vw +VWU VX +VY vz Vʓ Ʋ ʌ ʷ +Ŵ wܽ wA walthert @@ -1226,7 +1801,11 @@ Waz wB Wc wch +wCפy wf +wg +wh +WH wI wIDbD wiȅ @@ -1234,13 +1813,25 @@ winbuilder withr wJ WJ +wj +Wj wK +wL WLA WLI +wM wN +wn +wNV +wnղ Wo +wO WoB +wȣ +wpO WPSS +wQ +WQ wqӍ wr Wr @@ -1253,6 +1844,7 @@ WX wyB wZ Wܞ +Wގ Wޮe ͯ x̛ @@ -1263,39 +1855,68 @@ XA xar xaringan Xb +xB +XBf Xbz Xc xcJ xd +Xdj XDr xE xenial XF +xFS xfun +XG +xgW +xgy xgZP +xh xI Xie xj +Xjx +Xk +XkhL +xl +Xl xm Xm +xmإ +xn xo XoN +xONM +xp +XPo +xq xR XR +XRD xS Xs +xƩ XT +xt xTLTz XUؒg Xw XY +Xy XYYA XYYK xyzpackage Xʏ +Xz +XZ XZZIz +Xљ +xۉ x쉧 +ʸ Ÿ +ÿ Ȳ YAE yÂlޭ @@ -1305,26 +1926,48 @@ yb yB yC YC +yc +YDD +YDDDz YDQ +yD듒 yF +ŷFV +YG +yh +ʸh yi yID yihui +YIUm Yj +yJ YjA yk yK YKp +yl +Yl yLg yLLn ym YM +yN +Yn +YN Yó +Yp yQ +YrQ yRҪYu +yS Ysr yU +yui +yuY yV +yv +yvG YW yX YX @@ -1332,68 +1975,117 @@ yy YY yZ Yz +yz yӱ yٺsz yۮ ʏA Ƴ +Ȝ ȜiH ȜS ȜSԳ ȜSԼy +ž ż zܼ z'i z'w ZA +zA +Za +ZAi Zɑ Z֒B +zb +Zb zbÏ +zc +ZC +źC ZCf Zd ZD zdd zE Zê +zė zf +žF zFGV zg zGz +Zh +zHDDDDDDD +zhP +zi +Zi ZIW ZJ +zj Zk +Zl zL̟ +ZˡS Zm ZM +zm ZMe +ZnM znO Zo +zܽo +ZOm ZP Zq +zq zR zU ZV +zw +ƍD +zxP +ZxtC +zY ZyE zzz +zδ Zΐ zզ zշ +Zݘnx ZޞV +ƶ ȥ +ʐ +ɀ ʒ +ǯ +ʒkA Þb +ÞF ƿ +ƻ +ƽ ƅ ɁT ˀ ʕ +ʕlg +ˁ +ʢ ʖ ǀ +ǀ̟ ǀV ǁ ǁñ +ʗg ʬ +α Ά +Άj +Β δ δI Έ @@ -1401,7 +2093,9 @@ ZޞV ζ Ζ ή +ϑ Ι +ι ί κd ϗ @@ -1416,50 +2110,89 @@ ZޞV ϙ Ϙ ϘA +Ρ +ΡH +ϼ +σ ϲܵ ϽA +Υ ϓ ΰ +ϔt +ΧEk Ω +ω Ώ Ϸ +ϣ +ϥh Ϧ +ϧ ϦԱ Ϫ +ϫ ϭ ϭa +ϯ Ϯތu +А +Ӕk +бIj г +Ғ +ғB ҔbATT ӷd ԁ +ԀN +ԁZ ђͺ +ԃ +Ҙ ҙs Ѐ ё +єf ӝ +Җ +ԅ Ԅq Ԇ Ѝ Ӥ иg ҋ +֯Ї +Ї +ј Ӄ ҞC +ҝw Љ ԉ +М +Ӎ НI Ӈ ӇR ӈs ҥ +ҥȴ +њ ӧ ОX оyL +Ө өh +ҧ +ҧic ҁ +Р +рj РO С +с Ԍ ҫ ҪqQjV @@ -1469,48 +2202,79 @@ ZޞV Ӳ Ӯ ӯQ +Ү +ҰK +ұq +ҰX ѹ Ѹ Ѹi Ѹn ф +Ҳ +Ҳl +ҳT һg ҺUK Ѡl +Ѿ ѽX ѻAF ц ӵhP Ҷ +Ҷph +ЏR Ш +шb щ Щ Ъ +Ӹ ь Ьg +ҌuL Ѣ +ю Я +ѥ ѧ֒ +ѧ ѦF Ѩ Ѭ +ѯ ѯe ѱ ѱo ѵ +ѷH Ҩ +ҩd +Ӏ ⰳ +աA Բ +բ +գ +ԶК +ժ ժe Լ խ ծ կg +հ +Ձǖ յ +շ +Շn չ Չ +չy ռv Վqy +Վݙ Տ Ր ց @@ -1518,22 +2282,43 @@ ZޞV Ւ Փ Ք +օ ב בt +וvwN +װ +װzc +ױ ז ח +ט כ כYk +מ ם +ן +ןe ןt פ +צ +ץ +آ ٱ +ب ٻ +ڀg ݑI +ݒ ݖ +ٹl +ٺ +ج +ڃ ڿ +خ ځA ڂR +څ څx ݗ ݗf @@ -1541,29 +2326,53 @@ ZޞV ڍ ڎ ڏ +ݙ زV +ڑ ڗ ڗȤ +سg +شK +ص صg صo +ض ضz +ڝ +ط +ظ +ڟ ع ﻋ ۼ ݝ +ݟ ڥQ ڧLy ك +ک +ڪ +ګ گ +ﮒ ڲm ڴ +ل ڵEADD +ݥ +ڻP +ڹ ڹO ݨ +ﮨ ۂn +ۿ ۿs ە ۀW +ۥ +ۄ +ۇ ۇx ۈ ۉc @@ -1575,22 +2384,33 @@ ZޞV ے ےlˀ ܒ +ܕ ܯ ܯG ܗ +ݍ ܞ ܠ +ܡ ܤc ܥX +ܩF ހ ހο ޙ ށC ނ +ޜ ބ +ވ +މQ ފ ދ +ޛt +ޘ ލO +ޝ +ޞ ޑ ޓ ޔZ @@ -1598,20 +2418,38 @@ ZޞV ޗ ާ ެ +ⵕ +अx +ව ร 뀔 +뉔 +는 +딁 +뙿Įk 뤔 +먺 믺 뵋 +붋dV 뺬 쌑 +쎒N +왋m 좀s 좋 쨴 +츽 큈 +킂 +틎 +팈 푽P +풲 핲 헟Ċ +홞 +훘 휜VJ ᆏF݃ 紐t From a49105a2242bca4e7181b62ac3141617e611df6b Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 7 Jan 2024 11:04:37 +0100 Subject: [PATCH 050/238] update pre-commit --- .pre-commit-config.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d6dd581fa..86a340b0f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.3.2.9019 + rev: v0.3.2.9027 hooks: - id: style-files args: @@ -21,8 +21,6 @@ repos: tests/testmanual/addins/r-valid\.R| )$ - id: lintr - additional_dependencies: - - r-lib/lintr exclude: > (?x)^( inst/.*| @@ -34,9 +32,9 @@ repos: - id: roxygenize additional_dependencies: - r-lib/pkgapi - - dplyr@1.1.2 - - roxygen2@7.2.3 - - rlang@1.1.0 + - dplyr + - roxygen2 + - rlang - id: use-tidy-description - id: spell-check exclude: > @@ -62,6 +60,7 @@ repos: .*\.Rds| .*\.sh| .*\.RData| + .*\.png| .*-in_tree )$ - id: readme-rmd-rendered From b21f37b21ccb878e0fa868b534d3dc11db4d1030 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 7 Jan 2024 11:04:59 +0100 Subject: [PATCH 051/238] ignore os specific files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0855f6831..e0d2606ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .RData .Rhistory .Rproj.user From f798716d4edff273d06f686245f0f27377fe59e4 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 7 Jan 2024 11:06:18 +0100 Subject: [PATCH 052/238] regenerate logo with different icon and colors --- README.md | 2 +- hextools/suit.png | Bin 30417 -> 9116 bytes inst/WORDLIST | 2447 ------------------------------------------ man/figures/logo.png | Bin 118294 -> 108006 bytes 4 files changed, 1 insertion(+), 2448 deletions(-) diff --git a/README.md b/README.md index 6aad1c1fb..c466344cc 100644 --- a/README.md +++ b/README.md @@ -59,4 +59,4 @@ The following online docs are available: Hex sticker font is [Gayathri](https://fonts.google.com/specimen/Gayathri), and the image is taken from icon made by [Freepik](https://www.freepik.com) and available -at [flaticon.com](https://www.flaticon.com/free-icon/suit_1355137). +at [flaticon.com](https://www.flaticon.com/free-icon/suit). diff --git a/hextools/suit.png b/hextools/suit.png index 21b1155fac1c677b8406c2b5866703b37aff0e0b..cd8247998b24eeb75a5d1b9d04b228b3e9946661 100644 GIT binary patch literal 9116 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 literal 30417 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

CD4@)w*iO=iS5&#&Salg46iq)i`Af^X7K(31<8I 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 #N= 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 diff --git a/inst/WORDLIST b/inst/WORDLIST index cb833aaf8..cb830c129 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,2455 +1,8 @@ -݉ -֛ -۪ -ۜ -֡ -֚ -݀ -ۡ -ۢ -ۘ -֣ -֭ -ﹳ -֞ -֯ -۟ -ׄ -ؐ -ׅ -ۙ -֙ -ۛ -֤ -֒ -ۚ -̓ -҅ -̀ -̄ -̍ -͝ -҄ -̎ -͆ -͌ -݁ -݆ -̖ -̼ -̬ -̝ -͎ -̯ -̳ -͖ -̠ -͓ -͕ -̵ -̉ -̑ -̛ -̡ -̢ -̤ -̭ -̮ -̱ -̴ -ְ -ֶ -ָ -ׇ -ׂ -ֿ -َ -ٖ -ٗ -ܰ -ܱ -ܷ -ܸ -ܽ -ܾ -ܿ -ʺ -ˆ -ˉ -ˎ -ː -a֮ -ͣ -ª -ă - -ǎ -Ǻ -ǟ -Ǡ -ַa -Áˆ -aa -àA -aai -aaq -āB -abb -aD -ADDDDDDD -addin Addin -addins -Addins -aDr -æ -aee -aEJ -af -aF -Af -ag -aGU -aH -ai -aiy -aj -AJ -AJ휲 -ak -Äk -aKF -Akݩr -al -aL -aM -annv -ao -aO -ÃO -aP -api -aPi -AppVeyor -apriori -AQ -aR -arg -aS -AsIs -AST -AUQ -aut -autothresholdr -awf -Ǟx -aYVn -Az -azB -AzZ -Aἃ'r -aϞ -Aϙ -aЀ -AցkK -AڿBo -aدi -̸aݨQů -̴b -͘B -b'm -ba -backport -bǞF -balS -bb -bd -Bd -BD -BDD -BDDDDD -bdr -benchmarking -BFD -BFDaLo -BFE -Bh -BHOj -BǏ -biocthis -biq -Bj -bj -bM -bm̺ -Bmo -bmwz -bñ -BnOh -bootswatch -bp -bP -Bp -Bph -Bq -BQ -bq -BQD -Bqo -BQΠA -br -bS -Bs -bs -Bt -BugReports -bv -Bv -bw -Bw̻ -Byu -Bz -bz -Bź -bZk -BZX -ƀ -ƀA -ɓR -ɓۯ -Cۭ -č -̖C -cæF -cancelling -caqy -cb -CbZ -ccƕ -Ccq -cCqh -cd -ͨD -Cɖ -cE -cF -cff -cG -cǦ -chnages -ci -cI -cj -cjjj -cK -CKC -cL -cli -CMD -cMӠ -cN -Cn -cnn -cO -codebase codecov -codegrip -coercible -coercions -compat -config -CONST -counterpair -coventions -covr -cp -CPˍ -cpp -cq -cQ -CQz -cr -Cř -cran -cre -CrG -crRc -ĉS -csec -cT -ctb -cTg -cU -cuwpB -cv -cW -cx -CX -CY -cyclocomp -cynkra -C̯yX -cZ -cZk -CҔ -Cפy -cٱ -cڰ -ɕ -֤D -֗D -ͩ -ď -d̏ -ð -dA -Da -DAi -datastructures -dCTg -DDD -DDd -DDDDDDd -DDDDDDD -DDDDDDf -DDDn -DDDnav -DDr -DDz -dE -De -dec -dependabot -deps -desc -dev -devtools -Df -dfk -DG -Dgڡo -di -Dį -diD -diF -dir -dJ -Dj -dj -dk -DK -dK -dKn -ͩmK -dn -docsearch -dont -dontrun -dontshow -dontshowdontrun -donttest -dow -ðp -dplyr -DQ -Dq -DQD -dR -dri -DSLs -dt -dT -dU -Dv -DW -Dx -dY -Dyd -dyÏ -dYn -DZ -ʥ -ʥV -DԹ -Dډ -Dڢ -dܨT -ɖd -Ɗ -ɗː -ɗgB -ƌ -ƌo -É -È -Ê -ė -Ę -e݅ -E'ׂ -E'x -eA -EAj -eAp -eaY -Eb -EB -eC -Ec -eCl -EDDDDDD -EDDDDDdY -EDƔB -eDp -EDr -ee -ėE -ef -eF -ĔF -ėf -E͜fA -ei -EĪ -eJ -ek -eK -eKE -el -ELDD -eLMf -eɫ -emacs -emph -env -eo -eǑ -EOF -EOL -EOLs -ep -epigraphdb -eq -EQ -EQb -EQH -EQQ -eR -eS -Et -eT -Ět -eu -ĒU -Euv -ev -eval -ew -eW -ͤW -eWe -eWm -examplesIf -exampletestr -EXD -expr -expr EQ -ey -eY -EY -ęY -eYhL -EZ -eѪ -eܙ -eݎ -Eܩi -Ǝ -Ǝm -Ə -Ɛ -ɘ -ɚ -ɞ -ʚ -ɤ -ٕf -FAk -fansi -FB -FBfq -Fc -fc -fC -FDD -FDnr -fEQ -FfjBޕ -FG -fgq -fGQJ -fh -fHH -fhꈪ -FI -Fi -FiJ -fileext -filetype -fj -FK flaticon -Fʫ -fm -fMN -fn -fN -fnO -fOk -forcond -formatter -fp -fP -FP -fq -Fq -FQT Freepik -FRk -fs -fS -FS -fT -fu -funct -fv -fvc -fvq -fW -Fw -FX -fY -fY֜O -fz -FZ -fzL -fzv -fˁ -fδ -fδqf -fµL -FҒ -fچuB -f뮆V -ƒ -G֮ -ǧ -Ģ -̪g -̡g -gadenbuie Gayathri -Gazb -gB -gC -gcc -gd -GDD -GDp -gE -getChecksum -getOption -getRversion -gf -gfO -Gg -ggplot -GgS -gǥ -gH -Gh -ghclass -Ghj -gI -github -gitsum -gj -Gj -gk -gkl -Gkx -gl -GL -gM -gmail -gmJ -gn -gN -GN -gNa -GNjZ -gO -gODn -gp -Gp -gq -Gq -grkstyle -gȓΰKy -gS -GSOC -GTpT -gU -Gu -gŪ -gv -gV -gVX -gw -Gwt -gWY -gx -gY -GY -gy -Gy -gz -gϵ -gϝA -gݟޞ -ǥ -ɠ -Ɠ -ɠQ -ƓUlw -Ɠڽ -ɣ -Ɣ -Ȟ -٘h -HaM -hashFiles -hb -HB -hB -Hc -hcc -HcD -hcw -HD -helpfiles -hEW -hF -HFs -hG -hgxЇ -hh -HhDDD -hI -hIDKK -hj -hJ -Hj -HJ -HJy -Hjz -ʰK -hl -hɮte -hN -hP -hPp -hPP -hq -hR -href -hRF -Hɼ -hsh -http -https -HU -Hu -hv -hV -hw -Hx -hy -hyo -HҠ -hӧ -HҎ -HҷVQ -Hٽ -hްp -Ƕ -ʱ -ʽ -ì -Ĭ -I̊ -Ï -Į -ȋ -i't -ib -Ǐb -iBA -Ibm -Ic -icee -icloud -iD -IDD -iDDD -iE -ie -Ie -ifelse -IG -ig -Ih -IH -ih -iH -IHDR -iikfL -iIr -ij -Ij -IJ -iJ -iK -İK -ikN -ilj -IM -Im -IM֫ -impl -Indrajeet -infinitively -initializer -iNl -inode -integrations -interaces -internal's -invasiveness -iNZightTools -io -ǏO -iP -ip -ipd -ipD -IpDm -iQ -Iq -iR -ìr -irE -IRp -IRQ -IRQk -iS -is͐ -ǐS -iT -ITMCO -iu -Iu -IǗ -IǙ -IǙν -iV -̀iVT -IW -iw -Iw -iWsh -ixmypi -Iy -IY -IYq -iZ -Iz -IZ -iz -ized -izN -iϺ -IҜ -IҎҩ -iڒZ -iݜsZ -ıF -Ɩe -ƖH -֒j -Ĵ -jA -JamesIves -jb -jB -jc -JC -jD -ٓJD -JDDd -Je -JE -JEv -jf -jF -Jf -֬jG -jh -JH -Ji -JI -jJ -Jj -jj -JK -jk -Jk -jkk -jLL -jm -Jm -JM -jMo -jۤn -JN -JnL -jO -jP -JPr -jQ -Jsu -jTg -jTI -ju -Jupyterlab -Juv -jux -jV -Jv -jW -jw -JX -jX -jY -Jy -jZ -jz -Jz -jzBR -Jƿ -JκA -jμ -ɟ -ǩ -ķ -́k -̰K -ܰK -K'ɲ -kˊy -kA -Ka -Kbou -KD -Kd -KDT -kE -kf -kfg -KGh -kh -kH -Kh -KH -Kiq -Kirill -kirill -KJ -kk -Kk -kkh -kkM -KkU -kM -KMu -ۛKN -Knc -knitr -ko -kp -kq -kqT -kr -krl -krlmlr -kRn -krqRJ -kU -Ku -KUϯ -KV -kWT -kx -KXXX -ky -Kyi -kz -Kz -kȤ -Kξ -Kԃ -kц -kڄi -Ƙ -ƘE -Ľ -l͛ -ł -ŀ -͎l -̺L -LˑJ -labelled -ŁaK -languageserver -laz -LazyData -ؐlb -lB -Lc -lcg -LD -ld -LDz -learnr -leH -levelName -LF -lf -lF -ŀf -lfK -lfv -lG -LGD -lGh -LH -li -LIBS -lifecycle -Ligges -linter -linters -lintr -linux -LJ -lj -Lj -lJD -lJNH -lK -Lk -LK -lk -ܱlkK -Lku -lL -lM -Lm -LM -LMG -ln -lN -LNMbqa -LnnB -LNNp -lȠ -lorenz -lorenzwalthert -lP -lq -LQDv -lQp -lQȒk -lR -lst -lV -lw -Lw -LwW -Lx -ly -Ly -lƻϽ -lϵw -Lӄ -lڞR -lۆa -lޞ -ƛ -ׅm -mۨ -ͫ -mٙ -macOS -magrittr -mA뭃 -Mbaq -mc -mC -mcbb -md -MDD -MERCHANTABILITY -mES -mf -MF -mG -MH -mH -MJ -MJiV -mJT -mk -mKG -MLN -mlr -mM -mn -mO -moțZ -Mox -Mpm -mQ -MQĞ -MqQ -mr -mR -mrO -MSN -mSה -mU -Müller -mutli -Muv -Mv -MvN -mw -MWmoo -mX -MX -mY -Mz -Mϵ -Mϝ -MӔ -Mӆ -Mڭ -mىO -ɱ -ɱp -ɱs -Ń -ǹ -ň -Ň -ñ -na -navbar -NbA -nbffn -nc -nca -Ncv -nd -netlify -netReg -nf -nG -Ng -NgM -NHgė -ni -nj -nJ -NjA -NJah -NJp -nk -NK -nl -NL -nm -nM -NmQP -nnttQ -nO -nocomments -nom -NONINFRINGEMENT -nonportable -nP -nPd -nph -NqЀ -ns -Nt -nU -nuK -NUM -nV -Nv -nvײ -nw -ny -ŅY -nz -nZ -Nz -nzchar -nÞ -nҠ -NѠA -nފ -ɴa -ɴhR -Ɲ -ɲ -ȠP -ɳ -ȵL -ŋ -ŊV -Oۜ -ؓO -Ó -ò -ö -Ö -ȫ -ő -ȭ -Ȯ -ø -ǭ -Ō -o݅ -ȍ -Ơ -o'Z -oA -Oa -ƠA -ƠAA -Oall -oB -Ōb -ºc -OCx -Od -ođ -ODDR -oE -oEH -œO -og -oG -ȏg -oJ -oj -OJɷ -oK -OL -oL -OL'gX -oldrel -Oɬ -oM -omb -ŏn -oneliner -OnQܦ -oO -Oo -oOhgG -oP -OPJ -OPp -OPz'ﹸ -OQ -oQJ -ORCID -ORiB -oRJLMM -os -oSH -oƪ -oŧx -ou -ourself -Ov -oWپ -oy -oY -oyq -oyݡ -OZLU -oБa -oفk -oނ -Oޟ -ɔ -Ɔ -Ɔg -ɵ -֢p -packagemanager -packrat -pandoc -params -paren -parsable -parsesum -Patil -patilindrajeet -patilindrajeets -pb -Pbb -pc -Pe -pF -pG -pgkdown -pI -PJ -pjJ -pJJ -PJɿ -pkgapi -pkgconfig -pkgdown -pkgs -pKP -pL -plq -pLz -pM -pML -pN -pn -pNJ -pos -pP -pre -precommit -prefill -prettycode -pRi -priori -pRJ -PRs -pʈd -purrr -pVXn -Px -py -PY -pz -pze -pЀm -pұ -PШ -pՍ -pזQ -pۺ -Ƥ -Ƥx -̕q -q'Pl -qb -qB -qc -qC -QcZ -qd -qDDD -qDDDDDD -QDEQ -QDI -Qe -qe -qf -qfl -qG -qh -qi -qI -Qɩ -qJ -QJ -qj -QJA -qK -Ql -QL -qL -Qld -qmd -Qmd -qo -Qo -qq -Qq -qQ -qR -qRJx -qTJb -questionr -qV -qVm -qŵ -QY -QȲLe -qz -QϘu -qϽ -QЀ -QҚ -qТ -qЎ -Qս -qםw -qץ -QݞB -ʠ -ʠA -ř -ŗ -ȓ -rٕ -Rٝ -̾r -r'W -rBD -rBr -rc -rcB -rcmdcheck -RcppExports -rD -rDAA -RDD -rdh -rds -rdT -rE -readline -readme -README -rebased -reindent -reindented -reindention -relevel -renv -repo -reprex -revdepcheck -ŕEX -rF -rg -rh -RHUB -ri -Ri -Riz -rɨ -rj -Rj -RJ -RJe -rJg -RJK -RJx -RkD -rKM -Rʞ -RL -rlang -rlang's -RLD -RLmm -rlݦF -rmarkdown -RMarkdown -rmd -Rmd -RMDqa -rn -rN -Rnj -rnw -Rnw -rNY -RO -ŗO -roadmap -roclet -roclets -rOǸ -rootPath -ROOTPATH -ropensci -roundtrip -roxgen -roxygen -Roxygen -roxygenise -RoxygenNote -rp -ȑP -rplumber -rprofile -Rprofile -rprojroot -rq -rQ -Rq -Rqg -rqQ -rr -Rr -Rscript -rspm -RSPM -rstudio RStudio -RStudio's -rstudioapi -rT -rtk -rV -RW -ŗx -Rxͫn -RXX -ry -RYf -rYK -RYr -Rz -RZ -rσ -rБҤ -rٷ -rޯK -Ʀ -Ʀč -ɺ -ɺN -ɻ -ʵ -ɼ -ʶL -֖s -Ŝ -ŝ -š -ṧ -ș -̜S -ٍs -S'TA'p -sA -sa -Sa -saamwerk -sæ -saveRDS -sb -sB -sBF -sc -sD -SDDr -sdM -sDWY -sE -SEDz -seealso -semicoloner -sep -sessioninfo -setCacheRootPath -setdiff -setenv -Ŝf -Şf -sg -Sg -sGO -Sgϧ -sH -Shallowify -sharding -shinydashboardPlus -shinymeta -shinyMonacoEditor -shinyobjects -ShinyQuickStarter -shT -si -sI -sJ -sj -Sj -sJI -skN -SL -sm -smٵq -sn -sNQ -sNδ -sõ -SOb -sp -sP -spaceout -sprintf -sQ -sqۍ -sr -ss -sS -ssw -sT -stackoverflow -StackOverflow -startsWith -staticimports -StI -STR styler -stylerignore -stylerignored -stylers -SU -su -subexpr -sublicense -sudo -summarises -sV -sv -Sv -svŝB -̝Sʋ -sW -swu -sX -Sx -sy -Sy -SY -Sys -sysreq -sysreqs -systemPipeShiny -sΡ -SϾA -SҔ -SЀ -Sєm -SЌq -Sե -Sٱk -sض -ƪd -ʆ -ʆK -ť -ţ -t̏ -ֱT -Tä -Tbwf -tC -tD -tempfile -testthat -Tf -TF -Tfj -tG -Tg -th -tH -tibble -tibbles -tidyeval -tidypaleo -tidyr tidyverse -Tidyverse -Tierney -TJ -tj -tJ -TJaeu -tK -TkU -tL -tO -tÓ -todo -tokenized -tPn -tq -Tq -tR -T֗R -travis -TrT -tryCatch -tryGugus -TT -TTƺ -Ttܤ -Tv -TVV -tw -tY -tz -tƼ -TӀ -tգ -Ŧ -ŧe -Ⱦ -ʈ -ʈi -ʈK -ȶ -ʇΑ -Ú -ù -Ù -û -ů -ǘ -Ǘ -ǜ -ǚ -ű -Ű -Ų -Ū -ȗ -ٕU -ua -Ub -UB -ubuntu -uc -ǖC -Ud -ud -UDd -uDQ -uE -UE -uED -uf -uF -UF -Ȗf -ufl -uG -uH -uhP -Uʻ -ui -uI -uj -uk -uK -Uk -uL -Űl -UlJ -ulOG -Ŭm -UMQ -ǖmY -Un -un -uncached -unexplainable -unicode -unindent -unindention -unlink -unlinkunindention -unnest -unparsable -unstyled -uo -ÛO -UpP -upsetjs -uR -ùreGNNx -uS -Ǘs -ųs -usethis -uT -utf -UU -uu -Uu -uUv -UW -uW -Uwe -uwI -uwla -uX -ux -UZ -uΝS -Uګ -uຼ -ɯ -Ɯ -ɰ -Ʊc -v'W -vǟڷ -Vc -vct -vctrs -Vcwfb -vd -VE -vec -vf -vG -vGI -vGq -VignetteBuilder -Visit'em -vj -Vj -vʝS -VK -vl -Vl -vL -vlT -vm -vM -Vm -Vmh -Vn -vNH -vO -VoDxLJo -VOqW -vp -vP -vQ -Vq -vQN -V̜S -vsy -vͭ -vU -VȖ -VǕU -vv -VV -VVk -VVq -vvXZ -vw -VWU -VX -VY -vz -Vʓ -Ʋ -ʌ -ʷ -Ŵ -wܽ -wA -walthert -Walthert -Waz -wB -Wc -wch -wCפy -wf -wg -wh -WH -wI -wIDbD -wiȅ -winbuilder -withr -wJ -WJ -wj -Wj -wK -wL -WLA -WLI -wM -wN -wn -wNV -wnղ -Wo -wO -WoB -wȣ -wpO -WPSS -wQ -WQ -wqӍ -wr -Wr -writeLines -Ws -ww -wW -www -WX -wyB -wZ -Wܞ -Wގ -Wޮe -ͯ -x̛ -ًX -xa -xA -XA -xar -xaringan -Xb -xB -XBf -Xbz -Xc -xcJ -xd -Xdj -XDr -xE -xenial -XF -xFS -xfun -XG -xgW -xgy -xgZP -xh -xI -Xie -xj -Xjx -Xk -XkhL -xl -Xl -xm -Xm -xmإ -xn -xo -XoN -xONM -xp -XPo -xq -xR -XR -XRD -xS -Xs -xƩ -XT -xt -xTLTz -XUؒg -Xw -XY -Xy -XYYA -XYYK -xyzpackage -Xʏ -Xz -XZ -XZZIz -Xљ -xۉ -x쉧 -ʸ -Ÿ -ÿ -Ȳ -YAE -yÂlޭ -YAML -yaml -yb -yB -yC -YC -yc -YDD -YDDDz -YDQ -yD듒 -yF -ŷFV -YG -yh -ʸh -yi -yID -yihui -YIUm -Yj -yJ -YjA -yk -yK -YKp -yl -Yl -yLg -yLLn -ym -YM -yN -Yn -YN -Yó -Yp -yQ -YrQ -yRҪYu -yS -Ysr -yU -yui -yuY -yV -yv -yvG -YW -yX -YX -yy -YY -yZ -Yz -yz -yӱ -yٺsz -yۮ -ʏA -Ƴ -Ȝ -ȜiH -ȜS -ȜSԳ -ȜSԼy -ž -ż -zܼ -z'i -z'w -ZA -zA -Za -ZAi -Zɑ -Z֒B -zb -Zb -zbÏ -zc -ZC -źC -ZCf -Zd -ZD -zdd -zE -Zê -zė -zf -žF -zFGV -zg -zGz -Zh -zHDDDDDDD -zhP -zi -Zi -ZIW -ZJ -zj -Zk -Zl -zL̟ -ZˡS -Zm -ZM -zm -ZMe -ZnM -znO -Zo -zܽo -ZOm -ZP -Zq -zq -zR -zU -ZV -zw -ƍD -zxP -ZxtC -zY -ZyE -zzz -zδ -Zΐ -zզ -zշ -Zݘnx -ZޞV -ƶ -ȥ -ʐ -ɀ -ʒ -ǯ -ʒkA -Þb -ÞF -ƿ -ƻ -ƽ -ƅ -ɁT -ˀ -ʕ -ʕlg -ˁ -ʢ -ʖ -ǀ -ǀ̟ -ǀV -ǁ -ǁñ -ʗg -ʬ -α -Ά -Άj -Β -δ -δI -Έ -ϝ -ζ -Ζ -ή -ϑ -Ι -ι -ί -κd -ϗ -μ -µ -ΝR -Ξ -Ξ̙ -ϖ -ϟ -Ϟi -ϙ -Ϙ -ϘA -Ρ -ΡH -ϼ -σ -ϲܵ -ϽA -Υ -ϓ -ΰ -ϔt -ΧEk -Ω -ω -Ώ -Ϸ -ϣ -ϥh -Ϧ -ϧ -ϦԱ -Ϫ -ϫ -ϭ -ϭa -ϯ -Ϯތu -А -Ӕk -бIj -г -Ғ -ғB -ҔbATT -ӷd -ԁ -ԀN -ԁZ -ђͺ -ԃ -Ҙ -ҙs -Ѐ -ё -єf -ӝ -Җ -ԅ -Ԅq -Ԇ -Ѝ -Ӥ -иg -ҋ -֯Ї -Ї -ј -Ӄ -ҞC -ҝw -Љ -ԉ -М -Ӎ -НI -Ӈ -ӇR -ӈs -ҥ -ҥȴ -њ -ӧ -ОX -оyL -Ө -өh -ҧ -ҧic -ҁ -Р -рj -РO -С -с -Ԍ -ҫ -ҪqQjV -ԏ -Ӱ -ӳ -Ӳ -Ӯ -ӯQ -Ү -ҰK -ұq -ҰX -ѹ -Ѹ -Ѹi -Ѹn -ф -Ҳ -Ҳl -ҳT -һg -ҺUK -Ѡl -Ѿ -ѽX -ѻAF -ц -ӵhP -Ҷ -Ҷph -ЏR -Ш -шb -щ -Щ -Ъ -Ӹ -ь -Ьg -ҌuL -Ѣ -ю -Я -ѥ -ѧ֒ -ѧ -ѦF -Ѩ -Ѭ -ѯ -ѯe -ѱ -ѱo -ѵ -ѷH -Ҩ -ҩd -Ӏ -ⰳ -աA -Բ -բ -գ -ԶК -ժ -ժe -Լ -խ -ծ -կg -հ -Ձǖ -յ -շ -Շn -չ -Չ -չy -ռv -Վqy -Վݙ -Տ -Ր -ց -ցñ -Ւ -Փ -Ք -օ -ב -בt -וvwN -װ -װzc -ױ -ז -ח -ט -כ -כYk -מ -ם -ן -ןe -ןt -פ -צ -ץ -آ -ٱ -ب -ٻ -ڀg -ݑI -ݒ -ݖ -ٹl -ٺ -ج -ڃ -ڿ -خ -ځA -ڂR -څ -څx -ݗ -ݗf -د -ڍ -ڎ -ڏ -ݙ -زV -ڑ -ڗ -ڗȤ -سg -شK -ص -صg -صo -ض -ضz -ڝ -ط -ظ -ڟ -ع -ﻋ -ۼ -ݝ -ݟ -ڥQ -ڧLy -ك -ک -ڪ -ګ -گ -ﮒ -ڲm -ڴ -ل -ڵEADD -ݥ -ڻP -ڹ -ڹO -ݨ -ﮨ -ۂn -ۿ -ۿs -ە -ۀW -ۥ -ۄ -ۇ -ۇx -ۈ -ۉc -ۊ -ىӒK -يc -ۍr -ۑ -ے -ےlˀ -ܒ -ܕ -ܯ -ܯG -ܗ -ݍ -ܞ -ܠ -ܡ -ܤc -ܥX -ܩF -ހ -ހο -ޙ -ށC -ނ -ޜ -ބ -ވ -މQ -ފ -ދ -ޛt -ޘ -ލO -ޝ -ޞ -ޑ -ޓ -ޔZ -ޕj -ޗ -ާ -ެ -ⵕ -अx -ව -ร -뀔 -뉔 -는 -딁 -뙿Įk -뤔 -먺 -믺 -뵋 -붋dV -뺬 -쌑 -쎒N -왋m -좀s -좋 -쨴 -츽 -큈 -킂 -틎 -팈 -푽P -풲 -핲 -헟Ċ -홞 -훘 -휜VJ -ᆏF݃ -紐t diff --git a/man/figures/logo.png b/man/figures/logo.png index 1f90784d3d93d80ce4b76d398048232cca2b9a8b..6fc364c18944f7d133cb332aee19c2e4ad4e3b69 100644 GIT binary patch literal 108006 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%0AE!Mx|3D3vSHASkd8PsgOWVS5h#Dn+ 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

`o9pTjUBNu$$)30ZJ+aE)e)S< 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 SVqgXXkB+9kM!A}8?EeS54@!mr literal 118294 zcmc$`c{tT=*FJ70V?tyewh&R0c_{Nv2$hORh@H$bWKKe+Y*R92t`ubm3A@a*P)dfK zA!IJ|_+6i^?)SN$_x=6->$snzZi|prpyd_xLK`wJ=&enOMjoKcI*1QFU^=kqf(U4O!?u9x3r>W%EL9{Z|15SFl&Tm zGp`;=EN_frNtB%%d>wprrYe+KwEueG)QQ#A#(4h(E9bcx@ql?Q{CdiXi3LtBXP)aG zffe%un|`OUDD>a|FqaG_iO^W)-qyfE;*Q<5d^$x6MOq)WOLU2c2_I5jQ^c1Ai0`kd zvm;#-!55v1Bs_}YNTu02ETJU4=2j@aaQfPfO;pspI!She$DFAMFB-?lxUh_~ytVrZZ)Cnp<K*^hnZB%9LP`TT?}i@P6RsM+WLvF1>r z@!pN4!f3IP4iQUH z`F~7{?+eGRK2*%*BYeJqiFlY=QDZH9=|y!Ek-6Jlb92JFn%#;EGWTkPdE)yVi6>IK zjIR*(%jnF$;Cd>3fpsKnLFDm^kj3yqY7>k~GiN)D#J`h;8mlBWful8PzL}uAdz73;EGfB^9kqb&n&Nw%{Cb6 zI)%;t?jycHjAzMEqX-w)H`TuV<7TFhmx*7!-vrxoj+&cv+E9Y|JZhVJ;R-&3usITB zb9C;9okSN}y7(~EpNyWhx5rB8lCLi-L{8X>iFeuY(EXa`387y&jX%u$`!yC7Jcg{K zU#RKgGt8l~)0q@68ex#EaLRe+MVH9_#*)w6xvza#ool$>9&QiEB?qQcO8Tc|qtJZF z=B8pba5AK2#5R-;hlE>Lo}RsW+UuubrZA8EL~LEv!N~YZ43{rksMs;@RBH5^72ETClBp@z4WxrFx8hlxaHPl+-Ub#&&M0xr#DiUyF@ULao#FB{Zs?| zXhWwYKT9CBgQCPLWbe2hQ4L6*6F1M1uZ-?qtB9D1o-fz`JxL0o#W&}n)|c(|*ebog zP?Dt67^3ll=F-&=6k14-q?)~)t6bQr^_oFcORx3$+ydSf7S+C65Bv>TW5UT1E%! z9cmbknNe8NM)s!aWXp^0w-+a!BdX?i(|+9j{IvP>uLV?CgheL36I~=FmI<^pW>P-~;8uNNLb7_Sa+@4zAt?-o%CaDDap83ye zdD)jKhsX!^m5`LdOCCjl7D?4@42QQ81Pz}iz`K*^Gub^KYH&x5==4#m@$#M?) zotN=&1$S`z4;43xn9DV=*}4;OZzZua#16a_x8HFRfRjQ1&Y=t=NwM706}HIn+ByPo z_~hRH77A!f7ZO2tzas4IF6V+h&O4xobPqYXg_)9G$JHyk~bn_Oriah<0JWAJVL>0EiG%lK9q-j`KtZBK(o4RoVxd98Tf*JQd zE`D@(GjeO}7bGYhh^v+0)>N07Zx;U^YwgJ}a=)jyeHm_TN!~8QsM{?-As{)ht?>+Y zX$lGd$j3*VlooD0IS3mwwTSpR<9EipgFdzBcb)GQJBFT1)yd_<^jBklcwtovc}O-a zj8JHKWqLXkI*XrQj_$iJuEN5IB0Q5MeyUYO|EebQxZ1>wt#hG<<+}J4yJ(`MVUJft z02_N`XZOe9D5a=Zuro*3J^;31B_xZ3F!U&|cuvMyY|%AW2L)xQ zq0k%Z$dO!j-q-vJpO1uAR4Uqjg{WdAtxJSmwX8zja!SB0SqIL)4%bQIC@ANA8k>zr zB1AQrWQgJ&g)kYgkNM+lc^UoJcdkq_bCo?>c`XD{oI7lHFAD8S>nXHwn)mkv`V7`x z8rj>qU%33hYotxEjyb9?_PaF!QaIrp0HfCn#{ zy3Ruxo4vpK;TTnY)gB$2sUvi3D&iI)ZBSFJ2f1xFGDdcJAv$0>U{ek9p*s(<)U2EM zf*C%U)Fb=IMg1&zLjq#luy9q+B!G?!@9Uv^Nd4l*)MMgbi2yF^fE_Uk5yXxpW|Ze4 zXT*s{86_(L9gk-imDpd0xahv5tU6#99EC1cFCrbw3nV~>-4{7T6A==#eFM~18%Gpd zSe~6VM_d0o5bBcQ%6w|T5yCO#bAJ#4FoU>KTsjgVv$qJ3ji1n7Iq0J|`A}+nk>+XJ zoM2+-lJ5Tg!&M#Zk@e*A%Qi?@d1%k!y~KcyF*Ys;&E3i)ou@EkDHphq@k{ciD*y&? z6?YooC3TQ>@^(}(?2KZFVL;WzGz*1JMra>Xd|ulj(U0bpkW=fa3f0Ix#OzDWd=b70 zc~IST++oB|$W8aL4X6rp5<;fINFh*5eL=M*kJXp&WB?v#9*4c@dHs~ke7av=O8_-@ z5+gROVK*CtP?iw>Bu?cX>@89mxqw(_7EmyPdkRMFwmVP7hf9;pk+00`f;YNJ1{-J) zE@(yNCHN4w=7y+>)X>ZLRNN{_lJZSn1Th`~s^f88BK@cPr+IQ-yM_9B2)LbjEZF160sm52Btx6N(4FSe_Sqi$teKtIU$jn8br9F$7dhi$T)6do4@x>J`@~*=I=zGR6XA%sogn=2$T? zB~H)>QtU|hcblra*!`|yfE+5j;&QW?vWcZpEzg$qr!?y`3BP-0c5?8R$_poOCV{M^ zkTN7Y;0mU4&OS6fZ>sa_lIo3d9j5a(6F}t*shL+La(!o<*>ysuRv%|rc5@1P^-gL9 zx`X^N)I`q2_qpQ25&R$_(^MSzl$4Kv#vpg~_|3$yO)l75x8ep--8L`+H(3Gc&M}A+ z5pU!zl|N39@(|I3LKDkW^y2$8l^^zNyz6+k&QFie&m_3Aix=GxI^Y8)Jq1K(=#E@B zaSGi#*0pH3HRk7ehRMl7=8vgU`RQJM^NiXUIeljqv;yWW&Ru^>ji=IrI-VZgE$s@ZscgjH+HoG(#rfUf7S2zQ<;TCm zJ0?uu@`)g*7)#)}l7Lm>dE(E=oxMTl4ojWEN^2bQq+5`_ruY{(%E140sr>eZh>Qu^ zlQF6wV<wxS^4B zFK`_jvQ%*!kqpT&gVn~msOezfZED zgi}CMP$sdAx1P6IF-$8b@~1^ljg;&B1x*zaRg`8lTN0XhMKsz_e)uK2dvendE5KYx z#RYuu4`vJ}*)d~Fm5^uXd(8YL;rw@K%MX?-Kr~K`L11NnyiMG^XtT=)`}#-vtLAA7 z6n^uG*%%?I`s^|pC*_M53M?ZH4>SP{*aVn~Oml{yxqT{ErKpot=xGPnlS>K$ZVyUo z>q?@OG(iYDOZ*lkyBNqr;m6su<%I=3{R6h9sYSm=k3WbnAw(8GU^)6sgr%T7_L{kL$}dZ`Y$5gs9777wzeyHu;ME9W zl|6`@h_w!x50evzlO8@HF!Sjt>kaA_qr?Lm>s@kKWsL#5kC!TvKYt7fly%d4tcE*@ zGY0WiVMlL>^tAK2aw|RY> z3E_kBe9++r>?*AOZrTE3b3MRSaQva5U`}Gv4p&U$``7{}L{XT$U#aP+;Kd6#E?hn2 z`3ElNa}mIh17O~2b|0QvWtU2b>QY|0gizK|P%yzDj!QU@qny2c$Vp*geow$?*h8s| z2pH@e?XpsJOF)e4aftp$WA}n(NIQddW3mV9;T-LwG5A?jw1Cxyz@`u80Rc15GK^66 zvHvOi(e~_LMbqYt#QX}zUHy${D*eh0n1B9ord9J+cNyyuLzZ!!|zSV7uw}0BS zeL1AhxvB~phS~Gzf(4>sOjw*~*#9<^Rb3>!6Jp5!sI-|2*%|bxB^`+ZUy$ zw8aGF@({8!BV=do9^6hG3z0}*+2t9frV5$2EPbcLl1xgQJ*h4^Rakle0*hhI85?Vx z0G!nwH44!v-N}uoz?$4>CD3sr)S*T%QW@nn40G$Drp$TmbFVycorRZ0;V%4(1v>cNNnP%IGR)ejC$R+^k2|Gsa>8p789(3D0qcHU@UpL zbd93=&0^#N{uaxEZV$2Y2pj=_!!ulR130Nm>j7m!@?}GwIg}w zkUWz{pURI3ne0u^c>gUG@J=lb; zWxn>2ajs#4a``t(!N!kxlF}h2I|ixe?}N2N^o~JR=2pu!gSb3NU-I#1t)ZDdlbmP; zQv@{C;h*~jPW@Qr5+f=k-Vp~nh@?g^Gj|ip8FOY(TA0oX2;>;iUf`^L>pQb7h=7+) zV@Q>ZFee_OQse@0P=uuUs**(Fd9odj=6(B;;w3s^YkB9qE(2;RO}$4&*#FA@XR#@F zepg5D7Ne$mkSb{R3gem|Uh~=!c*P2z;GZ+ffYR?}Zs^O5jY?PY8M;6omk-mW#{S5{ zO$QEJk);(vjk4-l$=O5AVTl~roZqN23^&|$1)RR9k0GcVXx{_!mD9n#-n+dp`eS8v|D!t2Pi=6)xxa|Iy zzi|HK4u>y$KDumBfXMe2Cf3tqW%lT-qjMgZf*~E(WxvqP4A*W&T2qECR}3$lsEv)~MZ`3lavXHM45*JQ7-rPFzm@AYu9)0Hd>q zCy2_3hdH4JeSL==68*27X4qLt&VMO?GEd4^2Y|KSAhlZMd$t8ltU&3J|I#qn65o+W zpI`40vR!ZiBK>J5{z!kJ){MaHR56lj7Eg(VUwgR*RLrxpW+X_iL6I}Aev?X=&nR8t ztxGcJbCPL3FsQ-+urX;y9{hPCKq0V`4n(A)A94KGs@6(RCypo9&IFdMD=ky;RL!hA79hkod$wqA9Fg|gwtf_^d z#PouMiSha1>W3s7VSTTkE=PTZS- z1rv7_T~vnGQ3FPpl?#Djb_srsL|6BnmjE2FVk8h%EkO*)2HBcW3vA6mO2m|Z?MN*DLKTWMXbL(0b!vhU)6wWyiY+<$kN7{( zi0GI!A~P+QepN)FW&8h7xQxykX+?8ulq>$Jmj$6-Mj`dGc6UM7JQ7~HRXgfPcnLzf z5rBdj!v+gl4+f)j=xd}w$BcYweb&y+Ys|@z%8#xzEUVD=T@+Zl(h5m&DKMP^Dr7c@ zFA6vik^I8}Wkh{3iU|)duXmGu`s($dv_~yZ8ykw@@lI*zw%Dk;G5JVJE080Qha4%s zvImh6dC^Q<$bXsr_RTMG?=wxqezsizm+7u>&nBB7rtiPSKT!cCLHzq30p=jgO zt!?e87{ssMQ!!|vr+vz2AlvJWg2Pg~ri-V;F$F51W+mau>=TW^bl5%9P_xQ>#P$5d z50N;it3hv{wi(6z)Bz&~vG_0~^Q1$hx5yk~N_4C?A}h1GGHBmXcyb)$MogxRGvLAJ zC{5tYw9x(5Bg*Yr4Be&`A?3sSz-F>UZ3g%SGkR95cH92G`a1jN0b+B~0eVxma_d*Z zTGj;EFad1rP-x<1Z{5c_TDDx?Qiw)Qvl@P{0)9Y=D*{v&amqQO9ebp%QL-^g9n>#4 zc2Hge8^=d5{-e9>#qT4qfnHAMeR$?K!pTWD0yqNaDJ6Y-L3ZleJEW;DL&c2ErnUP| z@qZgTc-jLyqx>*i7aZO08^T1pbmd`IP7f~|RG+gn5aMC&8!0PJr1F8k_J1m9nfP%ks# zz6It$eWDo$7u{&b>3PCQ>ETrL%vu-1n2$(N*$PD^3pQ0vh2Clh zs*|sf>bqaL;L1qniS=l}t%wsfOsam+GFHETTy+9!rB~&{85J%JaCNE!43J6vuv!Oq z93ir@Y9S&meCWaRKk-+^+>kJ+=7hs9313oZd`c*nfx>Fnh7svc&&4mY37L(3>?~G+ zX2%t73`(xv8xzfmc}Qfrzee0k9h#+nJ0Jr$?SqGEXqtRpWIMq#8*a~0>8A#W{*nHJ z`k2nI2xiV8?j_XA)!}>YB{}x01`olD$)1Heqg&`ffFp?mX~#aqi2={w{IBP)h0XRC zoGZ0`F#r{_0HI<&4Mn9R@NvsQKdJBzKfD&ZXsmf0iN13dfN>`uRU?e|E(7e-4SB`BJXL zew6*Q0}DZLi_O5sZ}kKLj3ne4rtt>|VEU!D9fBHuG4?ld(}38j5&Y`$YClBQ3Pjedcp^y|sX1ad zJI{#SEZ%HpS-qzR4WL#x6CH%Hq*(#jVbD4mB2i>5*XWi8E}o?~!ZE}uMx8?%6V*~0 z1jzIPWKj0Wd)oiwyfhfIaufq(KKpISfe+~5+7wK<*Tk_JAxT5rY)H8b-6TIgbw4{S zYF62~1{91k`2ME}am9$ggI{$T4lK!9?=bDJsHQ4s`od8zprP*d>#y#I1_^b+@Zb~h zv{p8>Q|_!a;%?)>;6&Neg-~>Nxc*D`E1e>Em+(mDH_t$%SY9~;>P!jW2+$vYC4!Ys zRwKnsd?9_e&y(vMJ#4E$R?mKpsJ_1y3C1|*<4{s!#CZ7TtiiLFY&Pgn*+)Q3t+Op} zWHsl)87N;P{L$Lez+{-G2iZKu%LY*0bQvJ$IYeWlQAzeULdLmhzXj**$ ziIA9o>wXEW0xwchPSpX$Y4#k#9mRRv11fm>E&{5q^}!SBnjJ0 zMT$#O2O>X4LVdFn496p-j_V_x7m(xPD+Vd^w{8xGx*0X=NwEH@;FJQ}<`vecAm7)3 zF2Tss(`C<8vO~fd*)#q#wPi~y)D75@=~9`rOek;u_?QdaSOpOd&}mgH(@7{iGK$52)?dCEMTnhpHV0)Q4eyjTCr`ll+VUkmEu>vkAt2`JgFCR!tU zrQ+6fjd8p={HdO~Mw~=QR1BEfFNQDYRl9|DG#DX%jDNs%AmaU3f|kc@rjUY#nE*FN z{i)|^I~VU>)r`V0xp8zFnVUZ8Gowqz=IZ<^|DX^Uk2~6304cHmjwOymdFMIO(J&rR zgEmP0>k|livS*na!E6F0BR*m#3J$p-RwGP>ZV8Gag)~@gS{(-s9FnAJ>S!18BR$53 zN$;35O`)>HGHVlr4C2RV(@Qp$R0h}uBJzLM3c~8;A~n(};{fWyZ23S;H;te0WrE?3 ze$A>C19lK4z3Ftocf%BBl#1N)>iuDG_{q~!SSH5m6TsuD)=`Kb^XnFZo;U;W{(D(j z!K6aGe-iNiNnQXcyE6ls{1Aq^&yjS6u(PKINI$8w0!cUB!l8)wukAX{{nz`KA=xEG zAk!@j@;^0&YV8WPd4(Kmq6e9ZP%=ZCSualXUI$!&z`s3Ae-zK;Rt;R+Q@HKaa?wDA z00|nXY)U3>!QPr#8j$eMX6&b>Ia=YY_jVT8iXZ14?&+b6PZzoVbboTFT!UQ>j`2H-HU;@SSuUYdiI|uM zX|g=Kk9EMAKG1lTP&Ze=tPj$OC2JO;scEN55fZTuHfHK}s-^`$hW~$we?WHT@XMY{ z@~~_elJIG;zLXy1a}PD|!fn5zK__tfAqox1^;rkR7D4=D-Jd!9)_}_9AN5Z%M31Qd z7Ad%aJQ?D5G8mA5$4G_a+Y1?+Lb2fv`Mgii8**_gFR(t!a6 z5#Y#vd-{h14lCko>MJwv_=b_w@{tp&Ky)&JeWd!Jk>5bgFncf$ z=5x$+8+Hd+j})J`F+ZIl$$`8j#snrga;x1Q`q>}``Qhfl=Vc^7$JzEVQ{h4wrnmqE zIEM*k^Z92TGr-5ynndy%`XHa*#r84i2i@`0NztQk=TRCoDrdf88HHE z2xBEW05~PgZ zm3-)!5zK#5F#pBp6uRi~7s53M6Ca*+Eu{W$;~xSmrgz=}wMqY3YoxbU1tgl2{^b5C zD_H8OJdY>O!ZK1*A{Hjplx>KG2?Ub$&4-|6J|kMj7vBgbegcrH5cFX++hv_dn~$0& z?KCNybLJuKWp_=4=(4$l_eK{4>Ien1C@Lr@ok$+8Y!t+Q7C)trf)kC?9mK9MjcHlB z05!^eVODu9*qK&1p;^|YxWP+kmdy!xS$&U&oKfpy`@~@3D~>X-6B&w8bmoJ8LD(;t zsDQVuJX7czfrQmEVc;YLJ(uE(0>nU1wPW+WUDmOG~u4D(j&zuXA#c=e@`e?mhy zsI)7vGcG(m{sthXzlxJxIQ%&(wvQv=${t|$l#Bv$UD%z=h|W0fPz`@s8T1^E(y`2OUG^oNb5 zL%*QtIuA5qgAu%}r05_`Sk+v|yD(ih{P`aUeS^&hc*%sUyN4GFCs8Mka|{ESS0NBpMTk{SxtPsbAzK3<=BqCN zw6;bP&M@m}ly}KRo+lM|B%EtFfUJyg&|^lle^C zh2cB^!l3I3%LlGLyz!Gv)io{Vp% z)T!9R6n^xcG|gc&-EW+1pUfU3f5)}P_hiq%1k;}w6aryum~V)KiMCvaK{>?1w8ZH` zKmcB5N$BZH;{UI)1^=V4ntN9Ha8AV?9&rA7=RzRMP(e4<8|HmXn(_tg<0bgzRGl61 zQOt;ZdDda75hofP1uS4l0lgDsB*Tm+%!pxE0{lz!$^EluVXdznf^zIXk`agRKjs!- zDQ0bC*r%TS&g|Z>Pc*R%NvnlX2?FRFhoG1Aj$4=#Q7@c%(%u2!O(E(9CGz{9$pxfb zwuZ?%eL{}Of*hlFk=|2qft$C-`1`*de?S`J0WdF(=Q6yOPKTbTQN?pZXF^{s#CAze zs;hbJES?l+gB0{>^vH{Q?m$6b?dOyMAI$;hGQCNV%e^n{RwBdpL8f>4j;A=AH#ZPzBw3 zEUOr9-_Rc|gLT__laHl3V`g|a1(9KsBMOjV*ccah0#->U$O+xo^SKgvink9LoTo|! zQJj61_rC@g*zxnQHJEoe_c$L+S&4lF>B5P~G8RdKEW^4#{ny}viuRl$B+<~K_KZNY zmj4gEk3yI9shmNkFXuFY3U1>MVig`hf{8Prr(1gV00+%xqFhKX%;TcaTrlKT;n@|| zfjiUr$GZG8w?NSQ57&RAN~_*=cMEM$1F01KmHR*k*gtX~Rh3P!{Ey9A?#(U0fSfGM zEqn!qOT-$(S^MiG!o-ao+2GWfIx7;WN2=uCo`28Y*n%)AC;N;;ENYmxfX_>eulQFE z`gt+9Ffg-#jPRyDL1ukG8|^ulX!n$DsxJD0Ola-T=y~BU;3@-+pprQ_er9j-l21Kp zs8JXmq!UDD$cD83@%+h5DYs5f?hpRnb!~N>1OjWPi!VqcPDmnC-j@Y2VKjk6`rWoW za14VRPpQo)Z`i5a;1 za4LU6*!T$;VDZg5gC@L4RP7Bd=uS_np(qbo^)muuBuG4LY2c}(|244y^G84gSjjBJ zx10hD6eER<3h0*T5c-clTy0+!r)awHf5>lIo43!9)VdAMo|iP?!s0HcZh$4lojojf z5E_6qkYKs5DLI8p8{|reoh*@bqHA{57$tNvZX(^+epd$qIx$jpzMvSh!2{dtlbt|q z_WF?{f*<SHIxpN;)pN8JdVu8fpeK@%11~tQZ5@+hug;mpwEVsCH}nY*M7s1 zPeN~>?W!>hSetVrx~20gEEp>qLC}s^O|yRuEoeYrQenT;T~79hv_n`|gBpe=gs{xh za-|jYGw$qB2&NG{#J!1S!qfu(29`l7Incx{1s;p~KSmaILm{ZpCPGn_B^T%ODqMJ+ z2WY_DbH?As%^xEHI{3~qXuBqf*TZTZC=x|xl~oC|$|7!&NV>3Fs=N)xrR^W%k{*mp z7I}3jb*;VyqZ$)@t`fBVq4N{;4<+;n)Pr?@`M<<@2E0n-X&gxdJV(_b;(ej5z&P%I(>BbRxbw^80S)w~4H(hDj(>>tk(dJ7qSW;xZK4;}Wremd~_V>8s;nP9b1X8aBO zC#x+xGvQ9dRBythGLo3k-(cM7f6pvf8#gVH&(NPE@uTuoIL3$={ncRf^W-eLE=C6< z;XzZ6K;{VnG91ua?m=yS_lpOs|9YI)?edfS`24_cf#JX+2gjj02Ej%tZl?L)rn!EUfU2OCp^+{TV@1$}N z0W=k?W8J8v+Y9Rg}~`R8PZaMZD|R- zXw>iOzIS6Atj_75`)i>&e0Z)58G=t6+n9$jpY*~n(A3<~PW53;9#S3rwYR zX>TKhTS7XJjFGJ`3RXX1?2?g}J~j3RaXH1>w=TZRBVD|&S;4E!#Bn|Q&mm>x&boIC z5zHWVr4M3P9s#@Z89ejqTL^^&eEFz4dFH8V6UjzpG%2Is2nOXX9p%Vr~f zGEkD_1@w{Dyr)t$f6d}PdSTKST>HfP|A*j5_n#-Y{TAT%Bcl~Hd{9arb8B+{rmGgD zqkW&;oCRXbdFCu(=5nt(#%3S=WH0{l(gxMwkAH?1(0Zm{Slny7u2Fk(EU^C({Qons zfJ7umJz-{H{n(!3KZzam@~pvm}fwyDwA+rQQkN2*y!rM;W&5O)S_H90u4lB3EE|n4tOTKMt`Wnjd`5axgY8 ze!-{(xdyJ140FPi$=`v6Kd3>!|CeJ)xh34Z&sWsKNV-q&5c_{lD*sEspfE6w@n_Pf zkD4p?MwnIJkUlBE#)U0QSt>LDj-NyV8RsQ5$gnMAf_n`z2ovqFO?&p%)vhbv`$v#T zACB^aYsFoBLUwT>6zQj-r|*i8Rn^`&Q z(dlD$L9FOTy5C0YRMM26a_9W&c9hTS;hQO{LHyIL3OfhRak(6o8TYh4(_=&RJmmh> z2cgKHrVeY@4?iw{_*8iPx7C+V11;A08j>BEYhx4WYCBFn}Nf9y@cnh-kkJs zh-s_tp)zgEPpRMy1I_tw!h|P_DlaE9zN|W1zH#7lZmsyl#i8rIEgx#gG;gMj316M{ zqh9mEr&+MN7&TcZsJpH;KP={zxjysdxZ22sESyltf>pOkFJ zhGE1!w>w|ih%uP8epHQxbd}7Egg;;JNttGrEm2y1YizddLIJdE1<9#De8`L>G>H zhk2naAZCu+HYK3Dmz4QuBQC;CMf1;!yvaiM@+A&Pn-eE9RHm4$%fojO3+YFj%M_&6 zgcpWM80>%lcEDyFbB^d9BV{W)HgjE_@W+Z~3>`A`s~9y%Q!8#Q;77jZ`XYqt+l@-q zpdj2Z`Oc)Y(y;ySGr!|(xEtu$YsEG89(!}Tzed$@>QIpros>MfE5SKJ%s%1;@m z53T*4-^weg@4T(WS#!o~gKw*4$0Bj>K>5G5U&;Jzw`82w_(RQ(@0EcL&YWaNi1%BI zQ2+BT9FYpqmJ%L!P^s}0TVs~27f*0lEZZo3CFkBI5Ai2AE*YEg-mIqnVv*=7+F7h@ ziZ3hsx$h0Xl;@-6YI6Ns?<**eJmt!fy3O9mF{QD8Z`GpqqH?tV6b8E!Z;@EUxJv@x z%Nuy2uh`Uejd(2?=dXzWO`l?%k|Fi`n3=_$zoFVhrSmp%@~DbhT1m*&mY3={f4VKM zCkjtv=|@JYiMH4l5(E2*I?Aj$3)L|jw5OLBUg_+;W{k510IP4Gan1eqSPNrU(Zqln zqAeaAS7+?ISlDDb`3?vEOX|U*_y}haDLsQ*13}L3ED{CwUe;2$Q}sjqMA(%=hRV3e zwF3*IIODl7R2c{R0L_--0++|Hv2T1&xwEBwDH`)>|A{!_BHQ4h?w;)LrGzbtF0clc zIZnJ!rlZRZNGJDWW}7k~bvTCh`eE^|8-n@In{o-yz0>etzx=C2X2#GVr}YlQhjhvh z?TSuW8G)4WZL+@04D^}_&NOkkdPYx&>qA#9_aZ#zxQ+dpk`>ACKXoo8(?Ps>F|A1i z>?YH7#11rFSQZNOryB6sylqcvDXf>04Hwz4@BY=uKNP_4)t^HE)l1}6YxZrCEqpTJ z@+|Jci{s}>hZUY=zKJj&(!u=TGp$jcG5iy!tU9%JO9^R*!!O>4+Ze;`5^b?uo6@Ab zDk1fh*ni&|`dYT**Gj+C?l!fx@v46Ub&M^s)+s&(&h7}tpqOqmPZ^5eRtJmcapZjBEK81|lL z9j2qBe&MLGR{YJh_wXU=*E@m)4{dJ7D2^_%94+B*Ef5M zNX<2{dHkj9P}+!g{*8Qd!JE}Bp=Jplfw2OI*vU!-;BrSj$Nzz7k#&)0Boa#7`M|Yz z{2a1XNehqZVjyxx+Wtlk<5y|)Du30uO;c>gD;=*wQ2|DFS%)wnd$Q76A1CVUy}ND_ zzXnhcg;T8kG4(2+_;X=b2rD~V$n{a?`i3gDMvg0o{t!bJf9D1eypTi9@fpMWtn6#? zq|;1{TR)GbnLz+JSh&CakfFrnnRa5vaPDD!?s0)v}n<9?YgE`;y2@E=rA$29U zW@%|7JDBh5N*9if9U(2zcE^bx$aqbMeZRY|{)Wnr>1;1>-FU~Blx#1IRf3m8>4f>! z(LDd}a%tY<{m2euh{F^nCM8s~(pKJVSCrZ72OtpOesWHMLerOKFCf*W`JZw(NX!eF zdWYH0TEA$2Gh0!{Cv}YZu->`HZ+S+^Om^M=>`fuU`Q0+d;&LVYN}U0@nxmbSIT?ZG zLu!}}zJY7kMbkC^#JI83JL>rL=nwW2C;rX?7(SKgHt~Bbc4e@8;v2RLw`hlKN@9NS zK~MM}Jl!)cU^aHrwgt z{ojA~QT3TwbQRN6+_9dIUpaRx#qb*MAGXwu7&UsV95iiA>F02D@Xsnuw?(A(|6z@3 zL)$-}B=KhJui9EfYTiUyGTtKIkOlBVHTw`8jfGA zo9q{q67OGxtv3by&yQL({E;6~nTBZUD!~a^9U~l06J;EAwQA7u@%8(f7m%Z+y-zsR z^#GTTS?9Y~?m3TD(nmff;eid%{&|i1%!}+1qQfVop5K}Mk6+ZAPyX}5$sP`^0=uX2 zCyyAZt5c{EF3Sfu;1;}|)c>mW;Ws?HFbi#cX2@~&BoJL5nuHI$i=KEplU(@Pqd;=T za7>zwv>x}p?mgN^pJ!QJeXL_L6}ix%JOha$n>P*WFJ+Mr#gioJE51p;e!5*u13t62 z(N(!3|GO1QzhEVWb4SV*mlsHaPgTKg|K|gDu3^`o{X{;1_omN_>fKj@#MazH!mhp2 z1t{6CV2=IZr2I+#G>*j7xP3qT_7y@@#yBo0h171cw@ERxM<_HldyTv&Kl~|K6`l^* zJG1+>n;dPO=l7Mc`pq1|TSm`V6q&Ih+$-6zci1vMYwx$k+Abc~)am!QdqRlg>}OKW zsuX^Hmt?{Rs2bSL2u4TyP9CEkR%fZ+xi2Rc2f$ zI%Qvl8|#}+wmXkxL^}^}=l$#BkEY+A)zfntCS5IJkCz=zdBVi{%01+&6-UT2-@VF^ z`h_btDmqh&pPI?_Qsr9~D_7_%#UQXw5H{xidfVG(t<6L6OvZV^7S053;>3QIi?s(Z zbM%$(0*^O*J((0(pOGH#ndKeu=~mPu$tYH*Ut^4VDo)qGjE99bJu*NrRHPHHL$1fE zfD7UA4j3r#KiYgPht(;^=thn?e~WvQd+^nwZr<12cIedBkK6}i$zK?)Xl}^oQO)Tmh)VfF#-ppCBxf9PHHR`m~q^!Jd&+y$#!GIQOk{`cyi*gUYiLVf z+Y#96jZWFnyhe1caDA&i{Z2s5mgOq_Ye~3VRyc*uszy1l)sJ*s=_a=K?;9uNUZQIq z{mSbc5_Offm_(v1>h+BYr+1Od=?gy5U)Q}lQj}Hsy0!%%=H=kLtU67na^K_9*FPNJ z`7%LoZ>a${6s5ddA>=vMhK~5UR$o)vrH_C4iQ2gG!iVE_4{hDQoC#`sYZ{&__pLI# z`k7@)r1=(y<ZD+uPctlCQ=&99=RB5uGJ*EPGxuI+D;^F4)$w-o$i+Tzu(ZIp=(qW4=@P z(ZhYC72K375(^cbiX9)edJmol=quEBcu@|1=dSjDFuzqdWWsHnzv1)UyR;uLIMnG( zYZQA@c{3^6X|hY%bbcivr?61g>Czmzse|#Qsl?_+JbktE0M~1!jMTV_FXq<-ld~K} z=U+T2S1OoT{2r~?q{UMcvi>!U_#(1Y80=@!d`Cz~#%Crk?aG%AXCSf$*esu3IODTw zque$ct)gw8Sv_@uV))1zI#H$c)>-P-s%2$LfkC~_au2sarCSxZF^5lzYyB3>E6&c9 zeMoC{=SG51x@YJK22PvnnJyDT5NBLkgN_ZjDQ|YgmC=7z4~5OykYTJ!~1@pFXOk)T=(tA z#EX9CeEA}9lwN%67zI6-Tpg4CJ-4^MJNU1~_Y5Ro{SFUpS~IdeMzJ%t%Ja2%vHq?O zUZJkp(^nWS>V1A(c#0QZ)_+B-I{Myw8Hu)|OV?|YMK7#;Qo7MH_>rr1k^+D4VPxl~ zWyp9|CMc%18nb%6HGb^S<1T}KS^fRbjiOvx{>^t?f5Os z+@hw33hM@C=rg>mNnh-HXWD2*AD-b=rSxmpGv8Tvf_xv<%6K2T+19vnPVCkkX-9CG zx5;^^TOwlh71w#q*S7MUwr4A;Oy}OFn7l0R&BuOY+dpv=4V5$Ll^lb@lt2^Hc(JJ;QHodZO1o%&Xs!$HUFYuJ<-}E~KXK z96RB9;+y|N1hQg zwesqaYh3z9n8Z0M&52Sb#+dJi20e5$@Rf?o8DDi(=FGSIgO5H1aoJFBqrA?WzO&LO z>p4kOP`1tLmlSL^^6HC-)9cF_iOg@R?oXd!>obR9@7yES3ieJHk$xR*dtnoih~sgs zf*mQ<$vivn=PexG1b!vXI)dcg$RCxtL{2}38gk1HZzW5Zjjt#6y?M$HtYY23Ry}bd zdU1Am<=7_uOe4+Rj89mTNg;ZS8E-q+4N>l8Rh~xLvWX~X#fVXhV$Y|yee!P@S|3fl ze$>9JZ2ah~xszxE+k+f_eWmqdn1tWSHQSUa3jRsLXF@K+ zgT4MCuKk!ATdOT6tEppEXAsw1L`d6Pw{A(t<&~I6?6PyARWA5VWqqY(;S(or`%QSH z{rJjiX5;)!Zl(y>fkQ-!%|a;Zv$W4l;nrvCo#mQ}5(1c?K8p+IR8s6LQ}Vh$ztLu- zuJ$glhH;Q;sO4r|Qsdbit@pZ4Z@z0E=Dr{5L#1NXp zz8)u36xxTX^nbV3{Ic$UDUOyOQE>wD-cL=Zc^Cc->oxl3dQwfH{XQV%unBpe z&ODy)n>DMW%+F)%EM2w_<|WXyAK31-cC6C+H1Ft5*Rbro#sBr8YLG0$rHC7H!^7b` zwEi5;nrxPjOdgF^)@**0+r|xUeUR8mPpN!$Hi4l`D;N^5QZR+UO^Y|7(+)EQwT?SO z7Yf9KO-y3|br15CeX#oejastqTf% zT>P_xV}B9Q|AF?NW}(G*i&V5jt*%P+oQgQ}wJDw-k$oM%^mnFe##=st2_(qRZ=wxI zf1E7hu=d4&J)ixxFn>{xS3&Iu(;$`QM&;%mHOfaxsTt?QqOM+BC=in=5lHMkxX&m= z>C?f2;;SAn=^E%@?vumg&6M1C7yrjORtZhLO_4G#+ceU3Y(B%5?(Pq+Ec^N0x_&<| z-7ipL_r0j8kGI#CPmt&jp0hocdE>B*a?i%9`MD1g{6$9O)ve!yTz!5$3we~3KKgz$ z`T%pwCCdisW1hx0GB^~hyaG|_*Q&d7ChhgpNk=_p{lXNd9K6)(Ad}MDTt1Tv|F>wP zWgqY+a#0zk&s=`?8XV5M$*JIXkJbE6&_tSlaJb{NE3B-S*>z3*!Wj;4Ou|KhgQX`= zt6Mc}ZEsVI%`y11bHSykn@m^-zVTw8+Lk<$@npDYhW z1}&0AnBa0vek%9`EaygD;Lfmy{ zz^i(v;Q|)LF(g>(R3F1D13YO6yZ1Qk`WAJjgJhxGor1QA)Z2TP)4o)`K zM$s4rZfX5P=beCA+DlqK*`~QGhmAg3oH2LeFzvI>{D`mBSL_hrxpS{{+-@s*c!xC2 zcTTKTG{5AV?+4GstyAHlGX$u;d9NRunwGE~78=3Pcf4HulHId-I<3`2&zTHMpJ9eA z^v2@GO3t9WnHv$US=B(Y_B$^*Z<|lSe64L!W~T-CipfZq%_uAV+e+fYMV48dtEQZbWE_vl$(NxyElRs4?!OFR#Q8X*RaA$G^VZT+a$nOEYrcyO%g4<2-HK{=EF`v+$#)V-$xG53 zDc=bYdJFwfjl;JJkjA`lcB@eM!XV_kFIjx~%!7W^pu2cw{EO@b{!Z^a-QoOCQLT2LC zgF>AZ)}%R8%^y~nQT+To=Z;qPwo>$Ek9pOp%jKH2?VF6LJ8n?ED4HT1<+a`JI_9NU zHFm%zK~aC7%$Ly{GLsGTm(5V^oHvfpm-2o%^u?V#Xi-P@vTB-*%wX=dG+3gX=Ox5}T%#7>q5 zYXQ9=A#Q+OT=@j#5cmIRy2_wBnx>1pLvRTMcX!vI3GSAQySux4a3@HDyIXK~F7EEG z0lt0Ss;_E)Qrw-L?$f7FchA^+tzCcNLh6!Fu|Us{7}jt`nWrZWv>%y^@S-yRgO(e4 zbniu}{8z`t`%oz5#7qWRW5?JDzlq>e3vi(h|oS3Rn)WdwMngNhrb;!MJz6 zqoBg~!96cTpUAJ?=mfDJUjSKv2{R|BvO&T370Z!F8GQx)x44v)D2A;$bFE zTM<lUADsZOS?zz4(cy$ zrS`PxGwIEi2zwsQW49G|9{|3F>qw_T1$GEXkX4%7I&-G2rjYQ_^7y*22ox01zov~s zgdTSY^Sqq4Q-_2+{uBUWhDm_l&=!8p-nfF-S)MbUCwZktat)c|Idv!Eg=A{6UYkdt zPNQ_K)-M%@5vK?hd7jy*y2nwbhA-hf8lz`fR~Zb=SLf6dZX?WTlhtiE%Z}YIMR2FYuVo3$R71u6eg<@hTI~xC3Ec#xNuxDz} znvi@5$GXRdwDzB-L~(=pK$fe&GVPf6{FKX71w^4ohnVfBUaa^{ysPP%^y3}%m2$im zH`_$owuw%7qLf3v>aKTsXTqTY#3@T|XPAQB^fEee3>Z`BLwc$!AI~F?HSNmC$wCMYs5e_NmIR zIpPA~yshYk?t{?0NU@^pFJrw$Q-p8mO$ ztc67Z`e@vnGwg-Xj^pEdO2#NXCHQOKC%u;?K?+&$5T)Hc$?W5(^H}RGUS#3pW$`1i zMCTrx{=MUT@kd)7u}UiG%_T<7-;GGFi_A+$pS%JMr@L25iaJPu+ODwxIT0$! zW2uOL$Vg-_;~2o?BjsSjgOMSJ9tF_FjlQ2 zkh8v_jcwh}YhB=}TwW8=dzFl^Lo-)*mNQK7m(G#ujdw~1uIf)*Z|Zj9blHp?)|Qt} zEX-DB+i&=e-M9PJdL2HeGtse;0eSBnrBBHIkI(-zfIG!`y+5$Sw=m$y^gk^)Zy{C3 zNhJiGCJm`{y4J_{U?OH}*_caz4is)UxxhY`g)d{+FSY8y&8IcE{I&9#c(Tsn8FdA? zlKAzt_8QrqoJCOb>lEd_hMT)tz+ZHxEAfzb^&TBAuH5uwecnK{2EURel%xnc=;KX& zLj;j!RX^4{tOqPKkt=b9ib=vW%o^>PX6%!F7~0z$EwT7q8k2UoJ4G{KVG`(9SzF8t zme8PJ@27-H556ylK+pM7BQgEGz_PYhOrl(0w1v+yuG~LwW|=)V@F#nc903*XVS2>j zj%`Y&6XFWMGB;W`6hc}0oyH3qpVY6hIJfGXwU+j5nK4est1PZyDkm8{rVGj=yb9Ib zy?h8G)iHiS@=os;uo!F6Zo;sL`&N8ap-o*V(>P zs@(Uj^6%k{yJVJF!;9Izg3BU|YG=I9fX1p8zi@ols(G|nBU0lCtzhN4 z)~{LE+_UmqiV05#(dK1EQt|aLoXh4Y5XwSb1Q-->)A(4|cd9zsyi3?e2V#CCsM6;{ zh)KGU;5{t|<}jvzE+ZwJKi(sewX$?q6~5p5%M@RkDwOMCl4|&}fJ}Mp(IFchVUr5# z;XVEEbtveG3}!}-O$bmg+@N2#OXE}=a{(Edm~ zL))9$p@Ss>!?yie=Q%0h?ZY;ocGSJzu3PJ=De5o>dK@;d>D`(3IOS{=n#8-o6e!*j zwm*2kTBcqPOPDV;yI-QlJL(66P_*qLaj-U3>%Y4+MN{uYmD7&_bRfwNKeI^4%I7jC`Ux3Q{{C#VU z#=cW&?~l^aEQU{BwaP{{kpGKd3=>)KaHov&(PbVLy6j@=-CD9RatCsi+vxYnwgfAls}j*gaLx6Zr@99VKNS8tAO{5OqWh zTR4#PZFfpNOlVmRBqV_cczi3)#YmIQ5j|65Ck&1!>bMWzy}#A^ZyE$`4T7LaKv#Of zY}4`1Toq+6 zyGv8=H&rFVPEA^rqO7reuxDsX$CbQ{h<8$I*Qu!}c4b$wL(&YbmFc|%y}Ya>hF){~ zhDft^+l9N*G&gM=w{MPOgs?C@)7ZYVv@?!-C@io?8N`n`iO--r+LC33{<2g^y;#fN z(j{5z4iA2PRIUEDcE>x!_7v9(C3Mfz@_S_ki^I@AFvGlC{C=PsQ?KRgwB1fCnsTw+ zg=c;S4*1gmU8S8uY1-Ni#gdLZ;iJd(@g_BCfn&7p$N?Ysx9jzg!aUVG4q}xk1G!G9 z{Un(reiOL|Nt0-xzy$IBrdd_%-qrs`Lqy~^erFOm<^S-R%-1DOiDf_bmV|1Pf?W+j zgFf>*Bq|Z(!X!4;sWLcnW|G-oGQ=_Ju(BGXC+u|0c4w2p2WYo;F_eo+;~( zre1jntgq)nMxyQ6Uw7)qg>Oyi?YrXU>~`JwQ&_qcTfu`S1l$P2$Wl%+bJ!aUvd%g= z>25sKV|H(Irnf1Rqf`dIKsS|14Vm6hU?ZP)=2m99O2T&rZMi_IDQqM^>CT-b-Ecvk z7yVC(fvOgtH?N2cJLHNkoDVie6ou?Q#3L`?AAJAyn4_yOc{4IgRW!M6617F3$ZQD! z1+Wror1?>1na5A*IbUgCNrqP>jninmo(&R7NY+3GF)v16kg7avMzov>kI$7KHDBAaZuW}md9#QK^#BQfZ=1mH>Q?4?Ue&uyQz%sf@bwW~bq0#| zM7FS?OBH(06eMNw!6G4d(J87bt^4x0=keAS>;lo= z8A2juMZXheWr>(2u1vrEZ{T59|AyhKKSGt>ASI7qJcqI5^FKbTF-=Fkv=$wjN1uv% z?<|F`)ghzePnd&5hS$lGLI%Fu?%LX2a#giZm&u2Gj>IYsujAhcA12{aKs8Uf zuS#2`J#vzE@#4_W0p?vzqiK2iJ0s|KezJf5zZYOarTnScHSRfs;+wBU9NE9XBA*L^ zhg$z{k(9NJ%;D`X5~UGq!k~@T*K@)P0k#1d((L`aNTm8?quT_7>TgLV_#oP!ayU`2 z6^)dRg~z&mKqt*>KG4CocvV-Aw}`so=-IWa%wigm$!=jjtbRa@^3l{ z>R;k6ka;_rrFlYVo3yOi+V9N2N!sO!L$_8Tr@j8G_xH`s_zm@#TedkvG_F?EQ-rQ? z`#eRuC-eTqM(S@77P?H~iN;_(6ZXI!HGBaGywa6D;Yw3C{TbR9D~GBKr6!h=_);c3 z>DGsB7hWFUX%mVGj+qT-|5benM|0S_5~Kfl5=I6JD7;KCNu?ceU*LuXIUj6#{S5BD zJyq~Oj`k>LXl^`MH6eH(MY;!fD+$@m<*dseytdN|4m*wQ$i@4m+j+gHEL~pxP4ky1 zN8u))a(;P>Fer_*UpdPP{o*YL?B5$gk_*opb@Xr!&?>-#GsM^ZE};2z&cfvMsPFnP z{`2A~yX(-w!#|WpgmaASHCN)_Q66tEPzBoBz{WnyVNs^%b@8H8{)G-p(VlTgh;~`+ zd@xU08n>vG&ZdUM7lvca@!2rX-Y*#$9fT6MyX8qb@BYGo-}4_BoHe*0&^9c#&cV-faLmWU3YW;X|?-_g6v}$%KrwPtVD%yP5#U~ zY_60rTloI{H){DrI&zw~UdP(udAX2A78}DvNTY@VzS-$|$8JuuCg0TdiOO&m9?<70 zWui*}y&p8D4{r@%QJr7`j%a1lws*p>1XBXXy64~URi{dcFb%7=fBjmlX=wFy zb#_J{cGdg7LnLh`@h7}Iw#@|jv?5NI#yz(JgqsuZk=j^-Q(~w z_mDrGv2Q71L}gN;GGO6O({E4moBEa zN(4d(f|$C!5{$Q-E(V`t4qe9~li8bkn#LCI|6KK|IK}@XmB!gjX(^X-QGtvs5?RKq zU+nlmRbuEH`S-b*RhMgnMV2;4L}uC!i;+c{-w}P{%g`~W^ke6<+ukCUG~I-oi*5m# zDDk~kmy>bN&vQHN)MQg~3>Am`qtce#aFD(rXqbVSS9qdIf@i!DNlX$>sh}5u0ax#R znZ+l4H{2T7EW4fgYyOXaczIi^-B-GLt++tjW?~@g;8t7M@<>1r5APtmh`y2W;E?N$ zJ2eUAotG|;kxXBHj^hBL zik-)6H%J-3&gFgFN_2vYHpQQH`CA-4UdgE1eTSPy`bK*$1b?JSGrWHNruFj|-?@Q! zySsTO(76A@b$M`I<77A{&on{Y>eb`$9GvG>_r zcMBwYstWF77USN274FQ-dwyjp>#L3VG^B0sb;1j`>AWOjxYJ+29+-wXz=q+RJoB)6 zus#zbhVlI*RZCl&JTh5-CZ}`3%4vVpG>*9Sw29O{An34$bsL+CPnq9uEG@RtLpd)4 z*}mqg*k9&37Rd4~^NGiuzqj;a3#+q_O>1kiLG^K)KB<#q?nnmof6R(Sb>ID}y z)P-<~I^6Crm7A823%DsCTUVfC*Cv83%xPpd(VI}=Tgz!VLLE-lV`P(s^;3?Mewt3D zbgQ13r)P#+dFO5xWmQ$Bq;#yc9_EZf&F)(SFE(WCzxoO3mQiCF#Y8c7caz0JD*iwl#QP>!%i>=oaxW$hS zj|0VWoQ>Mi#i#;#v$4aYvdDFYuw)-9*CoDidANItKL3QpE3{r@?cg&qKkvhwT3`mWDiRF z!L#4S{8P@<_pf-feET{z=>ip&d;Y?O!~TiULxcca3B9nRmE{A+tPQ83D@$xfhezCU zwXouSV?E3m7=PFzj>%*er+VSn!;U6mYFb%tOZdQC{A_MIshcHFidpK<#spSEh4=)6 z=7AfoSY2ZE#T9oAGgEw;FW<29r%Yyyo#MY0XqgnB*UyhHe27YJ{8!WelX5p3Q{-fM zcS%1odDt4Jvv4?_i&d4po1XnUOrjNHtIJtN*qml9-JLl6M{UGu+f&!K=DFh4^NTWd zcw_uo8*bS-n5o;#C!av`^eQit*5ZXJ{Kh~e>@iJ?Y~RSi<+L)rwtzX(BFCo19XElL zP5$sr8x<{`U!IrHdICPcjRF1a{PLc4YjrC~$6?1kC02KBwi>BbXnT5fjW>e+hnFT% z<|tKJTg&NITRU8O#6!SYC^|yn8tx6y0+`EQZR{kWhKBk= z^O^HGWK?L)61N$1|5K-4#Of!HZ8k7JX-q52^9?n!bllU#Tl=25#lpnCtW(s{6ytwR zXgzdMA|NEQgBPYx0tCjpADKBvXhdXPX;g79F8m;z8-$uJC~`&M807&-D_Fcu&;HAo}ZJv;vPH z3UCEWaICER47d7_BkfOlm{5q#$72_MNn^=WQxF-c3qOg0KS0bw;RZ!3kCMz%IqO44 zuHM~REyYb;BO`%jT!e0xdTjrjrul*r6$y%}&NbcqIhLY{tIg*~HqjZ5V0~Y3FEH#Z zk6-!7_7#p-gzFn9sZ53+X;)(}&csqWwJP3`(Hjk$icExd_RO=z%r^v-*&4zoxia{< zj^V#r!g{WFu;cvcWg!FSvRf617Do^1{RKBfdi`*t{p86&IM?4?SlOJFfP>Gn#bHzJYhYS&4RPDE0S8BGZu+QS?D zS=EevHOgH!yN_oswiKo^&Nh@cwNKOlg|Uv&@8jtc$iW0tH02-eJJr<@`O`)w`fY^- zL%UzAvrsZYD7ogWaP(AZAoxGTYuHA^5y>zBg8szT(=7OIWM>zr)Gkraw}FkzzfNkO zEg*7r3zutLc!pKXSHAADDttu*U0gG^Ha1m%HQ*oZZHniz)||TaPxnl_W3<0jv-M_= zrp4=MujwIW_%_=wW%d~LJzm-xFe-)<^P0I%_n2L^5z{FX$SIckm3xoVo0rXmHU7(g z%~&vrIpTo#dcFC;TUQP;$7R$X@&lpF4Fk-kz=b5}^GED=da^0v;sK>BOy6dxFm4Q+ znzcI80MxlgR%0XAEZbT=rW9Lrw7jm-~&BdX%pz|+!-BRV_R2iKWS4= zQ*G()=C0V@J_jdz(cfx?L_a;e2{cx{^01ca{;P4DF>DWL>aMx}__0(x4A^(iz(o)P;P8YTW;bicD(hMYnVi)~(21v~-JAgA2;3 zBibi=X0T=xc}dGF zS)GHYZf)#wPtT!uI5P_EjSswjmIUs_d$zXUHbrOoOWug zR5di%^*5Md&3(!jMvV39R$vgr1I-dm)(pN5yy1%SGiXd!FEjFZ;rl4>QAK{W*!@w(wud_l$t6Jhf>zI!XXW_j{V}0} z($!2#swPj`m?TrQGgtPK0)@v)Y1vgEjJJNk#oYOfH3r@w{W?*{0T^1YIX)JWf%KMX z3nh%5T&LAr(6$j?+Ta4XfL5xu-?=-p^VBt5_`}a|{kXNB|1z51 zymxkc{WG+790KTiRbhBMq_dn`zMAhwbqC*>19xdDmz3gm{|il*+bw8I_vkG}Z-fvw*f`MxOrCIHHeex2OtNmk!H1jcH{V%W71S3s@nLfN;8*URgqtw7m<{?`olIqv zlss4jI22!=KqlxpkemLS-F%Z?7T>SHhR^|=-Szg7hxlez!q}$ho1KpFltcLM{tp*| zN_F*BcprzJx%GKEZKd9eXQv8Zp~wSah6hXfV;Lfmx9eIU3=CLUq5|GKMEsE+iwh&X zJ}HaM>vh(R-2avO4yjEEBaX1l@v1O&$KL4s|V2mij!cJ8|LKU7yWi^BwqE+4}Z5X%Sujy7;$5_bM<>3D!qLi13dY`FaNL$*qm4l|V8 z!&7VB9((J~KRruus-W~G zF0gfgIZmY};BI7|fO*Yst56@VFk%l?O|7jMw{w(I>Bq~4E{Y+Ou8$na+6+S z;UwyBCX0Wi5hhs;*nnp%oJ}JW(oC~WtIX5F-McsDbChy*W&XOA&6DfbT14jB#x<#; zbBff~Z@d(g$+Q-t2;>qy5H=(W-|3Xw68@m{^(;N%6N7tacd**ltDHK~c6bM8zJ%Af z+MpDx@YRBiV~qP}Fa~<`ggjRC_vf}zreXUY{sjK{l7ElQ#2d zeXOaF+b35;Yp-i13DNArQm|gph(*iSmHsty_I`Ku(uOuKLJq4<3L9(I#dmFVg-3ya z5dYkEB`!JD30Ifdt=#A20yBeLCDQ>K3L~{YB5s#<&E~Nx{1I*b7{(h~{5UEvcVI+g zlPw3vZ;DNCxtPV&<68_YSM3R~iAlLJF#|tfqL<{>2auEViDkfrV6elqHxbfmn|CkK zSQ*8LAp}}ABF%9sSA%D)nsWd2DyF4i!K0Cgd4Hw*S2D=9gWw?+qjPxdFLEe4g0rM@ zV*8z|c7z#O{By@W?$vHG#=TdS7g0#_dX&eZlIZG^DIWA^e2L{9RxapbrI2Ecr;1t3 zx8I^uW#v?URogLv$VO%__&SR8il0x1_~1b(+p5W`FsGt;aJ+|}FE7|h$T*yzLlR)v z;8JV?Yoh|}zW0BY55cIhCCZ#O%2*tcjPf+>c<%OFok}c3~9s4{u#^3S%FY=GC z5KX;SP4NH1s3(c z_sJY&<1Q>Xy9z9}PrhRvG|HqN930%@Rk9L;hT!FA3tU(^`EICsWzZ)v^p)3IdJaRs zk?7jFig0QDxd4RX^egIU5Kr806)9pb6ANi0%Vj&WPiU&&F=lz0z=hwo-$g#XVs7R6 zHbV@Wj!MogBI(n2^v~ir;$qOiCxHM3SVG|0aP-g`B@kKXbO}w#yAtotfQD*y%1a+! zWTU49(6`k!O?g&D!QadX_SA`omfVd*_;a>7_bH!&{l(a65c&b*b3_rqOp7lSLH|E^ zLY#(?XryH2rofWjraq1+M39%4KWY&84ToA{elTs(q~iV7&ldJ{BagY^@}CQx}9ten&SZe+p00F!47M#X#`!&zSe6FP|SxkLVps%U$zIgTC zTUJvltH==x@kiQ$<-O@BgLim^Pd(Kf$lxC9@Hr?c)Bd*vXlj`6PB4SgWv|8tlFA`& z<*^G33-i!$qL)G5#>S-O<$XXSy;}B{jYi~c+h#NR)z4jbSdvrT%)d@cI#c@ZMqQv7 znOVLJKZPK(`()n&mm&&=#(cro5nYB0p$!W94{?mDm}-hCjJ}V5#@peQZeK^nhw)2z za8k<5%pLr@Bfc{BHH9$^<9s>RSGtjNQa*br6^;xQ-Vt&>@ zdgqrZx!1-mhM^bYFUyk7Y>uRT_QFGh=%>Qy6m&ZqjpozskvDh@X|+tzMV7eTuE|oB z!D);i4LIK=jKx)?N9s)^6!fThgD7_zSV?ijhNcN(Y^ZUk)f+*l)g%MA)uaO#W1}q=X~^U+n>d~O7h_j5 z--rk8->!ENt5OnN9MNp(PRrU(zy`_n(YyGK3xt^y)Z$V^ouS4dUY%ipDbLI>S+dY* zi+={JHG<3o!=@2#(XO;QBs3(#ggJiu@K`dxW#*2vfz|86!}wlK?mVlv z1F%8ZaVxX%O|1m9mN84ZBN$yj08iK+CDTYt=eqXtD=NBhTTn1|Y+wf*`KdCKWmyWo zOKcrVoq}AXbWxyAW!UHM?TFyDe}W~YrMG095DSnIS*D?crd~mnrYjfR`EJ0eHc}zz^#=MgIE)0sw3=0h1z4BTALtBw-^r#Z|;r& zKSM-WXjs%?*{aHIF8A#Cyq82|hc~XGNKQxZp(*{ycwaN9iHC!WwV%YOc`vtF*B#~3 zO0SnPr8-Y*X{Fb{r$~loelM07L?`&!t`-*TeNPojt>hBcGtklC?%PsxMn+EOXA8Ej zYUMsJMv-bT=lM%y53yPJy+~{jbHmG-d=v{Jf5u|#YP%QaBYDvdn8^m1K@`b82~b2i zcO$AaLk9X`pb+S^G*f#C34#Y~5$u9EAVabB5Js2)pvvx^>s>YQ=kvRfVGgjSc}*-! zaqT#xTD@*%`DTCO`QF`Z=sOqy38ClI72W(X{_|;o#~`wLjVHYOpJDh_WjHR+eP&2@ zEXdL3H$pnxI_wBN9aY;pGcFz;CX5(0H;%kKLwXj&WNWM}B8>2s_jl@V863mB8fJX5 zuqri>GfTwgIJHt?^}*Y1%)r0UnZV`GiJR>txCwENqmANrvHQvX z*MqOeC#UFi?vjzbPg*P(YPE5FuzjNq-u-R*dAk3KzjM>4@2MmR4)lc@SP{$7sn%qm z=0+V!b%&|I`|i7E$K}-H&Wvw4k)N&jq{(R+9QemP1Y6Os6aYxd8Oo2`>YU;0maU8% zHDri~wmKlN1y*eH=U{zA&VTxl9U8^LY2o8iI80kLvO3z(pPSw>A${Q_Qbb_>PVze! zkX*Q9S%hA?;peiuflhfgiQCU@sTh1APnLq z;gViX6UJV==E>UTNgw!g#(<8OH^j?@S~>*PDr&58+;3 zoMPe5pRPNs;WoDNsEZIN*ElO+j|}<0#EEfCeCQ+_h18^glP;Q@Xvt(Y9Het40V(ne zLWsOiQnLltc?`K}XH(>z{om}=g%Xt!1jOnfH;?&i+hL5|Q*Ac1ecLIP&zov>&je45 zy%k9a1cZ5yg?9c4lErB{t@u1<7@V8zvtH|BKT_W!*AY@Q${4_0>epjswSnHmGDB1dAEl2r5Z zOrs-l!H?G(lzZtatR#0FPFe(sLysvI!{BfKmZKf7J?;KjFWYQ}M8nm*pYP%dUz_vn z>f5geQ<&T(?IA#Bck2gN&B2=C4mie`)dN_OxIDl2b3vV0NFyd6Qf-_QB0w5C;>O?I z%hmN0$J|`T=%98zF0Yn>PT1w^)C&>sVT}#)E@&6vXQ8Ir1GLWsSd-6T^4LnINMvCM zJ)RH3!67CDIjG1+U^k+?=W^Za)OHqC3MadxtkXz`_ae>B_(N<1+N!u-XHl4HDT!7?Tq=s~Pa zGj&_jwqos*Zd$29bc-x+$pYflQT(jNXc3?~O3m&8?@f1w)KqpZx^0C*TIuqI{!zJi zX!wd{wYpMBi2O<;-2Q+CBE@kQvkzzL;{KCS`pk&~?JQEO%&^26%$V5N-ntuCCN2e) z(cXvXL`WDY1bXGqCKj|7392F^a4xz?c%4DBwtG>F9}otb?2!)-~NqEQ~W zu<*&H-C#wYAc8jPyKZH{f>n;I1Vc!Gu9Gs!@4u`^gMYo)27B-&FkqmOr$>2%Y(vUg zmPP!rlRn{a4j1U!uSKDEUxsE~kmUc_|G9VIZ0ITl>;Lvnu(=K2TE%dHGrfJ_Sgx z`CB`uV(@7jJ^?|2N~o(2gCf35z~Zzxua{r9eMniDn>61o5VM@Rk8{%Ps9*l^Y_i5Z zel(wA`JyJ-#z0n0un8x1E97=W7vbl)(P%L<~pod`L@j9wM2b4T|5d#`a z=AUUAI;tOhPwY^1pd-P*5#<+rfeC^I3>(?gTw&dwAF)fqxgXL(hR=({{Of!ElpC)M z;GMQ|8EoJMgs8%e8z_2?l~fNLdbiu`E-tVJ9b?=|gIim%TgM6^uGFUUt30MZckd%A z;~1MZhArrP0fKq9sm|$%`sa|Ir6qiup^_f4yuy&d#1ldBk-G#@e;e^(j_=c-X*S-F zHH*7?D;L6@Yt_o(TMp-BfJN(rp0>QJr%X9y>l|YsKWQ4t{}jg4?&k|P)x{9sV|D-r zElIuhjGz332^WO0%gaePMdQ2)E2@}_49as{XGJwKN)YE*!T0#&Fw)Y}Wo$cq4wJon z-xw1J#t_&ajPR2Pv9ObB{_R`fPDkg7#5H%mM-_A|?nH%m!k;d=x5RaZpQQ883`T}B zD~-EPA4~K4ZI+Wu-k4vAJY5M39^TN~`Oh>-8XnFf%RNmr8^#*?e-uS_p^cyo?Ubd! zj1xbijtETh5f6>%b4YHYUtNLXcNcXHk%nZwxuB`3v^pV6u3iULm_84ie+w?cmSO8| zNqAs~Q<~$%4}&bI6hW|A<<x_Qm?Z;4^DkHLO9 z(7LK(X9syrl2Ej3doud^+Xr_jJgGM6lXLPJ!EcMQ+4KPgP)vaubHTdZA-x4g2>AmU zf958tg6erL9D+nm6_^MyqrQtkCSLJ}u_N8NDN45O>hxV~r{;gN#ilS~0bZTCQw9_S zJz6Nq?meQaObD_nU49ElNA8<%dO!+6dgQD$*>Ih~qPUy)?urE;SEk#IKh$I1%^5r8 zXGsW=j~I8Tr`(Ia(F84WQ>Wi@GkYUy5Y861`MPkpt#1F1|8ImD6kf&_itZ>BRTjX3 zW7rl~87&C^vW`y-_z@2QJq}Xk%aRSI@?9sDyIRlE5eZlobC9=!!`ZN?W=i8fOdC^y zPd(Xmt{D4$9+f2SwCB;+g+B+fijfRX$n3h|7tB`CiF8>b=d>vy`N%N1TBmpICaALI zHtrVwMo&e~=bFg*=}LsS-(KuN%jXFc4qu~^r2a`Wf6w8FznH)z2Lr0a^e_6q{!ACttQ0IUjGd=Fm?pc` zs3cuEZ`ojSs`Nw1TyQjQdBxmC<(%uB!AOrwyDgB@O&^yfTJq9nmh`g5D#C*CK@P<5 zfn+_8Z+fQ8wz!9#kvM%%B8lvSxICieeV79{^E8x*cN3$uHeC>;`^Gw!(BccWK(zxt-9+u6Q6Z#*vwEw$R#Xp>OtHpL;e zq?jfU#qEk>KS$??wAzzpqPo`iFET~-5Te#Fu8G^YdjWwiBO^nsQ<-d1f0rBxioq_N8^%CmV9#t|Q!f`S!xBo3xjRQXIv?sA`{Y~OKIoCNG0K= znu>w%*A$hP+_x|?E8SMc@Uwa0PFz0+YF`Eq^4qeq7`pF0lJExTbmsnN0gfaV(DYx} zP@t=lyOpc5*v>wX30@t>5i*B|Vp+u1B*cPI2!9g-KjdcrbRBCJVCXgV=y1s51MQ7| za4Ej!(q<5{`P2jQ81nxh74+Z5%N4oqJKRmWy-jwLducAF-&%q4L6{R8b~tL=IL*#2 zUGaw)Dpkr~usfu-j*(KfU;Bako~s0Zb;BjL-BZw42EKI#1v;axHub{KOX0sKPvjU^e{K%Lv? zFgW&036DI?IV_7w4sI1I*Ps5~Ftx1t;h`NOG=6 zB)|Xw4x%?Dv2VFeLKS*Q{_p|LE;;OGOL%!_Z2#Cc?YKDK6fbJ5?di4lyYkU3`ULV`D8AYcIRc6@Jq{02!^1(tNy;mk!C<@p;WqHK zMBaKliI_3TmnmR|;wlL_twyrtW7yKe5c`I~kIzfjbQM*Lvj&4kl9*bZsj;yh#Qy$* zCWC<1CPU^=p(zGE$)_+z>|yzrkQ|11h|XtPR4!wMizXbsR~&^mF(lz{QMFpwzq@#Y zi0hgA*t_TXLz?SX|5~1cPo|rtAEsDj|MK9$Z@hC`9_R4}={->qa=hj>Okp!o`N#>x z917538P)l{vo}bD6V!#gyY6ehVE)#C89p-v+E*i|2FJSLNG-L0V6^ce1XRd+sZRYD znMDIZa4~F>$|*ouNK3lr4uktAEe88{7lLf^k7q8t%F`zx(hOF2+JoF@qxaB-JMcDr zUEVA^>|0KE{%$G`3+O{jk3p48{^lefa?uaBOm98$*|_&%WMU~;9`*pg(w^A%aLmsq zx^`~hgrX#?{C)IQm>Q=*xS5+0wdl+jQ^5y?vV7ALh%ZT9r-xjP*dioAPsb|6|F8b^ zpCa@UWwkj}J@3=;{P8>)X7vzF9YqN=S&>Q>wRT0%Mo&3AuEy>nRz{We%o8-(j%Zd2 zcybToyGVpvRE~0J8Y zYcKW;)f6B1p9vn|r2$rX5JIlS0iwcPw>ucaUO7i2_5CN?uYDQmhy=(ROCvw2vqxED z{=%XDWmN+X=HUj#v^>*Ql2h6~xAKqHX4&HpJzT$E1i%*b+rMwWT&5@IemuO!_uRgI z)Rt?wbnL;=D-VAeGQ%et`4%g{*WTD3EW0Rxu3Nt#T{I(!Z&pgyQy(JsFpAw~0My0Y z1kvHq$fR(JyPt_*$YB)bh;{l@=Qy1|1)QaoSVrt>MOx|;lXE^u!JURZ!F)?XJ+S(L-Ll!l6wA)jyaHf) zEhyaLAt?cu!HxCL-W@vS+gk;}|9u>nP96fOxv(t0k`*|9%l~lTmzo=r1dOW3)_@lS zf-DRyD$e6kVFh&db*B#N6`tH?F(fHIx(! zUUN{0tLrl+bn#-OnB=or4Kv1XwJCGXouR3v7Q%G{$E_ZgCS%t|;I+XjlI4C1X~I2cxUgK z==3Xugeqr^*na>jYOHCfe16*UN~$M`LGM*K*)j!m$A|^5r)gm6ArgcE^a8}*MkLmQ z4`lw+jc4(OHtzgdT3X`7kDF`ih<iG#kM@QssgYS*H&c#TAK_a9*J7IWT4H3S3lKaa*S9QFMhNi^%!teG-m13D- zn#~rY&ZR{yh4MAtcE5=H2ac2lCsBHqKw@QVOxijk3__m)_7JT=AR!$UU{tB8b^eOA zi)oVB$0h_YV)+l$UIA(s=2x7v;g&Z!&@CX{9RoRwS z5<9iessD2JlTevvT@6mtD!uIZvo%#|k!{mxt0%Ud1^8nOEuu1mm=k!4+6~NF<(aK0 zbEg~_ummCgIYc?lsmJezV>c|{2m?5pJBqFzOPic&RCzi%)y+J+Jx5pi`@IO1rn z--tFldU)ZKh}!bgjSGu34J)e zC*V^e5zv|*bMkyWFv?{q?7^>kPP1G2rni9?6fH4pFbhTs0YoA8&r^=!5T^?-4ZY+f zqV~hhoyi_3s`Q_&Ohe%%@Fs&;(J2;oM47Cj4a#E`!b7Nv^X({9woX+r=GtwD_OO0o zKC$S?sCeAPhjR+9N%!xX^IsIP>jdVFZ<|VM?0Hwxl1oPCaJ;X6)|#ricm9aKHOiwtg8(SpOIKy;Bi>MK%(^c zF+EFHDBn2sOxqk3@V(?WBeo-0ih&FHq49_LIl+03r5(=8Zc%%$Z?_N~@x>uQQN^Ja7p5 z``6UTZh&5KrU!VtX>^6%I z3dm4h++(gD#>DH+k3@=2?=3)GGGhT&knG%}L#_%K>Spmn%0Bq8W7YC^27O=N6&6{{ zFi(*WHKX?-n8tA$zC9BM=NAu-pvru%Mm?|dr;;Rsz<5fVt5|r*i2#%^)fU9IjfQsI zTV=j!m|!85uBPYvioPR|p2cBXGc#(ZEh5CAv03u`FY7j6L{@nJ^MXgbjy2ct+6^j{ zG^n<$;&c3ZK6Px~^|Jr96b5d1*FL|kX<8l1C=Mp()Xy&|B?Y0Uinge+`=D%9!@|q{ z(THE)(rtW~4?W6mk^AgXjb1wA`wHtrdZt9UUTxX}E}aFe!Kzqlo#_LEdz(2rF5Dtw zQ=~SZ*@_BTOVE%uIxazPmjk|?Ye{^Yt8PKn7DV8ih}@~0kB`HiRzZ z%q$x4hD{Y2_IIb&p=J@gyUNq{rC{~y^jmSgMR6#m_di%uD218@EnHoVobyiz;HEeM z97J~x&{AJHqWPFvl*v(CW%9|ecZrR8+5cPqbBNkgUF+A#u4+`g+Mo2)1fF2?T@Z6_ z!-aK6K`4kfT&Fo{!4YUx@My%Mo5RBDKD{+4TgE(bt3ipfkeSTJG=r}XPRiK|8K$Z8 zdl{33n-!RFk%ZIVenoG&j^7HvbSQ|Xz|;wVM)>W@2rn_ z-fm}tBD}}90H?6^yEaB}8OYPp=6 zwJ7^#eoI1gxq+kDY|$|784htoq4O#9QEco~1pXK#xR z$zXv!2#F;}Zf|NbF!3(5erJnV2*bOT>c2H^nj-JEAKW5Kz7_)#)5If{L2GhMq=j25 zrZIi|C}Db#(^A@~kcgBIRpRqRJMPWh0(1wjps(n-+1=?eCJn(1x19sGw^Rn@zt8wh zqq`<>n<`4>JGr2!=!jsQA68N|uvwQUye6@%OF{8&Ih7H48}QUL=?ly{omtm)E*vVR zKQ)hT9#N=`>P*OZ%p_nAzL2J1ZhLRM}Y7BM)K5)3k6uvE`_{G}H4Es^k zFnDG={aS2G9^?DWbak2B90Z_{7~>>AHjl0@4o;~Q=E;Bf3XoX+%$(qgeGu{v+}!kZ z81TeRskGJ@pGDN{481aY&R^ah>$mcPL_p~~CpY|XziHu$E00xCx7l;YY&g5|m81~pP&CX(N%isgarN_a)h2SL z?4)PL>HIogwN&Km9#k5+fcb{pBh#T@OXpDp5X?BCnb^i+?7t`P>cMj!WIt_)v8gQ* zdgR<%-H|iWYZ-{3Nyz4WjK}Wx>ZiPGrdw)J+BZkQ1o=>j@qIk!1K0X$O(77Z6f?T@ zcL)cBkkn?(i1Z@1mpHlwIl-a7V{Aw5bi%kKT=pDf2FXEUHp7>!{{C`^(gIf5Hx&1YIf$pYx zT79|<&3;b?Zk1NduUOUL;rYe~)5T$Z;U1nfF?%&NNcNu18dexKg-btSn0A0FuQ_cv zsoa<2V+MKA(-|#&P-{+9TfZJ?zkb|GWTMX7b}vYF@$R>r=9d|*Xn$Hz*z^M}ngHi} zj5H<>S*U)4ffwRta@QBMNQnGNB|kRF4}vf%lG$BIFn+<;^#mPrkNVh1<-Q{8OtfvP zBCDr@B_Oq-BjTF@H>>X;leP^iZ6F0ie?ES=sx)Y=HBr4{`uYEB0c2e9r5e7^xi+pe zJ^qw=_~dK4Iq*}7A2#JwT8J-0Z{k?rPO4{zTwI#|`O+d!sma ziCd!^{}f0JiB}(bAg9}Gzwi!3p!LH|0=N6VaTS@GxD8;iw%&Qz23W2>RoBoWPlU5M zO!#;TxiR^H4V$b&kUprpX6j>w5hrzQ2^23*Wrlx@tSKN615Tb*O%Lo^w^|WTM+P^x zUkw)QbNs#gq%5`&2;bPOjWwgd0n%+qfbOR|t8Grx8>y;^i|Wd|$w%5;yVw;)A_85< zv#s2JZZ6-`6n{rg=I!S(ASJ+HRR;ya99zME#ImODmbz&z`vKGY>Qox7?>^_Th8*6c4bRU*$AA$Bz(suF7X8z6LGe>L0Ot2!cVM}eI_LCy9ed1a z9a8$OL*>%)c3l5c7|ip8Eqgmzx!L<3$dSXN>pdhQUi?@pFqi_)Oj3BY)wVE)Z=x4 zMG26ZK=2GUU`Y&uhCCc)sXBLe?+3kP1_;9}=QK)(Zj2UHzSJD!pO^F=De+FN4NhVM zXu0708Y~sk4DLexvV;RI$E*F1yI7dg99FxuhTdG%B)@76B%W{@=Q&}5)IX5frlYQ% z_WI)C+GCzCq1_sssA<7S*IR#Vf^d3@(f)4~ zOFTI1#XkzOAcZ>EDRyjLpHAIF=z32_I2N-!#WHgBLj?D(xHN4W{UmX9n&mioMFo)y z&5pMwy!~1wx;d14XPBUi$liX;U<>e$B0H90d0jv51iE}^$g@GEub<*`L8?=@U6!T} zqdk2<6KwD6RSY-`n|L(A89?A3v(6p3jj{h!6%sUlzeLhv5_=eJmAM8>=~~xE^=X^^ z2%?$CW0N`YG%iX--ZMe1pbuyBHVlQK+c&AHBB-mH>$T5A|DvyAoqW~3@27)SHPwX} zv^|vd)s;Evvd?^Y%XaKa)pK#zZTZ$N{U0VC8stoO6>8ndYyNFO`O_{g)4#FbgztFzo!yH*jMQjgm5JY~ z#kSp?TbQ}p?Nqj!MDyDE0%=lx5Xyx3wr30Q&+rO3qydrzbiNZa4k~Hru}~^tP57w` z$gg;S68%#w&fPV6wOa`X{Be58T$SfIg+4(0@ayDwk5=T3T--y3CN=fZhrt|j3c32S z0Q*Y?Ag%_|FwdI>!5y8UM7Lh$7Pv(f$D`PNfI_-~ROV|-`FVvbz|+T%a?g8VF0z%-N-Y<-ctBCVF@#IC#U#0MY4(pxWla z5BcfuKuGKNKgvc@`unJTjfnnk=s{T8rv3hpkN@4$38n9E!-IB`zz0Qc+4?+d^g#WJ=9&+I zSDza<`^ITkkKFv%82t#Jom%Aa8QZuxW)EBEn8EXw?emvJPku4RZr0w5lhXjgZYp%Y z#g4m>Tk~M)ee%rAdYdW9*%KBLI@^h10r?4YD^R?#$68!w zzfP4YtJohOx~$?*ZT^*{JSiAiQ+Vzb9&h%vAKd542}|4?@1E=LWN!w@4w|U}I7)r= z-}C^yhw`um{qx;UxyYM=e#%5ipQ>2RhvA=)mkJ4{lrSrnz~ZKQQ8U!HFq^_TR_cuP80d2lv2qce3 z)@%MwN~d67%>B;|0$Hy{kc(}#nvWnd>YnI!qg7Hu{5<^70>PuQTcefYuU;Q`?VlYr zzUn5vayBc;b87C7&b7F;kx1){y>d}H9%kiykayQ8ed%4H7`Yv0_qNINUTU@dFn`85 z%dH^qpH70rJjI*TWz5W=%@J*eyNRV(Gsol&?68*jnM^(_0_j}2yBV* z{$Ys*j5>~`bGfgz9dNCq0Lp8VtXqzOhx5^ij**8v2f|4O-Bm?tKf5}`qFs3J%Q%0u z=@GL|E!{!+aPGz3r#@F6IBlv2i1g9QHrVU?%VC!jTuN?5{gbmd-kLR=~=cEf9sdLY*= zUy#*L=~QJUX#kvQ50^@DJUa7?|DQFe-eCVf^#fnsyd0cuR1X=(|+;DsxC%NNSnp(y&LFMzfc;vG;)Z~mQo)93QQi#Bw-MAElj z_i2}ax>YSKs5k^Oc<~_)SvT9d=B_q{4zL0#7cR35GuJWo(9E#Klh1>qZ8z`mH?JKO zs@<0QDR0Wxss0IoT(_yWH}BtnItJ>3Zn6gpJhOuPa3pW|%ayOxZ~S^5M+!{q+^A_-qhY#Pyr_)+TIK36I4mbz}mJ;jQ=3L)J z9vHxr+>KveYnXg=83VG$b-(r+fEl(T3k#o3?+fZa{bu#K8sP3{bNP(I68N@_#P1^O zgVu8y2MEIVJc9sGlu~jImu6$`&HtsYSiXbhp^%bOq27#1V`%UMG(Cmbk z3ij%W8O1O1DfMqhqOr(^WhwG$?U*E@DSm!HtZE3@2GK#%`*0{u`EV2N)Q{iMo}9RS znHiT#7gSF#$~9t>E|u%B&tsJ(AhjXF-KJ`(_$(NoPbns#{`~I`L0cUKR&m0R@NgK@ z3Q+>Qetf#%P2lMyTGQn%(ZScv+g_8+5M#W6a~AHt@%x{JMuBg?!4eYuX_@-cYBU_JrddPw7rc4Nf z!SbOcBt8ZRk~BcX9a{~6iZ?8He><~??8q*8^uu>k5B$s~RtEm`c6iQA1QyWKsj=3LQ-U>vMN`ErQ@+5TQ&`mzR%qTV>4iKWgL}sAM(_VZ*Q{W zQk_4t4tP51Qv<)p%Wr&P3(XiKBV!1aG$T7z0+I>|Gk6;2nF3mz)VX|KWwjZMAiZ;N zN9hU09tJ||%XjoCfpPM|SL~XsnAob1y3$azCW1)d7`ShH0TF*&xe_;iKU3cHH(@#(SWVm;ckPNO8<}!Egt!m#%$%Rz_9BU6-WKOM<$(b;#cMZ#Pall5I24 zYdR)&!F8@w68u*OhW-x8WP@5c)J#7${Rc-isPi^urlzCTRl#uyJaIjWc+3|J2#8+Q zKe1=d(w{RorJzHy(eB@j6n1R0 z9XT1DY!o&Dpu3-#juZ;GEnn^Y_$|aZ0=M&rIhj}6pNv#7L=1jyMD@x~bji&vYy?5h zj6Gmikdm~j!1@ho$hLLEp9U%OHdw{0KV4b zB*pLeXP57y>bGd{>w*7%n}~mzDOr_h-aafG)1_ji?`_9F^>!O!6jJR5c57ZZZyo8p z<6?x>lDnc{Z)b%u@T54==PxVjNlTmiT^=@SPO{pBX@DysuurS~Y!*iHVovdCKmEkV ze?N2aPTq_+q&&L1U4?jdCp|lDZJe%252kK;u^19R3N}qFXN7muzSG4r2chMKfyKOn0uFDC(PoZ)@{9@h6-c*Zq*oN>?bL$NAs}Y&gjyLObp)`bGw_ zwW62Vj~vSzq%Q;~iwV(9u`zJ<^c+$}vbAz-h=F=(Q-lWw^w_7IN679>;kgj8J52Wv zNp=uO3XRouI68gCGXyfTR2cQg-Rr|1vUa}2bDgBK-Y$xNZznbTMI%1?Zk)r3S~0!~ z+dt!vb0gM@k$pLr@Pm43jq;pFlFDA8(|~I<@Xc8aJi&bUnT?flw1aq29U6kU?2N_E z&aQ7&A{0e^Dv35tl(i+IQ>No{LDPq0b?zol z;cml#JCxgBw33+8ISRJL*S*`Zn*#v{(majx>V9mN5UMDIWfOMZ;SG@Eqy4d}3Qwp1 z56nvF;Q>8yQY-Xz`OMKgF?RIfiA0X^#6532KGOu`t(hwdKZ|wJO*UmX%77;TZkzszA4Dea zeQ_ui4Mt}HBMcZ@8c}kD|ALEOimWt`+dEd6+ zwi{yG@Et#y;+zgeY%2;i5R3;WBZH+6t-)Zu6r*_!J`3^0jVlu~)PF4=eGcWm_=T

-t9kZ*1&q+YMR4U60*4Y(b>*s%C4nR2c(7}SjS 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 o?Va_0=!RA5v*B1wBLpPBuLuXUNswC%s zCbxvWd2I(K8(FvLVMcp|+E;h)bhi3T5r)75^0e-xG+dG85ho*kah0SRRYA@I6Y|#R zVDNYz>n(8&hdY>z61l{vLxeDp3~ye0pSN?XV<87Q43xkgKAN_Xi1I`a&ql3-ON8}< zPeF^8OiH3bmyo{5;(dhz;|vp8wOS)hOI%2`$IxY^)RAEDrw;A!nQu}2*xBz#kun(5 zCYSAf zO=0bARZI)gVwLfC&NK-;bV=KC)tT67$OOs`5RC&DZVJ*TxPuf&=nvo&Xg8K(KnWc+ zQ0VO?DIsovZOPP%ZLbQ`dliS6!mGmYCwe-aQ+#-og z2S7=kc6g<_>UuZwzHbD+BNmS3iE$IK(RDi~%y4(WFHraeF&a%I*JQ?zi{AshZ(s?2 zwK8HJ$8hvctP1L}8C(X?{UPpP7O{V!^k|8nE1mz{NX>MQP%RjW>Kf}`9u)Q*JUiA{ zDbbdkQ9({ADtIR4-v*bMbIB1e6`G@xR}jF5?;PLLFianO|uU-J2W&xX@}J zruR+1I1t><>brQSIGp`G-D7TD#rx!3pe;v-x}Ho$Je%OTx%IhEYrlKwk=;O(wX4z} z=UTeU`hrBhIKKG>z61|?vGPB~=yTtU>+n|H#YdNr{)m5ej8(Y!rc2+MW|YY%pjCC1aYYG|brniNzcEC=$I|ijC4$Br-)CQ>zq?F!v$RHfaQB<$ z=9@sn`LJM-EpqoW#Lzd*x~IG7q>Pp=W}@aY9GHtQ)2q$Q>OF1e4-kDH9qbn9f{UNF zwYo74Wb%^~xyy6HIi+~+Ii}E$P+rj&lDiux0TpTd{=J9%>AppS`!&EYB3NeK z7*^WrUL1-GJNSm}L_zhojZEQXmi_B#F5rtlO6ey&?|K=Z7r>`11&awwKtd)XO)48G z`zs@SaCG>8Pqfn^+3CKwlw5XkI5XadAbKZs(1^M0OPuKE^#pjVIBdU9`#5ipk(yek zM41+U@)BSej=&In!-EykR+0TcB1i1`noBdP%@y@c-;8o}dKTQ{YbC-7BGSlhY8uPu ziZ#xow`B4>0-qb0@zd^m;*!qD8f5}=%o>Qd!G0F>>dow%PiwX`x zdG@X2@Hq~)1n=kA$Q;2!h}nweb8J2`c5|fH(5_7l?b;)lCDh&9VgGh88#vUJVzTlg zR&ip$ELLjq{wz~-xRe^wA_-D`WEl|#e};Du4xW@Fx{`oJ=md-KLj~pv#vPsz^%D=k zCjSxw-2V~+baMEAe{9`>-O8Ux>A01V%*Pp9{5Onu8wb`+*hcpGL4SalPB&45sle@X z2r&;p9c{BtZN+_kW*5hWC7g}uj@@!&!1LJ>>M~Q=y*_}?VgS)%O%sV+=qh;f7j*Wl zNs7<9^(oMY5_Da`KP@hHyx4=S@+pWu=ykTo&r0!~GuSEwoO$02C;)GB^AFpP5FAjB z_&mP_U@a#KnZd28|H3(9d!;ur9~7`YP(Gr%C53}q42)6^Vg!W05Txg$!2Yr&GaxVVUKU$MB-V>u}`ZNBNC}|(gU@pkz z;Zh2ARc89l6I`|2nvUV%$dG>~DwAAfjOCXcBJeZZnMCQ=SP%y%XmP|=#8#XPNwJ`llOlxbh8F&nThFZ~O4zh21^)Nz#ABA-1dN^D8PBVIpcHwpuVCv_ zIB@u(a%P~kC>cZ<5h2M2)GU+j(j`nvn$5x>MY>j@EnVrzn?lS3LQBnv%!o^f^2;V- zXYaoo=n&d6Iq-O1)Br}g_SEYs2shErR5tN`T7qhQU9vR5VBOM)`hBV~Z2GHD6%kWr zqcnN8YI^yh@=NgYZBWbgfpKfkd%tB#RZCw+zw3IZBrYD7A)?LfB15oyj)~1mGzK>k zy{-nZNAI)xRy2b?zkxR-ZUUDuD1hIepJL0Jar70Qp%NvJG)G;~(lNm|=rOrrjqL6i zdrTWNT_#jC`w`z*V5+P}vH`4KI0*2foyJ?{qrK#f-is&gq0tv8^z(VYClqA-3S54Q zOY?1>6sbNR7=S}^+O2YPcVy5#hd*Y*2LlaGf>V|lnKK+F6Mh&r(4PUSz=PcG1wIbC zy0M#?QElUYi%eftMXi#|FG=zCYx<7K<^~#QU{A!KLOrO}qj0VIHd76FplDN$ep{A8 zBl*%5@S5!w(?hZEHd7|{6>V$3T97b;!2#pwizBy{cV|oby@`w1YfnJwW2fdlqC0xY zj!pDsX*zu!_8{_OxGeDn9SE>?=Z#py1D zEi_6&mCTGqwn;IX9FQ%nGDhX*eqAX-pnpzKxJoB(yc6UDxeV}v86Wn-rRTK_dhtsU zAp^Dt)~}~4-S`|)PzOYnrMvVE|ApiEem0*eQhH(3*tqb~(IcepcZvLZiyPJSP{&!f ze=Nzse4ajH?Ghz5j?eIER$vXs zC$J3dDc=-gq%xtF3|hL#fa4Ri{jDcGuK(H`)2N*Y9!OgPV8o|*4n~`V36=}}1hrZB zVsKM-iZwCnTxa(M>!sVy4{{q#n)Po0~O4nwU5rJIp_c&Fvvzr=-)R$B ztS@Tcb}FbO@s{}62)5|MeTXuw+qdJ(A9kU#)c*2zog8RUZ##N=#{*ukJo+!geg(I$ zs|wtJ?Lk!oYR~E}8Us4B{qbxDi91v9Z-&%TlkBIIG!1ybFq}fagh*gV(*6v;0$6N8RCVpbbIB@U_Jlkl)F$W&vveV zWiC>Hf)z$7yC=N8`6|0!?(q1^r#eZr=^Ewnafx{)^wFOB(PJMAYAlIXkak%GYmIYM zk!DPAS?UsVpHqUrrOv$qFvfoybs6(|NK-vFGUNLjA^M1C#bC%H1fT>6rh1V#&*sfc-mW;0E`1q0hsL*vs9_7cDG#zHxO9JMv^yI+<@O0B=V@G1&S@#CweoAFMOvz#}3+3XrKlC{rKV6Vo7>&*b5`F#+_Z+Zp zpz#9MT`=?rP9$M^JRAfl7j_<5_Zc3kt~^JR2!Te^ZyYpb6>F*iZHipKAU|^$N`plc zSs({UTt7vhBB0Emyr~oObzNvI-SW} zdgkK2Gb_xP2C@&R$ zHDJN0rI=-x3TB6b{EZ#Pea7<4EhCp1S4tT2sZBuUtdoz3fst z0^8Duj@k!R@ObPh)*pSFsut;jzjBL7p(#Yu64|Ju@{7l7e$Ux=jFM9Bu)CYwMdsOi ztiZ>?Nj-hl&y#hi#}2Tq6PVy)a=5%#~;*m^&XV+SMhnZ&{LMW@Grr0 z{k7ib6khz3mTrDcOg}HS5;Umm*SI~$O~%9P zy;3E71vhw)fuF%01~N=87t|k^6wucz7C!=U8r$z~BLZdb$q+&-JT4*FEMZ{AcKxIy zaDUd4x=-{!z(EUI29Fm29KQdR9K|E|T)sV!Y#Zq%(`Lq}`*hIDBsWi?L5Nnea1>Zo z6^^W4@>L@dullG|Oz1R`v*DW1TkvgTu7*`}>hpIsp-3|jE_~9>r?MRI?;T2F*?U#+}Epl zqWA8X75PW;hf!9iwdr0Yji(ijHgni*hE5+lBRJb5dI@Y#&n>HK9TRJu<8$Wc(EhkV&CbgdrQqq=A~Hu6slBl`>08 z;3l!BfZ-XEEeuNBcNQnxN{5%^F3x~1ppoTikmS+Kj*fuAh<)sj=TU~`KP*fleQMDu z5AJqZffs;e`t`U3mDCkg>A{g_+Q*MsP9p)wf|?%y$xq$W@mv7K7!pA3$PmTCX?0ITH!J zs-P<@!#o~M+06F^4+8CxC+(h^gHV zGg=%z_}%28>G_(l0&~9mVt?sy6Xa{>g$uwCUhNg*G?vq$^!S_}tKlVIE3_yqMymGzkjLMZ-`0E{4HGzSfjhMex0H@g(deO;JZ4BzQJRZtA z@Oy0*Cn1vrF*NPj!*57IW<=knD7R*8`Om%8A93JS{NgXWw(f0EF8T#Lf_$j}oMEQ3D{MK>ui#1sgPE*}hbEN!DD0tod)smr)5x5}2?GOU$n%BYWhrEO zK-IE)?9Q9H0DIhebFTz)#)n&#I)C%}z`>i{^g+&)_;~_o5z6@s!K%!-QqGdTrRw+-&^?xXA+H?%Myi4A1muyik-7*bWWtCi}f z`AYKi=9;I=>-dquz%OtLp^Nvu@`(n~tX2B9`98o#(Y4|L_u2J9_5QZ4pDND;vw*4# zyT=YKP3YhXjC%MQ@E`FwFnSKdtBidCiE+w_Fp?%FlE_KJzc5=ObE8t{Y6yYaXdbvn zHbb`j#LCLt{fzg_dR)x^`BDX8ZyU}PT!Cw5BFPYt)iH6r)1YhXXUg{C{J6LG^lA`Z z@I{eD%R+V&!zv%6BD;z(#i4{i7B;TFm(G;`ZH}$(E7n>F0jlUcuS$+*_ZYDD_|Ol%>uIUHtYN z`n|`A*j1P5dHvk&(MMz9QpsiZ>d$OovH)c|td`cqSidq-)ZY%2mQz3Kt!W( zS**|Jv)FroMS^_e<=Q)^cZ{`&Cs@cDYEKopHl`aq1rz%La_1ukFGl*cKe z(=8ia>~_uZ;_kGv>XM^hGv07!=Z51=P!RCIs$1_3Q+uOGzV=JAr3EhL^Gbe_;2vr_ zQ2_x1#Ra5o#gsQ-=B_SHGa-ZY?JNlm+3<+qUliM0)+9Gh3t{RfQ!O=W4?o1 zCBpHT9UM*=83o6qj(N$eyE3MgUE&TCb3T6CIN#DiE5n;EmnHAECz7L;n#{V+KN--- zzVrpWK6Lb6!(m%v>jl%{mGxL$D$9YP0c|je*_U}7K46T&%$!>QhVmxNX@%GT<3|5& zJ|6ni3hOg?&W8fHTih(qX5io%oxcCNDF7(|5lVN5q22j0v*k8Au7vfG?;)d3aNgPz zbEn1s$>;KqIjRV%l}7Mi^ZlPP&b*aaF&9^Ti#k6 zGZ?owWb?i0((d9^fWG(FVk2j!L$siC=Iy=ozKuNrTl_TXWn)r-UU8mZa;E5lK&o}CKt@~+v!Xy` z!*u&SqL~td>4JrIfT5NwzMr=PDj7OY(yc3ZwnIc!?g>NRsq!-6)=s0>)sRxc=^4}4 zI$X54*!w3XTR8Shh-SsT%WXLCAQSQ|kvkIWK_mjlAW&a}Q}&`;pinIVOZ9V?z9QgrpX_wn)#tu;qO;c_i+*R@9T zVE>1*`*U4Zg8F4X@D+KAaVML_e5stOskP2hhJB^C4jmiS_fwNB+s7WqdM?P4W-odi8^;}{0mdC+wdJbVB=;xcgyCb( z(wLL6HRgwtBXu1wJkmZHN#to(>UT}J)E-AqkVCb?CO3}sR#wX6sm5|^l(o9}zx&(6 zi^7r$-;V4b$E)xJmVQ*;o`xRPBG}))7t`JBg2cQd(e3a~S9jOcjoW+KXe4QJ#wuya zTg~!9hAfQ~!a|w*cvBy?W?~VVZ~81*m@wiP0>PJ96?hK&N)1ms~tn^W9<1acI;VK((!83A9z2|j>}_PFUZt5lI5??ypKIBdD4n06jDbS#us9T z7r`g})E%jT;su=9>Ijq5xO^P4S{$0j>QBa={SP)u(%9IJl^t*tynf~!k8Zm*8NT1* zdR}b~{C2)4_jRA7c{rTX^1hn!#l^dVu|{aOM!it36@B_jT&4MU+D#ANH_2I+d&C7h zg4~ebr^bWN^Sv^XVZ8R8GCVpu z_zNOU)Zt+=Y@-#whD#m=(&I%ZFk^bV*Cx+xmNI6^9)B7~UJdJu{34>quoy3RK9aUF zD9QaxUsqh=zMUEuHlf0L#d$00d9S?>IypaA3^z%twmP+m)nJd*l%3UDsS48SsWuS? zGa<|qafS?^4@w1k^-OtdQ9&0h&*vJ*$HNLl+x24LwqTXuqwT&wAJee({21n32BQcs z0>Ag2_f7BGpdgB>CRvh#icf@u1Wk*<3$eDby@cLzI#SR6cBH{1-3}GMd-hJGdc7<* zZLQ(Na{aEFYW)qSW&N%nEc;557Efs!*4aqrNpFw2i8~=%xe_iL#>4=8&uRVe z!G$PBWc)gHqUg&{r33B7&6yASB*R$`z-wjk-^UZv(|L;y`Ce-)dTS>CXK4~K+yM{N zN^p;zZ`6aH9O)R49=Sow-1OVgS9xwlPgvm<;S%Q3zKQ?r^M(7$_N-j%Q?kHW>pN`h zoq2V83l?Hryc@!od=;Hrncli>32ldSBx{Y+7vvXS!}{+A22P80$hUsGH=b@LH;5kX zUrq4eH}3x^B5Jd<^(i&opoTOkBZQ_`QA_0{8%*jvDOq}shv_ol<&te4@KZA$du~~f ziYhuUCqU+~28)mU>e<`HW0ie8RGV)_YeYFwBM;uk;xHw{bX=k-1O9KoFb7^3dfZ@xM}X5&T!)(9~eLF5@qpbS^_*R5S1-q<(E z?m|=D_cbWpWaZ>D->D(t)%`Gi$6i;x_Ay)Kx4bIvaSUH+@x=GwbNU!z96~ z&)T`FhPdC&K7BaptK&g{^H2ABeRr*|({MAet`q&<^T0vGd8jf${_u9Mk=lJFoGd9n z`C@r;VnN`^bKZiIR=d;4Hkm`6xyOlWDz)Y4_^RZJCnTT4$v1q|syZuz^%oj^ z-amENtyR%}iU@PaTp?K6eB|rAiokW4JWuizu>zj6GM}o@;JFhn_=sU_?yxmP9*j;7 z`@i#Auj%9p=dq)iY7R^r+c6;^55yM@4?7e2`9)03cUPmo$ddI=)B+SzRuOYTm~Kfe z(CG#a;E7RuM-RS7 zg{}en53T2)E$PB}Y@SbnGVOBrIe<)4hb9wo?6LP*te*7ph-9?gH;7UI6KqV2vcTp~ zM#_3`{G~KlSI_`s6@NTNuk-JI34l>m59WWkYb44P^s-_YzT4kO=+(b%f2QXye6Jb= z+T^-4!OHN(2(HXqWjqlJZm`K~nDv8ecQNR;{H}v#10HL^i$q%k5_Q9!`MkrHDqWhj z*|BUs_Sm=9g42G_$rmK^>=2~B-*<$I2UYfnEu-_b{`?q5Dq^dI#s6axeivKN_^eHRN<4D|uoC9&1K42NvcrR+a)xGkgd*L&`V~M-&c*n+b>o*cz zJL+~8^Oy#IuBeu@RpUn+M>QkL1Or(Hu{c?XP5SQxsvn;$kFrHHC z%3CeaO-J#;_ruI}s{96L*@jA!MzwTYc}_3J zQhuQ#=8M%hg75E{dx^IjusIMpJYysbJL6{r-A4H33I>>IbtCnbw4O2%-p`uzWsiTyde2^JfAHqkUvaw+i_=0N+l6-cF8#il`xmO**)H>vCM^boA7jtb0 ztk}hQmY2>Ff7FeLQJU6WXhJ6I4TO%^r(`6tcZ^lJuy&d*U^QTRVNq>{#>xYn=<; z^Or*Hxk&vrf){(?R-pZl2Vr>UyCm-TV1n5?|ZvYwZ9t8zcZ zfNRR6ovSS8{gm|#dq)MsCWO!1fwfyQbQ#U@kD-n7i@wv7QB2H@iZ+4hYbDOlduh*1F^%)%JC^0sx{<4>~vHHw#x2k zC0p&60VDzC_H2s?^3<|}m)M~o4Y~3URtdtU`HbjuV!0|)X--h<;n-W^ znega7F>FlwrB8h?UU_BDQoMSTSz%G_lhd0-R|UbRIxl${bzljZ3APHLFtmNIYN{up z4UR|{=?k=lh+5KP<ca&dht>d`?I>Yk$J*6;-p6u_3sr8je=yn_T2#iS zxegdu0C=GFI`^CRK@+Mi10fC7Wg(x;7!Fw?3B1^Q7$}Tt&7J#_%j|+ImygrJf|Y_Ai2Ui zl3dYv`1baYeh z6m6-j6NG20j7{s{?D3cI)+}jJyyT0?d9B~GRlfY}d9qc@Ovc>LuTP^CT=CH4*9PZN zRE6Yf99zaw5fvb{5LH!ntXQ-ni|16yPhogr;;V@11k@SHpKG2YwinmS(5CE1Q&Wvu zUpKR|wmHz8l8eSC$IFe0JO+aI&V4X)G2%)v+Krz2={t^L{PDGtoRl?+YOB1(V-q2R z7agZb-;;-rAK+K)NWI}-Nu)`G&Dberfi!|T)ptVzUU1B8Hxt+0uT95qe`EIk0Yt5Zm*ZQ zU7j|UEL)zYQQVo~#mYp4KGes5-6fv$_*Mrh)3#G%5>IOw!hjX0053l8%y;3wuBzbD zxsg5?4+}8PD7C?CbQy2aY zxv!pIE_7i@*Qwtu?(6cg-h1rW-1ZT%#s$xP+#!(%05iMy?kYMV@R#HpTD_7`{Z$QAh<_yN|BmQsSTL@3*?b@{ww+ zX=f@W%q8)KgW!=8cmq|Ujlwu=3F-x$kwWTEmdq&nrilX?&{Ni$V=z{uDF&aj73^z3 zitn-USu1FHd*z&u`dGj0lC19)MT5{X2F$p??DPuej=|-cY>QB?aiUuv3F128hC5!qCqEHRPuSdO&|-A0wfH;w;(%x%r2Ed~E(_nWBC) zZLOBXtckTF6YMK~6{=2;>+@Q%t5bpUWlJ+N@3@i#mL6K4?BuP%QhgYZ2`br(jthT; zTSlsz2TOZ{2pD)?0W+*3oCxY2BB7Ce+C_J2eLV7hk3I*H-{=#EBJr@ndl4|9J3{M_ zGaP`XKgS|JE6tF0INZ%!Q-C%M$E^66-RYCd#HC`R`ErB$*5wrV2t*ha!P)67L0alt zWYt!g1~U{hMl-jx=)B6h^C*M|G(P*Hkgzip&~U@jUEv7e3*eacqsFQv@=_oNP=?vf zwFZ6Yoi7WzN(0NiF{~D|`6KWDkgNk-sY9-mYT&02UxF-@x!F(DV+C^roe?5^oH!zHg~}CgIVSS?Xj`s1?&;r-SFAToI$ z?&2JIzV|*4>9+N)^EAd0NBaHU+CJ=-qQ1gB(~>5fr<{7O0am_OiFN@_7fC3l^HM%c zW;xrwiE53j8;nV~Il3E;$E!&wUfX!{!|z7}o~|m^8skelE3wW1jzZ0CGZU+Dh)zYi zljh;^w4eP}fm?;8^RKNBj{A7)jek&$k3CC+OQs*a5rCpKdXgq5%ANMnJ5wz!>>I{z zOUx(PW)J$Cpmw0sBtNBx3q` z6b0)lpz(D;oc!U>``{y$x}~}w20Kpj4^3m@b-S<5)DU@7q?i z0njZ{$=-Q1>TUjF-WmrF8F3!9S7g`Hl))jd=Up9vl8Z{j&0H~Pos$3apcwhEyl_1# z_*S!x76S40J#p3{@QR{%-zS>6FnZEZPB~OH-cQJ1b6)%O#JjnvIU%COaLRr*ObKQh_|!X_Gm4-EDjsd|qOJdxOVB^?oM_ z`&#G`QiQwlZMhLoiO_p>&Mm1e?;peyKV zvir0cht2)#doP^|+g=J4$N*+W^zg2cpY0cl#l{c{3C?#)+)ETDJP-C{{7GmO91QbrK^-sP3qf8 z9h%oo=}X(}aCf9vq!^h1D>^-w_T9n9mNgb|;B`nDT6@zjuADc%av*lb61RsGz~hhdT3z5qXj7mc4}^ z&|&WOZh#-5)OPlP=g>mrqo4Bhn{E5;y^dAh#T7F~ZhpY^DfSuwD;)r_4{R!?}qaM~Q`V59Lym>9~&L>(Ib^~M#7T3OS*A(Y{l>>F#o zoYIZ2jsx6{(@n`KQ$}36okz@5_jXq`o)=zt(8tX&xw6wl=7O&_D5PY{2GY0d&TX1?$2^zxbKOsAv%bs;0Y zz7eNKnqt;{FMI^x0HpJ^e3C}$;sRXxI0ZnlhtG zAE7Pvj&7?w6pxWfs9PZQP|`s-^!?MWZ9wZsCBr%T6es}+$PZuQVY&@@~4EsYq><0O&q})RB9?0Sw6Qa zwbZzAWD058#cK`?GFdF=A(8cwkB^Zi) zD9!#}1<-T8Q=k%vtj`i|a8q{lIi7ay{z)INGQIdRY0~YS?~QUqXzyv~y8iZnl1}S< zS(ON+mgGkZTC6SRSFYFRh<&@>UVRgZ++p9z$g}?qL;+i>@7|WP0UUuPh@5GPDK3^V zof;3806U5@THN=(Y$wUa9@J-^ekZ*B2m;3FN!(`;r`@eDnFrf+qwoKm%l?Rdpq?_fuo zIoE&Y7X_c>PieLW+|>k$!;L4Vc}-ejW2~n-@(=&JQC!D9P84 zcN1yn0RX!HZ9~<;% zkmJ2D87|2qim1R@U#ytr|`X50pfoZK#$K{5D>w>Tf;_Gzik zyJZr8V%Jj+q@t%+_q@Z~un5b@aPS7DwSGq)no%*#*daGdpe9k;K|6!|XkA6^!X{{3 zjJ*#>m2XNqk_^;_EvE6xfrQs${XT4VBd)rBw3yV0<{dw2g zgPr!UO>Abn+w52?U}-C!Ds%Iy814veZ+}T=+U_azy^h?u0hm!3(6swoDZRE{Oxex! ziJC8Ei85y@RxXT2ck(K1`jNF@{)7|+pPo#59=ky5p>R8gw-58aQduMA`EKTuTm%3s z@B))@)<`nSvMWnxEcRffL%&TPvr&L2G;vYd`whntsl|z4d|f-Pr{B_VLGKhA=RSGO z_@v@!p@ImVPgPRuPG(l?B~g)I>7@LzIL>ADgQ-(RIqcolnf8$Lj4_*rxra^7;VDZG zp6pE1PDzG|YqR~>I%pPou$B2%DCcTlcZ!nu8$n>)2x%C;IRXi5ZGWbD>AyUo3<90J zq+@v%*FUjS)O$^L@Z|V=mDGT!e9>eV8O~OuwBd%o#CGO8kZz(1Kybs^){YKS0@7ts zoy2>?v%UIwd;I91>T_?BIK^tpc{)c@WWBjndRdhG{&Shr#1Zk|vZ6j-H%rftqmzp% z^6kpK9*~IhGbb(B*B>qCRe!4aootP=+`CLgpMB@6d$(_E)u(I2OwVUvTu|kaiLK%X z>aq~20;K{8*a!u6fvN(x8@yRn%UPT~SdjZIZlfx>_9k9?blR!zm~3R0=)r{L#Nm-v zlwnm>_EZbMy|lFJUP0)}Lz`l$YsenNW$kh+cmMHyC)-H9`*_E(IlOD_KXRfUa6Dm) z<{_NZWpB*R9xHa<@0$_TX=4SPF+pj5Jaes`O7SH~g1~a5Nz8i-kMly%Qo4OT6B^gjLb&Cpt5 zbBVTEf#zjW#Yh`N^WIks{BbsgD5=DH&m9I@d*9DSc zBt?OugFtA1aDI(ItQ3=+g$ybB(%^qg9Fli-+yv~g%kkER72_B?`q#&2f86ytH>*!C zEqK(AHcEdTpwg#=t(HWJx@f{J)eHw2z)IJ3r`-Fn_*3Q5_j&SQ^TfEUNxAYHKts-r zGF`xV+K0FKcvZfKpa&NOJu35`%+zl`4YCgs49?sGPK*`ypFTz?9&tGS3Dye_C-9Un z0U7{2Wnu0dHE0dXv|R2nDK+_AiaVR-F)k@FG?ul%aOAZaN|4b{o_kG1kV5V5Lf+U~ zhWF>Ur!$W%B8CGCdBnlYbWrmTA<4sU1F1{>MCjpf27CzIh=9gaU z;d=LL;lc}=3{?)!i-|g4{=RwhU%ymA?Qu2VKM^*!CD-YT&0^B-H0OP_>3h5@>~-0` zEfrjN2mmUGuqVpfrok=$Ov zm$Fg%!6Ps8F5aUx6;1}+-WsB>coH0rPe5jt3XhJ6C73T9kt3UJc}(NJc)4wjS}gXK z+60=|jN}UrOJO?s!;(_$8F#nb8Z-9GxPC2p6QBh^?NrzH^>kmg1qB3{`c$|d-?nyt zz6qK)>2ZNaUW!gHsd^UD9`0N1Ooz2f(4+o5WEelEQC0ZixIU;NMVw+;OkY?5RC;u2 z9so8Sv*N+8vHk`VjW?g`1(v=c??f|3n3Fj{#xSagj#JD+(wz2vV zb|J(ihthksHZt0kFOj@{@44)Hj`E{e5KFR;^<^1iuYX&siu41X9VNxe7dZKGsYl># zt_dQ>GMCnU2N}M{3Yl+q`GBTM+~>R}4T!9Ocjsm)_&ys$!wR_nQsQ*SULd3Xk=^bt z4o9!klbE(WI+7z!H7B68Xy7p_Fkt5hyzZp4cwDOD!!Y<*!&+qAVSS&x}3F%sOmeVSmYxq|;vOWuTsNfh8POr>&?zYfdD}x;(QvxMs=o29SSJ*DeG?oECTuE&WD8YM|nmC@X;q!Tsu#pXDFqzAnQLUolz3BXhlc)v2qe zDq_vfTokFb)}&dC%SwX#GQ^`p6zo51c-u)yy5G=uwC!1LoUjBg3HxLq+sCFwvh~~V z21y4|1|0{NnA&h520qwX7KWquH;89oP9%2#9n6)&pZ;I5_9oLWTXDcN0&1Qi(8K;7 zKCzH#Yj5BRh;gBVKDBX8h0)65G)Kl;`LQAvqxdQYN{E>dbTanq*mtQl1|-3C0M{m6 zS9_bC<~#!@Mpt^Ar2olmPz#tHQ$9Q`t}x<|mS~fm4XKp~lWP{kN+h9JrReO98L)m6 zs_tjX%-jdamN8X~4x?A_m9nQS3RlDK z@^r2Rj$`K@>}CdJ0&8dXZ*QKjzL*0^uL}p)^>bP!q0%l}2T|<UTeA_QwLP# zj($khO31oLazbekD{0+QX2hhs$u}2VoSGjDIr+NND0xs~uQlKN{Mml+Z6(ww7WYQ? zc0g7NaIKyltrwpxwRI_H9rtd@-E2l&0*Cyv1BNE##?q}m%a&x^1(ARN1^HR&*M6^(+ zof~;2o1k#-+_$lXXpXG7ZtGp@0_W)M4;0n9hK_?T>g?zo$I-Sk6FinC4{MhBe1Xf@ zK1lhYC+KD-K0-6UtqWdmL{!8`A&#-7xIKuDzp%!~Qt&m&Bzht}{fq}5HvU->yVT3t z?>c+dZF4x;;3lnZ&n7iSkIm;Dzw$<>o z$!n_KVUk0pC$KX?{rMg!Q)-ABN=-E#-e{s`awJ*u+y);d0-+`dm8n$*(k!AZihNir z(C2}Nm5*ceWdc>>2zcIrCr^U*#6wo=<#)!QnSAPY@*0?UKT)}R{r$8{Z5+^#Zs4$= zX!%w4qM^#16A)oxerFoa58zb1EWn2No|rR6%f-~FCXVyWM-uY#W@GxC+jQE}FRTZK z*|t8?%sE9wC@Vw^RpXn3=34<4#<6)n(Lm+Wx;~!LI;Ix=2{;7T+QtKo{CE=yjueeA zPgYEhULSfNcZzrR?N+hXuO}2w`t;RRE=@mM;Az@!D-(`ODK1!=6kPnE*f;NzaA(Xj zX;NYi_4^_4gWeXYF>Jn4bH!_Lkqv>^;_#mU=rZ;T*8gAP!kOS|z&d@CK&yTN0W!O} zINK?=L+=3RzoeF!%9nAH4O$LWn(lc5jkJ0Y;?p)xjy(K@*_sxVq2h>d?d_stt@3EV z;W4V$JT4CMFpb{%?8DKy9FTt7s)(tE=79WjD^Ttbu8}3is=AH}!7GjBk?d9Tnp;yysx# zdlivZWZpM*UykL0x4%CJ`o|~l6!fV;&(G{*VVRC71Aj^mayCwV(7Nh^#QQcT5Y*hb z-|QBo07{z(VO$%I(xIi&p z)0hT0{08ewtv#Uq+jDp!jH8};0>tTE`wMGk;c(}2VYQc1BxbOH$S=aTP$)J{P?z9K z;=znqv$7*LwlKZG!1U`toTksdG}%O~&_rC%5K(E5TU15L2l6;oyKgFaJKQL3GQpkI z8H6o8Sc?;VYH*XG9c-Y@KiF;jlh*vL#NI3k_#SQ#ZKF}2FbBWSU>hX(ZmcTQGNE5) z9OmhvP&B;cJ!BkYs>Jh-K&u1%CdZ_@fN3053Hc|0SVvJ{A3j(rlnz)pn7vC6u7xu9fvHIw0vAG6rN@0> zj+UdWp-i>)jHjucJc#-}FOnA0y;dO~gJuP`C?T&o&B&y~ulN@k&kUH%GrwSUu}2z3-ttIKrs-As z`xQ(d0Dpk8BnRx=yM@sn^>r;2TGqax8R}t6_$!@>3cT8rIM~dYHze_@SN(G?0Kcyg z6w^M^BnG4>>>U&~^FIY$#nllFVFdOaF=^Vq_w3b88{BukURg^~Yu;h0H(&iY3tqLz zcmHwF9v0vz`h3LnT%hdCdEMYK*m<{&eM-2^%#c3wYnhJR6qfb%x4UT9w9J~g9voN+ zZqO4ooQWC#E!yFac*fl-F;*+z0koQ7SBLMp^jUr`(l{<(U$R^aYT(EL{w<igJHujLzOR4wi+Vbay5#HZiWnD9Kvvha+iT+0?6$NN0QpkbA0|-qo}7~=fNL= zBiux~QNF-vi>AuO5h1?2hX`QooN%?Wy@)|zWbfJmY7xF-(QEuw0D&-R0h;k7m5h%_ z&_uch;P%V6)JEA=jy~U0-uA-x&L19IPJj;7BzJY$&io20U5dfcV31Xx={|`x5$)`T zA_FK92T;Pw9#NAAT=eS)21BpY(~kctz}FCpNcglyE+Fbq6;t;HB1oEBj~eF=K7*fG zK|foOzezet(o-gnmK!5$$BU%LPR#!ZrbC!qW26NjPZeQo?fFVmfy|F~)Cr1+6&6T) z+!1!dS74n#>tB^g?p|v(6C(@k_resA#j*Koa%<-X2$x~`L^CC)H|d5g96fz-P>(!N zK{#LfR@vf*K+cXTNF;CabM3a7?Ph)Ic{u@TK~L$xt=oJF^1Eot?Hc&sJB#E)fRm{c zPU*-UEFYvZk-;r&*84B;e*%KDTt2env4-j%yu?IRVA|I6)iY=-hf&!j3UE3#2rnUE zA1rp|Q=L5HV{5@)4h`)UiT~{7uQ8loxgpcY#rNR3x#eu*E z<-1A3dQ#DGJyX?V)&R4TqnXhyk%(d)fjdsZ^5;L$JGBWgDbNx;bm2SCY&f}LFlrig z)UEqe{)6=J1X=;|04hI<4anS^RfKTuelm|^u?2&r6@@fa-D-Mn#xgKi9M%!LPSj4w z;4G*&3$J{lFf6pEGs@1xZZ>@vx=VWt6YMI_ttw;DQ@V-$a`id6mc;ucO2m6(z%7en zy8~Uf`VxadTj-_-#Y%j4OtUTVSz>1mFsu)vIjwlO!J-CsQ9Oo*OKnUoL>R72I@H-F zMhM{r@ccpG(OWf&0f0P?e;|6vzein16nDAodkh%w<14Xm@6@o`|NK4w(HUHx)xR_O zAREMwh?Gd0Vq2Az6~^*@C38lNtS@K94s^FE*GK$BwxeGHU0<8@Kyo;I=razuh;x}; zc9?I13Q)v?oifO|!Y(Wr$Rlelj`4K^I<8v6{RTiEh$SYN_Fux!U}FplslfIoITdJV zvc^dKZM?SmbC7tyT)j6_G!gY)2xJN%;RmA93jRqr8UicS3R&TCiX~{=CkP?uONaqA z0Sd67a^aUJ4xOAi!09@>IGsE%uQ+Okf+`BqH&u1=uf)nKMF8xCM07O%iE@~Va zAu)t(2JH|3g@p0iP;f)5Zh!_7USRejEpm*VFOwYKj&1xGG6VrJ2*SE3pRcw>ha1e} zP?Y_jY7n{e&dN$@w$2(9L=QFfcGwx!3F$|OI0)Y%f^re9BS%trZ{mJ^=(COmL_J0U zu=z%g6Q}@I+VH@1g}w1iRWb8i1XwKL z&eKj%E|Gv-B8>3@Ve)$u$^4jsF>>dCxSBsKqnyQxF&f4BfyNpt-t>+JQFbx`0<#=| z)14t?l1zBh0tf;IYV3IT=>xVi!-d_H1U(NS)8-ssxjos4yS%e?3&3&-6>p0e?o&y+ za%dttZn2%JXacWHgCSNC8@5K1sIA{}&GpU`{NCayd!CL4AW9)Uw*cG|K92TBCZD^Z z!6DY}LGzx`OXf#@AS~MRU%VW}pJbvyl+xW#!WAnAc6a4IrY_4D-U%5x6)Zbq>ZyRj z6fH-XLgxfZKiZm$n4LAhYU#L)EkmmX*}Cs8&qS#$f{Q_kvAp6^KbWf*DhZzrxM~e8 zbqUdg8`FprEjpcf`vt5tVBUTu_kB-#;NbZxM;D>11+7nBNl-FbI94385RwT&0ii;a zPhrw$BaFbZ( zV6(?s#u%X#`KXM60xRZNvXqIxGL1luh1|X4m2k~gAS^qOmXMj2LnG`+fB*z4miz^l zwhTE?4t%p*ai#GYTVueoKgOQNd?P~Ang3DsC2k;>YRYM0b%K?@zse_uuvYe@>{%N%ohV zZ;U-x8OeMG-r}s0k9R#@)t=UB~YfwX^(lZ7^XW>1VjZ@81C?!t!p>Q}AZW`As51T4&1qmV&F+$)Ts~mJmw_!q z3S+##l5yYD2WS3Xs|u&^1PL6RKsCY6n@P8!f%goWPZxrQco7<6ZfR=B7wcI~sJOjW z%E%~Bt7-K1P+Nf)7%0w;Tl3^JzGuXSVrhdKJt)9?u~!IICA8Tbac^6lvcfna-W05u zb-tM?Tuhm;_snp5ockUSm2gUj3J|GGz=6&*1|&RGEV*OVpfl`uPigm?iG8VsMvQ)=;M%Y+C?E zfoQ9b=}GKmqQInSbk%}T4RZ)$0>Z@p3NZE5fhh!N1ekiLCZ`*e&lDK#uNqfJTjf5i zB=-8J=HkanLSgDh5$`t5OvBt-MHJQhrN+`R*D374}1nRYJ$6i6h{N$ z(?(}SWH()9&dUHCg+4wxe)y$-U!6NIo!u%fX_bj>E?6i2FE%|p^d>Ef%5;HXp# z!_b|1+P(f-UG_}J*Wk$KLx zVdISy91#qLW!f|aeq`F?>sysaO+LO(6U5-V!pm0fg_~h#4X(vU<|V9zLke3rj!w zC+S=Shl(b`hMa{FW28bcAocY<4sPoF>ja+FhNV)98}Rgnhzk71+lvWRqVqFv Date: Sun, 7 Jan 2024 11:11:35 +0100 Subject: [PATCH 053/238] re-run spell-check --- inst/WORDLIST | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index cb830c129..2335d27a3 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,8 +1,221 @@ Addin +addin +addins +api +AppVeyor +arg +args +AST +aut +backport +backports +bdr +benchmarking +bootswatch +BugReports +cancelling +cff +ci +cli +CMD +codebase codecov +codegrip +coercible +coercions +compat +config +Config +counterpair +coventions +cpp +cre +ctb +cyclocomp +cynkra +dec +dependabot +desc +devtools +dir +dirs +docsearch +dont +dontrun +dontshow +donttest +dplyr +DSLs +emacs +EOF +EOL +EOLs +EQ +examplesIf +expr +fansi +filetype flaticon +forcond +formatter Freepik +gadenbuie Gayathri +getOption +ggplot +github +Github +gitsum +gmail +grkstyle +GSOC +helpfiles +href +https +icloud +ifelse +Indrajeet +infinitively +initializer +inode +integrations +interaces +internal's +invasiveness +Invasiveness +io +ixmypi +JamesIves +Jupyterlab +kirill +Kirill +knitr +krlmlr +labelled +learnr +LF +lifecycle +linter +linters +lintr +lorenz +lorenzwalthert +macOS +magrittr +md +MERCHANTABILITY +mlr +mutli +Müller +navbar +netlify +nocomments +NONINFRINGEMENT +nonportable +nzchar +oneliner +ORCID +ourself +packrat +pandoc +params +parsable +parsesum +Patil +patilindrajeet +patilindrajeets +pkgapi +pkgconfig +pkgdown +pos +pre +precommit +prefill +prettycode +priori +PRs +purrr +qmd +Qmd +RcppExports +readme +README +rebased +reindent +reindented +reindention +relevel +renv +repo +reprex +revdepcheck +rlang +rlang's +rmarkdown +Rmarkdown +RMarkdown +rmd +Rmd +rnw +Rnw +roadmap +roclet +roclets +ropensci +roxgen +roxygen +Roxygen +RoxygenNote +rplumber +rprofile +Rprofile +rprojroot RStudio +RStudio's +rstudioapi +saamwerk +semicoloner +Shallowify +sharding +spaceout +StackOverflow styler +stylerignore +stylerignored +sublicense +summarises +testthat +tibble +tibbles +tidyr tidyverse +todo +travis +ubuntu +ui +uncached +unexplainable +unicode +unindent +Unindent +unindention +unlink +unnest +utf +vctrs +vec +VignetteBuilder +Visit'em +walthert +Walthert +winbuilder +withr +www +xaringan +xfun +Xie +yaml +YAML +yihui +Yihui +zzz From 1673a3ae2d2738a8d3160092e0ec051a5a3ba250 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 7 Jan 2024 21:18:53 +0100 Subject: [PATCH 054/238] render readme, fix script --- README.Rmd | 5 +++-- hextools/hexsticker.R | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.Rmd b/README.Rmd index bddbad445..3216f2a10 100644 --- a/README.Rmd +++ b/README.Rmd @@ -71,5 +71,6 @@ The following online docs are available: ## Acknowledgments -Hex sticker font is [Gayathri](https://fonts.google.com/specimen/Gayathri), and the image is taken from icon made by [Freepik](https://www.freepik.com) and available at -[flaticon.com](https://www.flaticon.com/free-icon/suit_1355137). +Hex sticker font is [Gayathri](https://fonts.google.com/specimen/Gayathri), and +the image is taken from icon made by [Freepik](https://www.freepik.com) and +available at [flaticon.com](https://www.flaticon.com/free-icon/suit). diff --git a/hextools/hexsticker.R b/hextools/hexsticker.R index 0b73117fb..ccf0dcdcc 100644 --- a/hextools/hexsticker.R +++ b/hextools/hexsticker.R @@ -15,6 +15,7 @@ project_root <- here::here() # https://www.flaticon.com/free-icon/suit_1355137 image <- image_read(file.path(project_root, "hextools", "suit.png")) manual_logo_path <- file.path(project_root, "man", "figures", "logo.png") +color_font <- "#b3c9e5" sticker( # image @@ -25,7 +26,7 @@ sticker( s_height = 1.2, # package name package = "styler", - p_color = "#F6ECA9", + p_color = color_font, p_family = google_font_name, p_size = 58, p_x = 0.35, @@ -33,14 +34,15 @@ sticker( angle = 90, # image h_color = "black", - h_fill = "#11235A", + h_fill = "#a18595", # package URL url = " https://styler.r-lib.org/", u_size = 10, - u_color = "#F6ECA9", + u_color = color_font, # saving sticker filename = manual_logo_path, dpi = 600, ) + rmarkdown::render("README.Rmd") From f8ddcf65d5a92ada31b368c77cbed440eb7f9db5 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 7 Jan 2024 21:20:16 +0100 Subject: [PATCH 055/238] move hextools to inst --- .Rbuildignore | 1 + {hextools => inst/hextools}/hexsticker.R | 0 {hextools => inst/hextools}/suit.png | Bin 3 files changed, 1 insertion(+) rename {hextools => inst/hextools}/hexsticker.R (100%) rename {hextools => inst/hextools}/suit.png (100%) diff --git a/.Rbuildignore b/.Rbuildignore index 0a9543250..c328040fd 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -19,6 +19,7 @@ ^gitsum$ ^hextools ^inst/WORDLIST$ +^inst/hextools$ ^inst/hooks/.*$ ^revdep$ ^tests/testmanual$ diff --git a/hextools/hexsticker.R b/inst/hextools/hexsticker.R similarity index 100% rename from hextools/hexsticker.R rename to inst/hextools/hexsticker.R diff --git a/hextools/suit.png b/inst/hextools/suit.png similarity index 100% rename from hextools/suit.png rename to inst/hextools/suit.png From 60e65383f69b2b6cb80ba8323ec627742e3fcaac Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 13 Jan 2024 08:59:03 +0100 Subject: [PATCH 056/238] build favicons; use devel-lintr --- .Rbuildignore | 1 + .pre-commit-config.yaml | 2 ++ pkgdown/favicon/apple-touch-icon-120x120.png | Bin 0 -> 8660 bytes pkgdown/favicon/apple-touch-icon-152x152.png | Bin 0 -> 11475 bytes pkgdown/favicon/apple-touch-icon-180x180.png | Bin 0 -> 14175 bytes pkgdown/favicon/apple-touch-icon-60x60.png | Bin 0 -> 3958 bytes pkgdown/favicon/apple-touch-icon-76x76.png | Bin 0 -> 5070 bytes pkgdown/favicon/apple-touch-icon.png | Bin 0 -> 14175 bytes pkgdown/favicon/favicon-16x16.png | Bin 0 -> 1125 bytes pkgdown/favicon/favicon-32x32.png | Bin 0 -> 2122 bytes pkgdown/favicon/favicon.ico | Bin 0 -> 15086 bytes 11 files changed, 3 insertions(+) create mode 100644 pkgdown/favicon/apple-touch-icon-120x120.png create mode 100644 pkgdown/favicon/apple-touch-icon-152x152.png create mode 100644 pkgdown/favicon/apple-touch-icon-180x180.png create mode 100644 pkgdown/favicon/apple-touch-icon-60x60.png create mode 100644 pkgdown/favicon/apple-touch-icon-76x76.png create mode 100644 pkgdown/favicon/apple-touch-icon.png create mode 100644 pkgdown/favicon/favicon-16x16.png create mode 100644 pkgdown/favicon/favicon-32x32.png create mode 100644 pkgdown/favicon/favicon.ico diff --git a/.Rbuildignore b/.Rbuildignore index c328040fd..48239634b 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -21,6 +21,7 @@ ^inst/WORDLIST$ ^inst/hextools$ ^inst/hooks/.*$ +^pkgdown$ ^revdep$ ^tests/testmanual$ ^tic\.R$ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 86a340b0f..869a3ef8a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,6 +21,8 @@ repos: tests/testmanual/addins/r-valid\.R| )$ - id: lintr + additional_dependencies: + - r-lib/lintr exclude: > (?x)^( inst/.*| diff --git a/pkgdown/favicon/apple-touch-icon-120x120.png b/pkgdown/favicon/apple-touch-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..5782ba091e8ee1d8c3840c5184ecb9af16b57b9b GIT binary patch literal 8660 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 literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/apple-touch-icon-152x152.png b/pkgdown/favicon/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c8b9bf17ca1e3f17cd86ed2453fcf7489e5d93 GIT binary patch literal 11475 zcmZ{KWmH^EwCv!66A13^?oJ490fG$fu7SbbJ-E9&!5sp@-7QEUxZ8&W2;7r>cBPQ-wTWg{3iH8K?z*otv)D!0D&6f zQD00DfWIlsTRdIH`GJOY8-I6$BiV-QFP_yT!w)V?IG8hpSJ+2x zW9=uW3CM7;8u|<3EbQoiyPQ|~LE}Tc?H2FZeEUAZXoGMPB*BcKqY0DnY;fYpp7_tE z>1qP?FyCO_PzL4oY8!uJ{|PJp#U5}p`Y<+Ml!P`$g9Z0W=t=wcr-ix6TD&JLObwDh z!Xt9Q`@VCRCZ`FNEs-lCH%(qpvwO?!R>x=k4%ZL}Ri4*hiYx8DOE~42zb0uYX~<<* zu>M4k(giSmWvBL#mak?J@%5D^qVAhtX<0!$%G9X}Uk>L)dp!=|AN0sfvn&tvF@wZG zuh;~TGtAai&pG4+m|pTnp?b{OFsvG|=Ji3)il@z~V>cOQnuYR{sqz9?mRi5tE%jk0 zKu+5T6B~J4ybI(D_ef?-=tp^7gsmj|?&Opq*b5Z>SGv2~NBrBRs8W412_vogxXmY; zPzj17;*-P0Qtq5y_n^5e$bs|wM~o{yku{cXRnK?GtwfKsi%A5q&O$k7KilKlFiB08 zqJ=`SxUo+cM!OHb$f926i4NWQw8_yVXAbmKJg$+$O~v@Z<$x zSzfF?SlubM*K0$L*yP-I5zw>FlA+4n(^???nlIQtaDOlJzt`5@WqNe>cw3d5ONS- zk(^=WSnkos>GQ0DZTc{_R|44!V9OtS#4yfRN9NKE3mZjBf^}T=F|1H27thZLkM=`Q z$z3moX@AVg9b5@q#rN?C=}9;e_DWrKW7pt4dTm>&Rg#go3$HIb9IO@=*Hr3-mDzYv zFP9f02ifR|So;lLH_>-2LDN$b$4M^WUp=1Y8dmw)Ry?=Bcp(4xkMVt464sJtn#!b3 z@7$t~$`P3bH~P#%E5Z)nR6H+y z36cdNNz|9bQnU9=?&Ll*V!UT1YG|Yc722T1$2mWpAgCA!P4$hc9yr79r~AP@66}A& z;$L_OiYUnV5%NO=dxx2HgKW>fsZ(2Q!jt6a_prIpb z*Gk3ZVa^Y2VU)xX<`sO#(+!Ra<93FT&7j=77{w|AMxG zWEvr>>|LC6hwrn{Wv;NakCXQBNmiex2H&=@ggNEqZH<~7d=m_kn*Z{8AZkH#MX2@z z$=;GE5+gHPuBNwDr6f2AD>!I}QmoS@Exs}K|0{%9~_pi|*{VobbeU8@(C7(W

-q5EwOHHW6AzH%B*?C>%eZ0!Z|@BLie`R9 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 literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/apple-touch-icon-60x60.png b/pkgdown/favicon/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d3dcae255ae5219b116ab1c286e29ef2fb6d29 GIT binary patch literal 3958 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 Z1lC!vqxZGsUlL6K2D+v?m0IxV{{gr6hH3x+ literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/apple-touch-icon.png b/pkgdown/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f58f4c9dc4c33da3f89cd435205e21f1bfeb9226 GIT binary patch literal 14175 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ňu<$<`S-_7-jw#-_!ONrfpNC2Q&`=#$;R3R_46Ji8 zm^ZF^2^EPF0DO`e)$)Wc1^0;taB9oY1AzPDsiOXV$n8)PB-=Bge)6n76hV3yP`u4G zV3dO&z(qRnpwzyRweRis8`JGo4xe~R9aIO_{brYeu6^jA*tPXJG^_=aDE!IKVl0qR zQ;p|fRxK!Gm~r12G)VgbZwK4abmzXd8t}F4_jzdR?>VYaamoXVSm&*02GMTcl!X3J zkPLA;)+4V5oWr-q?bNgii79kU7sk0W*e8Y$C81cr_`UVAxVG67s|!GRb8S?S1@TIy z{GQwI#Ke3OPhZzY48L}X6JM$(2u3r~0P8PfBlzPiFZtPDNMzcYkNu7z_1b3tyy)QV z&_eg`X^6q^5&!!%gcrO1!UNXw#(7+P=f{fiKwxR|pembZdy5!zd*_g$-92E@FKOo3iu?oOk4)#bGeZ%Ji?z51G1>PfHg7)F$R`~zu&DS?3I%@!3 z0`TNVAMoS{T^z^Q`h<=E1%;r{V{(tf0|K>56nte_(TY`05Eo@8JNkb;bgbhV^O@c#h^IDDP} literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/favicon-16x16.png b/pkgdown/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..76ed5d813de918a956a412abd8f98740a57e11a5 GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>8H;1l8sRKUc;P zK=W1Plq5vN__%p9!V;IX&saWt-HHWU7In;=QQHd)5MVekGcm>bhAo}Ac=_Co6D!)Z zRWw*xSQKUCgI#=B{%nz?p%Lq9O61Dw1(ZCo5pZ8F0XdrO+;Hcgt}Jb7{F%o%mP zi`!?+YMwH;Y2v(=DgXcfH(e|?73f^2k{~}&iU0#<`+fF`ozFW2v#$NiWOCp4%U$I3 zSy8czmnFn5g5br|XT1*o{(aC(DEG#VTp{J2moIyiS)2|Xaw?p{s|YlLG0EHAWhzHP zRWp#oUgGKN%Kn0pm))HIk6k7cQ0TpUkgCO1AmJ-s|WH#Ug}51$qnJ$n4S z@xu%jme!WJu`zR6TU}UYNJ_XIJ)#;DGq+JG@0`%1NsD-bF1>T;YhONnd;j{)^Luof z=j^F>SP&mj;E@qg(XzQosd-XSO30RApPZN)rz9Z{2Uk-|Ra0F(Gh1cj)4VDRmd%?x zdG2g+`8n|c5{!ZxT6&tg+Wl)+tSMs4zPMuD%C)QWGjg)l6)|#pWNzEywtZ`PNm=Q4 zi{F_ijXJVkzp%1)xA^{T=hxRSr3(xUHb_WG`ZMgxeWW5BY#i26enwYE-GAezZH>RD zoxOJM-ocC0WRI{h%yF`6ST%7TFxxPwmbgZgq$HN4S|t~y0x1R~10xe%14CUy;}8RL zD^pV|LsM-711kfASUr~-6b-rgDVb@NxHae$|2Y8E5MC7$Q4*9`u24{vpO%@Es!&o{ zkgAYbP?F5RP%-E6CmxQ%Fb$1U{-@7)J`G}ER_4}A<`z~K_MR-lEUe(tU~)KxS$T7a q!s#1VP8>ONMCJ(l=?0GlUV03##05(}Ihle|3xlVtpUXO@geCw5e1SFq literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/favicon-32x32.png b/pkgdown/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..129ac242c32d54e8386b536e458d07fd621090c7 GIT binary patch literal 2122 zcmV-Q2(|Z#P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rj0SyN?5OFqS_W%F}>q$gGR9M5Um)mb#R~5#8 z`&{PYxjJ#|`0kElJGSFn962TpsY)slsh|p#o79RYct8k>s09B2LgE3as1P7k;sqq2 z0x3d$=v8VQ+9W1U;*OKpj-7jAyW`k1@(IeS5fj;D^r+9qvvvwF*U10PsAI`8zk{=?iDC zOkAFPb2Xd(E3o?iBH$1B{KtFu?SK8~!O<@s*tcH~_yc&JS2jpd6b#cKIeW!Eec|k> za($Msed$F~s}E?btLN=^Ptsc7#OS~w2D%Oq3It2alSrf|*%ggb9f|n?1wiBB z0n$V0KD0<2XDtn$hi4jPE59;7%^&{uCrrEOu1hmX?kwJ?HPu9VEyKm>B$Kn3`Oa6r z#qrT&$SrM@QX(HRgi@|Zfpi>{Uhpk zj|b_M%7nW8kwn@iULlY4+^uiO=GV%e6%2!#>fIQoK|B&;psN=}QOM@kklvHsqijte zG#$@0@r*op9zxwbE~J#K<;n@H0L5sxDckL+& z(QzDdg&grni~}9rMN*!})ciD-Z3EEJ+RomZTJnWF=K8b8MahPUVjDcuz`B16go0LG z1BhZJYzxP=DHsO3VsWaY@l749I{+XW4x_0mbGL6`+13*YY;%FoboAN=e0!S^ih^`( za9t1r+i|dLi&!|y;_}iX0T)tBL_%R4w>Y-)7RX{1gr?)>ve?Uuct##Kn=aYWb{rhn zCFl>ZxcvDe0aGgv(9~jKE2)6?@E@W3@YOXS6s2fI+eBv5>m3qUw#CLimd<8M^HfzW zDLz-oVcHg|s$y6>X@LM~Sy=aOVLwRW83m+e!N#E^iYrnTm3$$OVVOk$q0rHiC>=nK z>ypl9&@~;yG@f|n(l+ypq7W4o#pg%(14z?As2b9BkWx|;-_0v8ejV3yv0aC2H|IeJ zhIR?)wPTT zc(8dbcbC&EcNS8M4XO~$aZOWI%fQVSx8sLn15{Tv_U@^pw|zg+P=uaD7tQsJ=(=8( z7$MNA!kCW3L~_D@=i~Q2nwp#bh3mRA>zyr&csvsO=1_OvkB$zF_Ov&*2}MyVz6)** zH4sFq8rN>l$+5GirY0uO|8{jP^LHR!8nb1N5vmHEzdSen&fM+mMlPT0h)3h$NGSY7 zKbI+6_n`)YEToor|J3^n|9bD_o0C_QulsfVBhy}2@22+uH;$qx!=0_|KRz-z^3rh6 zKqwlHJocU_6csI4MaDE3pE#2{eeTrB*&B1e@uZyC==rue6)Y$a3|n2hR?U zbhb6Nl-eTv0d6eZW9-bwGyjR*70J`i_8U?cXm)Hi*9wExhnhx> z6Cgx@G{a;ABePT>%h=S&#LUDT#0SfONT5nC0O}VJbn-$ql>h($07*qoM6N<$f-wx| A`~Uy| literal 0 HcmV?d00001 diff --git a/pkgdown/favicon/favicon.ico b/pkgdown/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..702c207bc03a845f10c9614a2370cb0163a081f3 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 From 6ae50299ffac23c44f8477955614a106eba8ba28 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 13 Jan 2024 08:03:39 +0000 Subject: [PATCH 057/238] pre-commit --- DESCRIPTION | 2 +- NAMESPACE | 3 +-- inst/WORDLIST | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index e38798e39..347545ef1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -52,7 +52,7 @@ Roxygen: list(markdown = TRUE, roclets = c( "rd", "namespace", "collate", if (rlang::is_installed("pkgapi")) "pkgapi::api_roclet" else { warning("Please install r-lib/pkgapi to make sure the file API is kept up to date"); NULL})) -RoxygenNote: 7.2.3 +RoxygenNote: 7.3.0 Config/testthat/edition: 3 Config/testthat/parallel: true Collate: diff --git a/NAMESPACE b/NAMESPACE index 1c39bc4ca..202c6ad0a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -31,7 +31,7 @@ export(style_text) export(tidyverse_math_token_spacing) export(tidyverse_reindention) export(tidyverse_style) -importFrom(magrittr,"%>%") +importFrom(magrittr,) importFrom(purrr,compact) importFrom(purrr,flatten) importFrom(purrr,flatten_chr) @@ -46,7 +46,6 @@ importFrom(purrr,map_lgl) importFrom(purrr,partial) importFrom(purrr,pmap) importFrom(purrr,pwalk) -importFrom(rlang,"%||%") importFrom(rlang,abort) importFrom(rlang,check_installed) importFrom(rlang,is_installed) diff --git a/inst/WORDLIST b/inst/WORDLIST index 2335d27a3..438af60a2 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -13,6 +13,7 @@ bdr benchmarking bootswatch BugReports +bXj cancelling cff ci @@ -53,8 +54,11 @@ EOLs EQ examplesIf expr +eZm fansi +Fi filetype +Fjmav flaticon forcond formatter @@ -86,6 +90,7 @@ Invasiveness io ixmypi JamesIves +JBP Jupyterlab kirill Kirill @@ -102,17 +107,20 @@ lorenz lorenzwalthert macOS magrittr +mav md MERCHANTABILITY mlr mutli Müller navbar +nbv netlify nocomments NONINFRINGEMENT nonportable nzchar +ocx oneliner ORCID ourself @@ -124,6 +132,8 @@ parsesum Patil patilindrajeet patilindrajeets +pdy +PGW pkgapi pkgconfig pkgdown @@ -135,6 +145,7 @@ prettycode priori PRs purrr +qez qmd Qmd RcppExports @@ -174,6 +185,7 @@ RStudio RStudio's rstudioapi saamwerk +Sd semicoloner Shallowify sharding @@ -185,6 +197,8 @@ stylerignored sublicense summarises testthat +tg +th tibble tibbles tidyr @@ -192,6 +206,7 @@ tidyverse todo travis ubuntu +Uf ui uncached unexplainable @@ -204,18 +219,25 @@ unnest utf vctrs vec +Vh VignetteBuilder Visit'em walthert Walthert winbuilder withr +WN www xaringan xfun Xie +xk +XN yaml YAML yihui Yihui +yl +YPa +zm zzz From b82dd61087df2c8c8c8495d5e82a7fc46a83f67f Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 13 Jan 2024 11:40:57 +0100 Subject: [PATCH 058/238] fix infix operator imports --- NAMESPACE | 3 ++- R/styler-package.R | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 202c6ad0a..1c39bc4ca 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -31,7 +31,7 @@ export(style_text) export(tidyverse_math_token_spacing) export(tidyverse_reindention) export(tidyverse_style) -importFrom(magrittr,) +importFrom(magrittr,"%>%") importFrom(purrr,compact) importFrom(purrr,flatten) importFrom(purrr,flatten_chr) @@ -46,6 +46,7 @@ importFrom(purrr,map_lgl) importFrom(purrr,partial) importFrom(purrr,pmap) importFrom(purrr,pwalk) +importFrom(rlang,"%||%") importFrom(rlang,abort) importFrom(rlang,check_installed) importFrom(rlang,is_installed) diff --git a/R/styler-package.R b/R/styler-package.R index c1558ef4e..2a688583d 100644 --- a/R/styler-package.R +++ b/R/styler-package.R @@ -18,14 +18,15 @@ #' style_text("a%>%b; a", scope = "tokens") "_PACKAGE" -## usethis namespace: start +## styler namespace: start #' -#' @importFrom magrittr "%>%" +#' @importFrom magrittr %>% #' @importFrom purrr compact partial flatten flatten_int flatten_chr #' @importFrom purrr map map_lgl map_int map_chr map2 map2_chr map_at pmap pwalk -#' @importFrom rlang abort warn seq2 check_installed is_installed "%||%" set_names +#' @importFrom rlang abort warn seq2 check_installed is_installed %||% set_names #' @importFrom vctrs vec_rbind vec_slice vec_split -## usethis namespace: end +#' +## styler namespace: end NULL From 4ec583d6cb6f9ba61e079e581be1a7dbc79f10b9 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 13 Jan 2024 11:47:58 +0100 Subject: [PATCH 059/238] fix new lint --- R/transform-files.R | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/R/transform-files.R b/R/transform-files.R index c49c54cc6..a4717e015 100644 --- a/R/transform-files.R +++ b/R/transform-files.R @@ -68,12 +68,10 @@ transform_file <- function(path, bullet <- if (is.na(changed)) { "warning" + } else if (changed) { + "info" } else { - if (changed) { - "info" - } else { - "tick" - } + "tick" } if (!getOption("styler.quiet", FALSE)) { From 2b2980d1be65b7abde2819fabaa7c1dd69fe79d5 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 14 Jan 2024 15:11:19 +0100 Subject: [PATCH 060/238] Include sticker on the website --- README.Rmd | 16 ++++++---------- README.md | 11 +++++------ 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/README.Rmd b/README.Rmd index 3216f2a10..8e1888165 100644 --- a/README.Rmd +++ b/README.Rmd @@ -15,22 +15,18 @@ knitr::opts_chunk$set( ) ``` -# styler +# `{styler}`: Non-Invasive Pretty Printing of R Code -[![R build -status](https://github.com/r-lib/styler/workflows/R-CMD-check/badge.svg)](https://github.com/r-lib/styler/actions) -[![Life cycle: -stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html) -[![codecov test -coverage](https://app.codecov.io/gh/r-lib/styler/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/styler) -[![CRAN -Status](https://www.r-pkg.org/badges/version/styler)](https://cran.r-project.org/package=styler) +[![R build status](https://github.com/r-lib/styler/workflows/R-CMD-check/badge.svg)](https://github.com/r-lib/styler/actions) +[![Lifecycle](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html) +[![Test coverage](https://codecov.io/gh/r-lib/styler/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/styler?branch=main) +[![CRAN Status](https://www.r-pkg.org/badges/version/styler)](https://cran.r-project.org/package=styler) -# Overview +# Overview styler formats your code according to the [tidyverse style guide](https://style.tidyverse.org) (or your custom style guide) so you can diff --git a/README.md b/README.md index c466344cc..dd99b9780 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,21 @@ -# styler +# `{styler}`: Non-Invasive Pretty Printing of R Code [![R build status](https://github.com/r-lib/styler/workflows/R-CMD-check/badge.svg)](https://github.com/r-lib/styler/actions) -[![Life cycle: -stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html) -[![codecov test -coverage](https://app.codecov.io/gh/r-lib/styler/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/styler) +[![Lifecycle](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html) +[![Test +coverage](https://codecov.io/gh/r-lib/styler/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/styler?branch=main) [![CRAN Status](https://www.r-pkg.org/badges/version/styler)](https://cran.r-project.org/package=styler) -# Overview +# Overview styler formats your code according to the [tidyverse style guide](https://style.tidyverse.org) (or your custom style guide) so you From 96b469b86ff8e4ca3fb65732667279bd9916f22f Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 14 Jan 2024 15:18:18 +0100 Subject: [PATCH 061/238] Update hexsticker.R --- inst/hextools/hexsticker.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/hextools/hexsticker.R b/inst/hextools/hexsticker.R index ccf0dcdcc..b91b34b0f 100644 --- a/inst/hextools/hexsticker.R +++ b/inst/hextools/hexsticker.R @@ -13,7 +13,7 @@ showtext_auto() project_root <- here::here() # https://www.flaticon.com/free-icon/suit_1355137 -image <- image_read(file.path(project_root, "hextools", "suit.png")) +image <- image_read(file.path(project_root, "inst", "hextools", "suit.png")) manual_logo_path <- file.path(project_root, "man", "figures", "logo.png") color_font <- "#b3c9e5" From 71d41336fd694e4b84e8c827b0a5731c90a24406 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 17 Jan 2024 16:03:48 +0100 Subject: [PATCH 062/238] don't use code formatting for package name --- README.Rmd | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.Rmd b/README.Rmd index 8e1888165..1dabfaa36 100644 --- a/README.Rmd +++ b/README.Rmd @@ -15,7 +15,7 @@ knitr::opts_chunk$set( ) ``` -# `{styler}`: Non-Invasive Pretty Printing of R Code +# {styler}: Non-Invasive Pretty Printing of R Code diff --git a/README.md b/README.md index dd99b9780..d2b90ab80 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# `{styler}`: Non-Invasive Pretty Printing of R Code +# {styler}: Non-Invasive Pretty Printing of R Code From ffe79c12d7a5b4503c2d802a835e15fabe3f6ee5 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Thu, 18 Jan 2024 23:20:31 +0100 Subject: [PATCH 063/238] Set to dev version Maybe fixes #1174 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 347545ef1..8f881653d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: styler Title: Non-Invasive Pretty Printing of R Code -Version: 1.10.2 +Version: 1.10.2.9000 Authors@R: c(person(given = "Kirill", family = "Müller", From 5a569d398a1f35e41f6245ddf639b43112fbdea4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 03:44:02 +0000 Subject: [PATCH 064/238] Bump styfle/cancel-workflow-action from 0.12.0 to 0.12.1 Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.12.0 to 0.12.1. - [Release notes](https://github.com/styfle/cancel-workflow-action/releases) - [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.12.0...0.12.1) --- updated-dependencies: - dependency-name: styfle/cancel-workflow-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index e90c6ff25..68f389627 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -18,7 +18,7 @@ jobs: ) steps: - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.0 + uses: styfle/cancel-workflow-action@0.12.1 with: access_token: ${{ github.token }} - uses: actions/checkout@v4 From 7c062facf44f9b042b2f0480fd0be747a8b93db5 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 29 Jan 2024 08:46:31 +0100 Subject: [PATCH 065/238] bump roxygen2 version --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 8f881653d..ab0af47dc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -52,7 +52,7 @@ Roxygen: list(markdown = TRUE, roclets = c( "rd", "namespace", "collate", if (rlang::is_installed("pkgapi")) "pkgapi::api_roclet" else { warning("Please install r-lib/pkgapi to make sure the file API is kept up to date"); NULL})) -RoxygenNote: 7.3.0 +RoxygenNote: 7.3.1 Config/testthat/edition: 3 Config/testthat/parallel: true Collate: From b6a535fbe8ef613a52989945eca429a1c0d60f57 Mon Sep 17 00:00:00 2001 From: olivroy Date: Wed, 31 Jan 2024 09:00:15 -0500 Subject: [PATCH 066/238] Better error message for `scope_normalize()` --- R/style-guides.R | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/R/style-guides.R b/R/style-guides.R index e6a68ae7d..5e33eca3a 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -471,20 +471,19 @@ tidyverse_reindention <- function() { #' @param scope A character vector of length one or a vector of class `AsIs`. #' @param name The name of the character vector to be displayed if the #' construction of the factor fails. - +#' #' @examples #' scope_normalize(I("tokens")) #' scope_normalize(I(c("indention", "tokens"))) #' @family third-party style guide helpers #' @export scope_normalize <- function(scope, name = substitute(scope)) { - levels <- c("none", "spaces", "indention", "line_breaks", "tokens") - if (!all((scope %in% levels))) { - abort(paste( - "all values in", name, "must be one of the following:", - toString(levels) - )) - } + levels <- c("none", "spaces", "indention", "line_breaks", "tokens") + rlang::arg_match( + scope, + values = levels, + multiple = TRUE + ) if (inherits(scope, "AsIs")) { factor(as.character(scope), levels = levels, ordered = TRUE) From a89eeb502fd1ad3741eabaec295a9e121da88253 Mon Sep 17 00:00:00 2001 From: olivroy Date: Wed, 31 Jan 2024 09:00:51 -0500 Subject: [PATCH 067/238] Correct cli abort calls --- R/addins.R | 10 +++++----- R/parse.R | 8 ++++---- R/stylerignore.R | 7 ++++--- R/transform-code.R | 2 +- R/zzz.R | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/R/addins.R b/R/addins.R index 61dcb24e3..09e9ec933 100644 --- a/R/addins.R +++ b/R/addins.R @@ -68,7 +68,7 @@ style_active_file <- function() { } else if (is_r_file) { out <- try_transform_as_r_file(context, transformer) } else { - abort("Can only style .R, .Rmd and .Rnw files.") + abort("Can only style .R, .qmd, .Rmd, and .Rnw files.") } rstudioapi::modifyRange( c(1L, 1L, length(context$contents) + 1L, 1L), @@ -98,10 +98,10 @@ save_after_styling_is_active <- function() { op_new <- getOption("styler.save_after_styling", default = "") if (!is.na(op_old)) { rlang::warn(paste( - "Using the environment variable save_after_styling is depreciated and", - "won't work in a future version of styler. Please use the R option", - "`styler.save_after_styling` to control the behavior. If both are set,", - "the R option is taken." + "Using the environment variable `save_after_styling` is deprecated and", + "won't work in a future version of styler. Please use", + "`options(styler.save_after_styling)` to control the behavior. If both are set,", + "the R option is used." )) } diff --git a/R/parse.R b/R/parse.R index 629203934..89058f64e 100644 --- a/R/parse.R +++ b/R/parse.R @@ -95,10 +95,10 @@ get_parse_data <- function(text, include_text = TRUE, ...) { if (getRversion() < "4.2") { is_unicode_parsing_error <- grepl("^\"\"$", pd$text) if (any(is_unicode_parsing_error)) { - rlang::abort(paste0( - "Can't parse input due to unicode restriction in base R. Please ", - "upgrade R to >= 4.2 to style this input. ", - "Context: https://github.com/r-lib/styler/issues/847" + cli::cli_abort(c( + "Can't parse input due to unicode restriction in base R.", + i = "Please upgrade R to >= 4.2 to style this input. ", + "Context: {.url https://github.com/r-lib/styler/issues/847}" )) } } diff --git a/R/stylerignore.R b/R/stylerignore.R index 4cf0b30bd..64fc05337 100644 --- a/R/stylerignore.R +++ b/R/stylerignore.R @@ -76,9 +76,10 @@ add_stylerignore <- function(pd_flat) { pd_flat$indicator_off <- cumsum_start + cumsum_stop is_invalid <- cumsum_start - cumsum_stop < 0L | cumsum_start - cumsum_stop > 1L if (any(is_invalid)) { - cli::cli_warn(paste0( - "Invalid stylerignore sequences found, potentially ignoring some of the ", - "markers set.\nSee {.help styler::stylerignore}." + cli::cli_warn(c( + "Invalid stylerignore sequences found, potentially ignoring some of the \\ + markers set.", + i = "See {.topic styler::stylerignore}." )) } diff --git a/R/transform-code.R b/R/transform-code.R index 4f2b0337d..e775ac517 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -22,7 +22,7 @@ transform_code <- function(path, fun, ..., dry) { ..., dry = dry ) } else { - abort(paste(path, "is not an R, Rmd, qmd, or Rnw file")) + cli::cli_abort("{.path {path}} is not an R, Rmd, qmd, or Rnw file.") } } diff --git a/R/zzz.R b/R/zzz.R index 9bdc76c48..c9b03c603 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -66,7 +66,7 @@ ask_to_switch_to_non_default_cache_root <- function(ask = interactive()) { ask_to_switch_to_non_default_cache_root_impl <- function() { cli::cli_inform(paste0( "{{styler}} cache is cleared after 6 days. ", - "See {.help styler::caching} to configure differently or silence this message." + "See {.topic styler::caching} to configure differently or silence this message." )) } From 5f4d9e7761351e24c5ee8c45dfdbbdb582d6061e Mon Sep 17 00:00:00 2001 From: olivroy Date: Wed, 31 Jan 2024 09:01:04 -0500 Subject: [PATCH 068/238] Correct tests --- tests/testthat/test-public_api-3.R | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/testthat/test-public_api-3.R b/tests/testthat/test-public_api-3.R index 8b1e926fb..de74e8bfd 100644 --- a/tests/testthat/test-public_api-3.R +++ b/tests/testthat/test-public_api-3.R @@ -120,31 +120,31 @@ test_that("scope can be specified as is", { test_that("Can properly determine style_after_saving", { withr::with_envvar(list(save_after_styling = TRUE), { - expect_warning(op <- save_after_styling_is_active(), "is depreciated") - expect_equal(op, TRUE) + expect_warning(op <- save_after_styling_is_active(), "is deprecated") + expect_true(op) }) withr::with_envvar(list(save_after_styling = FALSE), { - expect_warning(op <- save_after_styling_is_active(), "is depreciated") - expect_equal(op, FALSE) + expect_warning(op <- save_after_styling_is_active(), "is deprecated") + expect_false(op) }) withr::with_options(list(styler.save_after_styling = TRUE), { expect_silent(op <- save_after_styling_is_active()) - expect_equal(op, TRUE) + expect_true(op) }) withr::with_options(list(styler.save_after_styling = TRUE), { withr::with_envvar(list(save_after_styling = FALSE), { - expect_warning(op <- save_after_styling_is_active(), "is depreciated") - expect_equal(op, TRUE) + expect_warning(op <- save_after_styling_is_active(), "is deprecated") + expect_true(op) }) }) withr::with_options(list(styler.save_after_styling = FALSE), { expect_silent(op <- save_after_styling_is_active()) - expect_equal(op, FALSE) + expect_false(op) }) }) From 4b999fb2b42f8776714bf4feadaff3d616798566 Mon Sep 17 00:00:00 2001 From: olivroy Date: Wed, 31 Jan 2024 09:29:49 -0500 Subject: [PATCH 069/238] restyle --- R/parse.R | 2 +- R/style-guides.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/parse.R b/R/parse.R index 89058f64e..cf2babe49 100644 --- a/R/parse.R +++ b/R/parse.R @@ -97,7 +97,7 @@ get_parse_data <- function(text, include_text = TRUE, ...) { if (any(is_unicode_parsing_error)) { cli::cli_abort(c( "Can't parse input due to unicode restriction in base R.", - i = "Please upgrade R to >= 4.2 to style this input. ", + i = "Please upgrade R to >= 4.2 to style this input.", "Context: {.url https://github.com/r-lib/styler/issues/847}" )) } diff --git a/R/style-guides.R b/R/style-guides.R index 5e33eca3a..e4a7326be 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -478,7 +478,7 @@ tidyverse_reindention <- function() { #' @family third-party style guide helpers #' @export scope_normalize <- function(scope, name = substitute(scope)) { - levels <- c("none", "spaces", "indention", "line_breaks", "tokens") + levels <- c("none", "spaces", "indention", "line_breaks", "tokens") rlang::arg_match( scope, values = levels, From 9dd32bffd3490d584a492844fae2e24b68cbc55f Mon Sep 17 00:00:00 2001 From: olivroy Date: Thu, 1 Feb 2024 08:31:43 -0500 Subject: [PATCH 070/238] Use arg_match0 for simple cases --- R/io.R | 2 +- R/testing.R | 2 +- R/ui-caching.R | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/io.R b/R/io.R index 26ad6d9fe..fdb4260fb 100644 --- a/R/io.R +++ b/R/io.R @@ -19,7 +19,7 @@ transform_utf8 <- function(path, fun, dry) { #' styling are not identical. #' @keywords internal transform_utf8_one <- function(path, fun, dry) { - rlang::arg_match(dry, c("on", "off", "fail")) + rlang::arg_match0(dry, c("on", "off", "fail")) rlang::try_fetch( { file_with_info <- read_utf8(path) diff --git a/R/testing.R b/R/testing.R index 4b94d7e1b..f2c8ffe6b 100644 --- a/R/testing.R +++ b/R/testing.R @@ -237,7 +237,7 @@ n_times_faster_with_cache <- function(x1, x2 = x1, ..., fun = styler::style_text, n = 3L, clear = "always") { - rlang::arg_match(clear, c("always", "final", "never", "all but last")) + rlang::arg_match0(clear, c("always", "final", "never", "all but last")) out <- purrr::map(1L:n, n_times_faster_bench, x1 = x1, x2 = x2, fun = fun, diff --git a/R/ui-caching.R b/R/ui-caching.R index 42e80f529..1ab58e1c4 100644 --- a/R/ui-caching.R +++ b/R/ui-caching.R @@ -93,7 +93,7 @@ NULL #' @family cache managers #' @export cache_info <- function(cache_name = NULL, format = "both") { - rlang::arg_match(format, c("tabular", "lucid", "both")) + rlang::arg_match0(format, c("tabular", "lucid", "both")) path_cache <- cache_find_path(cache_name) files <- list.files(path_cache, full.names = TRUE) file_info <- file.info(files) From d42a17a188a82820ca094e5b2367a8ffdd8b6975 Mon Sep 17 00:00:00 2001 From: olivroy Date: Thu, 1 Feb 2024 08:32:51 -0500 Subject: [PATCH 071/238] Use lowercase qmd in arguments --- API | 2 +- R/ui-styling.R | 2 +- man/style_pkg.Rd | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/API b/API index 429de55f4..e22a357e4 100644 --- a/API +++ b/API @@ -27,7 +27,7 @@ specify_reindention(regex_pattern = NULL, indention = 0L, comments_only = TRUE) specify_transformers_drop(spaces = NULL, indention = NULL, line_breaks = NULL, tokens = NULL) style_dir(path = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), recursive = TRUE, exclude_files = NULL, exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") style_file(path, ..., style = tidyverse_style, transformers = style(...), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") -style_pkg(pkg = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), exclude_files = c("R/RcppExports\\.R", "R/cpp11\\.R", "R/import-standalone.*\\.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") +style_pkg(pkg = ".", ..., style = tidyverse_style, transformers = style(...), filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "qmd"), exclude_files = c("R/RcppExports\\.R", "R/cpp11\\.R", "R/import-standalone.*\\.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, base_indention = 0L, dry = "off") style_text(text, ..., style = tidyverse_style, transformers = style(...), include_roxygen_examples = TRUE, base_indention = 0L) tidyverse_math_token_spacing() tidyverse_reindention() diff --git a/R/ui-styling.R b/R/ui-styling.R index e25eed10c..958aa9832 100644 --- a/R/ui-styling.R +++ b/R/ui-styling.R @@ -68,7 +68,7 @@ style_pkg <- function(pkg = ".", ..., style = tidyverse_style, transformers = style(...), - filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), + filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "qmd"), exclude_files = c("R/RcppExports\\.R", "R/cpp11\\.R", "R/import-standalone.*\\.R"), exclude_dirs = c("packrat", "renv"), include_roxygen_examples = TRUE, diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index 0eca9278e..ed5a92104 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -9,7 +9,7 @@ style_pkg( ..., style = tidyverse_style, transformers = style(...), - filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "Qmd"), + filetype = c("R", "Rprofile", "Rmd", "Rmarkdown", "Rnw", "qmd"), exclude_files = c("R/RcppExports\\\\.R", "R/cpp11\\\\.R", "R/import-standalone.*\\\\.R"), exclude_dirs = c("packrat", "renv"), From 8d23770e55dc24514975f66e622db75524ebf23f Mon Sep 17 00:00:00 2001 From: olivroy Date: Thu, 1 Feb 2024 08:34:07 -0500 Subject: [PATCH 072/238] Address comments --- R/addins.R | 21 +++++++++++---------- R/set-assert-args.R | 4 ++-- R/style-guides.R | 6 +----- R/transform-code.R | 2 +- R/ui-styling.R | 8 ++++---- man/prettify_any.Rd | 7 ++++--- man/prettify_pkg.Rd | 7 ++++--- man/style_dir.Rd | 7 ++++--- man/style_pkg.Rd | 7 ++++--- vignettes/styler.Rmd | 2 +- 10 files changed, 36 insertions(+), 35 deletions(-) diff --git a/R/addins.R b/R/addins.R index 09e9ec933..8cbea4cb9 100644 --- a/R/addins.R +++ b/R/addins.R @@ -68,7 +68,7 @@ style_active_file <- function() { } else if (is_r_file) { out <- try_transform_as_r_file(context, transformer) } else { - abort("Can only style .R, .qmd, .Rmd, and .Rnw files.") + abort("Can only style .qmd, .R, .Rmd, and .Rnw files.") } rstudioapi::modifyRange( c(1L, 1L, length(context$contents) + 1L, 1L), @@ -97,11 +97,12 @@ save_after_styling_is_active <- function() { op_old <- as.logical(toupper(Sys.getenv("save_after_styling"))) op_new <- getOption("styler.save_after_styling", default = "") if (!is.na(op_old)) { - rlang::warn(paste( - "Using the environment variable `save_after_styling` is deprecated and", - "won't work in a future version of styler. Please use", - "`options(styler.save_after_styling)` to control the behavior. If both are set,", - "the R option is used." + cli::cli_warn(c( + "Using the environment variable {.envvar save_after_styling} is \\ + deprecated and won't work in a future version of styler. ", + "!" = "Please use `options(styler.save_after_styling)` \\ + to control the behavior.", + i = "If both are set, the R option is used." )) } @@ -123,7 +124,7 @@ style_selection <- function() { communicate_addins_style_transformers() context <- get_rstudio_context() text <- context$selection[[1L]]$text - if (all(nchar(text) == 0L)) abort("No code selected") + if (!any(nzchar(text))) abort("No code selected") out <- style_text( text, transformers = get_addins_style_transformer(), @@ -212,9 +213,9 @@ try_transform_as_r_file <- function(context, transformer) { transformer(context$contents), error = function(e) { preamble_for_unsaved <- paste( - "Styling of unsaved files is only supported for R files with valid ", - "code. Please save the file (as .R or .Rmd) and make sure that the R ", - "code in it can be parsed. Then, try to style again." + "Styling of unsaved files is only supported for R files with valid", + "code. Please save the file (as .qmd, .R, or .Rmd) and make sure that", + "the R code in it can be parsed. Then, try to style again." ) if (context$path == "") { diff --git a/R/set-assert-args.R b/R/set-assert-args.R index 7cccd0aa5..649a57f9a 100644 --- a/R/set-assert-args.R +++ b/R/set-assert-args.R @@ -73,8 +73,8 @@ assert_filetype <- function(lowercase_filetype) { allowed_types <- c("r", "rmd", "rmarkdown", "rnw", "rprofile", "qmd") if (!all(lowercase_filetype %in% allowed_types)) { abort(paste( - "filetype must not contain other values than 'R', 'Rprofile',", - "'Rmd', 'Rmarkdown', 'qmd' or 'Rnw' (case is ignored)." + "filetype must not contain other values than 'qmd', 'R',", + "'Rmarkdown', 'Rmd', 'Rnw', or 'Rprofile' (case is ignored)." )) } } diff --git a/R/style-guides.R b/R/style-guides.R index e4a7326be..edff2cba1 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -479,11 +479,7 @@ tidyverse_reindention <- function() { #' @export scope_normalize <- function(scope, name = substitute(scope)) { levels <- c("none", "spaces", "indention", "line_breaks", "tokens") - rlang::arg_match( - scope, - values = levels, - multiple = TRUE - ) + rlang::arg_match(scope, values = levels, multiple = TRUE) if (inherits(scope, "AsIs")) { factor(as.character(scope), levels = levels, ordered = TRUE) diff --git a/R/transform-code.R b/R/transform-code.R index e775ac517..91b495e3a 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -22,7 +22,7 @@ transform_code <- function(path, fun, ..., dry) { ..., dry = dry ) } else { - cli::cli_abort("{.path {path}} is not an R, Rmd, qmd, or Rnw file.") + cli::cli_abort("{.path {path}} is not a qmd, R, Rmd, or Rnw file.") } } diff --git a/R/ui-styling.R b/R/ui-styling.R index 958aa9832..97e250aa2 100644 --- a/R/ui-styling.R +++ b/R/ui-styling.R @@ -87,10 +87,10 @@ style_pkg <- function(pkg = ".", #' Prettify a package #' #' @param filetype Vector of file extensions indicating which file types should -#' be styled. Case is ignored, and the `.` is optional, e.g. `c(".R", -#' ".Rmd")`, or `c("r", "rmd")`. Supported values (after standardization) are: -#' "r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as -#' Rmd. +#' be styled. Case is ignored, and the `.` is optional, e.g. `c(".R",".Rmd")`, +#' or `c("r", "rmd")`. Supported values (after standardization) are: +#' "qmd", "r", "rmd", "rmarkdown", "rnw", and "rprofile". +#' Rmarkdown is treated as Rmd. #' @param exclude_files Character vector with regular expressions to files #' that should be excluded from styling. #' @param exclude_dirs Character vector with directories to exclude diff --git a/man/prettify_any.Rd b/man/prettify_any.Rd index b1db51e44..89d8a72b2 100644 --- a/man/prettify_any.Rd +++ b/man/prettify_any.Rd @@ -21,9 +21,10 @@ conveniently constructed via the \code{style} argument and \code{...}. See 'Examples'.} \item{filetype}{Vector of file extensions indicating which file types should -be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".Rmd")}, or \code{c("r", "rmd")}. Supported values (after standardization) are: -"r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as -Rmd.} +be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R",".Rmd")}, +or \code{c("r", "rmd")}. Supported values (after standardization) are: +"qmd", "r", "rmd", "rmarkdown", "rnw", and "rprofile". +Rmarkdown is treated as Rmd.} \item{recursive}{A logical value indicating whether or not files in subdirectories should be styled as well.} diff --git a/man/prettify_pkg.Rd b/man/prettify_pkg.Rd index 0c999550c..d973e8a90 100644 --- a/man/prettify_pkg.Rd +++ b/man/prettify_pkg.Rd @@ -19,9 +19,10 @@ prettify_pkg( parse tables.} \item{filetype}{Vector of file extensions indicating which file types should -be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".Rmd")}, or \code{c("r", "rmd")}. Supported values (after standardization) are: -"r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as -Rmd.} +be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R",".Rmd")}, +or \code{c("r", "rmd")}. Supported values (after standardization) are: +"qmd", "r", "rmd", "rmarkdown", "rnw", and "rprofile". +Rmarkdown is treated as Rmd.} \item{exclude_files}{Character vector with regular expressions to files that should be excluded from styling.} diff --git a/man/style_dir.Rd b/man/style_dir.Rd index 7f0f61a58..62c80e264 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -34,9 +34,10 @@ conveniently constructed via the \code{style} argument and \code{...}. See 'Examples'.} \item{filetype}{Vector of file extensions indicating which file types should -be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".Rmd")}, or \code{c("r", "rmd")}. Supported values (after standardization) are: -"r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as -Rmd.} +be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R",".Rmd")}, +or \code{c("r", "rmd")}. Supported values (after standardization) are: +"qmd", "r", "rmd", "rmarkdown", "rnw", and "rprofile". +Rmarkdown is treated as Rmd.} \item{recursive}{A logical value indicating whether or not files in sub directories of \code{path} should be styled as well.} diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index ed5a92104..637cbc9a7 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -34,9 +34,10 @@ conveniently constructed via the \code{style} argument and \code{...}. See 'Examples'.} \item{filetype}{Vector of file extensions indicating which file types should -be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R", ".Rmd")}, or \code{c("r", "rmd")}. Supported values (after standardization) are: -"r", "rprofile", "rmd", "rmarkdown", "rnw", "qmd". Rmarkdown is treated as -Rmd.} +be styled. Case is ignored, and the \code{.} is optional, e.g. \code{c(".R",".Rmd")}, +or \code{c("r", "rmd")}. Supported values (after standardization) are: +"qmd", "r", "rmd", "rmarkdown", "rnw", and "rprofile". +Rmarkdown is treated as Rmd.} \item{exclude_files}{Character vector with regular expressions to files that should be excluded from styling.} diff --git a/vignettes/styler.Rmd b/vignettes/styler.Rmd index dcb451adc..1b5387112 100644 --- a/vignettes/styler.Rmd +++ b/vignettes/styler.Rmd @@ -28,7 +28,7 @@ styler::cache_deactivate() styler provides the following API to format code: -- `style_file()` styles `.R`, `.qmd`, `.Rmd`, `.Rmarkdown`, `.Rnw`, and `.Rprofile` files. +- `style_file()` styles `.qmd`, `.R`, `.Rmd`, `.Rmarkdown`, `.Rnw`, and `.Rprofile` files. - `style_dir()` styles all these files in a directory. From 2bb93a454d5917296076305d8e09d41aa5047efa Mon Sep 17 00:00:00 2001 From: olivroy Date: Thu, 1 Feb 2024 08:34:33 -0500 Subject: [PATCH 073/238] Cosmetic change of package doc --- R/styler-package.R | 9 ++++----- man/styler-package.Rd | 8 ++++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/R/styler-package.R b/R/styler-package.R index 2a688583d..c307a9284 100644 --- a/R/styler-package.R +++ b/R/styler-package.R @@ -1,14 +1,13 @@ -#' Non-invasive pretty printing of R code -#' -#' styler allows you to format `.R`, `.Rmd`, `.Rmarkdown` and/or -#' `.qmd`, `.Rnw` files, R packages, or entire R source trees +#' @description +#' styler allows you to format `.qmd`, `.R`, `.Rmd`, `.Rmarkdown`, +#' `.Rnw`, and/or `.Rprofile` files, R packages, or entire R source trees #' according to a style guide. #' The following functions can be used for styling: #' * [style_text()] to style a character vector. #' * [style_file()] to style a single file. #' * [style_dir()] to style all files in a directory. #' * [style_pkg()] to style the source files of an R package. -#' * [styler_addins] (RStudio Addins) to style either selected code or the +#' * [RStudio Addins][styler_addins] to style either selected code or the #' active file. #' @examples #' style_text("call( 1)") diff --git a/man/styler-package.Rd b/man/styler-package.Rd index 0995015ad..94adfc316 100644 --- a/man/styler-package.Rd +++ b/man/styler-package.Rd @@ -4,10 +4,10 @@ \name{styler-package} \alias{styler} \alias{styler-package} -\title{Non-invasive pretty printing of R code} +\title{styler: Non-Invasive Pretty Printing of R Code} \description{ -styler allows you to format \code{.R}, \code{.Rmd}, \code{.Rmarkdown} and/or -\code{.qmd}, \code{.Rnw} files, R packages, or entire R source trees +styler allows you to format \code{.qmd}, \code{.R}, \code{.Rmd}, \code{.Rmarkdown}, +\code{.Rnw}, and/or \code{.Rprofile} files, R packages, or entire R source trees according to a style guide. The following functions can be used for styling: \itemize{ @@ -15,7 +15,7 @@ The following functions can be used for styling: \item \code{\link[=style_file]{style_file()}} to style a single file. \item \code{\link[=style_dir]{style_dir()}} to style all files in a directory. \item \code{\link[=style_pkg]{style_pkg()}} to style the source files of an R package. -\item \link{styler_addins} (RStudio Addins) to style either selected code or the +\item \link[=styler_addins]{RStudio Addins} to style either selected code or the active file. } } From e649f18e3269b2f35b40246ad2079dc26dc099cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Feb 2024 03:37:39 +0000 Subject: [PATCH 074/238] Bump pre-commit/action from 3.0.0 to 3.0.1 Bumps [pre-commit/action](https://github.com/pre-commit/action) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/pre-commit/action/releases) - [Commits](https://github.com/pre-commit/action/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: pre-commit/action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 68f389627..a47455f05 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -35,7 +35,7 @@ jobs: python-version: "3.9" architecture: "x64" - name: Run pre-commit - uses: pre-commit/action@v3.0.0 + uses: pre-commit/action@v3.0.1 env: SKIP: pkgdown - name: Commit files From b688f087022793b28843bcde3e41c87b23b8ac96 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 18 Mar 2024 17:21:09 +0800 Subject: [PATCH 075/238] update pre-commit config --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 869a3ef8a..4c4b8b1b3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.3.2.9027 + rev: v0.4.0 hooks: - id: style-files args: @@ -101,7 +101,7 @@ repos: )$ - id: pkgdown - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: check-added-large-files args: ["--maxkb=200"] @@ -119,7 +119,7 @@ repos: tests/testthat/_snaps/.*| )$ - repo: https://github.com/lorenzwalthert/gitignore-tidy - rev: 475bf5d96927a1887ce2863ff3075b1d7240bc51 + rev: 517cddbf1d8514ddaf43159686617ae65895dc99 hooks: - id: tidy-gitignore - repo: local From 39a35eafbb6a11bc682679e8ed9cc5d0232ee39c Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 18 Mar 2024 13:54:01 +0100 Subject: [PATCH 076/238] also upload results in GHA for R CMD check --- .github/workflows/check-full.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index dfeb4cc4e..fac8ae20c 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -56,6 +56,7 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true + upload-results: true error-on: 'ifelse(getRversion() > "3.6", "warning", "note")' env: _R_CHECK_FORCE_SUGGESTS_: false From 12c88a4c590d9425126498149ba600a3e2275acf Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 21 Mar 2024 07:03:59 +0100 Subject: [PATCH 077/238] check with newer error message --- tests/testthat/test-parsing.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/testthat/test-parsing.R b/tests/testthat/test-parsing.R index f0a7bfcc4..4c6503494 100644 --- a/tests/testthat/test-parsing.R +++ b/tests/testthat/test-parsing.R @@ -29,9 +29,10 @@ test_that("CRLF EOLs fail with informative error", { test_that("mixed CRLF / LF EOLs fail", { + skip(getRversion() < "4.4") expect_error( style_text("a + 3 -4 -> x\nx + 2\r\n glück + 1"), - "unexpected input" + "unexpected invalid token" ) }) From 89ea11ac890878e6f0c652a79bbfe5ced6a763ea Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 21 Mar 2024 07:18:37 +0100 Subject: [PATCH 078/238] cover older versions as well --- tests/testthat/test-parsing.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test-parsing.R b/tests/testthat/test-parsing.R index 4c6503494..18876da8e 100644 --- a/tests/testthat/test-parsing.R +++ b/tests/testthat/test-parsing.R @@ -29,10 +29,10 @@ test_that("CRLF EOLs fail with informative error", { test_that("mixed CRLF / LF EOLs fail", { - skip(getRversion() < "4.4") + error_msg_stem <- if (getRversion() < "4.4") "unexpected input" else "unexpected invalid token" expect_error( style_text("a + 3 -4 -> x\nx + 2\r\n glück + 1"), - "unexpected invalid token" + error_msg_stem ) }) From 8d7063312b687608f0dfc0a1141a6dcd45ae5dc3 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert <10477073+lorenzwalthert@users.noreply.github.com> Date: Thu, 21 Mar 2024 22:14:31 +0800 Subject: [PATCH 079/238] undo unrelated upload --- .github/workflows/check-full.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index fac8ae20c..dfeb4cc4e 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -56,7 +56,6 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true - upload-results: true error-on: 'ifelse(getRversion() > "3.6", "warning", "note")' env: _R_CHECK_FORCE_SUGGESTS_: false From 48e8ab113f3c1a6a2281507ad9e447f53e78e793 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 24 Mar 2024 22:17:44 +0800 Subject: [PATCH 080/238] prepare release --- DESCRIPTION | 2 +- NEWS.md | 32 ++++++++++++++++++++++++++++++++ cran-comments.md | 4 ++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index ab0af47dc..3797bde2c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: styler Title: Non-Invasive Pretty Printing of R Code -Version: 1.10.2.9000 +Version: 1.10.3 Authors@R: c(person(given = "Kirill", family = "Müller", diff --git a/NEWS.md b/NEWS.md index 9e715f3d4..62b3d4d5b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,37 @@ +# styler 1.10.3 + +This release was requested by the CRAN team since parser error messages changed, +which were hard-coded in some unit tests (#1180). + +**Minor changes** + +- Add a package sticker (#1172, #1173). +- Improve error message for scope (#1176). +- Update lintr config and address newly found lints (#1158). +- Fix new lints about implicit return (#1166). +- Clean new lints (#1149). +- Clean up unnecessary YAML front matter in README (#1165). + +**CI** + +- Update pre-commit and GitHub Actions (#1177, #1175, #1171, #1171, #1164, #1152, #1148). +- Delete URL check workflow (#1160). + +**Testing** + +- Suppress warning in io tests (#1169). +- Ensure unit tests check for appropriate error messages in the R parser for + R > 4.3 (#1180). +- Remove outdated test about repeated parsing (#1163). +- Update roxygen test comments (#1162). +- Delete unused snapshot (#1159). + +We thank everyone who helped making this release possible. + +[@AshesITR](https://github.com/AshesITR), [@averissimo](https://github.com/averissimo), [@IndrajeetPatil](https://github.com/IndrajeetPatil), [@lorenzwalthert](https://github.com/lorenzwalthert), [@mcanouil](https://github.com/mcanouil), [@moodymudskipper](https://github.com/moodymudskipper), [@olivroy](https://github.com/olivroy), [@sbanville-delfi](https://github.com/sbanville-delfi), [@sorhawell](https://github.com/sorhawell), [@ssh352](https://github.com/ssh352), [@swo](https://github.com/swo), and [@vertesy](https://github.com/vertesy). + # styler 1.10.2 This release was requested by the CRAN team to fix CRAN warning on invalid diff --git a/cran-comments.md b/cran-comments.md index 747d0b082..d05580a5a 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -4,8 +4,8 @@ editor_options: wrap: 79 --- -This is a release requested by the CRAN team to comply with -`R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS`. +This is a release requested by the CRAN team to comply with new error messages +in the R parser that caused unit tests to fail. ## Test environments From fd5b4ab5477c41663b63de835b8db9a921e6798b Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 25 Mar 2024 19:36:26 +0800 Subject: [PATCH 081/238] bump dependency number --- cran-comments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cran-comments.md b/cran-comments.md index d05580a5a..fe047b5d2 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -36,7 +36,7 @@ compliant with the requirements of CRAN. ## Downstream Dependencies -I also ran R CMD check on all 39 downstream dependencies of styler using the +I also ran R CMD check on all 47 downstream dependencies of styler using the revdepcheck package. All of them finished R CMD CHECK with the same number of ERRORS, WARNINGS and From 2e008036229550bbb60fc840184f4dbf99788371 Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Wed, 27 Mar 2024 13:52:26 -0400 Subject: [PATCH 082/238] Add color to log --- R/communicate.R | 9 ++++++--- R/transform-files.R | 20 +++++++++++--------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/R/communicate.R b/R/communicate.R index 5b1ca30a0..6cd00d385 100644 --- a/R/communicate.R +++ b/R/communicate.R @@ -27,14 +27,17 @@ communicate_summary <- function(changed, ruler_width) { cat("Status\tCount\tLegend \n") cli::cat_bullet( "\t", sum(!changed, na.rm = TRUE), "\tFile unchanged.", - bullet = "tick" + bullet = "tick", + bullet_col = "green" ) cli::cat_bullet( "\t", sum(changed, na.rm = TRUE), "\tFile changed.", - bullet = "info" + bullet = "info", + bullet_col = "cyan" ) cli::cat_bullet( - bullet = "cross", "\t", sum(is.na(changed)), "\tStyling threw an error." + bullet = "cross", "\t", sum(is.na(changed)), "\tStyling threw an error.", + bullet_col = "red" ) cli::cat_rule(width = max(40L, ruler_width)) } diff --git a/R/transform-files.R b/R/transform-files.R index a4717e015..cb206b271 100644 --- a/R/transform-files.R +++ b/R/transform-files.R @@ -66,16 +66,18 @@ transform_file <- function(path, } changed <- transform_code(path, fun = fun, ..., dry = dry) - bullet <- if (is.na(changed)) { - "warning" - } else if (changed) { - "info" - } else { - "tick" - } - if (!getOption("styler.quiet", FALSE)) { - cli::cat_bullet(bullet = bullet) + if (is.na(changed)) { + bullet <- "warning" + color <- "red" + } else if (changed) { + bullet <- "info" + color <- "cyan" + } else { + bullet <- "tick" + color <- "green" + } + cli::cat_bullet(bullet = bullet, bullet_col = color) } invisible(changed) } From 2489092d3cde39400fa2b0b28a4ce5a2e625b83a Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Wed, 27 Mar 2024 14:00:31 -0400 Subject: [PATCH 083/238] style --- R/transform-files.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/transform-files.R b/R/transform-files.R index cb206b271..28dc79c50 100644 --- a/R/transform-files.R +++ b/R/transform-files.R @@ -68,7 +68,7 @@ transform_file <- function(path, if (!getOption("styler.quiet", FALSE)) { if (is.na(changed)) { - bullet <- "warning" + bullet <- "warning" color <- "red" } else if (changed) { bullet <- "info" From 54df59b6232ce258d1f3172ace54a9c09bd13912 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 7 Apr 2024 19:55:30 +0200 Subject: [PATCH 084/238] wrap in try-fetch to see if we can avoid onload error --- R/zzz.R | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/R/zzz.R b/R/zzz.R index c9b03c603..00e668084 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -17,9 +17,14 @@ ) toset <- !(names(op.styler) %in% names(op)) if (any(toset)) options(op.styler[toset]) - ask_to_switch_to_non_default_cache_root() - remove_cache_old_versions() - remove_old_cache_files() + rlang::try_fetch( + { + ask_to_switch_to_non_default_cache_root() + remove_cache_old_versions() + remove_old_cache_files() + }, + error = function(...) NULL + ) invisible() } From 9416b3b1276ad9343b0b6fd78bc257b160c48e85 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert <10477073+lorenzwalthert@users.noreply.github.com> Date: Mon, 8 Apr 2024 07:47:20 +0200 Subject: [PATCH 085/238] bump to devel version --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 3797bde2c..5fafc848c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: styler Title: Non-Invasive Pretty Printing of R Code -Version: 1.10.3 +Version: 1.10.3.9000 Authors@R: c(person(given = "Kirill", family = "Müller", From 4673919413c1caa4a2c4363d8334fe60fe5c7609 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 21 Apr 2024 10:07:51 +0200 Subject: [PATCH 086/238] docs: Document package options --- DESCRIPTION | 1 + R/options.R | 34 ++++++++++++++++++++++++++++++++++ R/zzz.R | 2 +- _pkgdown.yaml | 1 + man/styler_options.Rd | 38 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 R/options.R create mode 100644 man/styler_options.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 5fafc848c..94f6ec94d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -69,6 +69,7 @@ Collate: 'io.R' 'nest.R' 'nested-to-tree.R' + 'options.R' 'parse.R' 'reindent.R' 'token-define.R' diff --git a/R/options.R b/R/options.R new file mode 100644 index 000000000..3ccc6f392 --- /dev/null +++ b/R/options.R @@ -0,0 +1,34 @@ +#' Package options +#' +#' These options can be set via [options()] and queried via [getOption()]. +#' For this, add a `styler.` prefix (the package name and a dot) to the option name. +#' Example: for an option `foo`, use `options(styler.foo = value)` to set it +#' and `getOption("styler.foo")` to retrieve the current value. +#' An option value of `NULL` means that the default is used. +#' +#' @usage NULL +#' @format NULL +#' +#' @name styler_options +#' +#' @examplesIf FALSE +#' getOption("styler.ignore_alignment") +#' options( +#' styler.ignore_alignment = TRUE, +#' styler.quiet = TRUE +#' ) +#' getOption("styler.ignore_alignment") +#' +#' @section Options for the styler package: +#' +#' - `styler.addins_style_transformer`: character. The name of the style transformer to use in the addins. +#' - `styler.cache_name`: character. The name of the styler cache to use. +#' - `styler.cache_root`: character. The directory where the cache files are stored. +#' - `styler.colored_print.vertical`: logical. It decides whether or not the output should be colored with +#' `prettycode::highlight()`. +#' - `styler.ignore_alignment`: logical. If `TRUE`, alignment, when detected, is ignored. +#' - `styler.ignore_start`, `styler.ignore_stop`: character. Regular expressions to ignore lines that match them. +#' - `styler.quiet`: logical. It decides whether or not to print an informative message about what the +#' function is doing. If `TRUE`, no output is printed. +#' - `styler.test_dir_writable`: logical. If `TRUE`, the package tests whether the directory is writable. +NULL diff --git a/R/zzz.R b/R/zzz.R index 00e668084..65bfd3e16 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -6,8 +6,8 @@ op <- options() op.styler <- list( styler.addins_style_transformer = "styler::tidyverse_style()", - styler.cache_root = NULL, styler.cache_name = styler_version, + styler.cache_root = NULL, styler.colored_print.vertical = TRUE, styler.ignore_alignment = FALSE, styler.ignore_start = .default_ignore_start, diff --git a/_pkgdown.yaml b/_pkgdown.yaml index ed50bc3f2..69e6d3d3b 100644 --- a/_pkgdown.yaml +++ b/_pkgdown.yaml @@ -11,6 +11,7 @@ reference: - style_pkg - style_dir - styler_addins + - styler_options - title: "Fine-tune styling" desc: "Customize style guides" - contents: diff --git a/man/styler_options.Rd b/man/styler_options.Rd new file mode 100644 index 000000000..ee3b64b3b --- /dev/null +++ b/man/styler_options.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/options.R +\name{styler_options} +\alias{styler_options} +\title{Package options} +\description{ +These options can be set via \code{\link[=options]{options()}} and queried via \code{\link[=getOption]{getOption()}}. +For this, add a \code{styler.} prefix (the package name and a dot) to the option name. +Example: for an option \code{foo}, use \code{options(styler.foo = value)} to set it +and \code{getOption("styler.foo")} to retrieve the current value. +An option value of \code{NULL} means that the default is used. +} +\section{Options for the styler package}{ + +\itemize{ +\item \code{styler.addins_style_transformer}: character. The name of the style transformer to use in the addins. +\item \code{styler.cache_name}: character. The name of the styler cache to use. +\item \code{styler.cache_root}: character. The directory where the cache files are stored. +\item \code{styler.colored_print.vertical}: logical. It decides whether or not the output should be colored with +\code{prettycode::highlight()}. +\item \code{styler.ignore_alignment}: logical. If \code{TRUE}, alignment, when detected, is ignored. +\item \code{styler.ignore_start}, \code{styler.ignore_stop}: character. Regular expressions to ignore lines that match them. +\item \code{styler.quiet}: logical. It decides whether or not to print an informative message about what the +function is doing. If \code{TRUE}, no output is printed. +\item \code{styler.test_dir_writable}: logical. If \code{TRUE}, the package tests whether the directory is writable. +} +} + +\examples{ +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +getOption("styler.ignore_alignment") +options( + styler.ignore_alignment = TRUE, + styler.quiet = TRUE +) +getOption("styler.ignore_alignment") +\dontshow{\}) # examplesIf} +} From b1d08155a354917fac85ad82eb2053eb8b066a3c Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 21 Apr 2024 10:15:26 +0200 Subject: [PATCH 087/238] also include defaults --- R/options.R | 42 ++++++++++++++++++++++++++++++++---------- man/styler_options.Rd | 35 +++++++++++++++++++++++++---------- 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/R/options.R b/R/options.R index 3ccc6f392..d299b909f 100644 --- a/R/options.R +++ b/R/options.R @@ -21,14 +21,36 @@ #' #' @section Options for the styler package: #' -#' - `styler.addins_style_transformer`: character. The name of the style transformer to use in the addins. -#' - `styler.cache_name`: character. The name of the styler cache to use. -#' - `styler.cache_root`: character. The directory where the cache files are stored. -#' - `styler.colored_print.vertical`: logical. It decides whether or not the output should be colored with -#' `prettycode::highlight()`. -#' - `styler.ignore_alignment`: logical. If `TRUE`, alignment, when detected, is ignored. -#' - `styler.ignore_start`, `styler.ignore_stop`: character. Regular expressions to ignore lines that match them. -#' - `styler.quiet`: logical. It decides whether or not to print an informative message about what the -#' function is doing. If `TRUE`, no output is printed. -#' - `styler.test_dir_writable`: logical. If `TRUE`, the package tests whether the directory is writable. +#' - `styler.addins_style_transformer`: character. +#' The name of the style transformer to use in the addins. +#' (default: `"styler::tidyverse_style()"`) +#' +#' - `styler.cache_name`: character. +#' The name of the styler cache to use. +#' (default: current styler package version) +#' +#' - `styler.cache_root`: character. +#' The directory where the cache files are stored. +#' (default: `NULL`) +#' +#' - `styler.colored_print.vertical`: logical. +#' It decides whether or not the output should be colored with `prettycode::highlight()`. +#' (default: `TRUE`) +#' +#' - `styler.ignore_alignment`: logical. +#' If `TRUE`, alignment, when detected, is ignored. +#' (default: `FALSE`) +#' +#' - `styler.ignore_start`, `styler.ignore_stop`: character. +#' Regular expressions to ignore lines that match them. +#' (default: `"styler: off"` and `"styler: on"`, respectively) +#' +#' - `styler.quiet`: logical. +#' It decides whether or not to print an informative message about what the function is doing. +#' If `TRUE`, no output is printed. +#' (default: `FALSE`) +#' +#' - `styler.test_dir_writable`: logical. +#' If `TRUE`, the package tests whether the directory is writable. +#' (default: `TRUE`) NULL diff --git a/man/styler_options.Rd b/man/styler_options.Rd index ee3b64b3b..1531f2648 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -13,16 +13,31 @@ An option value of \code{NULL} means that the default is used. \section{Options for the styler package}{ \itemize{ -\item \code{styler.addins_style_transformer}: character. The name of the style transformer to use in the addins. -\item \code{styler.cache_name}: character. The name of the styler cache to use. -\item \code{styler.cache_root}: character. The directory where the cache files are stored. -\item \code{styler.colored_print.vertical}: logical. It decides whether or not the output should be colored with -\code{prettycode::highlight()}. -\item \code{styler.ignore_alignment}: logical. If \code{TRUE}, alignment, when detected, is ignored. -\item \code{styler.ignore_start}, \code{styler.ignore_stop}: character. Regular expressions to ignore lines that match them. -\item \code{styler.quiet}: logical. It decides whether or not to print an informative message about what the -function is doing. If \code{TRUE}, no output is printed. -\item \code{styler.test_dir_writable}: logical. If \code{TRUE}, the package tests whether the directory is writable. +\item \code{styler.addins_style_transformer}: character. +The name of the style transformer to use in the addins. +(default: \code{"styler::tidyverse_style()"}) +\item \code{styler.cache_name}: character. +The name of the styler cache to use. +(default: current styler package version) +\item \code{styler.cache_root}: character. +The directory where the cache files are stored. +(default: \code{NULL}) +\item \code{styler.colored_print.vertical}: logical. +It decides whether or not the output should be colored with \code{prettycode::highlight()}. +(default: \code{TRUE}) +\item \code{styler.ignore_alignment}: logical. +If \code{TRUE}, alignment, when detected, is ignored. +(default: \code{FALSE}) +\item \code{styler.ignore_start}, \code{styler.ignore_stop}: character. +Regular expressions to ignore lines that match them. +(default: \code{"styler: off"} and \code{"styler: on"}, respectively) +\item \code{styler.quiet}: logical. +It decides whether or not to print an informative message about what the function is doing. +If \code{TRUE}, no output is printed. +(default: \code{FALSE}) +\item \code{styler.test_dir_writable}: logical. +If \code{TRUE}, the package tests whether the directory is writable. +(default: \code{TRUE}) } } From 040eeedce2eefa3aef826d97c8551862e5cde72d Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 21 Apr 2024 19:07:43 +0200 Subject: [PATCH 088/238] address feedback --- R/options.R | 8 ++++---- man/styler_options.Rd | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/R/options.R b/R/options.R index d299b909f..1625f5a1c 100644 --- a/R/options.R +++ b/R/options.R @@ -27,10 +27,10 @@ #' #' - `styler.cache_name`: character. #' The name of the styler cache to use. -#' (default: current styler package version) +#' (default: `r unlist(unname(read.dcf("DESCRIPTION")[, "Version"]), use.names = FALSE)`) #' #' - `styler.cache_root`: character. -#' The directory where the cache files are stored. +#' The directory where the cache files are stored. For more, see `help("caching")`. #' (default: `NULL`) #' #' - `styler.colored_print.vertical`: logical. @@ -38,11 +38,11 @@ #' (default: `TRUE`) #' #' - `styler.ignore_alignment`: logical. -#' If `TRUE`, alignment, when detected, is ignored. +#' If `TRUE`, alignment, when detected, is ignored. For more, see `vignette("detect-alignment")`. #' (default: `FALSE`) #' #' - `styler.ignore_start`, `styler.ignore_stop`: character. -#' Regular expressions to ignore lines that match them. +#' Regular expressions to ignore lines that match them. For more, see `help("stylerignore")`. #' (default: `"styler: off"` and `"styler: on"`, respectively) #' #' - `styler.quiet`: logical. diff --git a/man/styler_options.Rd b/man/styler_options.Rd index 1531f2648..add90dd39 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -18,18 +18,18 @@ The name of the style transformer to use in the addins. (default: \code{"styler::tidyverse_style()"}) \item \code{styler.cache_name}: character. The name of the styler cache to use. -(default: current styler package version) +(default: 1.10.3.9000) \item \code{styler.cache_root}: character. -The directory where the cache files are stored. +The directory where the cache files are stored. For more, see \code{help("caching")}. (default: \code{NULL}) \item \code{styler.colored_print.vertical}: logical. It decides whether or not the output should be colored with \code{prettycode::highlight()}. (default: \code{TRUE}) \item \code{styler.ignore_alignment}: logical. -If \code{TRUE}, alignment, when detected, is ignored. +If \code{TRUE}, alignment, when detected, is ignored. For more, see \code{vignette("detect-alignment")}. (default: \code{FALSE}) \item \code{styler.ignore_start}, \code{styler.ignore_stop}: character. -Regular expressions to ignore lines that match them. +Regular expressions to ignore lines that match them. For more, see \code{help("stylerignore")}. (default: \code{"styler: off"} and \code{"styler: on"}, respectively) \item \code{styler.quiet}: logical. It decides whether or not to print an informative message about what the function is doing. From 71f230b296868de8d38decaeb5cb32fcd75b922d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 03:58:01 +0000 Subject: [PATCH 089/238] Bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 921325d8e..9e29ea59f 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.5.0 + uses: JamesIves/github-pages-deploy-action@v4.6.0 with: clean: false branch: gh-pages From 105713544d0c79394d54a90e7397fea1233d6492 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 1 May 2024 16:37:16 +0200 Subject: [PATCH 090/238] initial work on remove blank lines before and after braces --- R/rules-spaces.R | 22 +++++++++++++++---- R/style-guides.R | 10 +++++++-- .../line_breaks_and_other/assignment-in.R | 3 +-- .../line_breaks_and_other/assignment-out.R | 3 +-- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 580a0cdc7..3ec9d717e 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -140,20 +140,34 @@ remove_space_before_opening_paren <- function(pd_flat) { pd_flat } -remove_space_after_opening_paren <- function(pd_flat) { - paren_after <- pd_flat$token %in% c("'('", "'['", "LBB") +remove_space_after_opening_paren <- function(pd_flat, strict) { + braces <- c("'('", "'['", "LBB") + paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { return(pd_flat) } + # remove blank lines after opening braces + if (strict) { + pd_flat$lag_newlines[ + lag(pd_flat$token %in% braces) & pd_flat$lag_newlines > 1L + ] <- 1L + } pd_flat$spaces[paren_after & (pd_flat$newlines == 0L)] <- 0L pd_flat } -remove_space_before_closing_paren <- function(pd_flat) { - paren_after <- pd_flat$token %in% c("')'", "']'") +remove_space_before_closing_paren <- function(pd_flat, strict) { + braces <- c("')'", "']'") + paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { return(pd_flat) } + # remove blank lines before closing braces + if (strict) { + pd_flat$lag_newlines[ + pd_flat$token %in% braces & pd_flat$lag_newlines > 1L + ] <- 1L + } paren_before <- lead(paren_after, default = FALSE) pd_flat$spaces[paren_before & (pd_flat$newlines == 0L)] <- 0L pd_flat diff --git a/R/style-guides.R b/R/style-guides.R index edff2cba1..4e729c987 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -87,7 +87,10 @@ tidyverse_style <- function(scope = "tokens", } space_manipulators <- if ("spaces" %in% scope) { list( - remove_space_before_closing_paren = remove_space_before_closing_paren, + remove_space_before_closing_paren = purrr::partial( + remove_space_before_closing_paren, + strict = strict + ), remove_space_before_opening_paren = if (strict) { remove_space_before_opening_paren }, @@ -105,7 +108,10 @@ tidyverse_style <- function(scope = "tokens", spacing_around_op = purrr::partial(set_space_around_op, strict = strict ), - remove_space_after_opening_paren = remove_space_after_opening_paren, + remove_space_after_opening_paren = purrr::partial( + remove_space_after_opening_paren, + strict = strict + ), remove_space_after_excl = remove_space_after_excl, set_space_after_bang_bang = set_space_after_bang_bang, remove_space_before_dollar = remove_space_before_dollar, diff --git a/tests/testthat/line_breaks_and_other/assignment-in.R b/tests/testthat/line_breaks_and_other/assignment-in.R index 00180be41..2108b816f 100644 --- a/tests/testthat/line_breaks_and_other/assignment-in.R +++ b/tests/testthat/line_breaks_and_other/assignment-in.R @@ -4,8 +4,7 @@ x <- x <- 3 -# FIXME: edge case not working for R < 3.6: Problem: most likely, comment is -# not moved to the right nest with relocate_eq_assign. + x <- # the culprit diff --git a/tests/testthat/line_breaks_and_other/assignment-out.R b/tests/testthat/line_breaks_and_other/assignment-out.R index 681ded9e5..239bb02aa 100644 --- a/tests/testthat/line_breaks_and_other/assignment-out.R +++ b/tests/testthat/line_breaks_and_other/assignment-out.R @@ -4,8 +4,7 @@ x <- x <- 3 -# FIXME: edge case not working for R < 3.6: Problem: most likely, comment is -# not moved to the right nest with relocate_eq_assign. + x <- # the culprit From 47b7da7c786ca300aa0b6f3bbece0edc1df016c7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 1 May 2024 14:38:56 +0000 Subject: [PATCH 091/238] pre-commit --- R/rules-spaces.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 3ec9d717e..54b76bbd8 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -142,7 +142,7 @@ remove_space_before_opening_paren <- function(pd_flat) { remove_space_after_opening_paren <- function(pd_flat, strict) { braces <- c("'('", "'['", "LBB") - paren_after <- pd_flat$token %in% braces + paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { return(pd_flat) } From 0fcbc96ca570ca0d11632b0df138266be76006d2 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 1 May 2024 18:13:09 +0200 Subject: [PATCH 092/238] add tests for LBB --- .../square_brackets_double_line_break-in.R | 17 ++ .../square_brackets_double_line_break-in_tree | 47 ++++- .../square_brackets_double_line_break-out.R | 13 ++ .../line_breaks_and_other/assignment-in_tree | 194 +++++++++--------- 4 files changed, 164 insertions(+), 107 deletions(-) diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R index f5a2fc449..6eb852298 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R +++ b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R @@ -20,3 +20,20 @@ a[[ 2 ] # ] + + +a[[ + + 2 + +]] + +a[[ + + 2 +]] + +a[[ + 2 + +]] diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree index f6ae4068d..82ce65dce 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree +++ b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree @@ -34,13 +34,42 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ ¦ °--NUM_CONST: 2 [0/0] {29} ¦ ¦--']': ] [1/0] {31} ¦ °--']': ] [0/0] {32} - °--expr: a[[ + ¦--expr: a[[ [3/0] {33} - ¦--expr: a [0/0] {35} - ¦ °--SYMBOL: a [0/0] {34} - ¦--LBB: [[ [0/2] {36} - ¦--expr: 2 [1/0] {38} - ¦ °--NUM_CONST: 2 [0/0] {37} - ¦--']': ] [1/1] {39} - ¦--COMMENT: # [0/0] {40} - °--']': ] [1/0] {41} + ¦ ¦--expr: a [0/0] {35} + ¦ ¦ °--SYMBOL: a [0/0] {34} + ¦ ¦--LBB: [[ [0/2] {36} + ¦ ¦--expr: 2 [1/0] {38} + ¦ ¦ °--NUM_CONST: 2 [0/0] {37} + ¦ ¦--']': ] [1/1] {39} + ¦ ¦--COMMENT: # [0/0] {40} + ¦ °--']': ] [1/0] {41} + ¦--expr: a[[ + + [3/0] {42} + ¦ ¦--expr: a [0/0] {44} + ¦ ¦ °--SYMBOL: a [0/0] {43} + ¦ ¦--LBB: [[ [0/2] {45} + ¦ ¦--expr: 2 [2/0] {47} + ¦ ¦ °--NUM_CONST: 2 [0/0] {46} + ¦ ¦--']': ] [2/0] {48} + ¦ °--']': ] [0/0] {49} + ¦--expr: a[[ + + [2/0] {50} + ¦ ¦--expr: a [0/0] {52} + ¦ ¦ °--SYMBOL: a [0/0] {51} + ¦ ¦--LBB: [[ [0/2] {53} + ¦ ¦--expr: 2 [2/0] {55} + ¦ ¦ °--NUM_CONST: 2 [0/0] {54} + ¦ ¦--']': ] [1/0] {56} + ¦ °--']': ] [0/0] {57} + °--expr: a[[ + [2/0] {58} + ¦--expr: a [0/0] {60} + ¦ °--SYMBOL: a [0/0] {59} + ¦--LBB: [[ [0/2] {61} + ¦--expr: 2 [1/0] {63} + ¦ °--NUM_CONST: 2 [0/0] {62} + ¦--']': ] [2/0] {64} + °--']': ] [0/0] {65} diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R index 2b5225958..a6a371f93 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R +++ b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R @@ -20,3 +20,16 @@ a[[ 2 ] # ] + + +a[[ + 2 +]] + +a[[ + 2 +]] + +a[[ + 2 +]] diff --git a/tests/testthat/line_breaks_and_other/assignment-in_tree b/tests/testthat/line_breaks_and_other/assignment-in_tree index 22eaa0017..5c8522dc4 100644 --- a/tests/testthat/line_breaks_and_other/assignment-in_tree +++ b/tests/testthat/line_breaks_and_other/assignment-in_tree @@ -12,104 +12,102 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ ¦--LEFT_ASSIGN: <- [0/1] {10} ¦ °--expr: 3 [0/0] {12} ¦ °--NUM_CONST: 3 [0/0] {11} - ¦--COMMENT: # FIX [2/0] {13} - ¦--COMMENT: # not [1/0] {14} ¦--expr: x <- - [1/0] {15} - ¦ ¦--expr: x [0/1] {17} - ¦ ¦ °--SYMBOL: x [0/0] {16} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {18} - ¦ ¦--COMMENT: # the [1/2] {19} - ¦ °--expr: 3 [2/0] {21} - ¦ °--NUM_CONST: 3 [0/0] {20} - ¦--expr_or_assign_or_help: x = # [3/0] {22} - ¦ ¦--expr: x [0/1] {24} - ¦ ¦ °--SYMBOL: x [0/0] {23} - ¦ ¦--EQ_ASSIGN: = [0/1] {25} - ¦ ¦--COMMENT: # [0/2] {26} - ¦ °--expr: 2 [1/0] {28} - ¦ °--NUM_CONST: 2 [0/0] {27} - ¦--expr_or_assign_or_help: x = 3 [3/0] {29} - ¦ ¦--expr: x [0/1] {31} - ¦ ¦ °--SYMBOL: x [0/0] {30} - ¦ ¦--EQ_ASSIGN: = [0/1] {32} - ¦ °--expr: 3 [0/0] {34} - ¦ °--NUM_CONST: 3 [0/0] {33} + [3/0] {13} + ¦ ¦--expr: x [0/1] {15} + ¦ ¦ °--SYMBOL: x [0/0] {14} + ¦ ¦--LEFT_ASSIGN: <- [0/2] {16} + ¦ ¦--COMMENT: # the [1/2] {17} + ¦ °--expr: 3 [2/0] {19} + ¦ °--NUM_CONST: 3 [0/0] {18} + ¦--expr_or_assign_or_help: x = # [3/0] {20} + ¦ ¦--expr: x [0/1] {22} + ¦ ¦ °--SYMBOL: x [0/0] {21} + ¦ ¦--EQ_ASSIGN: = [0/1] {23} + ¦ ¦--COMMENT: # [0/2] {24} + ¦ °--expr: 2 [1/0] {26} + ¦ °--NUM_CONST: 2 [0/0] {25} + ¦--expr_or_assign_or_help: x = 3 [3/0] {27} + ¦ ¦--expr: x [0/1] {29} + ¦ ¦ °--SYMBOL: x [0/0] {28} + ¦ ¦--EQ_ASSIGN: = [0/1] {30} + ¦ °--expr: 3 [0/0] {32} + ¦ °--NUM_CONST: 3 [0/0] {31} ¦--expr_or_assign_or_help: x = - [2/0] {35} - ¦ ¦--expr: x [0/1] {37} - ¦ ¦ °--SYMBOL: x [0/0] {36} - ¦ ¦--EQ_ASSIGN: = [0/2] {38} - ¦ ¦--COMMENT: # com [2/2] {39} - ¦ °--expr: 3 [1/0] {41} - ¦ °--NUM_CONST: 3 [0/0] {40} - ¦--expr: Impor [4/0] {42} - ¦ ¦--expr: Impor [0/1] {43} - ¦ ¦ ¦--expr: Impor [0/0] {45} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {44} - ¦ ¦ ¦--'$': $ [0/0] {46} - ¦ ¦ °--SYMBOL: Impor [0/0] {47} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {48} - ¦ ¦--expr: Impor [1/1] {50} - ¦ ¦ ¦--expr: Impor [0/0] {52} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {51} - ¦ ¦ ¦--'$': $ [0/0] {53} - ¦ ¦ °--SYMBOL: Impor [0/0] {54} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {55} - ¦ °--expr: Compl [1/0] {56} - ¦ ¦--expr: Compl [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--expr: Impor [0/0] {60} - ¦ ¦ ¦--expr: Impor [0/0] {62} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {61} - ¦ ¦ ¦--'$': $ [0/0] {63} - ¦ ¦ °--SYMBOL: Input [0/0] {64} - ¦ °--')': ) [0/0] {65} - ¦--expr: Impor [3/0] {66} - ¦ ¦--expr: Impor [0/1] {67} - ¦ ¦ ¦--expr: Impor [0/0] {69} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {68} - ¦ ¦ ¦--'$': $ [0/0] {70} - ¦ ¦ °--SYMBOL: Impor [0/0] {71} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {72} - ¦ ¦--expr: Impor [1/1] {74} - ¦ ¦ ¦--expr: Impor [0/0] {76} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {75} - ¦ ¦ ¦--'$': $ [0/0] {77} - ¦ ¦ °--SYMBOL: Impor [0/0] {78} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {79} - ¦ °--expr: Compl [0/0] {80} - ¦ ¦--expr: Compl [0/0] {82} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {81} - ¦ ¦--'(': ( [0/0] {83} - ¦ ¦--expr: Impor [0/0] {84} - ¦ ¦ ¦--expr: Impor [0/0] {86} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {85} - ¦ ¦ ¦--'$': $ [0/0] {87} - ¦ ¦ °--SYMBOL: Input [0/0] {88} - ¦ °--')': ) [0/0] {89} - °--expr: Impor [4/0] {90} - ¦--expr: Impor [0/1] {91} - ¦ ¦--expr: Impor [0/0] {93} - ¦ ¦ °--SYMBOL: Impor [0/0] {92} - ¦ ¦--'$': $ [0/0] {94} - ¦ °--SYMBOL: Impor [0/0] {95} - ¦--LEFT_ASSIGN: <- [0/2] {96} - ¦--expr: Impor [2/1] {98} - ¦ ¦--expr: Impor [0/0] {100} - ¦ ¦ °--SYMBOL: Impor [0/0] {99} - ¦ ¦--'$': $ [0/0] {101} - ¦ °--SYMBOL: Impor [0/0] {102} - ¦--LEFT_ASSIGN: <- [0/1] {103} - °--expr: Compl [0/0] {104} - ¦--expr: Compl [0/0] {106} - ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {105} - ¦--'(': ( [0/0] {107} - ¦--expr: Impor [0/0] {108} - ¦ ¦--expr: Impor [0/0] {110} - ¦ ¦ °--SYMBOL: Impor [0/0] {109} - ¦ ¦--'$': $ [0/0] {111} - ¦ °--SYMBOL: Input [0/0] {112} - °--')': ) [0/0] {113} + [2/0] {33} + ¦ ¦--expr: x [0/1] {35} + ¦ ¦ °--SYMBOL: x [0/0] {34} + ¦ ¦--EQ_ASSIGN: = [0/2] {36} + ¦ ¦--COMMENT: # com [2/2] {37} + ¦ °--expr: 3 [1/0] {39} + ¦ °--NUM_CONST: 3 [0/0] {38} + ¦--expr: Impor [4/0] {40} + ¦ ¦--expr: Impor [0/1] {41} + ¦ ¦ ¦--expr: Impor [0/0] {43} + ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {42} + ¦ ¦ ¦--'$': $ [0/0] {44} + ¦ ¦ °--SYMBOL: Impor [0/0] {45} + ¦ ¦--LEFT_ASSIGN: <- [0/2] {46} + ¦ ¦--expr: Impor [1/1] {48} + ¦ ¦ ¦--expr: Impor [0/0] {50} + ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {49} + ¦ ¦ ¦--'$': $ [0/0] {51} + ¦ ¦ °--SYMBOL: Impor [0/0] {52} + ¦ ¦--LEFT_ASSIGN: <- [0/2] {53} + ¦ °--expr: Compl [1/0] {54} + ¦ ¦--expr: Compl [0/0] {56} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {55} + ¦ ¦--'(': ( [0/0] {57} + ¦ ¦--expr: Impor [0/0] {58} + ¦ ¦ ¦--expr: Impor [0/0] {60} + ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {59} + ¦ ¦ ¦--'$': $ [0/0] {61} + ¦ ¦ °--SYMBOL: Input [0/0] {62} + ¦ °--')': ) [0/0] {63} + ¦--expr: Impor [3/0] {64} + ¦ ¦--expr: Impor [0/1] {65} + ¦ ¦ ¦--expr: Impor [0/0] {67} + ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {66} + ¦ ¦ ¦--'$': $ [0/0] {68} + ¦ ¦ °--SYMBOL: Impor [0/0] {69} + ¦ ¦--LEFT_ASSIGN: <- [0/2] {70} + ¦ ¦--expr: Impor [1/1] {72} + ¦ ¦ ¦--expr: Impor [0/0] {74} + ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {73} + ¦ ¦ ¦--'$': $ [0/0] {75} + ¦ ¦ °--SYMBOL: Impor [0/0] {76} + ¦ ¦--LEFT_ASSIGN: <- [0/1] {77} + ¦ °--expr: Compl [0/0] {78} + ¦ ¦--expr: Compl [0/0] {80} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {79} + ¦ ¦--'(': ( [0/0] {81} + ¦ ¦--expr: Impor [0/0] {82} + ¦ ¦ ¦--expr: Impor [0/0] {84} + ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {83} + ¦ ¦ ¦--'$': $ [0/0] {85} + ¦ ¦ °--SYMBOL: Input [0/0] {86} + ¦ °--')': ) [0/0] {87} + °--expr: Impor [4/0] {88} + ¦--expr: Impor [0/1] {89} + ¦ ¦--expr: Impor [0/0] {91} + ¦ ¦ °--SYMBOL: Impor [0/0] {90} + ¦ ¦--'$': $ [0/0] {92} + ¦ °--SYMBOL: Impor [0/0] {93} + ¦--LEFT_ASSIGN: <- [0/2] {94} + ¦--expr: Impor [2/1] {96} + ¦ ¦--expr: Impor [0/0] {98} + ¦ ¦ °--SYMBOL: Impor [0/0] {97} + ¦ ¦--'$': $ [0/0] {99} + ¦ °--SYMBOL: Impor [0/0] {100} + ¦--LEFT_ASSIGN: <- [0/1] {101} + °--expr: Compl [0/0] {102} + ¦--expr: Compl [0/0] {104} + ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {103} + ¦--'(': ( [0/0] {105} + ¦--expr: Impor [0/0] {106} + ¦ ¦--expr: Impor [0/0] {108} + ¦ ¦ °--SYMBOL: Impor [0/0] {107} + ¦ ¦--'$': $ [0/0] {109} + ¦ °--SYMBOL: Input [0/0] {110} + °--')': ) [0/0] {111} From 9464800d8a45801015998f7bcef3eefb3f3073ec Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 1 May 2024 18:50:02 +0200 Subject: [PATCH 093/238] more tests --- .../multi_line_curly_only-in.R | 8 + .../multi_line_curly_only-in_tree | 80 ++-- .../multi_line_curly_only-out.R | 9 + .../multi_line_curly_while_for_if_fun-in.R | 15 + .../multi_line_curly_while_for_if_fun-in_tree | 196 +++++---- .../multi_line_curly_while_for_if_fun-out.R | 8 + .../arithmetic_start-in.R | 10 + .../arithmetic_start-in_tree | 63 ++- .../arithmetic_start-out.R | 7 + .../multi_line-random-in.R | 13 + .../multi_line-random-in_tree | 114 +++-- .../multi_line-random-out.R | 10 + .../square_brackets_line_break-in.R | 36 ++ .../square_brackets_line_break-in_tree | 394 +++++++++++------- .../square_brackets_line_break-out.R | 24 ++ 15 files changed, 659 insertions(+), 328 deletions(-) diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R index f06c54945..e8bca1432 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R @@ -2,3 +2,11 @@ {1 + 3} {2 + sin(pi)} } + + { + + {1 + 3} + {2 + sin(pi)} + + + } diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree index 1205a1a3f..4e4ee22af 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree @@ -1,28 +1,56 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) + ¦--expr: { + [0/6] {1} + ¦ ¦--'{': { [0/9] {2} + ¦ ¦--expr: {1 + [1/0] {3} + ¦ ¦ ¦--'{': { [0/0] {4} + ¦ ¦ ¦--expr: 1 + 3 [0/0] {5} + ¦ ¦ ¦ ¦--expr: 1 [0/1] {7} + ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {6} + ¦ ¦ ¦ ¦--'+': + [0/1] {8} + ¦ ¦ ¦ °--expr: 3 [0/0] {10} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {9} + ¦ ¦ °--'}': } [0/0] {11} + ¦ ¦--expr: {2 + [1/6] {12} + ¦ ¦ ¦--'{': { [0/0] {13} + ¦ ¦ ¦--expr: 2 + s [0/0] {14} + ¦ ¦ ¦ ¦--expr: 2 [0/1] {16} + ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {15} + ¦ ¦ ¦ ¦--'+': + [0/1] {17} + ¦ ¦ ¦ °--expr: sin(p [0/0] {18} + ¦ ¦ ¦ ¦--expr: sin [0/0] {20} + ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {19} + ¦ ¦ ¦ ¦--'(': ( [0/0] {21} + ¦ ¦ ¦ ¦--expr: pi [0/0] {23} + ¦ ¦ ¦ ¦ °--SYMBOL: pi [0/0] {22} + ¦ ¦ ¦ °--')': ) [0/0] {24} + ¦ ¦ °--'}': } [0/0] {25} + ¦ °--'}': } [1/0] {26} °--expr: { - [0/0] {1} - ¦--'{': { [0/9] {2} - ¦--expr: {1 + [1/0] {3} - ¦ ¦--'{': { [0/0] {4} - ¦ ¦--expr: 1 + 3 [0/0] {5} - ¦ ¦ ¦--expr: 1 [0/1] {7} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {6} - ¦ ¦ ¦--'+': + [0/1] {8} - ¦ ¦ °--expr: 3 [0/0] {10} - ¦ ¦ °--NUM_CONST: 3 [0/0] {9} - ¦ °--'}': } [0/0] {11} - ¦--expr: {2 + [1/6] {12} - ¦ ¦--'{': { [0/0] {13} - ¦ ¦--expr: 2 + s [0/0] {14} - ¦ ¦ ¦--expr: 2 [0/1] {16} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {15} - ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ °--expr: sin(p [0/0] {18} - ¦ ¦ ¦--expr: sin [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--expr: pi [0/0] {23} - ¦ ¦ ¦ °--SYMBOL: pi [0/0] {22} - ¦ ¦ °--')': ) [0/0] {24} - ¦ °--'}': } [0/0] {25} - °--'}': } [1/0] {26} + + [2/0] {27} + ¦--'{': { [0/8] {28} + ¦--expr: {1 + [2/8] {29} + ¦ ¦--'{': { [0/0] {30} + ¦ ¦--expr: 1 + 3 [0/0] {31} + ¦ ¦ ¦--expr: 1 [0/1] {33} + ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {32} + ¦ ¦ ¦--'+': + [0/1] {34} + ¦ ¦ °--expr: 3 [0/0] {36} + ¦ ¦ °--NUM_CONST: 3 [0/0] {35} + ¦ °--'}': } [0/0] {37} + ¦--expr: {2 + [1/6] {38} + ¦ ¦--'{': { [0/0] {39} + ¦ ¦--expr: 2 + s [0/0] {40} + ¦ ¦ ¦--expr: 2 [0/1] {42} + ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {41} + ¦ ¦ ¦--'+': + [0/1] {43} + ¦ ¦ °--expr: sin(p [0/0] {44} + ¦ ¦ ¦--expr: sin [0/0] {46} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {45} + ¦ ¦ ¦--'(': ( [0/0] {47} + ¦ ¦ ¦--expr: pi [0/0] {49} + ¦ ¦ ¦ °--SYMBOL: pi [0/0] {48} + ¦ ¦ °--')': ) [0/0] {50} + ¦ °--'}': } [0/0] {51} + °--'}': } [3/0] {52} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R b/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R index b2db83528..e4c5631c4 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R @@ -6,3 +6,12 @@ 2 + sin(pi) } } + +{ + { + 1 + 3 + } + { + 2 + sin(pi) + } +} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in.R b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in.R index 6c37fe95f..09e5bc827 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in.R +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in.R @@ -8,3 +8,18 @@ a <- function(x, y, z) { x[i] +1 } } + + +if ( + + require("logspline") && + require("rstanarm") + + + +) { + + NULL + + + } diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree index 99ff47e9c..850631be3 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree @@ -1,89 +1,117 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦--',': , [0/1] {9} - ¦--SYMBOL_FORMALS: y [0/0] {10} - ¦--',': , [0/1] {11} - ¦--SYMBOL_FORMALS: z [0/0] {12} - ¦--')': ) [0/12] {13} - °--expr: { + ¦--expr: a <- [0/0] {1} + ¦ ¦--expr: a [0/1] {3} + ¦ ¦ °--SYMBOL: a [0/0] {2} + ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} + ¦ °--expr: funct [0/0] {5} + ¦ ¦--FUNCTION: funct [0/0] {6} + ¦ ¦--'(': ( [0/0] {7} + ¦ ¦--SYMBOL_FORMALS: x [0/0] {8} + ¦ ¦--',': , [0/1] {9} + ¦ ¦--SYMBOL_FORMALS: y [0/0] {10} + ¦ ¦--',': , [0/1] {11} + ¦ ¦--SYMBOL_FORMALS: z [0/0] {12} + ¦ ¦--')': ) [0/12] {13} + ¦ °--expr: { w [0/0] {14} - ¦--'{': { [0/2] {15} - ¦--expr: while [1/6] {16} - ¦ ¦--WHILE: while [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--expr: 2+2> [0/0] {19} - ¦ ¦ ¦--expr: 2+2 [0/0] {20} - ¦ ¦ ¦ ¦--expr: 2 [0/0] {22} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {21} - ¦ ¦ ¦ ¦--'+': + [0/0] {23} - ¦ ¦ ¦ °--expr: 2 [0/0] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ ¦--GT: > [0/1] {26} - ¦ ¦ °--expr: call( [0/0] {27} - ¦ ¦ ¦--expr: call [0/0] {29} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {28} - ¦ ¦ ¦--'(': ( [0/0] {30} - ¦ ¦ ¦--expr: 3 [0/0] {32} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {31} - ¦ ¦ ¦--',': , [0/0] {33} - ¦ ¦ ¦--expr: 1 [0/0] {35} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {34} - ¦ ¦ °--')': ) [0/0] {36} - ¦ ¦--')': ) [0/1] {37} - ¦ °--expr: { + ¦ ¦--'{': { [0/2] {15} + ¦ ¦--expr: while [1/6] {16} + ¦ ¦ ¦--WHILE: while [0/0] {17} + ¦ ¦ ¦--'(': ( [0/0] {18} + ¦ ¦ ¦--expr: 2+2> [0/0] {19} + ¦ ¦ ¦ ¦--expr: 2+2 [0/0] {20} + ¦ ¦ ¦ ¦ ¦--expr: 2 [0/0] {22} + ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {21} + ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {23} + ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {25} + ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} + ¦ ¦ ¦ ¦--GT: > [0/1] {26} + ¦ ¦ ¦ °--expr: call( [0/0] {27} + ¦ ¦ ¦ ¦--expr: call [0/0] {29} + ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {28} + ¦ ¦ ¦ ¦--'(': ( [0/0] {30} + ¦ ¦ ¦ ¦--expr: 3 [0/0] {32} + ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {31} + ¦ ¦ ¦ ¦--',': , [0/0] {33} + ¦ ¦ ¦ ¦--expr: 1 [0/0] {35} + ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {34} + ¦ ¦ ¦ °--')': ) [0/0] {36} + ¦ ¦ ¦--')': ) [0/1] {37} + ¦ ¦ °--expr: { [0/0] {38} - ¦ ¦--'{': { [0/4] {39} - ¦ ¦--expr: if (i [1/4] {40} - ¦ ¦ ¦--IF: if [0/1] {41} - ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦--expr: isTRU [0/0] {43} - ¦ ¦ ¦ ¦--expr: isTRU [0/0] {45} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: isTRU [0/0] {44} - ¦ ¦ ¦ ¦--'(': ( [0/0] {46} - ¦ ¦ ¦ ¦--expr: x [0/0] {48} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {47} - ¦ ¦ ¦ °--')': ) [0/0] {49} - ¦ ¦ ¦--')': ) [0/1] {50} - ¦ ¦ °--expr: { + ¦ ¦ ¦--'{': { [0/4] {39} + ¦ ¦ ¦--expr: if (i [1/4] {40} + ¦ ¦ ¦ ¦--IF: if [0/1] {41} + ¦ ¦ ¦ ¦--'(': ( [0/0] {42} + ¦ ¦ ¦ ¦--expr: isTRU [0/0] {43} + ¦ ¦ ¦ ¦ ¦--expr: isTRU [0/0] {45} + ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: isTRU [0/0] {44} + ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {46} + ¦ ¦ ¦ ¦ ¦--expr: x [0/0] {48} + ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {47} + ¦ ¦ ¦ ¦ °--')': ) [0/0] {49} + ¦ ¦ ¦ ¦--')': ) [0/1] {50} + ¦ ¦ ¦ °--expr: { [0/0] {51} - ¦ ¦ ¦--'{': { [0/6] {52} - ¦ ¦ ¦--expr: b [1/0] {54} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {53} - ¦ ¦ °--'}': } [1/0] {55} - ¦ °--'}': } [1/0] {56} - ¦--expr: for(a [1/0] {57} - ¦ ¦--FOR: for [0/0] {58} - ¦ ¦--forcond: (a in [0/0] {59} - ¦ ¦ ¦--'(': ( [0/0] {60} - ¦ ¦ ¦--SYMBOL: a [0/1] {61} - ¦ ¦ ¦--IN: in [0/1] {62} - ¦ ¦ ¦--expr: 1:19 [0/0] {63} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {65} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {64} - ¦ ¦ ¦ ¦--':': : [0/0] {66} - ¦ ¦ ¦ °--expr: 19 [0/0] {68} - ¦ ¦ ¦ °--NUM_CONST: 19 [0/0] {67} - ¦ ¦ °--')': ) [0/0] {69} - ¦ °--expr: { + ¦ ¦ ¦ ¦--'{': { [0/6] {52} + ¦ ¦ ¦ ¦--expr: b [1/0] {54} + ¦ ¦ ¦ ¦ °--SYMBOL: b [0/0] {53} + ¦ ¦ ¦ °--'}': } [1/0] {55} + ¦ ¦ °--'}': } [1/0] {56} + ¦ ¦--expr: for(a [1/0] {57} + ¦ ¦ ¦--FOR: for [0/0] {58} + ¦ ¦ ¦--forcond: (a in [0/0] {59} + ¦ ¦ ¦ ¦--'(': ( [0/0] {60} + ¦ ¦ ¦ ¦--SYMBOL: a [0/1] {61} + ¦ ¦ ¦ ¦--IN: in [0/1] {62} + ¦ ¦ ¦ ¦--expr: 1:19 [0/0] {63} + ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {65} + ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {64} + ¦ ¦ ¦ ¦ ¦--':': : [0/0] {66} + ¦ ¦ ¦ ¦ °--expr: 19 [0/0] {68} + ¦ ¦ ¦ ¦ °--NUM_CONST: 19 [0/0] {67} + ¦ ¦ ¦ °--')': ) [0/0] {69} + ¦ ¦ °--expr: { [0/0] {70} - ¦ ¦--'{': { [0/4] {71} - ¦ ¦--expr: x[i] [1/2] {72} - ¦ ¦ ¦--expr: x[i] [0/1] {73} - ¦ ¦ ¦ ¦--expr: x [0/0] {75} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {74} - ¦ ¦ ¦ ¦--'[': [ [0/0] {76} - ¦ ¦ ¦ ¦--expr: i [0/0] {78} - ¦ ¦ ¦ ¦ °--SYMBOL: i [0/0] {77} - ¦ ¦ ¦ °--']': ] [0/0] {79} - ¦ ¦ ¦--'+': + [0/0] {80} - ¦ ¦ °--expr: 1 [0/0] {82} - ¦ ¦ °--NUM_CONST: 1 [0/0] {81} - ¦ °--'}': } [1/0] {83} - °--'}': } [1/0] {84} + ¦ ¦ ¦--'{': { [0/4] {71} + ¦ ¦ ¦--expr: x[i] [1/2] {72} + ¦ ¦ ¦ ¦--expr: x[i] [0/1] {73} + ¦ ¦ ¦ ¦ ¦--expr: x [0/0] {75} + ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {74} + ¦ ¦ ¦ ¦ ¦--'[': [ [0/0] {76} + ¦ ¦ ¦ ¦ ¦--expr: i [0/0] {78} + ¦ ¦ ¦ ¦ ¦ °--SYMBOL: i [0/0] {77} + ¦ ¦ ¦ ¦ °--']': ] [0/0] {79} + ¦ ¦ ¦ ¦--'+': + [0/0] {80} + ¦ ¦ ¦ °--expr: 1 [0/0] {82} + ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {81} + ¦ ¦ °--'}': } [1/0] {83} + ¦ °--'}': } [1/0] {84} + °--expr: if ( + [3/0] {85} + ¦--IF: if [0/1] {86} + ¦--'(': ( [0/2] {87} + ¦--expr: requi [2/0] {88} + ¦ ¦--expr: requi [0/1] {89} + ¦ ¦ ¦--expr: requi [0/0] {91} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: requi [0/0] {90} + ¦ ¦ ¦--'(': ( [0/0] {92} + ¦ ¦ ¦--expr: "logs [0/0] {94} + ¦ ¦ ¦ °--STR_CONST: "logs [0/0] {93} + ¦ ¦ °--')': ) [0/0] {95} + ¦ ¦--AND2: && [0/4] {96} + ¦ °--expr: requi [1/0] {97} + ¦ ¦--expr: requi [0/0] {99} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: requi [0/0] {98} + ¦ ¦--'(': ( [0/0] {100} + ¦ ¦--expr: "rsta [0/0] {102} + ¦ ¦ °--STR_CONST: "rsta [0/0] {101} + ¦ °--')': ) [0/0] {103} + ¦--')': ) [4/1] {104} + °--expr: { + + [0/0] {105} + ¦--'{': { [0/2] {106} + ¦--expr: NULL [2/2] {108} + ¦ °--NULL_CONST: NULL [0/0] {107} + °--'}': } [3/0] {109} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-out.R b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-out.R index babdc4a26..f80ed3c8b 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-out.R +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-out.R @@ -8,3 +8,11 @@ a <- function(x, y, z) { x[i] + 1 } } + + +if ( + require("logspline") && + require("rstanarm") +) { + NULL +} diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-in.R b/tests/testthat/indention_round_brackets/arithmetic_start-in.R index d8ef4066c..5d7b411f1 100644 --- a/tests/testthat/indention_round_brackets/arithmetic_start-in.R +++ b/tests/testthat/indention_round_brackets/arithmetic_start-in.R @@ -3,3 +3,13 @@ 3 + 4 ) ) + + ( + + 1 + + 2 + ( + 3 + 4 + + + ) + ) diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-in_tree b/tests/testthat/indention_round_brackets/arithmetic_start-in_tree index b4c868352..90e895710 100644 --- a/tests/testthat/indention_round_brackets/arithmetic_start-in_tree +++ b/tests/testthat/indention_round_brackets/arithmetic_start-in_tree @@ -1,23 +1,46 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: (1 + - [0/0] {1} - ¦--'(': ( [0/0] {2} - ¦--expr: 1 + + ¦--expr: (1 + + [0/10] {1} + ¦ ¦--'(': ( [0/0] {2} + ¦ ¦--expr: 1 + 2 [0/0] {3} - ¦ ¦--expr: 1 [0/1] {6} - ¦ ¦ °--NUM_CONST: 1 [0/0] {5} - ¦ ¦--'+': + [0/0] {7} - ¦ ¦--expr: 2 [1/1] {9} - ¦ ¦ °--NUM_CONST: 2 [0/0] {8} - ¦ ¦--'+': + [0/1] {10} - ¦ °--expr: ( + ¦ ¦ ¦--expr: 1 [0/1] {6} + ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {5} + ¦ ¦ ¦--'+': + [0/0] {7} + ¦ ¦ ¦--expr: 2 [1/1] {9} + ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {8} + ¦ ¦ ¦--'+': + [0/1] {10} + ¦ ¦ °--expr: ( 3 + [0/0] {11} - ¦ ¦--'(': ( [0/0] {12} - ¦ ¦--expr: 3 + 4 [1/2] {13} - ¦ ¦ ¦--expr: 3 [0/1] {15} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {14} - ¦ ¦ ¦--'+': + [0/1] {16} - ¦ ¦ °--expr: 4 [0/0] {18} - ¦ ¦ °--NUM_CONST: 4 [0/0] {17} - ¦ °--')': ) [1/0] {19} - °--')': ) [1/0] {20} + ¦ ¦ ¦--'(': ( [0/0] {12} + ¦ ¦ ¦--expr: 3 + 4 [1/2] {13} + ¦ ¦ ¦ ¦--expr: 3 [0/1] {15} + ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {14} + ¦ ¦ ¦ ¦--'+': + [0/1] {16} + ¦ ¦ ¦ °--expr: 4 [0/0] {18} + ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {17} + ¦ ¦ °--')': ) [1/0] {19} + ¦ °--')': ) [1/0] {20} + °--expr: ( + + [2/0] {21} + ¦--'(': ( [0/12] {22} + ¦--expr: 1 + + [2/10] {23} + ¦ ¦--expr: 1 [0/1] {26} + ¦ ¦ °--NUM_CONST: 1 [0/0] {25} + ¦ ¦--'+': + [0/14] {27} + ¦ ¦--expr: 2 [1/1] {29} + ¦ ¦ °--NUM_CONST: 2 [0/0] {28} + ¦ ¦--'+': + [0/1] {30} + ¦ °--expr: ( + [0/0] {31} + ¦ ¦--'(': ( [0/16] {32} + ¦ ¦--expr: 3 + 4 [1/14] {33} + ¦ ¦ ¦--expr: 3 [0/1] {35} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {34} + ¦ ¦ ¦--'+': + [0/1] {36} + ¦ ¦ °--expr: 4 [0/0] {38} + ¦ ¦ °--NUM_CONST: 4 [0/0] {37} + ¦ °--')': ) [3/0] {39} + °--')': ) [1/0] {40} diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-out.R b/tests/testthat/indention_round_brackets/arithmetic_start-out.R index ec2ff7135..337db97f2 100644 --- a/tests/testthat/indention_round_brackets/arithmetic_start-out.R +++ b/tests/testthat/indention_round_brackets/arithmetic_start-out.R @@ -3,3 +3,10 @@ 3 + 4 ) ) + +( + 1 + + 2 + ( + 3 + 4 + ) +) diff --git a/tests/testthat/indention_round_brackets/multi_line-random-in.R b/tests/testthat/indention_round_brackets/multi_line-random-in.R index 15c35f66c..43d3ef0e3 100644 --- a/tests/testthat/indention_round_brackets/multi_line-random-in.R +++ b/tests/testthat/indention_round_brackets/multi_line-random-in.R @@ -7,3 +7,16 @@ call3(1, 2, 22), ), 144 ) + +call( + + 1, + call2( + 2, 3, + call3(1, 2, 22), + 5 + + ), + 144 + +) diff --git a/tests/testthat/indention_round_brackets/multi_line-random-in_tree b/tests/testthat/indention_round_brackets/multi_line-random-in_tree index def8bc3ab..8dc8b53a4 100644 --- a/tests/testthat/indention_round_brackets/multi_line-random-in_tree +++ b/tests/testthat/indention_round_brackets/multi_line-random-in_tree @@ -1,39 +1,77 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: call( [0/0] {1} - ¦--expr: call [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: 1 [1/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--',': , [0/2] {7} - ¦--expr: call2 [1/0] {8} - ¦ ¦--expr: call2 [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {9} - ¦ ¦--'(': ( [0/4] {11} - ¦ ¦--expr: 2 [1/0] {13} - ¦ ¦ °--NUM_CONST: 2 [0/0] {12} - ¦ ¦--',': , [0/1] {14} - ¦ ¦--expr: 3 [0/0] {16} - ¦ ¦ °--NUM_CONST: 3 [0/0] {15} - ¦ ¦--',': , [0/0] {17} - ¦ ¦--expr: call3 [1/0] {18} - ¦ ¦ ¦--expr: call3 [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--expr: 1 [0/0] {23} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {22} - ¦ ¦ ¦--',': , [0/1] {24} - ¦ ¦ ¦--expr: 2 [0/0] {26} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {25} - ¦ ¦ ¦--',': , [0/1] {27} - ¦ ¦ ¦--expr: 22 [0/0] {29} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {28} - ¦ ¦ °--')': ) [0/0] {30} - ¦ ¦--',': , [0/13] {31} - ¦ ¦--expr: 5 [1/2] {33} - ¦ ¦ °--NUM_CONST: 5 [0/0] {32} - ¦ °--')': ) [1/0] {34} - ¦--',': , [0/2] {35} - ¦--expr: 144 [1/12] {37} - ¦ °--NUM_CONST: 144 [0/0] {36} - °--')': ) [1/0] {38} + ¦--expr: call( [0/0] {1} + ¦ ¦--expr: call [0/0] {3} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} + ¦ ¦--'(': ( [0/0] {4} + ¦ ¦--expr: 1 [1/0] {6} + ¦ ¦ °--NUM_CONST: 1 [0/0] {5} + ¦ ¦--',': , [0/2] {7} + ¦ ¦--expr: call2 [1/0] {8} + ¦ ¦ ¦--expr: call2 [0/0] {10} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {9} + ¦ ¦ ¦--'(': ( [0/4] {11} + ¦ ¦ ¦--expr: 2 [1/0] {13} + ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {12} + ¦ ¦ ¦--',': , [0/1] {14} + ¦ ¦ ¦--expr: 3 [0/0] {16} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {15} + ¦ ¦ ¦--',': , [0/0] {17} + ¦ ¦ ¦--expr: call3 [1/0] {18} + ¦ ¦ ¦ ¦--expr: call3 [0/0] {20} + ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {19} + ¦ ¦ ¦ ¦--'(': ( [0/0] {21} + ¦ ¦ ¦ ¦--expr: 1 [0/0] {23} + ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {22} + ¦ ¦ ¦ ¦--',': , [0/1] {24} + ¦ ¦ ¦ ¦--expr: 2 [0/0] {26} + ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {25} + ¦ ¦ ¦ ¦--',': , [0/1] {27} + ¦ ¦ ¦ ¦--expr: 22 [0/0] {29} + ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {28} + ¦ ¦ ¦ °--')': ) [0/0] {30} + ¦ ¦ ¦--',': , [0/13] {31} + ¦ ¦ ¦--expr: 5 [1/2] {33} + ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {32} + ¦ ¦ °--')': ) [1/0] {34} + ¦ ¦--',': , [0/2] {35} + ¦ ¦--expr: 144 [1/12] {37} + ¦ ¦ °--NUM_CONST: 144 [0/0] {36} + ¦ °--')': ) [1/0] {38} + °--expr: call( [2/0] {39} + ¦--expr: call [0/0] {41} + ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {40} + ¦--'(': ( [0/2] {42} + ¦--expr: 1 [2/0] {44} + ¦ °--NUM_CONST: 1 [0/0] {43} + ¦--',': , [0/2] {45} + ¦--expr: call2 [1/0] {46} + ¦ ¦--expr: call2 [0/0] {48} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {47} + ¦ ¦--'(': ( [0/4] {49} + ¦ ¦--expr: 2 [1/0] {51} + ¦ ¦ °--NUM_CONST: 2 [0/0] {50} + ¦ ¦--',': , [0/1] {52} + ¦ ¦--expr: 3 [0/0] {54} + ¦ ¦ °--NUM_CONST: 3 [0/0] {53} + ¦ ¦--',': , [0/4] {55} + ¦ ¦--expr: call3 [1/0] {56} + ¦ ¦ ¦--expr: call3 [0/0] {58} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {57} + ¦ ¦ ¦--'(': ( [0/0] {59} + ¦ ¦ ¦--expr: 1 [0/0] {61} + ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {60} + ¦ ¦ ¦--',': , [0/1] {62} + ¦ ¦ ¦--expr: 2 [0/0] {64} + ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {63} + ¦ ¦ ¦--',': , [0/1] {65} + ¦ ¦ ¦--expr: 22 [0/0] {67} + ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {66} + ¦ ¦ °--')': ) [0/0] {68} + ¦ ¦--',': , [0/4] {69} + ¦ ¦--expr: 5 [1/2] {71} + ¦ ¦ °--NUM_CONST: 5 [0/0] {70} + ¦ °--')': ) [2/0] {72} + ¦--',': , [0/2] {73} + ¦--expr: 144 [1/0] {75} + ¦ °--NUM_CONST: 144 [0/0] {74} + °--')': ) [2/0] {76} diff --git a/tests/testthat/indention_round_brackets/multi_line-random-out.R b/tests/testthat/indention_round_brackets/multi_line-random-out.R index e960a3d0d..98b2950bd 100644 --- a/tests/testthat/indention_round_brackets/multi_line-random-out.R +++ b/tests/testthat/indention_round_brackets/multi_line-random-out.R @@ -7,3 +7,13 @@ call( ), 144 ) + +call( + 1, + call2( + 2, 3, + call3(1, 2, 22), + 5 + ), + 144 +) diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R b/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R index 6dd33a894..645dcaaee 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R @@ -19,6 +19,14 @@ fac[ ] fac[, `:`(a = c) +] + +fac[ + + , `:`(a = c) + + + ] x[a ==3 | @@ -44,3 +52,31 @@ x[a ==3 && x[a ==3 & b == v,] + +x[ + + + a ==3 & + b == v, + + + ] + +x[ + + a, + b +] + +x[ + a, + b + +] + +x[ + + a, + b + +] diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree index 834f2095e..5f73336d2 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree @@ -118,163 +118,237 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ ¦ ¦ °--SYMBOL: c [0/0] {113} ¦ ¦ °--')': ) [0/0] {115} ¦ °--']': ] [1/0] {116} - ¦--expr: x[a = [2/0] {117} - ¦ ¦--expr: x [0/0] {119} - ¦ ¦ °--SYMBOL: x [0/0] {118} - ¦ ¦--'[': [ [0/0] {120} - ¦ ¦--expr: a ==3 [0/0] {121} - ¦ ¦ ¦--expr: a ==3 [0/1] {122} - ¦ ¦ ¦ ¦--expr: a [0/1] {124} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {123} - ¦ ¦ ¦ ¦--EQ: == [0/0] {125} - ¦ ¦ ¦ °--expr: 3 [0/0] {127} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {126} - ¦ ¦ ¦--OR: | [0/2] {128} - ¦ ¦ °--expr: b == [1/0] {129} - ¦ ¦ ¦--expr: b [0/1] {131} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {130} - ¦ ¦ ¦--EQ: == [0/1] {132} - ¦ ¦ °--expr: v [0/0] {134} - ¦ ¦ °--SYMBOL: v [0/0] {133} - ¦ ¦--',': , [0/0] {135} - ¦ °--']': ] [0/0] {136} - ¦--expr: x[a = [2/0] {137} - ¦ ¦--expr: x [0/0] {139} - ¦ ¦ °--SYMBOL: x [0/0] {138} - ¦ ¦--'[': [ [0/0] {140} - ¦ ¦--expr: a ==3 [0/0] {141} - ¦ ¦ ¦--expr: a ==3 [0/2] {142} - ¦ ¦ ¦ ¦--expr: a [0/1] {144} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {143} - ¦ ¦ ¦ ¦--EQ: == [0/0] {145} - ¦ ¦ ¦ °--expr: 3 [0/0] {147} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {146} - ¦ ¦ ¦--OR: | [1/2] {148} - ¦ ¦ °--expr: b == [0/0] {149} - ¦ ¦ ¦--expr: b [0/1] {151} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {150} - ¦ ¦ ¦--EQ: == [0/1] {152} - ¦ ¦ °--expr: v [0/0] {154} - ¦ ¦ °--SYMBOL: v [0/0] {153} - ¦ ¦--',': , [0/0] {155} - ¦ °--']': ] [0/0] {156} - ¦--expr: x[a = [2/0] {157} - ¦ ¦--expr: x [0/0] {159} - ¦ ¦ °--SYMBOL: x [0/0] {158} - ¦ ¦--'[': [ [0/0] {160} - ¦ ¦--expr: a ==3 [0/0] {161} - ¦ ¦ ¦--expr: a ==3 [0/1] {162} - ¦ ¦ ¦ ¦--expr: a [0/1] {164} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {163} - ¦ ¦ ¦ ¦--EQ: == [0/0] {165} - ¦ ¦ ¦ °--expr: 3 [0/0] {167} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {166} - ¦ ¦ ¦--OR2: || [0/4] {168} - ¦ ¦ °--expr: b == [1/0] {169} - ¦ ¦ ¦--expr: b [0/1] {171} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {170} - ¦ ¦ ¦--EQ: == [0/1] {172} - ¦ ¦ °--expr: v [0/0] {174} - ¦ ¦ °--SYMBOL: v [0/0] {173} - ¦ ¦--',': , [0/0] {175} - ¦ °--']': ] [0/0] {176} - ¦--expr: x[a = [2/0] {177} - ¦ ¦--expr: x [0/0] {179} - ¦ ¦ °--SYMBOL: x [0/0] {178} - ¦ ¦--'[': [ [0/0] {180} - ¦ ¦--expr: a ==3 [0/0] {181} - ¦ ¦ ¦--expr: a ==3 [0/2] {182} - ¦ ¦ ¦ ¦--expr: a [0/1] {184} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {183} - ¦ ¦ ¦ ¦--EQ: == [0/0] {185} - ¦ ¦ ¦ °--expr: 3 [0/0] {187} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {186} - ¦ ¦ ¦--OR2: || [1/2] {188} - ¦ ¦ °--expr: b == [0/0] {189} - ¦ ¦ ¦--expr: b [0/1] {191} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {190} - ¦ ¦ ¦--EQ: == [0/1] {192} - ¦ ¦ °--expr: v [0/0] {194} - ¦ ¦ °--SYMBOL: v [0/0] {193} - ¦ ¦--',': , [0/0] {195} - ¦ °--']': ] [0/0] {196} - ¦--expr: x[a = [2/0] {197} - ¦ ¦--expr: x [0/0] {199} - ¦ ¦ °--SYMBOL: x [0/0] {198} - ¦ ¦--'[': [ [0/0] {200} - ¦ ¦--expr: a ==3 [0/0] {201} - ¦ ¦ ¦--expr: a ==3 [0/2] {202} - ¦ ¦ ¦ ¦--expr: a [0/1] {204} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {203} - ¦ ¦ ¦ ¦--EQ: == [0/0] {205} - ¦ ¦ ¦ °--expr: 3 [0/0] {207} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {206} - ¦ ¦ ¦--AND2: && [1/2] {208} - ¦ ¦ °--expr: b == [0/0] {209} - ¦ ¦ ¦--expr: b [0/1] {211} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {210} - ¦ ¦ ¦--EQ: == [0/1] {212} - ¦ ¦ °--expr: v [0/0] {214} - ¦ ¦ °--SYMBOL: v [0/0] {213} - ¦ ¦--',': , [0/0] {215} - ¦ °--']': ] [0/0] {216} - ¦--expr: x[a = [2/0] {217} - ¦ ¦--expr: x [0/0] {219} - ¦ ¦ °--SYMBOL: x [0/0] {218} - ¦ ¦--'[': [ [0/0] {220} - ¦ ¦--expr: a ==3 [0/0] {221} - ¦ ¦ ¦--expr: a ==3 [0/2] {222} - ¦ ¦ ¦ ¦--expr: a [0/1] {224} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {223} - ¦ ¦ ¦ ¦--EQ: == [0/0] {225} - ¦ ¦ ¦ °--expr: 3 [0/0] {227} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {226} - ¦ ¦ ¦--AND: & [1/2] {228} - ¦ ¦ °--expr: b == [0/0] {229} - ¦ ¦ ¦--expr: b [0/1] {231} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {230} - ¦ ¦ ¦--EQ: == [0/1] {232} - ¦ ¦ °--expr: v [0/0] {234} - ¦ ¦ °--SYMBOL: v [0/0] {233} - ¦ ¦--',': , [0/0] {235} - ¦ °--']': ] [0/0] {236} - ¦--expr: x[a = [2/0] {237} - ¦ ¦--expr: x [0/0] {239} - ¦ ¦ °--SYMBOL: x [0/0] {238} - ¦ ¦--'[': [ [0/0] {240} - ¦ ¦--expr: a ==3 [0/0] {241} - ¦ ¦ ¦--expr: a ==3 [0/1] {242} - ¦ ¦ ¦ ¦--expr: a [0/1] {244} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {243} - ¦ ¦ ¦ ¦--EQ: == [0/0] {245} - ¦ ¦ ¦ °--expr: 3 [0/0] {247} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {246} - ¦ ¦ ¦--AND2: && [0/4] {248} - ¦ ¦ °--expr: b == [1/0] {249} - ¦ ¦ ¦--expr: b [0/1] {251} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {250} - ¦ ¦ ¦--EQ: == [0/1] {252} - ¦ ¦ °--expr: v [0/0] {254} - ¦ ¦ °--SYMBOL: v [0/0] {253} - ¦ ¦--',': , [0/0] {255} - ¦ °--']': ] [0/0] {256} - °--expr: x[a = [2/0] {257} - ¦--expr: x [0/0] {259} - ¦ °--SYMBOL: x [0/0] {258} - ¦--'[': [ [0/0] {260} - ¦--expr: a ==3 [0/0] {261} - ¦ ¦--expr: a ==3 [0/1] {262} - ¦ ¦ ¦--expr: a [0/1] {264} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {263} - ¦ ¦ ¦--EQ: == [0/0] {265} - ¦ ¦ °--expr: 3 [0/0] {267} - ¦ ¦ °--NUM_CONST: 3 [0/0] {266} - ¦ ¦--AND: & [0/3] {268} - ¦ °--expr: b == [1/0] {269} - ¦ ¦--expr: b [0/1] {271} - ¦ ¦ °--SYMBOL: b [0/0] {270} - ¦ ¦--EQ: == [0/1] {272} - ¦ °--expr: v [0/0] {274} - ¦ °--SYMBOL: v [0/0] {273} - ¦--',': , [0/0] {275} - °--']': ] [0/0] {276} + ¦--expr: fac[ + [2/0] {117} + ¦ ¦--expr: fac [0/0] {119} + ¦ ¦ °--SYMBOL: fac [0/0] {118} + ¦ ¦--'[': [ [0/2] {120} + ¦ ¦--',': , [2/1] {121} + ¦ ¦--expr: `:`(a [0/0] {122} + ¦ ¦ ¦--expr: `:` [0/0] {124} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: `:` [0/0] {123} + ¦ ¦ ¦--'(': ( [0/0] {125} + ¦ ¦ ¦--SYMBOL_SUB: a [0/1] {126} + ¦ ¦ ¦--EQ_SUB: = [0/1] {127} + ¦ ¦ ¦--expr: c [0/0] {129} + ¦ ¦ ¦ °--SYMBOL: c [0/0] {128} + ¦ ¦ °--')': ) [0/0] {130} + ¦ °--']': ] [4/0] {131} + ¦--expr: x[a = [2/0] {132} + ¦ ¦--expr: x [0/0] {134} + ¦ ¦ °--SYMBOL: x [0/0] {133} + ¦ ¦--'[': [ [0/0] {135} + ¦ ¦--expr: a ==3 [0/0] {136} + ¦ ¦ ¦--expr: a ==3 [0/1] {137} + ¦ ¦ ¦ ¦--expr: a [0/1] {139} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {138} + ¦ ¦ ¦ ¦--EQ: == [0/0] {140} + ¦ ¦ ¦ °--expr: 3 [0/0] {142} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {141} + ¦ ¦ ¦--OR: | [0/2] {143} + ¦ ¦ °--expr: b == [1/0] {144} + ¦ ¦ ¦--expr: b [0/1] {146} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {145} + ¦ ¦ ¦--EQ: == [0/1] {147} + ¦ ¦ °--expr: v [0/0] {149} + ¦ ¦ °--SYMBOL: v [0/0] {148} + ¦ ¦--',': , [0/0] {150} + ¦ °--']': ] [0/0] {151} + ¦--expr: x[a = [2/0] {152} + ¦ ¦--expr: x [0/0] {154} + ¦ ¦ °--SYMBOL: x [0/0] {153} + ¦ ¦--'[': [ [0/0] {155} + ¦ ¦--expr: a ==3 [0/0] {156} + ¦ ¦ ¦--expr: a ==3 [0/2] {157} + ¦ ¦ ¦ ¦--expr: a [0/1] {159} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {158} + ¦ ¦ ¦ ¦--EQ: == [0/0] {160} + ¦ ¦ ¦ °--expr: 3 [0/0] {162} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {161} + ¦ ¦ ¦--OR: | [1/2] {163} + ¦ ¦ °--expr: b == [0/0] {164} + ¦ ¦ ¦--expr: b [0/1] {166} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {165} + ¦ ¦ ¦--EQ: == [0/1] {167} + ¦ ¦ °--expr: v [0/0] {169} + ¦ ¦ °--SYMBOL: v [0/0] {168} + ¦ ¦--',': , [0/0] {170} + ¦ °--']': ] [0/0] {171} + ¦--expr: x[a = [2/0] {172} + ¦ ¦--expr: x [0/0] {174} + ¦ ¦ °--SYMBOL: x [0/0] {173} + ¦ ¦--'[': [ [0/0] {175} + ¦ ¦--expr: a ==3 [0/0] {176} + ¦ ¦ ¦--expr: a ==3 [0/1] {177} + ¦ ¦ ¦ ¦--expr: a [0/1] {179} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {178} + ¦ ¦ ¦ ¦--EQ: == [0/0] {180} + ¦ ¦ ¦ °--expr: 3 [0/0] {182} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {181} + ¦ ¦ ¦--OR2: || [0/4] {183} + ¦ ¦ °--expr: b == [1/0] {184} + ¦ ¦ ¦--expr: b [0/1] {186} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {185} + ¦ ¦ ¦--EQ: == [0/1] {187} + ¦ ¦ °--expr: v [0/0] {189} + ¦ ¦ °--SYMBOL: v [0/0] {188} + ¦ ¦--',': , [0/0] {190} + ¦ °--']': ] [0/0] {191} + ¦--expr: x[a = [2/0] {192} + ¦ ¦--expr: x [0/0] {194} + ¦ ¦ °--SYMBOL: x [0/0] {193} + ¦ ¦--'[': [ [0/0] {195} + ¦ ¦--expr: a ==3 [0/0] {196} + ¦ ¦ ¦--expr: a ==3 [0/2] {197} + ¦ ¦ ¦ ¦--expr: a [0/1] {199} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {198} + ¦ ¦ ¦ ¦--EQ: == [0/0] {200} + ¦ ¦ ¦ °--expr: 3 [0/0] {202} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {201} + ¦ ¦ ¦--OR2: || [1/2] {203} + ¦ ¦ °--expr: b == [0/0] {204} + ¦ ¦ ¦--expr: b [0/1] {206} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {205} + ¦ ¦ ¦--EQ: == [0/1] {207} + ¦ ¦ °--expr: v [0/0] {209} + ¦ ¦ °--SYMBOL: v [0/0] {208} + ¦ ¦--',': , [0/0] {210} + ¦ °--']': ] [0/0] {211} + ¦--expr: x[a = [2/0] {212} + ¦ ¦--expr: x [0/0] {214} + ¦ ¦ °--SYMBOL: x [0/0] {213} + ¦ ¦--'[': [ [0/0] {215} + ¦ ¦--expr: a ==3 [0/0] {216} + ¦ ¦ ¦--expr: a ==3 [0/2] {217} + ¦ ¦ ¦ ¦--expr: a [0/1] {219} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {218} + ¦ ¦ ¦ ¦--EQ: == [0/0] {220} + ¦ ¦ ¦ °--expr: 3 [0/0] {222} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {221} + ¦ ¦ ¦--AND2: && [1/2] {223} + ¦ ¦ °--expr: b == [0/0] {224} + ¦ ¦ ¦--expr: b [0/1] {226} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {225} + ¦ ¦ ¦--EQ: == [0/1] {227} + ¦ ¦ °--expr: v [0/0] {229} + ¦ ¦ °--SYMBOL: v [0/0] {228} + ¦ ¦--',': , [0/0] {230} + ¦ °--']': ] [0/0] {231} + ¦--expr: x[a = [2/0] {232} + ¦ ¦--expr: x [0/0] {234} + ¦ ¦ °--SYMBOL: x [0/0] {233} + ¦ ¦--'[': [ [0/0] {235} + ¦ ¦--expr: a ==3 [0/0] {236} + ¦ ¦ ¦--expr: a ==3 [0/2] {237} + ¦ ¦ ¦ ¦--expr: a [0/1] {239} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {238} + ¦ ¦ ¦ ¦--EQ: == [0/0] {240} + ¦ ¦ ¦ °--expr: 3 [0/0] {242} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {241} + ¦ ¦ ¦--AND: & [1/2] {243} + ¦ ¦ °--expr: b == [0/0] {244} + ¦ ¦ ¦--expr: b [0/1] {246} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {245} + ¦ ¦ ¦--EQ: == [0/1] {247} + ¦ ¦ °--expr: v [0/0] {249} + ¦ ¦ °--SYMBOL: v [0/0] {248} + ¦ ¦--',': , [0/0] {250} + ¦ °--']': ] [0/0] {251} + ¦--expr: x[a = [2/0] {252} + ¦ ¦--expr: x [0/0] {254} + ¦ ¦ °--SYMBOL: x [0/0] {253} + ¦ ¦--'[': [ [0/0] {255} + ¦ ¦--expr: a ==3 [0/0] {256} + ¦ ¦ ¦--expr: a ==3 [0/1] {257} + ¦ ¦ ¦ ¦--expr: a [0/1] {259} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {258} + ¦ ¦ ¦ ¦--EQ: == [0/0] {260} + ¦ ¦ ¦ °--expr: 3 [0/0] {262} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {261} + ¦ ¦ ¦--AND2: && [0/4] {263} + ¦ ¦ °--expr: b == [1/0] {264} + ¦ ¦ ¦--expr: b [0/1] {266} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {265} + ¦ ¦ ¦--EQ: == [0/1] {267} + ¦ ¦ °--expr: v [0/0] {269} + ¦ ¦ °--SYMBOL: v [0/0] {268} + ¦ ¦--',': , [0/0] {270} + ¦ °--']': ] [0/0] {271} + ¦--expr: x[a = [2/0] {272} + ¦ ¦--expr: x [0/0] {274} + ¦ ¦ °--SYMBOL: x [0/0] {273} + ¦ ¦--'[': [ [0/0] {275} + ¦ ¦--expr: a ==3 [0/0] {276} + ¦ ¦ ¦--expr: a ==3 [0/1] {277} + ¦ ¦ ¦ ¦--expr: a [0/1] {279} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {278} + ¦ ¦ ¦ ¦--EQ: == [0/0] {280} + ¦ ¦ ¦ °--expr: 3 [0/0] {282} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {281} + ¦ ¦ ¦--AND: & [0/3] {283} + ¦ ¦ °--expr: b == [1/0] {284} + ¦ ¦ ¦--expr: b [0/1] {286} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {285} + ¦ ¦ ¦--EQ: == [0/1] {287} + ¦ ¦ °--expr: v [0/0] {289} + ¦ ¦ °--SYMBOL: v [0/0] {288} + ¦ ¦--',': , [0/0] {290} + ¦ °--']': ] [0/0] {291} + ¦--expr: x[ + + + [2/0] {292} + ¦ ¦--expr: x [0/0] {294} + ¦ ¦ °--SYMBOL: x [0/0] {293} + ¦ ¦--'[': [ [0/2] {295} + ¦ ¦--expr: a ==3 [3/0] {296} + ¦ ¦ ¦--expr: a ==3 [0/1] {297} + ¦ ¦ ¦ ¦--expr: a [0/1] {299} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {298} + ¦ ¦ ¦ ¦--EQ: == [0/0] {300} + ¦ ¦ ¦ °--expr: 3 [0/0] {302} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {301} + ¦ ¦ ¦--AND: & [0/4] {303} + ¦ ¦ °--expr: b == [1/0] {304} + ¦ ¦ ¦--expr: b [0/1] {306} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {305} + ¦ ¦ ¦--EQ: == [0/1] {307} + ¦ ¦ °--expr: v [0/0] {309} + ¦ ¦ °--SYMBOL: v [0/0] {308} + ¦ ¦--',': , [0/2] {310} + ¦ °--']': ] [3/0] {311} + ¦--expr: x[ + + [2/0] {312} + ¦ ¦--expr: x [0/0] {314} + ¦ ¦ °--SYMBOL: x [0/0] {313} + ¦ ¦--'[': [ [0/2] {315} + ¦ ¦--expr: a [2/0] {317} + ¦ ¦ °--SYMBOL: a [0/0] {316} + ¦ ¦--',': , [0/2] {318} + ¦ ¦--expr: b [1/0] {320} + ¦ ¦ °--SYMBOL: b [0/0] {319} + ¦ °--']': ] [1/0] {321} + ¦--expr: x[ + [2/0] {322} + ¦ ¦--expr: x [0/0] {324} + ¦ ¦ °--SYMBOL: x [0/0] {323} + ¦ ¦--'[': [ [0/2] {325} + ¦ ¦--expr: a [1/0] {327} + ¦ ¦ °--SYMBOL: a [0/0] {326} + ¦ ¦--',': , [0/2] {328} + ¦ ¦--expr: b [1/0] {330} + ¦ ¦ °--SYMBOL: b [0/0] {329} + ¦ °--']': ] [2/0] {331} + °--expr: x[ + + [2/0] {332} + ¦--expr: x [0/0] {334} + ¦ °--SYMBOL: x [0/0] {333} + ¦--'[': [ [0/2] {335} + ¦--expr: a [2/0] {337} + ¦ °--SYMBOL: a [0/0] {336} + ¦--',': , [0/2] {338} + ¦--expr: b [1/0] {340} + ¦ °--SYMBOL: b [0/0] {339} + °--']': ] [2/0] {341} diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R b/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R index ae6be434b..112c04b31 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R @@ -25,6 +25,10 @@ fac[ fac[, `:`(a = c)] +fac[ + , `:`(a = c) +] + x[a == 3 | b == v, ] @@ -48,3 +52,23 @@ x[a == 3 && x[a == 3 & b == v, ] + +x[ + a == 3 & + b == v, +] + +x[ + a, + b +] + +x[ + a, + b +] + +x[ + a, + b +] From 280b272c92010688c0cc0257355cf334abc5e8d2 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 1 May 2024 18:58:18 +0200 Subject: [PATCH 094/238] bandaid --- R/rules-spaces.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 54b76bbd8..728e372ac 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -140,7 +140,7 @@ remove_space_before_opening_paren <- function(pd_flat) { pd_flat } -remove_space_after_opening_paren <- function(pd_flat, strict) { +remove_space_after_opening_paren <- function(pd_flat, strict = TRUE) { braces <- c("'('", "'['", "LBB") paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { @@ -156,7 +156,7 @@ remove_space_after_opening_paren <- function(pd_flat, strict) { pd_flat } -remove_space_before_closing_paren <- function(pd_flat, strict) { +remove_space_before_closing_paren <- function(pd_flat, strict = TRUE) { braces <- c("')'", "']'") paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { From 8b8ed1994bf5bf502e2b1c6a66b34a67f9f02d30 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 22:52:13 +0200 Subject: [PATCH 095/238] Bump minimum needed R version to 4.0 closes #1196 --- .github/workflows/check-full.yaml | 5 ++--- DESCRIPTION | 2 +- R/parse.R | 2 -- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index dfeb4cc4e..b9c209f8b 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -20,9 +20,8 @@ jobs: config: - {os: macos-latest, r: 'release'} + - {os: windows-latest, r: 'devel'} - {os: windows-latest, r: 'release'} - # Use 3.6 to trigger usage of RTools35 - - {os: windows-latest, r: '3.6'} # use 4.1 to check with rtools40's older compiler - {os: windows-latest, r: '4.1'} @@ -56,7 +55,7 @@ jobs: - uses: r-lib/actions/check-r-package@v2 with: upload-snapshots: true - error-on: 'ifelse(getRversion() > "3.6", "warning", "note")' + error-on: '"note"' env: _R_CHECK_FORCE_SUGGESTS_: false _R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_: true diff --git a/DESCRIPTION b/DESCRIPTION index 94f6ec94d..1015146f4 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -23,7 +23,7 @@ License: MIT + file LICENSE URL: https://github.com/r-lib/styler, https://styler.r-lib.org BugReports: https://github.com/r-lib/styler/issues Depends: - R (>= 3.6.0) + R (>= 4.0.0) Imports: cli (>= 3.1.1), magrittr (>= 2.0.0), diff --git a/R/parse.R b/R/parse.R index cf2babe49..3af0146bc 100644 --- a/R/parse.R +++ b/R/parse.R @@ -87,8 +87,6 @@ tokenize <- function(text) { #' @param ... Other arguments passed to [utils::getParseData()]. #' @keywords internal get_parse_data <- function(text, include_text = TRUE, ...) { - # avoid https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=16041 - parse_safely(text, keep.source = TRUE) parsed <- parse_safely(text, keep.source = TRUE) pd <- utils::getParseData(parsed, includeText = include_text) %>% styler_df() From 6a985800ab0ba6a608f85c254b94286fcfe43d15 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:00:32 +0200 Subject: [PATCH 096/238] update parser version --- R/environments.R | 10 ++++------ cran-comments.md | 6 ++---- man/parser_version_set.Rd | 7 ++++--- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/R/environments.R b/R/environments.R index 83863ce31..c0b20ff7b 100755 --- a/R/environments.R +++ b/R/environments.R @@ -26,8 +26,9 @@ #' * `parser_version_find()` determines the version of the parser from parse #' data. This does not necessarily mean that the version found is the #' actual version, but it *behaves* like it. For example, code that does not -#' contain `EQ_ASSIGN` is parsed the same way with version 1 and 2. If the -#' behavior is identical, the version is set to 1. +#' contain `EQ_ASSIGN` is parsed the same way with version `1` and `2`. If the +#' behavior is identical, the version is set to `1`. Since the package now +#' requires R >= 4.0, the version is always set to `3`. #' @param version The version of the parser to be used. #' @param pd A parse table such as the output from #' `utils::getParseData(parse(text = text))`. @@ -42,10 +43,7 @@ parser_version_get <- function() { } #' @rdname parser_version_set -parser_version_find <- function(pd) { - if (any(pd$token == "equal_assign")) 2L else 3L -} - +parser_version_find <- function() 3L #' The elements that are added to this environment are: #' diff --git a/cran-comments.md b/cran-comments.md index fe047b5d2..51dc8188e 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -10,10 +10,8 @@ in the R parser that caused unit tests to fail. ## Test environments -- ubuntu 20.04 (on GitHub Actions): R devel, R 4.3.0, R 4.2.1, 4.1.2, R 4.0.5, - R 3.6 -- Windows Server 10 (on GitHub Actions): R devel, R 4.3.0, R 4.2.1, R 4.1.2, - R 3.6. +- ubuntu-latest (on GitHub Actions): R devel, R 4.4.0, R 4.3.0, R 4.2.1, 4.1.2, R 4.0.5 +- Windows Server 10 (on GitHub Actions): R devel, R 4.4.0, R 4.3.0, R 4.2.1, R 4.1.2, R 4.0.5 - win-builder: R devel ## R CMD check results diff --git a/man/parser_version_set.Rd b/man/parser_version_set.Rd index d740077a1..55c3260cc 100644 --- a/man/parser_version_set.Rd +++ b/man/parser_version_set.Rd @@ -10,7 +10,7 @@ parser_version_set(version) parser_version_get() -parser_version_find(pd) +parser_version_find() } \arguments{ \item{version}{The version of the parser to be used.} @@ -47,8 +47,9 @@ environment \code{env_current}. \item \code{parser_version_find()} determines the version of the parser from parse data. This does not necessarily mean that the version found is the actual version, but it \emph{behaves} like it. For example, code that does not -contain \code{EQ_ASSIGN} is parsed the same way with version 1 and 2. If the -behavior is identical, the version is set to 1. +contain \code{EQ_ASSIGN} is parsed the same way with version \code{1} and \code{2}. If the +behavior is identical, the version is set to \code{1}. Since the package now +requires R >= 4.0, the version is always set to \code{3}. } } From 1c7fc4dc926ca324158e2f7e5b4ec13bbd9f6f7c Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:02:07 +0200 Subject: [PATCH 097/238] Update lintr config --- .lintr | 1 - 1 file changed, 1 deletion(-) diff --git a/.lintr b/.lintr index 75698f02c..ea259c36f 100644 --- a/.lintr +++ b/.lintr @@ -15,7 +15,6 @@ linters: linters_with_tags( object_overwrite_linter = NULL, object_usage_linter = NULL, todo_comment_linter = NULL, - extraction_operator_linter = NULL, nonportable_path_linter = NULL, string_boundary_linter = NULL, undesirable_function_linter = NULL, From d4c75d1611e428f3a8671a9bbe00674c499c46e5 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:03:19 +0200 Subject: [PATCH 098/238] clean new lint --- R/ui-styling.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/R/ui-styling.R b/R/ui-styling.R index 97e250aa2..ac48da5eb 100644 --- a/R/ui-styling.R +++ b/R/ui-styling.R @@ -108,9 +108,8 @@ prettify_pkg <- function(transformers, filetype_ <- set_and_assert_arg_filetype(filetype) r_files <- rprofile_files <- vignette_files <- readme <- NULL all_files <- list.files(".", recursive = TRUE, all.files = TRUE) - exclude_files <- grep(paste0(exclude_files, collapse = "|"), all_files, value = TRUE) + exclude_files <- grep(paste(exclude_files, collapse = "|"), all_files, value = TRUE) exclude_files <- set_arg_paths(exclude_files) - exclude_files_regex <- paste0(exclude_files[!file.exists(exclude_files)], collapse = "|") exclude_files <- c( exclude_files, dir_without_.(exclude_dirs, pattern = map_filetype_to_pattern(filetype)) From 4f8cb5962602f9c2d3535e487991e88af0a4eded Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:08:43 +0200 Subject: [PATCH 099/238] Update environments.R --- R/environments.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/environments.R b/R/environments.R index c0b20ff7b..e2a523905 100755 --- a/R/environments.R +++ b/R/environments.R @@ -43,7 +43,7 @@ parser_version_get <- function() { } #' @rdname parser_version_set -parser_version_find <- function() 3L +parser_version_find <- function(pd) 3L #' The elements that are added to this environment are: #' From 6a82a5569fc0510ff4fa4e689bb832dccee8412f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 5 May 2024 21:12:49 +0000 Subject: [PATCH 100/238] pre-commit --- man/parser_version_set.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/parser_version_set.Rd b/man/parser_version_set.Rd index 55c3260cc..a0aed6176 100644 --- a/man/parser_version_set.Rd +++ b/man/parser_version_set.Rd @@ -10,7 +10,7 @@ parser_version_set(version) parser_version_get() -parser_version_find() +parser_version_find(pd) } \arguments{ \item{version}{The version of the parser to be used.} From 1a3ef50ca8810be7d8db2b70b4b05731475ea053 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:22:25 +0200 Subject: [PATCH 101/238] Update style-guides.R --- R/style-guides.R | 4 ---- 1 file changed, 4 deletions(-) diff --git a/R/style-guides.R b/R/style-guides.R index edff2cba1..735e6a1f5 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -226,10 +226,6 @@ tidyverse_style <- function(scope = "tokens", tokens = list( resolve_semicolon = "';'", add_brackets_in_pipe = c("SPECIAL-PIPE", "PIPE"), - # before 3.6, these assignments are not wrapped into top-level expression - # and `text` supplied to transformers_drop() is "", so it appears to not - # contain EQ_ASSIGN, and the transformer is falsely removed. - # compute_parse_data_nested / text_to_flat_pd ('a = 4') force_assignment_op = "EQ_ASSIGN", wrap_if_else_while_for_fun_multi_line_in_curly = c( "IF", "WHILE", "FOR", "FUNCTION" From e051e81a2f1f29cf180f5ef6f50b9fc37d1fbe8e Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:31:10 +0200 Subject: [PATCH 102/238] fix lints --- .lintr | 1 - R/addins.R | 4 ++-- R/detect-alignment-utils.R | 2 +- R/roxygen-examples-parse.R | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.lintr b/.lintr index ea259c36f..fe4554f30 100644 --- a/.lintr +++ b/.lintr @@ -8,7 +8,6 @@ linters: linters_with_tags( line_length_linter(120L), namespace_linter = NULL, nested_ifelse_linter = NULL, - # TODO: remove this once the lint message is fixed nzchar_linter = NULL, object_name_linter = NULL, object_length_linter(70L), diff --git a/R/addins.R b/R/addins.R index 8cbea4cb9..ab832ca52 100644 --- a/R/addins.R +++ b/R/addins.R @@ -72,7 +72,7 @@ style_active_file <- function() { } rstudioapi::modifyRange( c(1L, 1L, length(context$contents) + 1L, 1L), - paste0(ensure_last_n_empty(out), collapse = "\n"), + paste(ensure_last_n_empty(out), collapse = "\n"), id = context$id ) if (save_after_styling_is_active() && context$path != "") { @@ -132,7 +132,7 @@ style_selection <- function() { ) rstudioapi::modifyRange( context$selection[[1L]]$range, - paste0(c( + paste(c( out, if (context$selection[[1L]]$range$end[2L] == 1L) "" ), collapse = "\n"), diff --git a/R/detect-alignment-utils.R b/R/detect-alignment-utils.R index caed586d7..8e7965c19 100644 --- a/R/detect-alignment-utils.R +++ b/R/detect-alignment-utils.R @@ -161,7 +161,7 @@ alignment_serialize <- function(pd_sub) { if (anyNA(out)) { return(NA) } - paste0(out, collapse = "") + paste(out, collapse = "") } #' Check if spacing around comma is correct diff --git a/R/roxygen-examples-parse.R b/R/roxygen-examples-parse.R index 6383fa337..ac25ce950 100644 --- a/R/roxygen-examples-parse.R +++ b/R/roxygen-examples-parse.R @@ -68,7 +68,7 @@ parse_roxygen <- function(roxygen) { roxygen_remove_extra_brace <- function(parsed) { parsed <- rlang::try_fetch( { - parse(text = paste0(gsub("^\\\\[[:alpha:]]*", "", parsed), collapse = "")) + parse(text = paste(gsub("^\\\\[[:alpha:]]*", "", parsed), collapse = "")) parsed }, error = function(e) { From ed8b0585c576ab26a8a5ed787d823001e4ed230b Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 5 May 2024 23:35:57 +0200 Subject: [PATCH 103/238] Update .pre-commit-config.yaml --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4c4b8b1b3..ee8ea5d6d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,6 +23,7 @@ repos: - id: lintr additional_dependencies: - r-lib/lintr + - any::cyclocomp exclude: > (?x)^( inst/.*| From 7476b9455a8464facb19c1bc04c917babda3a117 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert <10477073+lorenzwalthert@users.noreply.github.com> Date: Mon, 6 May 2024 08:33:54 +0200 Subject: [PATCH 104/238] Add Indrajeet as author --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1015146f4..570db6697 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -14,7 +14,7 @@ Authors@R: email = "lorenz.walthert@icloud.com"), person(given = "Indrajeet", family = "Patil", - role = "ctb", + role = "aut", email = "patilindrajeet.science@gmail.com", comment = c(ORCID = "0000-0003-1995-6531", Twitter = "@patilindrajeets"))) Description: Pretty-prints R code without changing the user's formatting From 6deb8584e0823028a062504ba5b4a8aad6863084 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 6 May 2024 06:38:21 +0000 Subject: [PATCH 105/238] pre-commit --- man/styler-package.Rd | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/man/styler-package.Rd b/man/styler-package.Rd index 94adfc316..8774cdba7 100644 --- a/man/styler-package.Rd +++ b/man/styler-package.Rd @@ -41,11 +41,7 @@ Useful links: Authors: \itemize{ \item Kirill Müller \email{kirill@cynkra.com} (\href{https://orcid.org/0000-0002-1416-3412}{ORCID}) -} - -Other contributors: -\itemize{ - \item Indrajeet Patil \email{patilindrajeet.science@gmail.com} (\href{https://orcid.org/0000-0003-1995-6531}{ORCID}) (@patilindrajeets) [contributor] + \item Indrajeet Patil \email{patilindrajeet.science@gmail.com} (\href{https://orcid.org/0000-0003-1995-6531}{ORCID}) (@patilindrajeets) } } From 29e48c53eaccbb8a3989d451af94ff16eab4177f Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 6 May 2024 21:37:34 +0200 Subject: [PATCH 106/238] Update check-full.yaml --- .github/workflows/check-full.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index b9c209f8b..ec0c13336 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -49,6 +49,8 @@ jobs: - uses: r-lib/actions/setup-r-dependencies@v2 with: + pak-version: devel + upgrade: 'TRUE' extra-packages: any::rcmdcheck needs: check From c68e13bd91b00a1666308d85422873363957c098 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 6 May 2024 21:52:22 +0200 Subject: [PATCH 107/238] try different locale --- .github/workflows/check-full.yaml | 37 +++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index ec0c13336..9781aef2f 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -12,31 +12,44 @@ jobs: R-CMD-check: runs-on: ${{ matrix.config.os }} - name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) ${{ matrix.config.locale }} strategy: fail-fast: false matrix: config: - - {os: macos-latest, r: 'release'} + - { os: macos-latest, r: "release" } - - {os: windows-latest, r: 'devel'} - - {os: windows-latest, r: 'release'} + - { os: windows-latest, r: "devel" } + - { os: windows-latest, r: "release" } # use 4.1 to check with rtools40's older compiler - - {os: windows-latest, r: '4.1'} + - { os: windows-latest, r: "4.1" } - - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - - {os: ubuntu-latest, r: 'release'} - - {os: ubuntu-latest, r: 'oldrel-1'} - - {os: ubuntu-latest, r: 'oldrel-2'} - - {os: ubuntu-latest, r: 'oldrel-3'} - - {os: ubuntu-latest, r: 'oldrel-4'} + - { os: ubuntu-latest, r: "devel", http-user-agent: "release" } + - { os: ubuntu-latest, r: "devel", locale: "en_US" } + - { os: ubuntu-latest, r: "release", locale: "zh_CN" } + - { os: ubuntu-latest, r: "oldrel-1" } + - { os: ubuntu-latest, r: "oldrel-2" } + - { os: ubuntu-latest, r: "oldrel-3" } + - { os: ubuntu-latest, r: "oldrel-4" } env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} R_KEEP_PKG_SOURCE: yes steps: + - name: Set locale + if: matrix.config.locale == 'en_US' + run: | + sudo locale-gen en_US + echo "LC_ALL=en_US" >> $GITHUB_ENV + + - name: Set locale + if: matrix.config.locale == 'zh_CN' + run: | + sudo locale-gen zh_CN + echo "LC_ALL=zh_CN" >> $GITHUB_ENV + - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 @@ -50,7 +63,7 @@ jobs: - uses: r-lib/actions/setup-r-dependencies@v2 with: pak-version: devel - upgrade: 'TRUE' + upgrade: "TRUE" extra-packages: any::rcmdcheck needs: check From daf6ca63471aa8439ef2e560ae673c79407153b2 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 6 May 2024 22:27:00 +0200 Subject: [PATCH 108/238] break the unicode test into two --- tests/testthat/test-parsing.R | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tests/testthat/test-parsing.R b/tests/testthat/test-parsing.R index 18876da8e..6f37f806e 100644 --- a/tests/testthat/test-parsing.R +++ b/tests/testthat/test-parsing.R @@ -36,10 +36,17 @@ test_that("mixed CRLF / LF EOLs fail", { ) }) -test_that("unicode can't be propprely handled on Windows for R < 4.2", { - msg <- ifelse(getRversion() < "4.2" && is_windows(), - "Can't parse input due to unicode restriction in base R\\.", - NA +test_that("unicode can't be properly handled on Windows for R < 4.2", { + skip_if_not(getRversion() < "4.2" && is_windows()) + + expect_error( + style_text('suit <- "♠"'), + "Can't parse input due to unicode restriction in base R\\." ) - expect_error(style_text('suit <- "♠"'), msg) +}) + +test_that("unicode is properly handled in all settings other than on Windows for R < 4.2", { + skip_if(getRversion() < "4.2" && is_windows()) + + expect_error(style_text('suit <- "♠"'), NA) }) From f3ab50f44c150a9cf28834111e89f33631793a78 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 6 May 2024 22:27:12 +0200 Subject: [PATCH 109/238] Update check-full.yaml --- .github/workflows/check-full.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 9781aef2f..0519ed23b 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -27,7 +27,7 @@ jobs: - { os: ubuntu-latest, r: "devel", http-user-agent: "release" } - { os: ubuntu-latest, r: "devel", locale: "en_US" } - - { os: ubuntu-latest, r: "release", locale: "zh_CN" } + #- { os: ubuntu-latest, r: "release", locale: "zh_CN" } - { os: ubuntu-latest, r: "oldrel-1" } - { os: ubuntu-latest, r: "oldrel-2" } - { os: ubuntu-latest, r: "oldrel-3" } From 8f4bda9498c748908f19010c1ebaafa28b1dc83c Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 7 May 2024 22:28:53 +0200 Subject: [PATCH 110/238] include tests with comments; remove strict param --- R/rules-spaces.R | 20 ++-- R/style-guides.R | 10 +- .../multi_line_curly_only-in.R | 2 + .../multi_line_curly_only-in_tree | 50 +++++----- .../multi_line_curly_only-out.R | 3 + .../arithmetic_start-in.R | 3 + .../arithmetic_start-in_tree | 18 ++-- .../arithmetic_start-out.R | 3 + .../square_brackets_line_break-in.R | 3 +- .../square_brackets_line_break-in_tree | 97 ++++++++++--------- .../square_brackets_line_break-out.R | 2 + .../blank-non-strict-out.R | 2 - 12 files changed, 110 insertions(+), 103 deletions(-) diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 728e372ac..77ecd4878 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -140,34 +140,30 @@ remove_space_before_opening_paren <- function(pd_flat) { pd_flat } -remove_space_after_opening_paren <- function(pd_flat, strict = TRUE) { +remove_space_after_opening_paren <- function(pd_flat) { braces <- c("'('", "'['", "LBB") paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { return(pd_flat) } # remove blank lines after opening braces - if (strict) { - pd_flat$lag_newlines[ - lag(pd_flat$token %in% braces) & pd_flat$lag_newlines > 1L - ] <- 1L - } + pd_flat$lag_newlines[ + lag(pd_flat$token %in% braces) & pd_flat$lag_newlines > 1L + ] <- 1L pd_flat$spaces[paren_after & (pd_flat$newlines == 0L)] <- 0L pd_flat } -remove_space_before_closing_paren <- function(pd_flat, strict = TRUE) { +remove_space_before_closing_paren <- function(pd_flat) { braces <- c("')'", "']'") paren_after <- pd_flat$token %in% braces if (!any(paren_after)) { return(pd_flat) } # remove blank lines before closing braces - if (strict) { - pd_flat$lag_newlines[ - pd_flat$token %in% braces & pd_flat$lag_newlines > 1L - ] <- 1L - } + pd_flat$lag_newlines[ + pd_flat$token %in% braces & pd_flat$lag_newlines > 1L + ] <- 1L paren_before <- lead(paren_after, default = FALSE) pd_flat$spaces[paren_before & (pd_flat$newlines == 0L)] <- 0L pd_flat diff --git a/R/style-guides.R b/R/style-guides.R index 2eb8cd975..735e6a1f5 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -87,10 +87,7 @@ tidyverse_style <- function(scope = "tokens", } space_manipulators <- if ("spaces" %in% scope) { list( - remove_space_before_closing_paren = purrr::partial( - remove_space_before_closing_paren, - strict = strict - ), + remove_space_before_closing_paren = remove_space_before_closing_paren, remove_space_before_opening_paren = if (strict) { remove_space_before_opening_paren }, @@ -108,10 +105,7 @@ tidyverse_style <- function(scope = "tokens", spacing_around_op = purrr::partial(set_space_around_op, strict = strict ), - remove_space_after_opening_paren = purrr::partial( - remove_space_after_opening_paren, - strict = strict - ), + remove_space_after_opening_paren = remove_space_after_opening_paren, remove_space_after_excl = remove_space_after_excl, set_space_after_bang_bang = set_space_after_bang_bang, remove_space_before_dollar = remove_space_before_dollar, diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R index e8bca1432..6f7e9c5b5 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in.R @@ -5,8 +5,10 @@ { + # some additions {1 + 3} {2 + sin(pi)} + # nothing to see here } diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree index 4e4ee22af..8c94a7c77 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree @@ -30,27 +30,29 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) [2/0] {27} ¦--'{': { [0/8] {28} - ¦--expr: {1 + [2/8] {29} - ¦ ¦--'{': { [0/0] {30} - ¦ ¦--expr: 1 + 3 [0/0] {31} - ¦ ¦ ¦--expr: 1 [0/1] {33} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {32} - ¦ ¦ ¦--'+': + [0/1] {34} - ¦ ¦ °--expr: 3 [0/0] {36} - ¦ ¦ °--NUM_CONST: 3 [0/0] {35} - ¦ °--'}': } [0/0] {37} - ¦--expr: {2 + [1/6] {38} - ¦ ¦--'{': { [0/0] {39} - ¦ ¦--expr: 2 + s [0/0] {40} - ¦ ¦ ¦--expr: 2 [0/1] {42} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {41} - ¦ ¦ ¦--'+': + [0/1] {43} - ¦ ¦ °--expr: sin(p [0/0] {44} - ¦ ¦ ¦--expr: sin [0/0] {46} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {45} - ¦ ¦ ¦--'(': ( [0/0] {47} - ¦ ¦ ¦--expr: pi [0/0] {49} - ¦ ¦ ¦ °--SYMBOL: pi [0/0] {48} - ¦ ¦ °--')': ) [0/0] {50} - ¦ °--'}': } [0/0] {51} - °--'}': } [3/0] {52} + ¦--COMMENT: # som [2/8] {29} + ¦--expr: {1 + [1/8] {30} + ¦ ¦--'{': { [0/0] {31} + ¦ ¦--expr: 1 + 3 [0/0] {32} + ¦ ¦ ¦--expr: 1 [0/1] {34} + ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {33} + ¦ ¦ ¦--'+': + [0/1] {35} + ¦ ¦ °--expr: 3 [0/0] {37} + ¦ ¦ °--NUM_CONST: 3 [0/0] {36} + ¦ °--'}': } [0/0] {38} + ¦--expr: {2 + [1/8] {39} + ¦ ¦--'{': { [0/0] {40} + ¦ ¦--expr: 2 + s [0/0] {41} + ¦ ¦ ¦--expr: 2 [0/1] {43} + ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {42} + ¦ ¦ ¦--'+': + [0/1] {44} + ¦ ¦ °--expr: sin(p [0/0] {45} + ¦ ¦ ¦--expr: sin [0/0] {47} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {46} + ¦ ¦ ¦--'(': ( [0/0] {48} + ¦ ¦ ¦--expr: pi [0/0] {50} + ¦ ¦ ¦ °--SYMBOL: pi [0/0] {49} + ¦ ¦ °--')': ) [0/0] {51} + ¦ °--'}': } [0/0] {52} + ¦--COMMENT: # not [2/6] {53} + °--'}': } [2/0] {54} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R b/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R index e4c5631c4..9ad5a4c06 100644 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R +++ b/tests/testthat/indention_curly_brackets/multi_line_curly_only-out.R @@ -8,10 +8,13 @@ } { + # some additions { 1 + 3 } { 2 + sin(pi) } + + # nothing to see here } diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-in.R b/tests/testthat/indention_round_brackets/arithmetic_start-in.R index 5d7b411f1..22e25bcbf 100644 --- a/tests/testthat/indention_round_brackets/arithmetic_start-in.R +++ b/tests/testthat/indention_round_brackets/arithmetic_start-in.R @@ -8,7 +8,10 @@ 1 + 2 + ( + # the space below is intentional + 3 + 4 + # but the one here isn't ) diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-in_tree b/tests/testthat/indention_round_brackets/arithmetic_start-in_tree index 90e895710..bb349123c 100644 --- a/tests/testthat/indention_round_brackets/arithmetic_start-in_tree +++ b/tests/testthat/indention_round_brackets/arithmetic_start-in_tree @@ -36,11 +36,13 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ °--expr: ( [0/0] {31} ¦ ¦--'(': ( [0/16] {32} - ¦ ¦--expr: 3 + 4 [1/14] {33} - ¦ ¦ ¦--expr: 3 [0/1] {35} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {34} - ¦ ¦ ¦--'+': + [0/1] {36} - ¦ ¦ °--expr: 4 [0/0] {38} - ¦ ¦ °--NUM_CONST: 4 [0/0] {37} - ¦ °--')': ) [3/0] {39} - °--')': ) [1/0] {40} + ¦ ¦--COMMENT: # the [1/16] {33} + ¦ ¦--expr: 3 + 4 [2/16] {34} + ¦ ¦ ¦--expr: 3 [0/1] {36} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {35} + ¦ ¦ ¦--'+': + [0/1] {37} + ¦ ¦ °--expr: 4 [0/0] {39} + ¦ ¦ °--NUM_CONST: 4 [0/0] {38} + ¦ ¦--COMMENT: # but [1/14] {40} + ¦ °--')': ) [3/0] {41} + °--')': ) [1/0] {42} diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-out.R b/tests/testthat/indention_round_brackets/arithmetic_start-out.R index 337db97f2..efaf16e7b 100644 --- a/tests/testthat/indention_round_brackets/arithmetic_start-out.R +++ b/tests/testthat/indention_round_brackets/arithmetic_start-out.R @@ -7,6 +7,9 @@ ( 1 + 2 + ( + # the space below is intentional + 3 + 4 + # but the one here isn't ) ) diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R b/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R index 645dcaaee..bb0f3aca6 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R @@ -55,9 +55,10 @@ x[a ==3 & x[ - + # comments above a ==3 & b == v, + # or below shouldn't be an issue ] diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree index 5f73336d2..3ab82d3d9 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree @@ -296,59 +296,60 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ °--']': ] [0/0] {291} ¦--expr: x[ - - [2/0] {292} + [2/0] {292} ¦ ¦--expr: x [0/0] {294} ¦ ¦ °--SYMBOL: x [0/0] {293} ¦ ¦--'[': [ [0/2] {295} - ¦ ¦--expr: a ==3 [3/0] {296} - ¦ ¦ ¦--expr: a ==3 [0/1] {297} - ¦ ¦ ¦ ¦--expr: a [0/1] {299} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {298} - ¦ ¦ ¦ ¦--EQ: == [0/0] {300} - ¦ ¦ ¦ °--expr: 3 [0/0] {302} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {301} - ¦ ¦ ¦--AND: & [0/4] {303} - ¦ ¦ °--expr: b == [1/0] {304} - ¦ ¦ ¦--expr: b [0/1] {306} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {305} - ¦ ¦ ¦--EQ: == [0/1] {307} - ¦ ¦ °--expr: v [0/0] {309} - ¦ ¦ °--SYMBOL: v [0/0] {308} - ¦ ¦--',': , [0/2] {310} - ¦ °--']': ] [3/0] {311} + ¦ ¦--COMMENT: # com [2/2] {296} + ¦ ¦--expr: a ==3 [1/0] {297} + ¦ ¦ ¦--expr: a ==3 [0/1] {298} + ¦ ¦ ¦ ¦--expr: a [0/1] {300} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {299} + ¦ ¦ ¦ ¦--EQ: == [0/0] {301} + ¦ ¦ ¦ °--expr: 3 [0/0] {303} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {302} + ¦ ¦ ¦--AND: & [0/4] {304} + ¦ ¦ °--expr: b == [1/0] {305} + ¦ ¦ ¦--expr: b [0/1] {307} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {306} + ¦ ¦ ¦--EQ: == [0/1] {308} + ¦ ¦ °--expr: v [0/0] {310} + ¦ ¦ °--SYMBOL: v [0/0] {309} + ¦ ¦--',': , [0/2] {311} + ¦ ¦--COMMENT: # or [1/2] {312} + ¦ °--']': ] [3/0] {313} ¦--expr: x[ - [2/0] {312} - ¦ ¦--expr: x [0/0] {314} - ¦ ¦ °--SYMBOL: x [0/0] {313} - ¦ ¦--'[': [ [0/2] {315} - ¦ ¦--expr: a [2/0] {317} - ¦ ¦ °--SYMBOL: a [0/0] {316} - ¦ ¦--',': , [0/2] {318} - ¦ ¦--expr: b [1/0] {320} - ¦ ¦ °--SYMBOL: b [0/0] {319} - ¦ °--']': ] [1/0] {321} + [2/0] {314} + ¦ ¦--expr: x [0/0] {316} + ¦ ¦ °--SYMBOL: x [0/0] {315} + ¦ ¦--'[': [ [0/2] {317} + ¦ ¦--expr: a [2/0] {319} + ¦ ¦ °--SYMBOL: a [0/0] {318} + ¦ ¦--',': , [0/2] {320} + ¦ ¦--expr: b [1/0] {322} + ¦ ¦ °--SYMBOL: b [0/0] {321} + ¦ °--']': ] [1/0] {323} ¦--expr: x[ - [2/0] {322} - ¦ ¦--expr: x [0/0] {324} - ¦ ¦ °--SYMBOL: x [0/0] {323} - ¦ ¦--'[': [ [0/2] {325} - ¦ ¦--expr: a [1/0] {327} - ¦ ¦ °--SYMBOL: a [0/0] {326} - ¦ ¦--',': , [0/2] {328} - ¦ ¦--expr: b [1/0] {330} - ¦ ¦ °--SYMBOL: b [0/0] {329} - ¦ °--']': ] [2/0] {331} + [2/0] {324} + ¦ ¦--expr: x [0/0] {326} + ¦ ¦ °--SYMBOL: x [0/0] {325} + ¦ ¦--'[': [ [0/2] {327} + ¦ ¦--expr: a [1/0] {329} + ¦ ¦ °--SYMBOL: a [0/0] {328} + ¦ ¦--',': , [0/2] {330} + ¦ ¦--expr: b [1/0] {332} + ¦ ¦ °--SYMBOL: b [0/0] {331} + ¦ °--']': ] [2/0] {333} °--expr: x[ - [2/0] {332} - ¦--expr: x [0/0] {334} - ¦ °--SYMBOL: x [0/0] {333} - ¦--'[': [ [0/2] {335} - ¦--expr: a [2/0] {337} - ¦ °--SYMBOL: a [0/0] {336} - ¦--',': , [0/2] {338} - ¦--expr: b [1/0] {340} - ¦ °--SYMBOL: b [0/0] {339} - °--']': ] [2/0] {341} + [2/0] {334} + ¦--expr: x [0/0] {336} + ¦ °--SYMBOL: x [0/0] {335} + ¦--'[': [ [0/2] {337} + ¦--expr: a [2/0] {339} + ¦ °--SYMBOL: a [0/0] {338} + ¦--',': , [0/2] {340} + ¦--expr: b [1/0] {342} + ¦ °--SYMBOL: b [0/0] {341} + °--']': ] [2/0] {343} diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R b/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R index 112c04b31..a6534d45a 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R @@ -54,8 +54,10 @@ x[a == 3 & b == v, ] x[ + # comments above a == 3 & b == v, + # or below shouldn't be an issue ] x[ diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R index 21225f5f8..02330a9ec 100644 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R +++ b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R @@ -1,6 +1,4 @@ call( - - 1 ) From f973b4b6e148d311a49d1d7ec2628126f2d35163 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert <10477073+lorenzwalthert@users.noreply.github.com> Date: Wed, 8 May 2024 11:22:11 +0200 Subject: [PATCH 111/238] Complete third-party style guide documentation --- vignettes/distribute_custom_style_guides.Rmd | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/vignettes/distribute_custom_style_guides.Rmd b/vignettes/distribute_custom_style_guides.Rmd index 031a13876..c6fd82fe5 100644 --- a/vignettes/distribute_custom_style_guides.Rmd +++ b/vignettes/distribute_custom_style_guides.Rmd @@ -22,15 +22,15 @@ This vignette describes how you can distribute your own style guide. It builds o There are a few packages that implement a third-party style guide that are maintained by styler contributors: -- [lorenzwalthert/styler.nocomments](https://github.com/lorenzwalthert/styler.nocomments) -- [lorenzwalthert/semicoloner](https://github.com/lorenzwalthert/semicoloner) -- [lorenzwalthert/oneliner](https://github.com/lorenzwalthert/oneliner) -- [mlr-org/styler.mlr](https://github.com/mlr-org/styler.mlr) +- [lorenzwalthert/styler.nocomments](https://github.com/lorenzwalthert/styler.nocomments): Drops comments. +- [lorenzwalthert/semicoloner](https://github.com/lorenzwalthert/semicoloner): Puts `;` at the end of liens. +- [lorenzwalthert/oneliner](https://github.com/lorenzwalthert/oneliner): Puts all code on one line. +- [mlr-org/styler.mlr](https://github.com/mlr-org/styler.mlr): Implements mlr's style guide. Other available style guides include: - -- [ropensci-review-tools/spaceout](https://github.com/ropensci-review-tools/spaceout) -- [gadenbuie/grkstyle](https://github.com/gadenbuie/grkstyle) +- [Robinlovelace/styler.equals](https://github.com/Robinlovelace/styler.equals): Tidyverse style but `=` instead of `<-` for assignment. +- [ropensci-review-tools/spaceout](https://github.com/ropensci-review-tools/spaceout): More spaces around braces. +- [gadenbuie/grkstyle](https://github.com/gadenbuie/grkstyle): Styles indention differently and allows to use tabs for it instead of spaces. To start out, you can use the [GitHub Template](https://github.com/lorenzwalthert/styler.yours) for third-party style guides that has already the right directory structure and patterns described below in place. From 853f2ff0eaa4d3e6e382a4011178519bf6f0c2d3 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert <10477073+lorenzwalthert@users.noreply.github.com> Date: Wed, 8 May 2024 11:22:38 +0200 Subject: [PATCH 112/238] Update vignettes/distribute_custom_style_guides.Rmd --- vignettes/distribute_custom_style_guides.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/distribute_custom_style_guides.Rmd b/vignettes/distribute_custom_style_guides.Rmd index c6fd82fe5..45e3a0798 100644 --- a/vignettes/distribute_custom_style_guides.Rmd +++ b/vignettes/distribute_custom_style_guides.Rmd @@ -23,7 +23,7 @@ This vignette describes how you can distribute your own style guide. It builds o There are a few packages that implement a third-party style guide that are maintained by styler contributors: - [lorenzwalthert/styler.nocomments](https://github.com/lorenzwalthert/styler.nocomments): Drops comments. -- [lorenzwalthert/semicoloner](https://github.com/lorenzwalthert/semicoloner): Puts `;` at the end of liens. +- [lorenzwalthert/semicoloner](https://github.com/lorenzwalthert/semicoloner): Puts `;` at the end of lines. - [lorenzwalthert/oneliner](https://github.com/lorenzwalthert/oneliner): Puts all code on one line. - [mlr-org/styler.mlr](https://github.com/mlr-org/styler.mlr): Implements mlr's style guide. From 5d5353e632e468b84bf448e875ec04627fa8fdd5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 8 May 2024 09:27:01 +0000 Subject: [PATCH 113/238] pre-commit --- inst/WORDLIST | 2 ++ 1 file changed, 2 insertions(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index 438af60a2..23a970246 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -111,6 +111,7 @@ mav md MERCHANTABILITY mlr +mlr's mutli Müller navbar @@ -170,6 +171,7 @@ Rmd rnw Rnw roadmap +Robinlovelace roclet roclets ropensci From 87cf5685ef9fed49a5ad60f90a3693492a25ad6e Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 9 May 2024 10:19:37 +0200 Subject: [PATCH 114/238] just create one step and make sure it works as expected --- .github/workflows/check-full.yaml | 15 ++++----------- .gitignore | 1 + 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 0519ed23b..7f0d7ef33 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -27,7 +27,7 @@ jobs: - { os: ubuntu-latest, r: "devel", http-user-agent: "release" } - { os: ubuntu-latest, r: "devel", locale: "en_US" } - #- { os: ubuntu-latest, r: "release", locale: "zh_CN" } + - { os: ubuntu-latest, r: "release", locale: "zh_CN" } - { os: ubuntu-latest, r: "oldrel-1" } - { os: ubuntu-latest, r: "oldrel-2" } - { os: ubuntu-latest, r: "oldrel-3" } @@ -39,16 +39,9 @@ jobs: steps: - name: Set locale - if: matrix.config.locale == 'en_US' - run: | - sudo locale-gen en_US - echo "LC_ALL=en_US" >> $GITHUB_ENV - - - name: Set locale - if: matrix.config.locale == 'zh_CN' - run: | - sudo locale-gen zh_CN - echo "LC_ALL=zh_CN" >> $GITHUB_ENV + env: + OVERRIDE_LOCALE: "${{ matrix.config.locale }}" + run: echo $OVERRIDE_LOCALE >> $GITHUB_ENV - uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index e0d2606ed..dbc2bbd7c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ revdep/ touchstone/* !touchstone/config.json !touchstone/script.R +.vscode From 93718efed0746131cc83413136fd0bdd3cbb53da Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 9 May 2024 08:21:24 +0000 Subject: [PATCH 115/238] pre-commit --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index dbc2bbd7c..b9b86f2c7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ .Rhistory .Rproj.user .gitsum +.vscode Meta R/scratch README.html @@ -16,4 +17,3 @@ revdep/ touchstone/* !touchstone/config.json !touchstone/script.R -.vscode From 15cf8f533c007173aa9b06b13d1a4419e7e4767a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 9 May 2024 10:25:00 +0200 Subject: [PATCH 116/238] fixes set locale step? --- .github/workflows/check-full.yaml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 7f0d7ef33..4a8b64848 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -39,9 +39,14 @@ jobs: steps: - name: Set locale - env: - OVERRIDE_LOCALE: "${{ matrix.config.locale }}" - run: echo $OVERRIDE_LOCALE >> $GITHUB_ENV + run: | + if [ "${{ matrix.config.locale }}" == "en_US" ]; then + sudo locale-gen en_US + echo "LC_ALL=en_US" >> $GITHUB_ENV + elif [ "${{ matrix.config.locale }}" == "zh_CN" ]; then + sudo locale-gen zh_CN + echo "LC_ALL=zh_CN" >> $GITHUB_ENV + fi - uses: actions/checkout@v4 From 9a728df8dfeadc940745e42edae535e06dcd1fbc Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 9 May 2024 10:36:26 +0200 Subject: [PATCH 117/238] also cover the case when locale is missing --- .github/workflows/check-full.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 4a8b64848..36a788509 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -40,7 +40,7 @@ jobs: steps: - name: Set locale run: | - if [ "${{ matrix.config.locale }}" == "en_US" ]; then + if [ -z "${{ matrix.config.locale }}" ] || [ "${{ matrix.config.locale }}" == "en_US" ]; then sudo locale-gen en_US echo "LC_ALL=en_US" >> $GITHUB_ENV elif [ "${{ matrix.config.locale }}" == "zh_CN" ]; then From bdc911ea4e8b8ffa79b6efe598de96045430244f Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 9 May 2024 10:39:46 +0200 Subject: [PATCH 118/238] fall back to the working solution --- .github/workflows/check-full.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 36a788509..98d6815ac 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -38,15 +38,17 @@ jobs: R_KEEP_PKG_SOURCE: yes steps: - - name: Set locale + - name: Set 'en_US' locale + if: matrix.config.locale == 'en_US' run: | - if [ -z "${{ matrix.config.locale }}" ] || [ "${{ matrix.config.locale }}" == "en_US" ]; then - sudo locale-gen en_US - echo "LC_ALL=en_US" >> $GITHUB_ENV - elif [ "${{ matrix.config.locale }}" == "zh_CN" ]; then - sudo locale-gen zh_CN - echo "LC_ALL=zh_CN" >> $GITHUB_ENV - fi + sudo locale-gen en_US + echo "LC_ALL=en_US" >> $GITHUB_ENV + + - name: Set 'zh_CN' locale + if: matrix.config.locale == 'zh_CN' + run: | + sudo locale-gen zh_CN + echo "LC_ALL=zh_CN" >> $GITHUB_ENV - uses: actions/checkout@v4 From 83de14c74663dc929cd9156948b07c1717330f47 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 9 May 2024 10:45:01 +0200 Subject: [PATCH 119/238] comment out chinese locale --- .github/workflows/check-full.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index 98d6815ac..d36be307c 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -27,7 +27,7 @@ jobs: - { os: ubuntu-latest, r: "devel", http-user-agent: "release" } - { os: ubuntu-latest, r: "devel", locale: "en_US" } - - { os: ubuntu-latest, r: "release", locale: "zh_CN" } + #- { os: ubuntu-latest, r: "release", locale: "zh_CN" } - { os: ubuntu-latest, r: "oldrel-1" } - { os: ubuntu-latest, r: "oldrel-2" } - { os: ubuntu-latest, r: "oldrel-3" } From 2df29fb5dd61011d8daa2c5d55521322d5ce2562 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 13:28:00 +0200 Subject: [PATCH 120/238] create new transformers for removing empty lines --- R/rules-line-breaks.R | 27 ++++++++++++++++++++++++- R/rules-spaces.R | 8 -------- R/style-guides.R | 4 +++- tests/testthat/test-transformers-drop.R | 4 +++- 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 5c6f3345b..e77792369 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -244,7 +244,7 @@ remove_line_breaks_in_fun_dec <- function(pd) { pd } -#' + add_line_break_after_pipe <- function(pd) { is_pipe <- pd$token %in% c("SPECIAL-PIPE", "PIPE") pd$lag_newlines[lag(is_pipe) & pd$lag_newlines > 1L] <- 1L @@ -417,3 +417,28 @@ set_line_break_after_ggplot2_plus <- function(pd) { } pd } + + +remove_empty_line_after_opening_braces <- function(pd) { + opening_braces <- c("'('", "'['", "LBB") + paren_after <- pd$token %in% opening_braces + if (!any(paren_after)) { + return(pd) + } + pd$lag_newlines[ + lag(pd$token %in% opening_braces) & pd$lag_newlines > 1L + ] <- 1L + pd +} + +remove_empty_line_before_closing_braces <- function(pd) { + closing_braces <- c("')'", "']'", "RBB") + paren_before <- pd$token %in% closing_braces + if (!any(paren_before)) { + return(pd) + } + pd$lag_newlines[ + pd$token %in% closing_braces & pd$lag_newlines > 1L + ] <- 1L + pd +} diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 77ecd4878..b0857f337 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -146,10 +146,6 @@ remove_space_after_opening_paren <- function(pd_flat) { if (!any(paren_after)) { return(pd_flat) } - # remove blank lines after opening braces - pd_flat$lag_newlines[ - lag(pd_flat$token %in% braces) & pd_flat$lag_newlines > 1L - ] <- 1L pd_flat$spaces[paren_after & (pd_flat$newlines == 0L)] <- 0L pd_flat } @@ -160,10 +156,6 @@ remove_space_before_closing_paren <- function(pd_flat) { if (!any(paren_after)) { return(pd_flat) } - # remove blank lines before closing braces - pd_flat$lag_newlines[ - pd_flat$token %in% braces & pd_flat$lag_newlines > 1L - ] <- 1L paren_before <- lead(paren_after, default = FALSE) pd_flat$spaces[paren_before & (pd_flat$newlines == 0L)] <- 0L pd_flat diff --git a/R/style-guides.R b/R/style-guides.R index 735e6a1f5..815ad1cfe 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -166,7 +166,9 @@ tidyverse_style <- function(scope = "tokens", add_line_break_after_pipe = if (strict) add_line_break_after_pipe, set_line_break_after_ggplot2_plus = if (strict) { set_line_break_after_ggplot2_plus - } + }, + remove_empty_line_after_opening_braces = remove_empty_line_after_opening_braces, + remove_empty_line_before_closing_braces = remove_empty_line_before_closing_braces ) } diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index f3d5731fe..8f57790f0 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -76,7 +76,9 @@ test_that("tidyverse transformers are correctly dropped", { "set_line_break_after_opening_if_call_is_multi_line", "set_line_break_before_closing_call", "remove_line_break_in_fun_call", - "set_line_break_after_ggplot2_plus" + "set_line_break_after_ggplot2_plus", + "remove_empty_line_after_opening_braces", + "remove_empty_line_before_closing_braces" ) expect_setequal(names(t_fun$line_break), names_line_break) From e0e2ed4d6e8e4b06c6bded34876fe71882108a8a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 13:31:46 +0200 Subject: [PATCH 121/238] better naming --- R/rules-line-breaks.R | 4 ++-- R/rules-spaces.R | 11 ++++++----- R/style-guides.R | 4 ++-- tests/testthat/test-transformers-drop.R | 4 ++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index e77792369..6b0dcc34d 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -419,7 +419,7 @@ set_line_break_after_ggplot2_plus <- function(pd) { } -remove_empty_line_after_opening_braces <- function(pd) { +remove_empty_lines_after_opening_braces <- function(pd) { opening_braces <- c("'('", "'['", "LBB") paren_after <- pd$token %in% opening_braces if (!any(paren_after)) { @@ -431,7 +431,7 @@ remove_empty_line_after_opening_braces <- function(pd) { pd } -remove_empty_line_before_closing_braces <- function(pd) { +remove_empty_lines_before_closing_braces <- function(pd) { closing_braces <- c("')'", "']'", "RBB") paren_before <- pd$token %in% closing_braces if (!any(paren_before)) { diff --git a/R/rules-spaces.R b/R/rules-spaces.R index b0857f337..c96584d6c 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -131,7 +131,8 @@ remove_space_after_unary_pm_nested <- function(pd) { } remove_space_before_opening_paren <- function(pd_flat) { - paren_after <- pd_flat$token %in% c("'('", "'['", "LBB") + opening_braces <- c("'('", "'['", "LBB") + paren_after <- pd_flat$token %in% opening_braces if (!any(paren_after)) { return(pd_flat) } @@ -141,8 +142,8 @@ remove_space_before_opening_paren <- function(pd_flat) { } remove_space_after_opening_paren <- function(pd_flat) { - braces <- c("'('", "'['", "LBB") - paren_after <- pd_flat$token %in% braces + opening_braces <- c("'('", "'['", "LBB") + paren_after <- pd_flat$token %in% opening_braces if (!any(paren_after)) { return(pd_flat) } @@ -151,8 +152,8 @@ remove_space_after_opening_paren <- function(pd_flat) { } remove_space_before_closing_paren <- function(pd_flat) { - braces <- c("')'", "']'") - paren_after <- pd_flat$token %in% braces + closing_braces <- c("')'", "']'") + paren_after <- pd_flat$token %in% closing_braces if (!any(paren_after)) { return(pd_flat) } diff --git a/R/style-guides.R b/R/style-guides.R index 815ad1cfe..2b83ab0c2 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -167,8 +167,8 @@ tidyverse_style <- function(scope = "tokens", set_line_break_after_ggplot2_plus = if (strict) { set_line_break_after_ggplot2_plus }, - remove_empty_line_after_opening_braces = remove_empty_line_after_opening_braces, - remove_empty_line_before_closing_braces = remove_empty_line_before_closing_braces + remove_empty_lines_after_opening_braces = remove_empty_lines_after_opening_braces, + remove_empty_lines_before_closing_braces = remove_empty_lines_before_closing_braces ) } diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index 8f57790f0..e9709d260 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -77,8 +77,8 @@ test_that("tidyverse transformers are correctly dropped", { "set_line_break_before_closing_call", "remove_line_break_in_fun_call", "set_line_break_after_ggplot2_plus", - "remove_empty_line_after_opening_braces", - "remove_empty_line_before_closing_braces" + "remove_empty_lines_after_opening_braces", + "remove_empty_lines_before_closing_braces" ) expect_setequal(names(t_fun$line_break), names_line_break) From 226615d2bf9c2e7afeb4b74c116554d99349623a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 13:42:54 +0200 Subject: [PATCH 122/238] add tests with pipes --- .../base-pipe-line-breaks-in.R | 12 + .../base-pipe-line-breaks-in_tree | 929 +++++++++--------- .../base-pipe-line-breaks-out.R | 8 + .../testthat/line_breaks_and_other/comma-in.R | 11 + .../line_breaks_and_other/comma-in_tree | 117 ++- .../line_breaks_and_other/comma-out.R | 8 + 6 files changed, 586 insertions(+), 499 deletions(-) diff --git a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in.R b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in.R index 880f22cf0..641e72d52 100644 --- a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in.R +++ b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in.R @@ -82,6 +82,18 @@ blew(y = 2, x |> {a |> c() +1} +{ + + ( + + # some comment + + a |> c() + 1 + + ) + +} + b |> f() |> # never move comment to next line as it can be styler: off or nolint k() |> diff --git a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree index c685ecc97..f70d57412 100644 --- a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree +++ b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree @@ -1,465 +1,488 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: c(a | [0/0] {1} - ¦ ¦--expr: c [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: a |> [0/0] {5} - ¦ ¦ ¦--expr: a [0/1] {7} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {6} - ¦ ¦ ¦--PIPE: |> [0/1] {8} - ¦ ¦ °--expr: b() [0/0] {9} - ¦ ¦ ¦--expr: b [0/0] {11} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {10} - ¦ ¦ ¦--'(': ( [0/0] {12} - ¦ ¦ °--')': ) [0/0] {13} - ¦ °--')': ) [0/0] {14} - ¦--expr: c(a + [2/0] {15} - ¦ ¦--expr: c [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {16} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--expr: a + b [0/0] {19} - ¦ ¦ ¦--expr: a [0/1] {21} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {20} - ¦ ¦ ¦--'+': + [0/1] {22} - ¦ ¦ ¦--expr: b [0/1] {25} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {24} - ¦ ¦ ¦--PIPE: |> [0/1] {26} - ¦ ¦ °--expr: c() [0/0] {27} - ¦ ¦ ¦--expr: c [0/0] {29} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {28} - ¦ ¦ ¦--'(': ( [0/0] {30} - ¦ ¦ °--')': ) [0/0] {31} - ¦ °--')': ) [0/0] {32} - ¦--expr: c(a | [3/0] {33} - ¦ ¦--expr: c [0/0] {35} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {34} - ¦ ¦--'(': ( [0/0] {36} - ¦ ¦--expr: a |> [0/0] {37} - ¦ ¦ ¦--expr: a [0/1] {39} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {38} - ¦ ¦ ¦--PIPE: |> [0/1] {40} - ¦ ¦ °--expr: b() [0/0] {41} - ¦ ¦ ¦--expr: b [0/0] {43} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {42} - ¦ ¦ ¦--'(': ( [0/0] {44} - ¦ ¦ °--')': ) [0/0] {45} - ¦ °--')': ) [1/0] {46} - ¦--expr: c(a | [2/0] {47} - ¦ ¦--expr: c [0/0] {49} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {48} - ¦ ¦--'(': ( [0/0] {50} - ¦ ¦--expr: a |> [0/1] {51} - ¦ ¦ ¦--expr: a [0/1] {53} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {52} - ¦ ¦ ¦--PIPE: |> [0/1] {54} - ¦ ¦ °--expr: b() [0/0] {55} - ¦ ¦ ¦--expr: b [0/0] {57} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {56} - ¦ ¦ ¦--'(': ( [0/0] {58} - ¦ ¦ °--')': ) [0/0] {59} - ¦ ¦--COMMENT: # 33 [0/0] {60} - ¦ °--')': ) [1/0] {61} +ROOT (token: short_text [lag_newlines/spaces] {pos_id}) + ¦--expr: c(a | [0/0] {1} + ¦ ¦--expr: c [0/0] {3} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} + ¦ ¦--'(': ( [0/0] {4} + ¦ ¦--expr: a |> [0/0] {5} + ¦ ¦ ¦--expr: a [0/1] {7} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {6} + ¦ ¦ ¦--PIPE: |> [0/1] {8} + ¦ ¦ °--expr: b() [0/0] {9} + ¦ ¦ ¦--expr: b [0/0] {11} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {10} + ¦ ¦ ¦--'(': ( [0/0] {12} + ¦ ¦ °--')': ) [0/0] {13} + ¦ °--')': ) [0/0] {14} + ¦--expr: c(a + [2/0] {15} + ¦ ¦--expr: c [0/0] {17} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {16} + ¦ ¦--'(': ( [0/0] {18} + ¦ ¦--expr: a + b [0/0] {19} + ¦ ¦ ¦--expr: a [0/1] {21} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {20} + ¦ ¦ ¦--'+': + [0/1] {22} + ¦ ¦ ¦--expr: b [0/1] {25} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {24} + ¦ ¦ ¦--PIPE: |> [0/1] {26} + ¦ ¦ °--expr: c() [0/0] {27} + ¦ ¦ ¦--expr: c [0/0] {29} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {28} + ¦ ¦ ¦--'(': ( [0/0] {30} + ¦ ¦ °--')': ) [0/0] {31} + ¦ °--')': ) [0/0] {32} + ¦--expr: c(a | [3/0] {33} + ¦ ¦--expr: c [0/0] {35} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {34} + ¦ ¦--'(': ( [0/0] {36} + ¦ ¦--expr: a |> [0/0] {37} + ¦ ¦ ¦--expr: a [0/1] {39} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {38} + ¦ ¦ ¦--PIPE: |> [0/1] {40} + ¦ ¦ °--expr: b() [0/0] {41} + ¦ ¦ ¦--expr: b [0/0] {43} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {42} + ¦ ¦ ¦--'(': ( [0/0] {44} + ¦ ¦ °--')': ) [0/0] {45} + ¦ °--')': ) [1/0] {46} + ¦--expr: c(a | [2/0] {47} + ¦ ¦--expr: c [0/0] {49} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {48} + ¦ ¦--'(': ( [0/0] {50} + ¦ ¦--expr: a |> [0/1] {51} + ¦ ¦ ¦--expr: a [0/1] {53} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {52} + ¦ ¦ ¦--PIPE: |> [0/1] {54} + ¦ ¦ °--expr: b() [0/0] {55} + ¦ ¦ ¦--expr: b [0/0] {57} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {56} + ¦ ¦ ¦--'(': ( [0/0] {58} + ¦ ¦ °--')': ) [0/0] {59} + ¦ ¦--COMMENT: # 33 [0/0] {60} + ¦ °--')': ) [1/0] {61} ¦--expr: c( - [2/0] {62} - ¦ ¦--expr: c [0/0] {64} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {63} - ¦ ¦--'(': ( [0/2] {65} - ¦ ¦--expr: a + b [1/2] {66} - ¦ ¦ ¦--expr: a [0/1] {68} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {67} - ¦ ¦ ¦--'+': + [0/1] {69} - ¦ ¦ ¦--expr: b [0/1] {72} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {71} - ¦ ¦ ¦--PIPE: |> [0/1] {73} - ¦ ¦ °--expr: c() [0/0] {74} - ¦ ¦ ¦--expr: c [0/0] {76} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {75} - ¦ ¦ ¦--'(': ( [0/0] {77} - ¦ ¦ °--')': ) [0/0] {78} - ¦ °--')': ) [1/0] {79} + [2/0] {62} + ¦ ¦--expr: c [0/0] {64} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {63} + ¦ ¦--'(': ( [0/2] {65} + ¦ ¦--expr: a + b [1/2] {66} + ¦ ¦ ¦--expr: a [0/1] {68} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {67} + ¦ ¦ ¦--'+': + [0/1] {69} + ¦ ¦ ¦--expr: b [0/1] {72} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {71} + ¦ ¦ ¦--PIPE: |> [0/1] {73} + ¦ ¦ °--expr: c() [0/0] {74} + ¦ ¦ ¦--expr: c [0/0] {76} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {75} + ¦ ¦ ¦--'(': ( [0/0] {77} + ¦ ¦ °--')': ) [0/0] {78} + ¦ °--')': ) [1/0] {79} ¦--expr: c( - [2/0] {80} - ¦ ¦--expr: c [0/0] {82} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {81} - ¦ ¦--'(': ( [0/2] {83} - ¦ ¦--expr: a + b [1/0] {84} - ¦ ¦ ¦--expr: a [0/1] {86} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {85} - ¦ ¦ ¦--'+': + [0/1] {87} - ¦ ¦ ¦--expr: b [0/1] {90} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {89} - ¦ ¦ ¦--PIPE: |> [0/4] {91} - ¦ ¦ °--expr: c() [1/0] {92} - ¦ ¦ ¦--expr: c [0/0] {94} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {93} - ¦ ¦ ¦--'(': ( [0/0] {95} - ¦ ¦ °--')': ) [0/0] {96} - ¦ °--')': ) [0/0] {97} - ¦--expr: c(a + [2/0] {98} - ¦ ¦--expr: c [0/0] {100} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {99} - ¦ ¦--'(': ( [0/0] {101} - ¦ ¦--expr: a + b [0/0] {102} - ¦ ¦ ¦--expr: a [0/1] {104} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {103} - ¦ ¦ ¦--'+': + [0/1] {105} - ¦ ¦ ¦--expr: b [0/1] {108} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {107} - ¦ ¦ ¦--PIPE: |> [0/4] {109} - ¦ ¦ °--expr: c() [1/0] {110} - ¦ ¦ ¦--expr: c [0/0] {112} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {111} - ¦ ¦ ¦--'(': ( [0/0] {113} - ¦ ¦ °--')': ) [0/0] {114} - ¦ °--')': ) [1/0] {115} + [2/0] {80} + ¦ ¦--expr: c [0/0] {82} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {81} + ¦ ¦--'(': ( [0/2] {83} + ¦ ¦--expr: a + b [1/0] {84} + ¦ ¦ ¦--expr: a [0/1] {86} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {85} + ¦ ¦ ¦--'+': + [0/1] {87} + ¦ ¦ ¦--expr: b [0/1] {90} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {89} + ¦ ¦ ¦--PIPE: |> [0/4] {91} + ¦ ¦ °--expr: c() [1/0] {92} + ¦ ¦ ¦--expr: c [0/0] {94} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {93} + ¦ ¦ ¦--'(': ( [0/0] {95} + ¦ ¦ °--')': ) [0/0] {96} + ¦ °--')': ) [0/0] {97} + ¦--expr: c(a + [2/0] {98} + ¦ ¦--expr: c [0/0] {100} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {99} + ¦ ¦--'(': ( [0/0] {101} + ¦ ¦--expr: a + b [0/0] {102} + ¦ ¦ ¦--expr: a [0/1] {104} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {103} + ¦ ¦ ¦--'+': + [0/1] {105} + ¦ ¦ ¦--expr: b [0/1] {108} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {107} + ¦ ¦ ¦--PIPE: |> [0/4] {109} + ¦ ¦ °--expr: c() [1/0] {110} + ¦ ¦ ¦--expr: c [0/0] {112} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {111} + ¦ ¦ ¦--'(': ( [0/0] {113} + ¦ ¦ °--')': ) [0/0] {114} + ¦ °--')': ) [1/0] {115} ¦--expr: c( - [2/0] {116} - ¦ ¦--expr: c [0/0] {118} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {117} - ¦ ¦--'(': ( [0/2] {119} - ¦ ¦--expr: a + b [1/0] {120} - ¦ ¦ ¦--expr: a [0/1] {122} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {121} - ¦ ¦ ¦--'+': + [0/1] {123} - ¦ ¦ ¦--expr: b [0/1] {126} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {125} - ¦ ¦ ¦--PIPE: |> [0/1] {127} - ¦ ¦ ¦--COMMENT: # 654 [0/4] {128} - ¦ ¦ °--expr: c() [1/0] {129} - ¦ ¦ ¦--expr: c [0/0] {131} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {130} - ¦ ¦ ¦--'(': ( [0/0] {132} - ¦ ¦ °--')': ) [0/0] {133} - ¦ °--')': ) [1/0] {134} - ¦--expr: c( # [2/0] {135} - ¦ ¦--expr: c [0/0] {137} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {136} - ¦ ¦--'(': ( [0/1] {138} - ¦ ¦--COMMENT: # rr [0/2] {139} - ¦ ¦--expr: a + b [1/0] {140} - ¦ ¦ ¦--expr: a [0/1] {142} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {141} - ¦ ¦ ¦--'+': + [0/1] {143} - ¦ ¦ ¦--expr: b [0/1] {146} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {145} - ¦ ¦ ¦--PIPE: |> [0/4] {147} - ¦ ¦ °--expr: c() [1/0] {148} - ¦ ¦ ¦--expr: c [0/0] {150} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {149} - ¦ ¦ ¦--'(': ( [0/0] {151} - ¦ ¦ °--')': ) [0/0] {152} - ¦ °--')': ) [1/0] {153} + [2/0] {116} + ¦ ¦--expr: c [0/0] {118} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {117} + ¦ ¦--'(': ( [0/2] {119} + ¦ ¦--expr: a + b [1/0] {120} + ¦ ¦ ¦--expr: a [0/1] {122} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {121} + ¦ ¦ ¦--'+': + [0/1] {123} + ¦ ¦ ¦--expr: b [0/1] {126} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {125} + ¦ ¦ ¦--PIPE: |> [0/1] {127} + ¦ ¦ ¦--COMMENT: # 654 [0/4] {128} + ¦ ¦ °--expr: c() [1/0] {129} + ¦ ¦ ¦--expr: c [0/0] {131} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {130} + ¦ ¦ ¦--'(': ( [0/0] {132} + ¦ ¦ °--')': ) [0/0] {133} + ¦ °--')': ) [1/0] {134} + ¦--expr: c( # [2/0] {135} + ¦ ¦--expr: c [0/0] {137} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {136} + ¦ ¦--'(': ( [0/1] {138} + ¦ ¦--COMMENT: # rr [0/2] {139} + ¦ ¦--expr: a + b [1/0] {140} + ¦ ¦ ¦--expr: a [0/1] {142} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {141} + ¦ ¦ ¦--'+': + [0/1] {143} + ¦ ¦ ¦--expr: b [0/1] {146} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {145} + ¦ ¦ ¦--PIPE: |> [0/4] {147} + ¦ ¦ °--expr: c() [1/0] {148} + ¦ ¦ ¦--expr: c [0/0] {150} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {149} + ¦ ¦ ¦--'(': ( [0/0] {151} + ¦ ¦ °--')': ) [0/0] {152} + ¦ °--')': ) [1/0] {153} ¦--expr: c( - [2/0] {154} - ¦ ¦--expr: c [0/0] {156} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {155} - ¦ ¦--'(': ( [0/2] {157} + [2/0] {154} + ¦ ¦--expr: c [0/0] {156} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {155} + ¦ ¦--'(': ( [0/2] {157} ¦ ¦--expr: a + - [1/0] {158} - ¦ ¦ ¦--expr: a [0/1] {160} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {159} - ¦ ¦ ¦--'+': + [0/4] {161} - ¦ ¦ ¦--expr: b [1/1] {164} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {163} - ¦ ¦ ¦--PIPE: |> [0/1] {165} - ¦ ¦ °--expr: c() [0/0] {166} - ¦ ¦ ¦--expr: c [0/0] {168} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {167} - ¦ ¦ ¦--'(': ( [0/0] {169} - ¦ ¦ °--')': ) [0/0] {170} - ¦ °--')': ) [1/0] {171} - ¦--expr: c(a + [2/0] {172} - ¦ ¦--expr: c [0/0] {174} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {173} - ¦ ¦--'(': ( [0/0] {175} + [1/0] {158} + ¦ ¦ ¦--expr: a [0/1] {160} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {159} + ¦ ¦ ¦--'+': + [0/4] {161} + ¦ ¦ ¦--expr: b [1/1] {164} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {163} + ¦ ¦ ¦--PIPE: |> [0/1] {165} + ¦ ¦ °--expr: c() [0/0] {166} + ¦ ¦ ¦--expr: c [0/0] {168} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {167} + ¦ ¦ ¦--'(': ( [0/0] {169} + ¦ ¦ °--')': ) [0/0] {170} + ¦ °--')': ) [1/0] {171} + ¦--expr: c(a + [2/0] {172} + ¦ ¦--expr: c [0/0] {174} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {173} + ¦ ¦--'(': ( [0/0] {175} ¦ ¦--expr: a + - [0/0] {176} - ¦ ¦ ¦--expr: a [0/1] {178} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {177} - ¦ ¦ ¦--'+': + [0/4] {179} - ¦ ¦ ¦--expr: b [1/1] {182} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {181} - ¦ ¦ ¦--PIPE: |> [0/1] {183} - ¦ ¦ °--expr: c() [0/0] {184} - ¦ ¦ ¦--expr: c [0/0] {186} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {185} - ¦ ¦ ¦--'(': ( [0/0] {187} - ¦ ¦ °--')': ) [0/0] {188} - ¦ °--')': ) [1/0] {189} - ¦--expr: a |> [2/0] {190} - ¦ ¦--expr: a [0/1] {192} - ¦ ¦ °--SYMBOL: a [0/0] {191} - ¦ ¦--PIPE: |> [0/1] {193} + [0/0] {176} + ¦ ¦ ¦--expr: a [0/1] {178} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {177} + ¦ ¦ ¦--'+': + [0/4] {179} + ¦ ¦ ¦--expr: b [1/1] {182} + ¦ ¦ ¦ °--SYMBOL: b [0/0] {181} + ¦ ¦ ¦--PIPE: |> [0/1] {183} + ¦ ¦ °--expr: c() [0/0] {184} + ¦ ¦ ¦--expr: c [0/0] {186} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {185} + ¦ ¦ ¦--'(': ( [0/0] {187} + ¦ ¦ °--')': ) [0/0] {188} + ¦ °--')': ) [1/0] {189} + ¦--expr: a |> [2/0] {190} + ¦ ¦--expr: a [0/1] {192} + ¦ ¦ °--SYMBOL: a [0/0] {191} + ¦ ¦--PIPE: |> [0/1] {193} ¦ °--expr: b( -) [0/0] {194} - ¦ ¦--expr: b [0/0] {196} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {195} - ¦ ¦--'(': ( [0/0] {197} - ¦ °--')': ) [1/0] {198} - ¦--expr: a |> [2/0] {199} - ¦ ¦--expr: a [0/1] {202} - ¦ ¦ °--SYMBOL: a [0/0] {201} - ¦ ¦--PIPE: |> [0/1] {203} +) [0/0] {194} + ¦ ¦--expr: b [0/0] {196} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {195} + ¦ ¦--'(': ( [0/0] {197} + ¦ °--')': ) [1/0] {198} + ¦--expr: a |> [2/0] {199} + ¦ ¦--expr: a [0/1] {202} + ¦ ¦ °--SYMBOL: a [0/0] {201} + ¦ ¦--PIPE: |> [0/1] {203} ¦ ¦--expr: b( -) [0/1] {204} - ¦ ¦ ¦--expr: b [0/0] {206} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {205} - ¦ ¦ ¦--'(': ( [0/0] {207} - ¦ ¦ °--')': ) [1/0] {208} - ¦ ¦--PIPE: |> [0/1] {209} - ¦ °--expr: q() [0/0] {210} - ¦ ¦--expr: q [0/0] {212} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {211} - ¦ ¦--'(': ( [0/0] {213} - ¦ °--')': ) [0/0] {214} +) [0/1] {204} + ¦ ¦ ¦--expr: b [0/0] {206} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {205} + ¦ ¦ ¦--'(': ( [0/0] {207} + ¦ ¦ °--')': ) [1/0] {208} + ¦ ¦--PIPE: |> [0/1] {209} + ¦ °--expr: q() [0/0] {210} + ¦ ¦--expr: q [0/0] {212} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {211} + ¦ ¦--'(': ( [0/0] {213} + ¦ °--')': ) [0/0] {214} ¦--expr: a |> - [2/0] {215} - ¦ ¦--expr: a [0/1] {217} - ¦ ¦ °--SYMBOL: a [0/0] {216} - ¦ ¦--PIPE: |> [0/2] {218} - ¦ °--expr: b() [1/0] {219} - ¦ ¦--expr: b [0/0] {221} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {220} - ¦ ¦--'(': ( [0/0] {222} - ¦ °--')': ) [0/0] {223} - ¦--expr: a |> [2/0] {224} - ¦ ¦--expr: a [0/1] {227} - ¦ ¦ °--SYMBOL: a [0/0] {226} - ¦ ¦--PIPE: |> [0/1] {228} - ¦ ¦--expr: b() [0/1] {229} - ¦ ¦ ¦--expr: b [0/0] {231} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {230} - ¦ ¦ ¦--'(': ( [0/0] {232} - ¦ ¦ °--')': ) [0/0] {233} - ¦ ¦--PIPE: |> [0/1] {234} - ¦ °--expr: c() [0/0] {235} - ¦ ¦--expr: c [0/0] {237} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {236} - ¦ ¦--'(': ( [0/0] {238} - ¦ °--')': ) [0/0] {239} - ¦--COMMENT: # sho [2/0] {240} - ¦--expr: a |> [1/0] {241} - ¦ ¦--expr: a [0/1] {243} - ¦ ¦ °--SYMBOL: a [0/0] {242} - ¦ ¦--PIPE: |> [0/1] {244} - ¦ °--expr: b() [0/0] {245} - ¦ ¦--expr: b [0/0] {247} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {246} - ¦ ¦--'(': ( [0/0] {248} - ¦ °--')': ) [0/0] {249} - ¦--expr: fun(x [2/0] {250} - ¦ ¦--expr: fun [0/0] {252} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {251} - ¦ ¦--'(': ( [0/0] {253} - ¦ ¦--expr: x [0/0] {255} - ¦ ¦ °--SYMBOL: x [0/0] {254} - ¦ ¦--',': , [0/2] {256} - ¦ ¦--expr: a |> [1/0] {257} - ¦ ¦ ¦--expr: a [0/1] {259} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {258} - ¦ ¦ ¦--PIPE: |> [0/1] {260} - ¦ ¦ °--expr: b() [0/0] {261} - ¦ ¦ ¦--expr: b [0/0] {263} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {262} - ¦ ¦ ¦--'(': ( [0/0] {264} - ¦ ¦ °--')': ) [0/0] {265} - ¦ °--')': ) [0/0] {266} - ¦--expr: fun(x [2/0] {267} - ¦ ¦--expr: fun [0/0] {269} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {268} - ¦ ¦--'(': ( [0/0] {270} - ¦ ¦--expr: x [0/0] {272} - ¦ ¦ °--SYMBOL: x [0/0] {271} - ¦ ¦--',': , [0/4] {273} - ¦ ¦--SYMBOL_SUB: gg [1/1] {274} - ¦ ¦--EQ_SUB: = [0/1] {275} - ¦ ¦--expr: a |> [0/0] {276} - ¦ ¦ ¦--expr: a [0/1] {278} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {277} - ¦ ¦ ¦--PIPE: |> [0/1] {279} - ¦ ¦ °--expr: b() [0/0] {280} - ¦ ¦ ¦--expr: b [0/0] {282} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {281} - ¦ ¦ ¦--'(': ( [0/0] {283} - ¦ ¦ °--')': ) [0/0] {284} - ¦ ¦--',': , [0/4] {285} - ¦ ¦--expr: tt |> [1/0] {286} - ¦ ¦ ¦--expr: tt [0/1] {288} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {287} - ¦ ¦ ¦--PIPE: |> [0/1] {289} - ¦ ¦ °--expr: q() [0/0] {290} - ¦ ¦ ¦--expr: q [0/0] {292} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {291} - ¦ ¦ ¦--'(': ( [0/0] {293} - ¦ ¦ °--')': ) [0/0] {294} - ¦ °--')': ) [0/0] {295} - ¦--expr: fun(x [2/0] {296} - ¦ ¦--expr: fun [0/0] {298} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {297} - ¦ ¦--'(': ( [0/0] {299} - ¦ ¦--expr: x [0/0] {301} - ¦ ¦ °--SYMBOL: x [0/0] {300} - ¦ ¦--',': , [0/1] {302} - ¦ ¦--SYMBOL_SUB: gg [0/1] {303} - ¦ ¦--EQ_SUB: = [0/1] {304} - ¦ ¦--expr: a |> [0/0] {305} - ¦ ¦ ¦--expr: a [0/1] {307} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {306} - ¦ ¦ ¦--PIPE: |> [0/1] {308} - ¦ ¦ °--expr: b() [0/0] {309} - ¦ ¦ ¦--expr: b [0/0] {311} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {310} - ¦ ¦ ¦--'(': ( [0/0] {312} - ¦ ¦ °--')': ) [0/0] {313} - ¦ ¦--',': , [0/1] {314} - ¦ ¦--expr: tt |> [0/0] {315} - ¦ ¦ ¦--expr: tt [0/1] {317} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {316} - ¦ ¦ ¦--PIPE: |> [0/1] {318} - ¦ ¦ °--expr: q() [0/0] {319} - ¦ ¦ ¦--expr: q [0/0] {321} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {320} - ¦ ¦ ¦--'(': ( [0/0] {322} - ¦ ¦ °--')': ) [0/0] {323} - ¦ °--')': ) [0/0] {324} - ¦--expr_or_assign_or_help: z = a [2/0] {325} - ¦ ¦--expr: z [0/1] {327} - ¦ ¦ °--SYMBOL: z [0/0] {326} - ¦ ¦--EQ_ASSIGN: = [0/1] {328} - ¦ ¦--expr: a [0/1] {331} - ¦ ¦ °--SYMBOL: a [0/0] {330} - ¦ ¦--PIPE: |> [0/1] {332} - ¦ °--expr: b() [0/0] {333} - ¦ ¦--expr: b [0/0] {335} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {334} - ¦ ¦--'(': ( [0/0] {336} - ¦ °--')': ) [0/0] {337} - ¦--expr: fun( [2/0] {338} - ¦ ¦--expr: fun [0/0] {340} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {339} - ¦ ¦--'(': ( [0/1] {341} - ¦ ¦--SYMBOL_SUB: s [0/1] {342} - ¦ ¦--EQ_SUB: = [0/1] {343} - ¦ ¦--expr: g(x) [0/0] {344} - ¦ ¦ ¦--expr: g [0/0] {346} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {345} - ¦ ¦ ¦--'(': ( [0/0] {347} - ¦ ¦ ¦--expr: x [0/0] {349} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {348} - ¦ ¦ °--')': ) [0/0] {350} - ¦ ¦--',': , [0/4] {351} - ¦ ¦--SYMBOL_SUB: gg [1/1] {352} - ¦ ¦--EQ_SUB: = [0/1] {353} - ¦ ¦--expr: a(n = [0/0] {354} - ¦ ¦ ¦--expr: a(n = [0/1] {355} - ¦ ¦ ¦ ¦--expr: a [0/0] {357} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {356} - ¦ ¦ ¦ ¦--'(': ( [0/0] {358} - ¦ ¦ ¦ ¦--expr: n == [0/0] {359} - ¦ ¦ ¦ ¦ ¦--expr: n [0/1] {361} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: n [0/0] {360} - ¦ ¦ ¦ ¦ ¦--EQ: == [0/1] {362} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {364} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {363} - ¦ ¦ ¦ °--')': ) [0/0] {365} - ¦ ¦ ¦--PIPE: |> [0/1] {366} - ¦ ¦ °--expr: b() [0/0] {367} - ¦ ¦ ¦--expr: b [0/0] {369} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {368} - ¦ ¦ ¦--'(': ( [0/0] {370} - ¦ ¦ °--')': ) [0/0] {371} - ¦ ¦--',': , [0/4] {372} - ¦ ¦--expr: tt |> [1/0] {373} - ¦ ¦ ¦--expr: tt [0/1] {375} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {374} - ¦ ¦ ¦--PIPE: |> [0/1] {376} - ¦ ¦ °--expr: q(r = [0/0] {377} - ¦ ¦ ¦--expr: q [0/0] {379} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {378} - ¦ ¦ ¦--'(': ( [0/0] {380} - ¦ ¦ ¦--SYMBOL_SUB: r [0/1] {381} - ¦ ¦ ¦--EQ_SUB: = [0/1] {382} - ¦ ¦ ¦--expr: 3 [0/0] {384} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {383} - ¦ ¦ °--')': ) [0/0] {385} - ¦ °--')': ) [0/0] {386} - ¦--COMMENT: # FIX [2/0] {387} - ¦--expr: blew( [1/0] {388} - ¦ ¦--expr: blew [0/0] {390} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {389} - ¦ ¦--'(': ( [0/0] {391} + [2/0] {215} + ¦ ¦--expr: a [0/1] {217} + ¦ ¦ °--SYMBOL: a [0/0] {216} + ¦ ¦--PIPE: |> [0/2] {218} + ¦ °--expr: b() [1/0] {219} + ¦ ¦--expr: b [0/0] {221} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {220} + ¦ ¦--'(': ( [0/0] {222} + ¦ °--')': ) [0/0] {223} + ¦--expr: a |> [2/0] {224} + ¦ ¦--expr: a [0/1] {227} + ¦ ¦ °--SYMBOL: a [0/0] {226} + ¦ ¦--PIPE: |> [0/1] {228} + ¦ ¦--expr: b() [0/1] {229} + ¦ ¦ ¦--expr: b [0/0] {231} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {230} + ¦ ¦ ¦--'(': ( [0/0] {232} + ¦ ¦ °--')': ) [0/0] {233} + ¦ ¦--PIPE: |> [0/1] {234} + ¦ °--expr: c() [0/0] {235} + ¦ ¦--expr: c [0/0] {237} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {236} + ¦ ¦--'(': ( [0/0] {238} + ¦ °--')': ) [0/0] {239} + ¦--COMMENT: # sho [2/0] {240} + ¦--expr: a |> [1/0] {241} + ¦ ¦--expr: a [0/1] {243} + ¦ ¦ °--SYMBOL: a [0/0] {242} + ¦ ¦--PIPE: |> [0/1] {244} + ¦ °--expr: b() [0/0] {245} + ¦ ¦--expr: b [0/0] {247} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {246} + ¦ ¦--'(': ( [0/0] {248} + ¦ °--')': ) [0/0] {249} + ¦--expr: fun(x [2/0] {250} + ¦ ¦--expr: fun [0/0] {252} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {251} + ¦ ¦--'(': ( [0/0] {253} + ¦ ¦--expr: x [0/0] {255} + ¦ ¦ °--SYMBOL: x [0/0] {254} + ¦ ¦--',': , [0/2] {256} + ¦ ¦--expr: a |> [1/0] {257} + ¦ ¦ ¦--expr: a [0/1] {259} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {258} + ¦ ¦ ¦--PIPE: |> [0/1] {260} + ¦ ¦ °--expr: b() [0/0] {261} + ¦ ¦ ¦--expr: b [0/0] {263} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {262} + ¦ ¦ ¦--'(': ( [0/0] {264} + ¦ ¦ °--')': ) [0/0] {265} + ¦ °--')': ) [0/0] {266} + ¦--expr: fun(x [2/0] {267} + ¦ ¦--expr: fun [0/0] {269} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {268} + ¦ ¦--'(': ( [0/0] {270} + ¦ ¦--expr: x [0/0] {272} + ¦ ¦ °--SYMBOL: x [0/0] {271} + ¦ ¦--',': , [0/4] {273} + ¦ ¦--SYMBOL_SUB: gg [1/1] {274} + ¦ ¦--EQ_SUB: = [0/1] {275} + ¦ ¦--expr: a |> [0/0] {276} + ¦ ¦ ¦--expr: a [0/1] {278} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {277} + ¦ ¦ ¦--PIPE: |> [0/1] {279} + ¦ ¦ °--expr: b() [0/0] {280} + ¦ ¦ ¦--expr: b [0/0] {282} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {281} + ¦ ¦ ¦--'(': ( [0/0] {283} + ¦ ¦ °--')': ) [0/0] {284} + ¦ ¦--',': , [0/4] {285} + ¦ ¦--expr: tt |> [1/0] {286} + ¦ ¦ ¦--expr: tt [0/1] {288} + ¦ ¦ ¦ °--SYMBOL: tt [0/0] {287} + ¦ ¦ ¦--PIPE: |> [0/1] {289} + ¦ ¦ °--expr: q() [0/0] {290} + ¦ ¦ ¦--expr: q [0/0] {292} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {291} + ¦ ¦ ¦--'(': ( [0/0] {293} + ¦ ¦ °--')': ) [0/0] {294} + ¦ °--')': ) [0/0] {295} + ¦--expr: fun(x [2/0] {296} + ¦ ¦--expr: fun [0/0] {298} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {297} + ¦ ¦--'(': ( [0/0] {299} + ¦ ¦--expr: x [0/0] {301} + ¦ ¦ °--SYMBOL: x [0/0] {300} + ¦ ¦--',': , [0/1] {302} + ¦ ¦--SYMBOL_SUB: gg [0/1] {303} + ¦ ¦--EQ_SUB: = [0/1] {304} + ¦ ¦--expr: a |> [0/0] {305} + ¦ ¦ ¦--expr: a [0/1] {307} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {306} + ¦ ¦ ¦--PIPE: |> [0/1] {308} + ¦ ¦ °--expr: b() [0/0] {309} + ¦ ¦ ¦--expr: b [0/0] {311} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {310} + ¦ ¦ ¦--'(': ( [0/0] {312} + ¦ ¦ °--')': ) [0/0] {313} + ¦ ¦--',': , [0/1] {314} + ¦ ¦--expr: tt |> [0/0] {315} + ¦ ¦ ¦--expr: tt [0/1] {317} + ¦ ¦ ¦ °--SYMBOL: tt [0/0] {316} + ¦ ¦ ¦--PIPE: |> [0/1] {318} + ¦ ¦ °--expr: q() [0/0] {319} + ¦ ¦ ¦--expr: q [0/0] {321} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {320} + ¦ ¦ ¦--'(': ( [0/0] {322} + ¦ ¦ °--')': ) [0/0] {323} + ¦ °--')': ) [0/0] {324} + ¦--expr_or_assign_or_help: z = a [2/0] {325} + ¦ ¦--expr: z [0/1] {327} + ¦ ¦ °--SYMBOL: z [0/0] {326} + ¦ ¦--EQ_ASSIGN: = [0/1] {328} + ¦ ¦--expr: a [0/1] {331} + ¦ ¦ °--SYMBOL: a [0/0] {330} + ¦ ¦--PIPE: |> [0/1] {332} + ¦ °--expr: b() [0/0] {333} + ¦ ¦--expr: b [0/0] {335} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {334} + ¦ ¦--'(': ( [0/0] {336} + ¦ °--')': ) [0/0] {337} + ¦--expr: fun( [2/0] {338} + ¦ ¦--expr: fun [0/0] {340} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {339} + ¦ ¦--'(': ( [0/1] {341} + ¦ ¦--SYMBOL_SUB: s [0/1] {342} + ¦ ¦--EQ_SUB: = [0/1] {343} + ¦ ¦--expr: g(x) [0/0] {344} + ¦ ¦ ¦--expr: g [0/0] {346} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {345} + ¦ ¦ ¦--'(': ( [0/0] {347} + ¦ ¦ ¦--expr: x [0/0] {349} + ¦ ¦ ¦ °--SYMBOL: x [0/0] {348} + ¦ ¦ °--')': ) [0/0] {350} + ¦ ¦--',': , [0/4] {351} + ¦ ¦--SYMBOL_SUB: gg [1/1] {352} + ¦ ¦--EQ_SUB: = [0/1] {353} + ¦ ¦--expr: a(n = [0/0] {354} + ¦ ¦ ¦--expr: a(n = [0/1] {355} + ¦ ¦ ¦ ¦--expr: a [0/0] {357} + ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {356} + ¦ ¦ ¦ ¦--'(': ( [0/0] {358} + ¦ ¦ ¦ ¦--expr: n == [0/0] {359} + ¦ ¦ ¦ ¦ ¦--expr: n [0/1] {361} + ¦ ¦ ¦ ¦ ¦ °--SYMBOL: n [0/0] {360} + ¦ ¦ ¦ ¦ ¦--EQ: == [0/1] {362} + ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {364} + ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {363} + ¦ ¦ ¦ °--')': ) [0/0] {365} + ¦ ¦ ¦--PIPE: |> [0/1] {366} + ¦ ¦ °--expr: b() [0/0] {367} + ¦ ¦ ¦--expr: b [0/0] {369} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {368} + ¦ ¦ ¦--'(': ( [0/0] {370} + ¦ ¦ °--')': ) [0/0] {371} + ¦ ¦--',': , [0/4] {372} + ¦ ¦--expr: tt |> [1/0] {373} + ¦ ¦ ¦--expr: tt [0/1] {375} + ¦ ¦ ¦ °--SYMBOL: tt [0/0] {374} + ¦ ¦ ¦--PIPE: |> [0/1] {376} + ¦ ¦ °--expr: q(r = [0/0] {377} + ¦ ¦ ¦--expr: q [0/0] {379} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {378} + ¦ ¦ ¦--'(': ( [0/0] {380} + ¦ ¦ ¦--SYMBOL_SUB: r [0/1] {381} + ¦ ¦ ¦--EQ_SUB: = [0/1] {382} + ¦ ¦ ¦--expr: 3 [0/0] {384} + ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {383} + ¦ ¦ °--')': ) [0/0] {385} + ¦ °--')': ) [0/0] {386} + ¦--COMMENT: # FIX [2/0] {387} + ¦--expr: blew( [1/0] {388} + ¦ ¦--expr: blew [0/0] {390} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {389} + ¦ ¦--'(': ( [0/0] {391} ¦ ¦--expr: x |> - [0/0] {392} - ¦ ¦ ¦--expr: x [0/1] {394} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {393} - ¦ ¦ ¦--PIPE: |> [0/7] {395} - ¦ ¦ °--expr: c() [2/0] {396} - ¦ ¦ ¦--expr: c [0/0] {398} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {397} - ¦ ¦ ¦--'(': ( [0/0] {399} - ¦ ¦ °--')': ) [0/0] {400} - ¦ ¦--',': , [0/1] {401} - ¦ ¦--SYMBOL_SUB: y [0/1] {402} - ¦ ¦--EQ_SUB: = [0/1] {403} - ¦ ¦--expr: 2 [0/0] {405} - ¦ ¦ °--NUM_CONST: 2 [0/0] {404} - ¦ °--')': ) [0/0] {406} - ¦--COMMENT: # FIX [2/0] {407} - ¦--expr: blew( [1/0] {408} - ¦ ¦--expr: blew [0/0] {410} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {409} - ¦ ¦--'(': ( [0/0] {411} - ¦ ¦--SYMBOL_SUB: y [0/1] {412} - ¦ ¦--EQ_SUB: = [0/1] {413} - ¦ ¦--expr: 2 [0/0] {415} - ¦ ¦ °--NUM_CONST: 2 [0/0] {414} - ¦ ¦--',': , [0/1] {416} + [0/0] {392} + ¦ ¦ ¦--expr: x [0/1] {394} + ¦ ¦ ¦ °--SYMBOL: x [0/0] {393} + ¦ ¦ ¦--PIPE: |> [0/7] {395} + ¦ ¦ °--expr: c() [2/0] {396} + ¦ ¦ ¦--expr: c [0/0] {398} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {397} + ¦ ¦ ¦--'(': ( [0/0] {399} + ¦ ¦ °--')': ) [0/0] {400} + ¦ ¦--',': , [0/1] {401} + ¦ ¦--SYMBOL_SUB: y [0/1] {402} + ¦ ¦--EQ_SUB: = [0/1] {403} + ¦ ¦--expr: 2 [0/0] {405} + ¦ ¦ °--NUM_CONST: 2 [0/0] {404} + ¦ °--')': ) [0/0] {406} + ¦--COMMENT: # FIX [2/0] {407} + ¦--expr: blew( [1/0] {408} + ¦ ¦--expr: blew [0/0] {410} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {409} + ¦ ¦--'(': ( [0/0] {411} + ¦ ¦--SYMBOL_SUB: y [0/1] {412} + ¦ ¦--EQ_SUB: = [0/1] {413} + ¦ ¦--expr: 2 [0/0] {415} + ¦ ¦ °--NUM_CONST: 2 [0/0] {414} + ¦ ¦--',': , [0/1] {416} ¦ ¦--expr: x |> - [0/0] {417} - ¦ ¦ ¦--expr: x [0/1] {419} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {418} - ¦ ¦ ¦--PIPE: |> [0/7] {420} - ¦ ¦ °--expr: c() [1/0] {421} - ¦ ¦ ¦--expr: c [0/0] {423} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {422} - ¦ ¦ ¦--'(': ( [0/0] {424} - ¦ ¦ °--')': ) [0/0] {425} - ¦ °--')': ) [0/0] {426} - ¦--expr: {a |> [3/0] {427} - ¦ ¦--'{': { [0/0] {428} - ¦ ¦--expr: a |> [0/0] {429} - ¦ ¦ ¦--expr: a [0/1] {432} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {431} - ¦ ¦ ¦--PIPE: |> [0/1] {433} - ¦ ¦ ¦--expr: c() [0/1] {434} - ¦ ¦ ¦ ¦--expr: c [0/0] {436} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {435} - ¦ ¦ ¦ ¦--'(': ( [0/0] {437} - ¦ ¦ ¦ °--')': ) [0/0] {438} - ¦ ¦ ¦--'+': + [0/0] {439} - ¦ ¦ °--expr: 1 [0/0] {441} - ¦ ¦ °--NUM_CONST: 1 [0/0] {440} - ¦ °--'}': } [0/0] {442} + [0/0] {417} + ¦ ¦ ¦--expr: x [0/1] {419} + ¦ ¦ ¦ °--SYMBOL: x [0/0] {418} + ¦ ¦ ¦--PIPE: |> [0/7] {420} + ¦ ¦ °--expr: c() [1/0] {421} + ¦ ¦ ¦--expr: c [0/0] {423} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {422} + ¦ ¦ ¦--'(': ( [0/0] {424} + ¦ ¦ °--')': ) [0/0] {425} + ¦ °--')': ) [0/0] {426} + ¦--expr: {a |> [3/0] {427} + ¦ ¦--'{': { [0/0] {428} + ¦ ¦--expr: a |> [0/0] {429} + ¦ ¦ ¦--expr: a [0/1] {432} + ¦ ¦ ¦ °--SYMBOL: a [0/0] {431} + ¦ ¦ ¦--PIPE: |> [0/1] {433} + ¦ ¦ ¦--expr: c() [0/1] {434} + ¦ ¦ ¦ ¦--expr: c [0/0] {436} + ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {435} + ¦ ¦ ¦ ¦--'(': ( [0/0] {437} + ¦ ¦ ¦ °--')': ) [0/0] {438} + ¦ ¦ ¦--'+': + [0/0] {439} + ¦ ¦ °--expr: 1 [0/0] {441} + ¦ ¦ °--NUM_CONST: 1 [0/0] {440} + ¦ °--'}': } [0/0] {442} + ¦--expr: { + + [2/0] {443} + ¦ ¦--'{': { [0/2] {444} + ¦ ¦--expr: ( + + [2/0] {445} + ¦ ¦ ¦--'(': ( [0/4] {446} + ¦ ¦ ¦--COMMENT: # som [2/4] {447} + ¦ ¦ ¦--expr: a |> [2/2] {448} + ¦ ¦ ¦ ¦--expr: a [0/1] {451} + ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {450} + ¦ ¦ ¦ ¦--PIPE: |> [0/1] {452} + ¦ ¦ ¦ ¦--expr: c() [0/1] {453} + ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {455} + ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {454} + ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {456} + ¦ ¦ ¦ ¦ °--')': ) [0/0] {457} + ¦ ¦ ¦ ¦--'+': + [0/1] {458} + ¦ ¦ ¦ °--expr: 1 [0/0] {460} + ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {459} + ¦ ¦ °--')': ) [2/0] {461} + ¦ °--'}': } [2/0] {462} °--expr: b |> - [2/0] {443} - ¦--expr: b [0/1] {447} - ¦ °--SYMBOL: b [0/0] {446} - ¦--PIPE: |> [0/2] {448} - ¦--expr: f() [1/1] {449} - ¦ ¦--expr: f [0/0] {451} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {450} - ¦ ¦--'(': ( [0/0] {452} - ¦ °--')': ) [0/0] {453} - ¦--PIPE: |> [0/1] {454} - ¦--COMMENT: # nev [0/2] {455} - ¦--expr: k() [1/1] {456} - ¦ ¦--expr: k [0/0] {458} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {457} - ¦ ¦--'(': ( [0/0] {459} - ¦ °--')': ) [0/0] {460} - ¦--PIPE: |> [0/2] {461} - °--expr: x() [1/0] {462} - ¦--expr: x [0/0] {464} - ¦ °--SYMBOL_FUNCTION_CALL: x [0/0] {463} - ¦--'(': ( [0/0] {465} - °--')': ) [0/0] {466} + [2/0] {463} + ¦--expr: b [0/1] {467} + ¦ °--SYMBOL: b [0/0] {466} + ¦--PIPE: |> [0/2] {468} + ¦--expr: f() [1/1] {469} + ¦ ¦--expr: f [0/0] {471} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {470} + ¦ ¦--'(': ( [0/0] {472} + ¦ °--')': ) [0/0] {473} + ¦--PIPE: |> [0/1] {474} + ¦--COMMENT: # nev [0/2] {475} + ¦--expr: k() [1/1] {476} + ¦ ¦--expr: k [0/0] {478} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {477} + ¦ ¦--'(': ( [0/0] {479} + ¦ °--')': ) [0/0] {480} + ¦--PIPE: |> [0/2] {481} + °--expr: x() [1/0] {482} + ¦--expr: x [0/0] {484} + ¦ °--SYMBOL_FUNCTION_CALL: x [0/0] {483} + ¦--'(': ( [0/0] {485} + °--')': ) [0/0] {486} diff --git a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-out.R b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-out.R index 0fd45f0b5..346e0303c 100644 --- a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-out.R +++ b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-out.R @@ -88,6 +88,14 @@ blew(y = 2, x |> a |> c() + 1 } +{ + ( + # some comment + + a |> c() + 1 + ) +} + b |> f() |> # never move comment to next line as it can be styler: off or nolint k() |> diff --git a/tests/testthat/line_breaks_and_other/comma-in.R b/tests/testthat/line_breaks_and_other/comma-in.R index dba179386..de95104b9 100644 --- a/tests/testthat/line_breaks_and_other/comma-in.R +++ b/tests/testthat/line_breaks_and_other/comma-in.R @@ -18,3 +18,14 @@ mpg %>% , avg_hwy = mean(hwy) , n = n() , n_class = n_distinct(class)) + + +1:4 %>% { + + + ( + + . + 1 + ) + +} diff --git a/tests/testthat/line_breaks_and_other/comma-in_tree b/tests/testthat/line_breaks_and_other/comma-in_tree index 92771fe7c..9aad5df49 100644 --- a/tests/testthat/line_breaks_and_other/comma-in_tree +++ b/tests/testthat/line_breaks_and_other/comma-in_tree @@ -49,49 +49,74 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ ¦ °--SYMBOL: a [0/0] {47} ¦ ¦--',': , [1/0] {49} ¦ °--')': ) [0/0] {50} - °--expr: mpg % [2/0] {51} - ¦--expr: mpg [0/1] {53} - ¦ °--SYMBOL: mpg [0/0] {52} - ¦--SPECIAL-PIPE: %>% [0/4] {54} - °--expr: summa [1/0] {55} - ¦--expr: summa [0/0] {57} - ¦ °--SYMBOL_FUNCTION_CALL: summa [0/0] {56} - ¦--'(': ( [0/0] {58} - ¦--SYMBOL_SUB: avg_c [0/1] {59} - ¦--EQ_SUB: = [0/1] {60} - ¦--expr: mean( [0/0] {61} - ¦ ¦--expr: mean [0/0] {63} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {62} - ¦ ¦--'(': ( [0/0] {64} - ¦ ¦--expr: cty [0/0] {66} - ¦ ¦ °--SYMBOL: cty [0/0] {65} - ¦ °--')': ) [0/0] {67} - ¦--',': , [1/1] {68} - ¦--SYMBOL_SUB: avg_h [0/1] {69} - ¦--EQ_SUB: = [0/1] {70} - ¦--expr: mean( [0/0] {71} - ¦ ¦--expr: mean [0/0] {73} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {72} - ¦ ¦--'(': ( [0/0] {74} - ¦ ¦--expr: hwy [0/0] {76} - ¦ ¦ °--SYMBOL: hwy [0/0] {75} - ¦ °--')': ) [0/0] {77} - ¦--',': , [1/1] {78} - ¦--SYMBOL_SUB: n [0/1] {79} - ¦--EQ_SUB: = [0/1] {80} - ¦--expr: n() [0/0] {81} - ¦ ¦--expr: n [0/0] {83} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {82} - ¦ ¦--'(': ( [0/0] {84} - ¦ °--')': ) [0/0] {85} - ¦--',': , [1/1] {86} - ¦--SYMBOL_SUB: n_cla [0/1] {87} - ¦--EQ_SUB: = [0/1] {88} - ¦--expr: n_dis [0/0] {89} - ¦ ¦--expr: n_dis [0/0] {91} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: n_dis [0/0] {90} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--expr: class [0/0] {94} - ¦ ¦ °--SYMBOL: class [0/0] {93} - ¦ °--')': ) [0/0] {95} - °--')': ) [0/0] {96} + ¦--expr: mpg % [2/0] {51} + ¦ ¦--expr: mpg [0/1] {53} + ¦ ¦ °--SYMBOL: mpg [0/0] {52} + ¦ ¦--SPECIAL-PIPE: %>% [0/4] {54} + ¦ °--expr: summa [1/0] {55} + ¦ ¦--expr: summa [0/0] {57} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: summa [0/0] {56} + ¦ ¦--'(': ( [0/0] {58} + ¦ ¦--SYMBOL_SUB: avg_c [0/1] {59} + ¦ ¦--EQ_SUB: = [0/1] {60} + ¦ ¦--expr: mean( [0/0] {61} + ¦ ¦ ¦--expr: mean [0/0] {63} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {62} + ¦ ¦ ¦--'(': ( [0/0] {64} + ¦ ¦ ¦--expr: cty [0/0] {66} + ¦ ¦ ¦ °--SYMBOL: cty [0/0] {65} + ¦ ¦ °--')': ) [0/0] {67} + ¦ ¦--',': , [1/1] {68} + ¦ ¦--SYMBOL_SUB: avg_h [0/1] {69} + ¦ ¦--EQ_SUB: = [0/1] {70} + ¦ ¦--expr: mean( [0/0] {71} + ¦ ¦ ¦--expr: mean [0/0] {73} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {72} + ¦ ¦ ¦--'(': ( [0/0] {74} + ¦ ¦ ¦--expr: hwy [0/0] {76} + ¦ ¦ ¦ °--SYMBOL: hwy [0/0] {75} + ¦ ¦ °--')': ) [0/0] {77} + ¦ ¦--',': , [1/1] {78} + ¦ ¦--SYMBOL_SUB: n [0/1] {79} + ¦ ¦--EQ_SUB: = [0/1] {80} + ¦ ¦--expr: n() [0/0] {81} + ¦ ¦ ¦--expr: n [0/0] {83} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {82} + ¦ ¦ ¦--'(': ( [0/0] {84} + ¦ ¦ °--')': ) [0/0] {85} + ¦ ¦--',': , [1/1] {86} + ¦ ¦--SYMBOL_SUB: n_cla [0/1] {87} + ¦ ¦--EQ_SUB: = [0/1] {88} + ¦ ¦--expr: n_dis [0/0] {89} + ¦ ¦ ¦--expr: n_dis [0/0] {91} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: n_dis [0/0] {90} + ¦ ¦ ¦--'(': ( [0/0] {92} + ¦ ¦ ¦--expr: class [0/0] {94} + ¦ ¦ ¦ °--SYMBOL: class [0/0] {93} + ¦ ¦ °--')': ) [0/0] {95} + ¦ °--')': ) [0/0] {96} + °--expr: 1:4 % [3/0] {97} + ¦--expr: 1:4 [0/1] {98} + ¦ ¦--expr: 1 [0/0] {100} + ¦ ¦ °--NUM_CONST: 1 [0/0] {99} + ¦ ¦--':': : [0/0] {101} + ¦ °--expr: 4 [0/0] {103} + ¦ °--NUM_CONST: 4 [0/0] {102} + ¦--SPECIAL-PIPE: %>% [0/1] {104} + °--expr: { + + + [0/0] {105} + ¦--'{': { [0/4] {106} + ¦--expr: ( + + [3/0] {107} + ¦ ¦--'(': ( [0/8] {108} + ¦ ¦--expr: . + 1 [2/4] {109} + ¦ ¦ ¦--expr: . [0/1] {111} + ¦ ¦ ¦ °--SYMBOL: . [0/0] {110} + ¦ ¦ ¦--'+': + [0/1] {112} + ¦ ¦ °--expr: 1 [0/0] {114} + ¦ ¦ °--NUM_CONST: 1 [0/0] {113} + ¦ °--')': ) [1/0] {115} + °--'}': } [2/0] {116} diff --git a/tests/testthat/line_breaks_and_other/comma-out.R b/tests/testthat/line_breaks_and_other/comma-out.R index 826ef5d41..14842c18e 100644 --- a/tests/testthat/line_breaks_and_other/comma-out.R +++ b/tests/testthat/line_breaks_and_other/comma-out.R @@ -21,3 +21,11 @@ mpg %>% n = n(), n_class = n_distinct(class) ) + + +1:4 %>% + { + ( + . + 1 + ) + } From 0d67987791e44f2ebdc67ecd31b9e3420eea0be6 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 13:52:27 +0200 Subject: [PATCH 123/238] also add tests for roxygen comments --- .../13-empty-lines-in.R | 10 + .../13-empty-lines-in_tree | 190 +++++++++--------- .../13-empty-lines-out.R | 10 +- 3 files changed, 117 insertions(+), 93 deletions(-) diff --git a/tests/testthat/roxygen-examples-complete/13-empty-lines-in.R b/tests/testthat/roxygen-examples-complete/13-empty-lines-in.R index e1ab00834..1af04bba3 100644 --- a/tests/testthat/roxygen-examples-complete/13-empty-lines-in.R +++ b/tests/testthat/roxygen-examples-complete/13-empty-lines-in.R @@ -12,17 +12,27 @@ #' #' #' +#' ( +#' +#' #' # more #' a <- 3 +#' +#' ) #' # a comment #' \dontrun{ +#' { +#' #' x #' +#' } +#' #' y # hi #' #' # more #' #' a <- 3 +#' #' } #' @importFrom purrr compact #' @export diff --git a/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree b/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree index b511569eb..f16a8469d 100644 --- a/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree +++ b/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree @@ -12,109 +12,119 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦--COMMENT: #' [1/0] {11} ¦--COMMENT: #' [1/0] {12} ¦--COMMENT: #' [1/0] {13} - ¦--COMMENT: #' # [1/0] {14} - ¦--COMMENT: #' a [1/0] {15} - ¦--COMMENT: #' # [1/0] {16} - ¦--COMMENT: #' \d [1/0] {17} - ¦--COMMENT: #' x [1/0] {18} + ¦--COMMENT: #' ( [1/0] {14} + ¦--COMMENT: #' [1/0] {15} + ¦--COMMENT: #' [1/0] {16} + ¦--COMMENT: #' # [1/0] {17} + ¦--COMMENT: #' a [1/0] {18} ¦--COMMENT: #' [1/0] {19} - ¦--COMMENT: #' y [1/0] {20} - ¦--COMMENT: #' [1/0] {21} - ¦--COMMENT: #' # [1/0] {22} - ¦--COMMENT: #' [1/0] {23} - ¦--COMMENT: #' a [1/0] {24} - ¦--COMMENT: #' } [1/0] {25} - ¦--COMMENT: #' @i [1/0] {26} - ¦--COMMENT: #' @e [1/0] {27} - °--expr: creat [1/0] {28} - ¦--expr: creat [0/1] {30} - ¦ °--SYMBOL: creat [0/0] {29} - ¦--LEFT_ASSIGN: <- [0/1] {31} - °--expr: funct [0/0] {32} - ¦--FUNCTION: funct [0/0] {33} - ¦--'(': ( [0/0] {34} - ¦--SYMBOL_FORMALS: initi [0/1] {35} - ¦--EQ_FORMALS: = [0/1] {36} - ¦--expr: defau [0/0] {38} - ¦ °--SYMBOL: defau [0/0] {37} - ¦--',': , [0/31] {39} - ¦--SYMBOL_FORMALS: line_ [1/1] {40} - ¦--EQ_FORMALS: = [0/1] {41} - ¦--expr: NULL [0/0] {43} - ¦ °--NULL_CONST: NULL [0/0] {42} - ¦--',': , [0/31] {44} - ¦--SYMBOL_FORMALS: space [1/1] {45} + ¦--COMMENT: #' ) [1/0] {20} + ¦--COMMENT: #' # [1/0] {21} + ¦--COMMENT: #' \d [1/0] {22} + ¦--COMMENT: #' { [1/0] {23} + ¦--COMMENT: #' [1/0] {24} + ¦--COMMENT: #' x [1/0] {25} + ¦--COMMENT: #' [1/0] {26} + ¦--COMMENT: #' } [1/0] {27} + ¦--COMMENT: #' [1/0] {28} + ¦--COMMENT: #' y [1/0] {29} + ¦--COMMENT: #' [1/0] {30} + ¦--COMMENT: #' # [1/0] {31} + ¦--COMMENT: #' [1/0] {32} + ¦--COMMENT: #' a [1/0] {33} + ¦--COMMENT: #' [1/0] {34} + ¦--COMMENT: #' } [1/0] {35} + ¦--COMMENT: #' @i [1/0] {36} + ¦--COMMENT: #' @e [1/0] {37} + °--expr: creat [1/0] {38} + ¦--expr: creat [0/1] {40} + ¦ °--SYMBOL: creat [0/0] {39} + ¦--LEFT_ASSIGN: <- [0/1] {41} + °--expr: funct [0/0] {42} + ¦--FUNCTION: funct [0/0] {43} + ¦--'(': ( [0/0] {44} + ¦--SYMBOL_FORMALS: initi [0/1] {45} ¦--EQ_FORMALS: = [0/1] {46} - ¦--expr: NULL [0/0] {48} - ¦ °--NULL_CONST: NULL [0/0] {47} + ¦--expr: defau [0/0] {48} + ¦ °--SYMBOL: defau [0/0] {47} ¦--',': , [0/31] {49} - ¦--SYMBOL_FORMALS: token [1/1] {50} + ¦--SYMBOL_FORMALS: line_ [1/1] {50} ¦--EQ_FORMALS: = [0/1] {51} ¦--expr: NULL [0/0] {53} ¦ °--NULL_CONST: NULL [0/0] {52} ¦--',': , [0/31] {54} - ¦--SYMBOL_FORMALS: inden [1/1] {55} + ¦--SYMBOL_FORMALS: space [1/1] {55} ¦--EQ_FORMALS: = [0/1] {56} ¦--expr: NULL [0/0] {58} ¦ °--NULL_CONST: NULL [0/0] {57} ¦--',': , [0/31] {59} - ¦--SYMBOL_FORMALS: use_r [1/1] {60} + ¦--SYMBOL_FORMALS: token [1/1] {60} ¦--EQ_FORMALS: = [0/1] {61} - ¦--expr: FALSE [0/0] {63} - ¦ °--NUM_CONST: FALSE [0/0] {62} + ¦--expr: NULL [0/0] {63} + ¦ °--NULL_CONST: NULL [0/0] {62} ¦--',': , [0/31] {64} - ¦--SYMBOL_FORMALS: reind [1/1] {65} + ¦--SYMBOL_FORMALS: inden [1/1] {65} ¦--EQ_FORMALS: = [0/1] {66} - ¦--expr: tidyv [0/0] {67} - ¦ ¦--expr: tidyv [0/0] {69} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tidyv [0/0] {68} - ¦ ¦--'(': ( [0/0] {70} - ¦ °--')': ) [0/0] {71} - ¦--')': ) [0/1] {72} + ¦--expr: NULL [0/0] {68} + ¦ °--NULL_CONST: NULL [0/0] {67} + ¦--',': , [0/31] {69} + ¦--SYMBOL_FORMALS: use_r [1/1] {70} + ¦--EQ_FORMALS: = [0/1] {71} + ¦--expr: FALSE [0/0] {73} + ¦ °--NUM_CONST: FALSE [0/0] {72} + ¦--',': , [0/31] {74} + ¦--SYMBOL_FORMALS: reind [1/1] {75} + ¦--EQ_FORMALS: = [0/1] {76} + ¦--expr: tidyv [0/0] {77} + ¦ ¦--expr: tidyv [0/0] {79} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: tidyv [0/0] {78} + ¦ ¦--'(': ( [0/0] {80} + ¦ °--')': ) [0/0] {81} + ¦--')': ) [0/1] {82} °--expr: { - l [0/0] {73} - ¦--'{': { [0/2] {74} - ¦--expr: list( [1/0] {75} - ¦ ¦--expr: list( [0/1] {76} - ¦ ¦ ¦--expr: list [0/0] {78} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {77} - ¦ ¦ ¦--'(': ( [0/4] {79} - ¦ ¦ ¦--COMMENT: # tra [1/4] {80} - ¦ ¦ ¦--SYMBOL_SUB: initi [1/1] {81} - ¦ ¦ ¦--EQ_SUB: = [0/1] {82} - ¦ ¦ ¦--expr: list( [0/0] {83} - ¦ ¦ ¦ ¦--expr: list [0/0] {85} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {84} - ¦ ¦ ¦ ¦--'(': ( [0/0] {86} - ¦ ¦ ¦ ¦--expr: initi [0/0] {88} - ¦ ¦ ¦ ¦ °--SYMBOL: initi [0/0] {87} - ¦ ¦ ¦ °--')': ) [0/0] {89} - ¦ ¦ ¦--',': , [0/4] {90} - ¦ ¦ ¦--expr: line_ [1/0] {92} - ¦ ¦ ¦ °--SYMBOL: line_ [0/0] {91} - ¦ ¦ ¦--',': , [0/4] {93} - ¦ ¦ ¦--expr: space [1/0] {95} - ¦ ¦ ¦ °--SYMBOL: space [0/0] {94} - ¦ ¦ ¦--',': , [0/4] {96} - ¦ ¦ ¦--expr: token [1/0] {98} - ¦ ¦ ¦ °--SYMBOL: token [0/0] {97} - ¦ ¦ ¦--',': , [0/4] {99} - ¦ ¦ ¦--expr: inden [1/0] {101} - ¦ ¦ ¦ °--SYMBOL: inden [0/0] {100} - ¦ ¦ ¦--',': , [0/4] {102} - ¦ ¦ ¦--COMMENT: # tra [1/4] {103} - ¦ ¦ ¦--expr: use_r [1/0] {105} - ¦ ¦ ¦ °--SYMBOL: use_r [0/0] {104} + l [0/0] {83} + ¦--'{': { [0/2] {84} + ¦--expr: list( [1/0] {85} + ¦ ¦--expr: list( [0/1] {86} + ¦ ¦ ¦--expr: list [0/0] {88} + ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {87} + ¦ ¦ ¦--'(': ( [0/4] {89} + ¦ ¦ ¦--COMMENT: # tra [1/4] {90} + ¦ ¦ ¦--SYMBOL_SUB: initi [1/1] {91} + ¦ ¦ ¦--EQ_SUB: = [0/1] {92} + ¦ ¦ ¦--expr: list( [0/0] {93} + ¦ ¦ ¦ ¦--expr: list [0/0] {95} + ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {94} + ¦ ¦ ¦ ¦--'(': ( [0/0] {96} + ¦ ¦ ¦ ¦--expr: initi [0/0] {98} + ¦ ¦ ¦ ¦ °--SYMBOL: initi [0/0] {97} + ¦ ¦ ¦ °--')': ) [0/0] {99} + ¦ ¦ ¦--',': , [0/4] {100} + ¦ ¦ ¦--expr: line_ [1/0] {102} + ¦ ¦ ¦ °--SYMBOL: line_ [0/0] {101} + ¦ ¦ ¦--',': , [0/4] {103} + ¦ ¦ ¦--expr: space [1/0] {105} + ¦ ¦ ¦ °--SYMBOL: space [0/0] {104} ¦ ¦ ¦--',': , [0/4] {106} - ¦ ¦ ¦--expr: reind [1/2] {108} - ¦ ¦ ¦ °--SYMBOL: reind [0/0] {107} - ¦ ¦ °--')': ) [1/0] {109} - ¦ ¦--SPECIAL-PIPE: %>% [0/4] {110} - ¦ °--expr: map(c [1/0] {111} - ¦ ¦--expr: map [0/0] {113} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {112} - ¦ ¦--'(': ( [0/0] {114} - ¦ ¦--expr: compa [0/0] {116} - ¦ ¦ °--SYMBOL: compa [0/0] {115} - ¦ °--')': ) [0/0] {117} - °--'}': } [1/0] {118} + ¦ ¦ ¦--expr: token [1/0] {108} + ¦ ¦ ¦ °--SYMBOL: token [0/0] {107} + ¦ ¦ ¦--',': , [0/4] {109} + ¦ ¦ ¦--expr: inden [1/0] {111} + ¦ ¦ ¦ °--SYMBOL: inden [0/0] {110} + ¦ ¦ ¦--',': , [0/4] {112} + ¦ ¦ ¦--COMMENT: # tra [1/4] {113} + ¦ ¦ ¦--expr: use_r [1/0] {115} + ¦ ¦ ¦ °--SYMBOL: use_r [0/0] {114} + ¦ ¦ ¦--',': , [0/4] {116} + ¦ ¦ ¦--expr: reind [1/2] {118} + ¦ ¦ ¦ °--SYMBOL: reind [0/0] {117} + ¦ ¦ °--')': ) [1/0] {119} + ¦ ¦--SPECIAL-PIPE: %>% [0/4] {120} + ¦ °--expr: map(c [1/0] {121} + ¦ ¦--expr: map [0/0] {123} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {122} + ¦ ¦--'(': ( [0/0] {124} + ¦ ¦--expr: compa [0/0] {126} + ¦ ¦ °--SYMBOL: compa [0/0] {125} + ¦ °--')': ) [0/0] {127} + °--'}': } [1/0] {128} diff --git a/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R b/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R index ae4f1b9db..a2f6f567b 100644 --- a/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R +++ b/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R @@ -11,11 +11,15 @@ #' #' #' -#' # more -#' a <- 3 +#' ( +#' # more +#' a <- 3 +#' ) #' # a comment #' \dontrun{ -#' x +#' { +#' x +#' } #' #' y # hi #' From 1b9567bc0253ef0cd13146fff8d868b033831f88 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 14:30:58 +0200 Subject: [PATCH 124/238] Update touchstone config --- touchstone/config.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/touchstone/config.json b/touchstone/config.json index 84f9d3441..601c57ee2 100644 --- a/touchstone/config.json +++ b/touchstone/config.json @@ -1,9 +1,8 @@ { "os": "ubuntu-latest", - "r": "4.2", - "rspm": "https://packagemanager.rstudio.com/all/__linux__/focal/2023-03-01", + "r": "4.4", + "rspm": "https://packagemanager.rstudio.com/all/__linux__/focal/2024-05-01", "benchmarking_repo": "lorenzwalthert/here", "benchmarking_ref": "bf0167746da7fe4fb156082bad93c9e5cd3386bd", "benchmarking_path": "touchstone/sources/here", - } From 2823db4f803cf5221f27c9f2639148e636cb6c1f Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 14:35:24 +0200 Subject: [PATCH 125/238] Fix `paste_linter()` lints --- R/roxygen-examples-parse.R | 2 +- R/utils-cache.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/roxygen-examples-parse.R b/R/roxygen-examples-parse.R index ac25ce950..a428acae4 100644 --- a/R/roxygen-examples-parse.R +++ b/R/roxygen-examples-parse.R @@ -179,6 +179,6 @@ needs_rd_emulation <- function(roxygen) { #' @keywords internal post_parse_roxygen <- function(raw) { raw %>% - paste0(collapse = "") %>% + paste(collapse = "") %>% convert_newlines_to_linebreaks() } diff --git a/R/utils-cache.R b/R/utils-cache.R index 6b57fb788..ce255587e 100644 --- a/R/utils-cache.R +++ b/R/utils-cache.R @@ -9,7 +9,7 @@ hash_standardize <- function(text) { text %>% convert_newlines_to_linebreaks() %>% enc2utf8() %>% - paste0(collapse = "\n") %>% + paste(collapse = "\n") %>% list() } From d1fb41e1311207d48bae3c6b9825799fa58d3c08 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 16:38:40 +0200 Subject: [PATCH 126/238] run on R-release on Ubuntu regression introduced in https://github.com/r-lib/styler/pull/1200 --- .github/workflows/check-full.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index d36be307c..ae20a0fbf 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -25,9 +25,9 @@ jobs: # use 4.1 to check with rtools40's older compiler - { os: windows-latest, r: "4.1" } - - { os: ubuntu-latest, r: "devel", http-user-agent: "release" } - - { os: ubuntu-latest, r: "devel", locale: "en_US" } + - { os: ubuntu-latest, r: "devel", locale: "en_US", http-user-agent: "release" } #- { os: ubuntu-latest, r: "release", locale: "zh_CN" } + - { os: ubuntu-latest, r: "release" } - { os: ubuntu-latest, r: "oldrel-1" } - { os: ubuntu-latest, r: "oldrel-2" } - { os: ubuntu-latest, r: "oldrel-3" } From a7056be117f4711ae894f08892c22b36f7a3c058 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 11 May 2024 17:37:27 +0200 Subject: [PATCH 127/238] remove non-existing token --- R/rules-line-breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 6b0dcc34d..4d356a32d 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -432,7 +432,7 @@ remove_empty_lines_after_opening_braces <- function(pd) { } remove_empty_lines_before_closing_braces <- function(pd) { - closing_braces <- c("')'", "']'", "RBB") + closing_braces <- c("')'", "']'") paren_before <- pd$token %in% closing_braces if (!any(paren_before)) { return(pd) From d727ea678944a88a58dc7a8a9fe5e5a75617dff1 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 12 May 2024 06:20:37 +0200 Subject: [PATCH 128/238] Update .pre-commit-config.yaml --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ee8ea5d6d..cf22944df 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.0 + rev: v0.4.2 hooks: - id: style-files args: @@ -102,7 +102,7 @@ repos: )$ - id: pkgdown - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v4.6.0 hooks: - id: check-added-large-files args: ["--maxkb=200"] From 7cd15cabb7693ad197cce5e0f3b14ba78be20b0a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 12 May 2024 13:10:37 +0200 Subject: [PATCH 129/238] Use `all_linters()` instead of using tags --- .lintr | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.lintr b/.lintr index fe4554f30..9fd7b119c 100644 --- a/.lintr +++ b/.lintr @@ -1,5 +1,4 @@ -linters: linters_with_tags( - tags = NULL, +linters: all_linters( commented_code_linter = NULL, cyclocomp_linter = cyclocomp_linter(40), fixed_regex_linter = NULL, @@ -7,7 +6,6 @@ linters: linters_with_tags( indentation_linter = NULL, line_length_linter(120L), namespace_linter = NULL, - nested_ifelse_linter = NULL, nzchar_linter = NULL, object_name_linter = NULL, object_length_linter(70L), From 575360f3f8b34c8a138b3b5a0aa9cf0ec3250bfe Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 13 May 2024 12:02:57 +0200 Subject: [PATCH 130/238] Don't store code tree structures in tests closes #1206 And also remove everything that was needed for R 3.2. --- .gitignore | 1 + R/set-assert-args.R | 16 - R/testing.R | 10 +- man/set_arg_write_tree.Rd | 17 - man/test_collection.Rd | 6 +- man/transform_and_check.Rd | 6 +- .../alignment/cols-with-one-row-in_tree | 73 -- tests/testthat/alignment/fun-decs-in_tree | 224 ---- tests/testthat/alignment/named-in_tree | 966 ------------------ .../alignment/one-col-some-named-in_tree | 48 - tests/testthat/alignment/quoted-names-in_tree | 39 - tests/testthat/alignment/tribble-in_tree | 165 --- .../alignment/tribble-three-cols-in_tree | 38 - tests/testthat/curly-curly/mixed-in_tree | 505 --------- tests/testthat/escaping/basic-escape-in_tree | 61 -- .../testthat/escaping/fail-parsing-1-in_tree | 9 - .../testthat/escaping/fail-parsing-2-in_tree | 7 - .../testthat/escaping/fail-parsing-3-in_tree | 7 - .../testthat/escaping/fail-parsing-4-in_tree | 7 - .../fun_dec/fun_dec_scope_spaces-in_tree | 83 -- .../fun_dec/line_break_fun_dec-in_tree | 168 --- .../indention_curly_brackets/custom-in_tree | 45 - .../multi_line_curly_only-in_tree | 28 - .../multi_line_curly_round_only-in_tree | 62 -- .../multi_line_curly_round_spacing-in_tree | 62 -- .../multi_line_curly_while_for_if_fun-in_tree | 89 -- .../one_line_curly-in_tree | 14 - .../non_strict_calls-in_tree | 121 --- .../indention_fun_calls/strict_calls-in_tree | 28 - .../curly_and_round-in_tree | 97 -- .../curly_and_round_in_tree | 61 -- .../indention_multiple/curly_only-in_tree | 53 - .../edge_strict_mixed-in_tree | 95 -- .../edge_strict_random-in_tree | 84 -- .../fun_for_new_line-in_tree | 27 - .../indention_multiple/if_else_curly-in_tree | 162 --- .../indention_multiple/overall-in_tree | 160 --- .../round_closing_on_same_line-in_tree | 20 - .../indention_multiple/round_only-in_tree | 40 - .../base_pipe_and_assignment-in_tree | 43 - ...se_pipe_and_assignment_and_comment-in_tree | 115 --- .../base_pipe_and_assignment_and_math-in_tree | 27 - .../base_pipe_simple-in_tree | 79 -- .../indention_operators/dollar_R6-in_tree | 30 - .../indention_operators/eq_assign-in_tree | 47 - .../eq_formal_simple-in_tree | 30 - .../eq_formals_complex_indention-in_tree | 166 --- .../eq_formals_complex_tokens-in_tree | 97 -- .../eq_sub_complex_indention-in_tree | 118 --- .../eq_sub_complex_tokens-in_tree | 41 - .../function-multiline-no-braces-in_tree | 102 -- ...ion-multiline-no-braces-non-strict-in_tree | 105 -- ...unction-multiline-no-braces-strict-in_tree | 105 -- .../if-else-no-braces-not-strict-in_tree | 71 -- .../logical_special_eq_sub-in_tree | 47 - .../multiply_divide-in_tree | 33 - ...nested-for-spacing-scope-indention-in_tree | 54 - .../nested-for-spacing-scope-spaces-in_tree | 53 - .../not_first_trigger-in_tree | 70 -- .../indention_operators/overall-in_tree | 186 ---- .../pipe_and_assignment-in_tree | 43 - .../pipe_and_assignment_and_comment-in_tree | 115 --- .../pipe_and_assignment_and_math-in_tree | 27 - .../indention_operators/pipe_simple-in_tree | 76 -- .../indention_operators/pipe_with_dot-in_tree | 23 - .../indention_operators/plus_minus-in_tree | 23 - .../indention_operators/tilde-in_tree | 28 - ...le_for_if_without_curly_non_strict-in_tree | 253 ----- .../while_for_if_without_curly_strict-in_tree | 253 ----- ...without_curly_same_line_non_strict-in_tree | 163 --- .../arithmetic_no_start-in_tree | 19 - .../arithmetic_start-in_tree | 23 - .../multi_line-no-indention-in_tree | 39 - .../multi_line-random-in_tree | 39 - .../indention_round_brackets/one_line-in_tree | 31 - .../one_line-nested-in_tree | 31 - .../square_brackets_double_line_break-in_tree | 46 - .../square_brackets_line_break-in_tree | 280 ----- .../if_else_if_else_non_strict-in_tree | 256 ----- .../if_else_if_else_strict-in_tree | 256 ----- .../if_else_non_strict-in_tree | 86 -- .../if_else_strict-in_tree | 86 -- .../just_if_non_strict-in_tree | 54 - .../just_if_strict-in_tree | 54 - .../around-eq-sub-in_tree | 96 -- .../line_breaks_and_other/assignment-in_tree | 115 --- .../base-pipe-line-breaks-in_tree | 465 --------- .../braces-fun-calls1-in_tree | 132 --- .../braces-fun-calls2-in_tree | 342 ------- .../line_breaks_and_other/comma-in_tree | 97 -- .../comment-around-curly-in_tree | 13 - .../curly-brace-edge-in_tree | 92 -- .../line_breaks_and_other/curly-in_tree | 154 --- .../edge_comment_and_curly-in_tree | 17 - .../line_breaks_and_other/ggplot2-in_tree | 416 -------- .../if_with_line_break_indention-in_tree | 48 - .../line_breaks_and_other/non_strict-in_tree | 26 - .../pipe-line-breaks-in_tree | 759 -------------- .../pipe_and_comment-in_tree | 15 - .../blank-non-strict-in_tree | 31 - .../line_breaks_fun_call/blank-strict-in_tree | 51 - .../line_breaks_and_comments-in_tree | 80 -- .../named_arguments-in_tree | 114 --- .../switch_ifelse_etc_no_line_break-in_tree | 246 ----- .../token_dependent_comments-in_tree | 33 - ...token_dependent_complex_non_strict-in_tree | 169 --- .../token_dependent_complex_strict-in_tree | 169 --- .../token_dependent_mixed-in_tree | 238 ----- .../line_breaks_fun_call/unindent-in_tree | 72 -- .../non_strict_math_spacing_all-in_tree | 23 - .../strict_math_spacing_all-in_tree | 23 - ...ct_math_spacing_zero_all_but_power-in_tree | 23 - .../strict_math_spacing_zero_plus-in_tree | 23 - .../three_complex_expr-in_tree | 23 - .../two_simple_expr-in_tree | 5 - .../parse_comments/eol_eof_spaces-in_tree | 5 - .../parse_comments/just_comments-in_tree | 5 - tests/testthat/parse_comments/mixed-in_tree | 35 - .../parse_comments/output-prefix-in_tree | 19 - .../testthat/parse_comments/rplumber-in_tree | 69 -- .../testthat/parse_comments/shebang_1-in_tree | 24 - .../testthat/parse_comments/shebang_2-in_tree | 23 - .../spinning_code_chunk_headers-in_tree | 30 - .../parse_comments/with_indention-in_tree | 71 -- .../within_spacing_with_force-in_tree | 5 - .../within_spacing_without_force-in_tree | 5 - .../testthat/parse_comments/xaringan-in_tree | 62 -- tests/testthat/parsing/long_strings-in_tree | 39 - ...eq_assign_ifelse_scope_line_breaks-in_tree | 30 - .../eq_assign_ifelse_scope_tokens-in_tree | 30 - .../eq_assign_multiple_tokens_eq_only-in_tree | 103 -- .../eq_assign_multiple_tokens_mixed-in_tree | 25 - ...e-function-example-last-proper-run-in_tree | 13 - ...-function-examples-last-proper-run-in_tree | 18 - ...nction-example-not-last-proper-run-in_tree | 13 - ...ction-examples-not-last-proper-run-in_tree | 18 - ...-function-examples-last-proper-run-in_tree | 28 - ...iple-function-examples-no-last-run-in_tree | 33 - .../07-roxygen-no-dontrun-in_tree | 98 -- .../08-roxygen-dontrun-in_tree | 103 -- ...-styler-r-ui-style-string-multiple-in_tree | 86 -- .../10-styler-r-ui-in_tree | 756 -------------- .../11-start-with-dontrun-in_tree | 113 -- .../12-dontshow-dontrun-donttest-in_tree | 235 ----- .../12-fun-decs-in-examples-in_tree | 149 --- .../13-empty-lines-in_tree | 120 --- .../14-pipe-dontrun-in_tree | 19 - .../15-roxygen-dontrun-indention-in_tree | 27 - .../16-dont-warn-empty-in_tree | 16 - .../17-two-no-non-comment-in_tree | 13 - .../18-no-non-comment-in_tree | 7 - .../19-escaped-slash-in_tree | 79 -- .../20-exampleIf-simple-in_tree | 16 - .../21-exampleIf-multiple-in_tree | 18 - .../22-exampleIf-example-mixed-in_tree | 32 - .../23-exampleIf-multiline-cond-in_tree | 30 - .../24-exampleIf-spacing-in_tree | 37 - .../25-ordinary-comment-in-example-in_tree | 141 --- .../26-empty-trailing-lines-in_tree | 37 - .../27-no-code-block-after-example-in_tree | 12 - .../28-end-not-blank-in_tree | 4 - ...29-multiple-empty-lines-in-example-in_tree | 13 - .../scope-AsIs/scope_indention-in_tree | 97 -- .../scope-AsIs/scope_indention_tokens-in_tree | 96 -- .../scope-AsIs/scope_line_breaks-in_tree | 96 -- tests/testthat/scope-AsIs/scope_none-in_tree | 159 --- .../testthat/scope-AsIs/scope_spaces-in_tree | 25 - .../scope-AsIs/scope_spaces_indention-in_tree | 97 -- .../scope_spaces_line_breaks-in_tree | 96 -- .../scope-AsIs/scope_spaces_tokens-in_tree | 96 -- .../testthat/scope-AsIs/scope_tokens-in_tree | 96 -- .../scope-character/scope_indention-in_tree | 97 -- .../scope-character/scope_line_breaks-in_tree | 96 -- .../scope-character/scope_none-in_tree | 159 --- .../scope-character/scope_spaces-in_tree | 25 - .../scope-character/scope_tokens-in_tree | 96 -- .../testthat/serialize_tests/correct-in_tree | 7 - .../k2-another-in_file-in_tree | 30 - tests/testthat/serialize_tests/k2-in_tree | 30 - tests/testthat/serialize_tests/k3-in_tree | 6 - .../spacing/bang_bang_spacing-in_tree | 60 -- tests/testthat/spacing/colons-in_tree | 45 - tests/testthat/spacing/comments-in_tree | 13 - tests/testthat/spacing/round_curly-in_tree | 71 -- tests/testthat/spacing/spacing-square-in_tree | 76 -- tests/testthat/spacing/spacing-tilde-in_tree | 57 -- tests/testthat/spacing/spacing_comma-in_tree | 20 - tests/testthat/spacing/spacing_comma2-in_tree | 23 - .../testthat/spacing/spacing_function-in_tree | 20 - tests/testthat/spacing/spacing_if-in_tree | 12 - tests/testthat/spacing/spacing_in-in_tree | 12 - tests/testthat/start_line/comment-in_tree | 17 - tests/testthat/start_line/no_comment-in_tree | 16 - tests/testthat/strict/eof-in_tree | 3 - tests/testthat/strict/eol-in_tree | 9 - tests/testthat/strict/non_strict-in_tree | 763 -------------- tests/testthat/strict/strict-in_tree | 747 -------------- .../stylerignore/adding-removing-in_tree | 180 ---- tests/testthat/stylerignore/alignment-in_tree | 110 -- tests/testthat/stylerignore/braces-in_tree | 81 -- .../crossing-with-expressions-in_tree | 91 -- tests/testthat/stylerignore/simple-in_tree | 113 -- tests/testthat/tidyeval/bang_bang-in_tree | 167 --- .../tidyeval/eq_sub_and_comma-in_tree | 24 - .../tidyeval/setting_var_names-in_tree | 47 - .../add_brackets_in_pipe-in_tree | 31 - .../add_brackets_in_pipe-stylerignore-in_tree | 163 --- .../double_braces-in_tree | 27 - .../token_adding_removing/else-pipe-in_tree | 41 - .../for_while_stylerignore-in_tree | 180 ---- .../if-else-comma-in_tree | 89 -- .../if_else_non_strict-in_tree | 173 ---- .../if_else_strict-in_tree | 173 ---- .../if_else_stylerignore-in_tree | 232 ----- .../token_adding_removing/mixed_token-in_tree | 54 - .../token_adding_removing/substitute-in_tree | 39 - .../token_creation_find_pos-in_tree | 190 ---- .../unary_spacing/unary_complex-in_tree | 81 -- .../unary_spacing/unary_indention-in_tree | 57 -- .../unary_spacing/unary_simple-in_tree | 26 - .../testthat/unindention/mixed-double-in_tree | 189 ---- tests/testthat/unindention/mixed-in_tree | 61 -- .../unindention/unindent_multi_line-in_tree | 31 - .../testthat/unindention/vec_with_fun-in_tree | 18 - .../random_non_comment_indention-in_tree | 17 - .../regex_force_no_pattern-in_tree | 24 - .../regex_force_with_pattern-in_tree | 24 - 227 files changed, 9 insertions(+), 20693 deletions(-) delete mode 100644 man/set_arg_write_tree.Rd delete mode 100644 tests/testthat/alignment/cols-with-one-row-in_tree delete mode 100644 tests/testthat/alignment/fun-decs-in_tree delete mode 100644 tests/testthat/alignment/named-in_tree delete mode 100644 tests/testthat/alignment/one-col-some-named-in_tree delete mode 100644 tests/testthat/alignment/quoted-names-in_tree delete mode 100644 tests/testthat/alignment/tribble-in_tree delete mode 100644 tests/testthat/alignment/tribble-three-cols-in_tree delete mode 100644 tests/testthat/curly-curly/mixed-in_tree delete mode 100644 tests/testthat/escaping/basic-escape-in_tree delete mode 100644 tests/testthat/escaping/fail-parsing-1-in_tree delete mode 100644 tests/testthat/escaping/fail-parsing-2-in_tree delete mode 100644 tests/testthat/escaping/fail-parsing-3-in_tree delete mode 100644 tests/testthat/escaping/fail-parsing-4-in_tree delete mode 100644 tests/testthat/fun_dec/fun_dec_scope_spaces-in_tree delete mode 100644 tests/testthat/fun_dec/line_break_fun_dec-in_tree delete mode 100644 tests/testthat/indention_curly_brackets/custom-in_tree delete mode 100644 tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree delete mode 100644 tests/testthat/indention_curly_brackets/multi_line_curly_round_only-in_tree delete mode 100644 tests/testthat/indention_curly_brackets/multi_line_curly_round_spacing-in_tree delete mode 100644 tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree delete mode 100644 tests/testthat/indention_curly_brackets/one_line_curly-in_tree delete mode 100644 tests/testthat/indention_fun_calls/non_strict_calls-in_tree delete mode 100644 tests/testthat/indention_fun_calls/strict_calls-in_tree delete mode 100644 tests/testthat/indention_multiple/curly_and_round-in_tree delete mode 100644 tests/testthat/indention_multiple/curly_and_round_in_tree delete mode 100644 tests/testthat/indention_multiple/curly_only-in_tree delete mode 100644 tests/testthat/indention_multiple/edge_strict_mixed-in_tree delete mode 100644 tests/testthat/indention_multiple/edge_strict_random-in_tree delete mode 100644 tests/testthat/indention_multiple/fun_for_new_line-in_tree delete mode 100644 tests/testthat/indention_multiple/if_else_curly-in_tree delete mode 100644 tests/testthat/indention_multiple/overall-in_tree delete mode 100644 tests/testthat/indention_multiple/round_closing_on_same_line-in_tree delete mode 100644 tests/testthat/indention_multiple/round_only-in_tree delete mode 100644 tests/testthat/indention_operators/base_pipe_and_assignment-in_tree delete mode 100644 tests/testthat/indention_operators/base_pipe_and_assignment_and_comment-in_tree delete mode 100644 tests/testthat/indention_operators/base_pipe_and_assignment_and_math-in_tree delete mode 100644 tests/testthat/indention_operators/base_pipe_simple-in_tree delete mode 100644 tests/testthat/indention_operators/dollar_R6-in_tree delete mode 100644 tests/testthat/indention_operators/eq_assign-in_tree delete mode 100644 tests/testthat/indention_operators/eq_formal_simple-in_tree delete mode 100644 tests/testthat/indention_operators/eq_formals_complex_indention-in_tree delete mode 100644 tests/testthat/indention_operators/eq_formals_complex_tokens-in_tree delete mode 100644 tests/testthat/indention_operators/eq_sub_complex_indention-in_tree delete mode 100644 tests/testthat/indention_operators/eq_sub_complex_tokens-in_tree delete mode 100644 tests/testthat/indention_operators/function-multiline-no-braces-in_tree delete mode 100644 tests/testthat/indention_operators/function-multiline-no-braces-non-strict-in_tree delete mode 100644 tests/testthat/indention_operators/function-multiline-no-braces-strict-in_tree delete mode 100644 tests/testthat/indention_operators/if-else-no-braces-not-strict-in_tree delete mode 100644 tests/testthat/indention_operators/logical_special_eq_sub-in_tree delete mode 100644 tests/testthat/indention_operators/multiply_divide-in_tree delete mode 100644 tests/testthat/indention_operators/nested-for-spacing-scope-indention-in_tree delete mode 100644 tests/testthat/indention_operators/nested-for-spacing-scope-spaces-in_tree delete mode 100644 tests/testthat/indention_operators/not_first_trigger-in_tree delete mode 100644 tests/testthat/indention_operators/overall-in_tree delete mode 100644 tests/testthat/indention_operators/pipe_and_assignment-in_tree delete mode 100644 tests/testthat/indention_operators/pipe_and_assignment_and_comment-in_tree delete mode 100644 tests/testthat/indention_operators/pipe_and_assignment_and_math-in_tree delete mode 100644 tests/testthat/indention_operators/pipe_simple-in_tree delete mode 100644 tests/testthat/indention_operators/pipe_with_dot-in_tree delete mode 100644 tests/testthat/indention_operators/plus_minus-in_tree delete mode 100644 tests/testthat/indention_operators/tilde-in_tree delete mode 100644 tests/testthat/indention_operators/while_for_if_without_curly_non_strict-in_tree delete mode 100644 tests/testthat/indention_operators/while_for_if_without_curly_strict-in_tree delete mode 100644 tests/testthat/indention_operators/while_for_without_curly_same_line_non_strict-in_tree delete mode 100644 tests/testthat/indention_round_brackets/arithmetic_no_start-in_tree delete mode 100644 tests/testthat/indention_round_brackets/arithmetic_start-in_tree delete mode 100644 tests/testthat/indention_round_brackets/multi_line-no-indention-in_tree delete mode 100644 tests/testthat/indention_round_brackets/multi_line-random-in_tree delete mode 100644 tests/testthat/indention_round_brackets/one_line-in_tree delete mode 100644 tests/testthat/indention_round_brackets/one_line-nested-in_tree delete mode 100644 tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree delete mode 100644 tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree delete mode 100644 tests/testthat/insertion_comment_interaction/if_else_if_else_non_strict-in_tree delete mode 100644 tests/testthat/insertion_comment_interaction/if_else_if_else_strict-in_tree delete mode 100644 tests/testthat/insertion_comment_interaction/if_else_non_strict-in_tree delete mode 100644 tests/testthat/insertion_comment_interaction/if_else_strict-in_tree delete mode 100644 tests/testthat/insertion_comment_interaction/just_if_non_strict-in_tree delete mode 100644 tests/testthat/insertion_comment_interaction/just_if_strict-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/around-eq-sub-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/assignment-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/braces-fun-calls1-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/braces-fun-calls2-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/comma-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/comment-around-curly-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/curly-brace-edge-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/curly-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/edge_comment_and_curly-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/ggplot2-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/if_with_line_break_indention-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/non_strict-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/pipe-line-breaks-in_tree delete mode 100644 tests/testthat/line_breaks_and_other/pipe_and_comment-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/blank-non-strict-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/blank-strict-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/line_breaks_and_comments-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/named_arguments-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/token_dependent_comments-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/token_dependent_mixed-in_tree delete mode 100644 tests/testthat/line_breaks_fun_call/unindent-in_tree delete mode 100644 tests/testthat/math_token_spacing/non_strict_math_spacing_all-in_tree delete mode 100644 tests/testthat/math_token_spacing/strict_math_spacing_all-in_tree delete mode 100644 tests/testthat/math_token_spacing/strict_math_spacing_zero_all_but_power-in_tree delete mode 100644 tests/testthat/math_token_spacing/strict_math_spacing_zero_plus-in_tree delete mode 100644 tests/testthat/multiple_expressions/three_complex_expr-in_tree delete mode 100644 tests/testthat/multiple_expressions/two_simple_expr-in_tree delete mode 100644 tests/testthat/parse_comments/eol_eof_spaces-in_tree delete mode 100644 tests/testthat/parse_comments/just_comments-in_tree delete mode 100644 tests/testthat/parse_comments/mixed-in_tree delete mode 100644 tests/testthat/parse_comments/output-prefix-in_tree delete mode 100644 tests/testthat/parse_comments/rplumber-in_tree delete mode 100644 tests/testthat/parse_comments/shebang_1-in_tree delete mode 100644 tests/testthat/parse_comments/shebang_2-in_tree delete mode 100644 tests/testthat/parse_comments/spinning_code_chunk_headers-in_tree delete mode 100644 tests/testthat/parse_comments/with_indention-in_tree delete mode 100644 tests/testthat/parse_comments/within_spacing_with_force-in_tree delete mode 100644 tests/testthat/parse_comments/within_spacing_without_force-in_tree delete mode 100644 tests/testthat/parse_comments/xaringan-in_tree delete mode 100644 tests/testthat/parsing/long_strings-in_tree delete mode 100644 tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_line_breaks-in_tree delete mode 100644 tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_tokens-in_tree delete mode 100644 tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_eq_only-in_tree delete mode 100644 tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_mixed-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/01-one-function-example-last-proper-run-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/02-one-function-examples-last-proper-run-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/03-one-function-example-not-last-proper-run-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/04-one-function-examples-not-last-proper-run-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/05-multiple-function-examples-last-proper-run-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/06-multiple-function-examples-no-last-run-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/07-roxygen-no-dontrun-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/08-roxygen-dontrun-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/09-styler-r-ui-style-string-multiple-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/10-styler-r-ui-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/11-start-with-dontrun-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/12-dontshow-dontrun-donttest-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/12-fun-decs-in-examples-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/14-pipe-dontrun-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/15-roxygen-dontrun-indention-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/16-dont-warn-empty-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/17-two-no-non-comment-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/18-no-non-comment-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/19-escaped-slash-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/20-exampleIf-simple-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/21-exampleIf-multiple-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/22-exampleIf-example-mixed-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/23-exampleIf-multiline-cond-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/24-exampleIf-spacing-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/25-ordinary-comment-in-example-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/27-no-code-block-after-example-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/28-end-not-blank-in_tree delete mode 100644 tests/testthat/roxygen-examples-complete/29-multiple-empty-lines-in-example-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_indention-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_indention_tokens-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_line_breaks-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_none-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_spaces-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_spaces_indention-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_spaces_line_breaks-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_spaces_tokens-in_tree delete mode 100644 tests/testthat/scope-AsIs/scope_tokens-in_tree delete mode 100644 tests/testthat/scope-character/scope_indention-in_tree delete mode 100644 tests/testthat/scope-character/scope_line_breaks-in_tree delete mode 100644 tests/testthat/scope-character/scope_none-in_tree delete mode 100644 tests/testthat/scope-character/scope_spaces-in_tree delete mode 100644 tests/testthat/scope-character/scope_tokens-in_tree delete mode 100644 tests/testthat/serialize_tests/correct-in_tree delete mode 100644 tests/testthat/serialize_tests/k2-another-in_file-in_tree delete mode 100644 tests/testthat/serialize_tests/k2-in_tree delete mode 100644 tests/testthat/serialize_tests/k3-in_tree delete mode 100644 tests/testthat/spacing/bang_bang_spacing-in_tree delete mode 100644 tests/testthat/spacing/colons-in_tree delete mode 100644 tests/testthat/spacing/comments-in_tree delete mode 100644 tests/testthat/spacing/round_curly-in_tree delete mode 100644 tests/testthat/spacing/spacing-square-in_tree delete mode 100644 tests/testthat/spacing/spacing-tilde-in_tree delete mode 100644 tests/testthat/spacing/spacing_comma-in_tree delete mode 100644 tests/testthat/spacing/spacing_comma2-in_tree delete mode 100644 tests/testthat/spacing/spacing_function-in_tree delete mode 100644 tests/testthat/spacing/spacing_if-in_tree delete mode 100644 tests/testthat/spacing/spacing_in-in_tree delete mode 100644 tests/testthat/start_line/comment-in_tree delete mode 100644 tests/testthat/start_line/no_comment-in_tree delete mode 100644 tests/testthat/strict/eof-in_tree delete mode 100644 tests/testthat/strict/eol-in_tree delete mode 100644 tests/testthat/strict/non_strict-in_tree delete mode 100644 tests/testthat/strict/strict-in_tree delete mode 100644 tests/testthat/stylerignore/adding-removing-in_tree delete mode 100644 tests/testthat/stylerignore/alignment-in_tree delete mode 100644 tests/testthat/stylerignore/braces-in_tree delete mode 100644 tests/testthat/stylerignore/crossing-with-expressions-in_tree delete mode 100644 tests/testthat/stylerignore/simple-in_tree delete mode 100644 tests/testthat/tidyeval/bang_bang-in_tree delete mode 100644 tests/testthat/tidyeval/eq_sub_and_comma-in_tree delete mode 100644 tests/testthat/tidyeval/setting_var_names-in_tree delete mode 100644 tests/testthat/token_adding_removing/add_brackets_in_pipe-in_tree delete mode 100644 tests/testthat/token_adding_removing/add_brackets_in_pipe-stylerignore-in_tree delete mode 100644 tests/testthat/token_adding_removing/double_braces-in_tree delete mode 100644 tests/testthat/token_adding_removing/else-pipe-in_tree delete mode 100644 tests/testthat/token_adding_removing/for_while_stylerignore-in_tree delete mode 100644 tests/testthat/token_adding_removing/if-else-comma-in_tree delete mode 100644 tests/testthat/token_adding_removing/if_else_non_strict-in_tree delete mode 100644 tests/testthat/token_adding_removing/if_else_strict-in_tree delete mode 100644 tests/testthat/token_adding_removing/if_else_stylerignore-in_tree delete mode 100644 tests/testthat/token_adding_removing/mixed_token-in_tree delete mode 100644 tests/testthat/token_adding_removing/substitute-in_tree delete mode 100644 tests/testthat/token_adding_removing/token_creation_find_pos-in_tree delete mode 100644 tests/testthat/unary_spacing/unary_complex-in_tree delete mode 100644 tests/testthat/unary_spacing/unary_indention-in_tree delete mode 100644 tests/testthat/unary_spacing/unary_simple-in_tree delete mode 100644 tests/testthat/unindention/mixed-double-in_tree delete mode 100644 tests/testthat/unindention/mixed-in_tree delete mode 100644 tests/testthat/unindention/unindent_multi_line-in_tree delete mode 100644 tests/testthat/unindention/vec_with_fun-in_tree delete mode 100644 tests/testthat/unindention_regex/random_non_comment_indention-in_tree delete mode 100644 tests/testthat/unindention_regex/regex_force_no_pattern-in_tree delete mode 100644 tests/testthat/unindention_regex/regex_force_with_pattern-in_tree diff --git a/.gitignore b/.gitignore index b9b86f2c7..ee5c72f4a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ inst/doc revdep/ !revdep/*.md !revdep/problems.md +tests/testthat/*/*-in_tree touchstone/* !touchstone/config.json !touchstone/script.R diff --git a/R/set-assert-args.R b/R/set-assert-args.R index 649a57f9a..374f49c94 100644 --- a/R/set-assert-args.R +++ b/R/set-assert-args.R @@ -1,19 +1,3 @@ -#' Set the write_tree argument -#' -#' Sets the argument `write_tree` in [test_collection()] to be `TRUE` for R -#' versions higher or equal to 3.2, and `FALSE` otherwise since the second-level -#' dependency `DiagrammeR` from `data.tree` is not available for R < 3.2. -#' @param write_tree Whether or not to write tree. -#' @keywords internal -set_arg_write_tree <- function(write_tree) { - if (is.na(write_tree)) { - write_tree <- is_installed("data.tree") - } else if (write_tree) { - check_installed("data.tree") - } - write_tree -} - #' Assert the transformers #' #' Actually only assert name and version of style guide in order to make sure diff --git a/R/testing.R b/R/testing.R index f2c8ffe6b..47a051232 100644 --- a/R/testing.R +++ b/R/testing.R @@ -19,7 +19,7 @@ #' @keywords internal test_collection <- function(test, sub_test = NULL, dry = "off", - write_tree = NA, + write_tree = FALSE, transformer, ...) { path <- rprojroot::find_testthat_root_file(test) @@ -93,9 +93,7 @@ construct_tree <- function(in_paths, suffix = "_tree") { #' @param out_name The label of the out_item, defaults to `out_item`. #' @param transformer A function to apply to the content of `in_item`. #' @param write_tree Whether or not the tree structure of the test should be -#' computed and written to a file. Note that this needs R >= 3.2 -#' (see [set_arg_write_tree()]). If the argument is set to `NA`, the function -#' determines whether R >= 3.2 is in use and if so, trees will be written. +#' computed and written to a files. #' @param ... Parameters passed to transformer function. #' @param out_tree Name of tree file if written out. #' @inheritParams transform_utf8 @@ -103,9 +101,9 @@ construct_tree <- function(in_paths, suffix = "_tree") { transform_and_check <- function(in_item, out_item, in_name = in_item, out_name = out_item, transformer, dry, - write_tree = NA, + write_tree = FALSE, out_tree = "_tree", ...) { - write_tree <- set_arg_write_tree(write_tree) + if (write_tree) check_installed("data.tree") read_in <- read_utf8_bare(in_item) if (write_tree) { create_tree(read_in) %>% diff --git a/man/set_arg_write_tree.Rd b/man/set_arg_write_tree.Rd deleted file mode 100644 index 9bea02feb..000000000 --- a/man/set_arg_write_tree.Rd +++ /dev/null @@ -1,17 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/set-assert-args.R -\name{set_arg_write_tree} -\alias{set_arg_write_tree} -\title{Set the write_tree argument} -\usage{ -set_arg_write_tree(write_tree) -} -\arguments{ -\item{write_tree}{Whether or not to write tree.} -} -\description{ -Sets the argument \code{write_tree} in \code{\link[=test_collection]{test_collection()}} to be \code{TRUE} for R -versions higher or equal to 3.2, and \code{FALSE} otherwise since the second-level -dependency \code{DiagrammeR} from \code{data.tree} is not available for R < 3.2. -} -\keyword{internal} diff --git a/man/test_collection.Rd b/man/test_collection.Rd index 25b545a20..0b102c4c9 100644 --- a/man/test_collection.Rd +++ b/man/test_collection.Rd @@ -8,7 +8,7 @@ test_collection( test, sub_test = NULL, dry = "off", - write_tree = NA, + write_tree = FALSE, transformer, ... ) @@ -28,9 +28,7 @@ of styling. "off", the default, writes back if the input and output of styling are not identical.} \item{write_tree}{Whether or not the tree structure of the test should be -computed and written to a file. Note that this needs R >= 3.2 -(see \code{\link[=set_arg_write_tree]{set_arg_write_tree()}}). If the argument is set to \code{NA}, the function -determines whether R >= 3.2 is in use and if so, trees will be written.} +computed and written to a files.} \item{transformer}{A function to apply to the content of \code{in_item}.} diff --git a/man/transform_and_check.Rd b/man/transform_and_check.Rd index 4c37376ac..8cdd477f0 100644 --- a/man/transform_and_check.Rd +++ b/man/transform_and_check.Rd @@ -11,7 +11,7 @@ transform_and_check( out_name = out_item, transformer, dry, - write_tree = NA, + write_tree = FALSE, out_tree = "_tree", ... ) @@ -34,9 +34,7 @@ of styling. "off", the default, writes back if the input and output of styling are not identical.} \item{write_tree}{Whether or not the tree structure of the test should be -computed and written to a file. Note that this needs R >= 3.2 -(see \code{\link[=set_arg_write_tree]{set_arg_write_tree()}}). If the argument is set to \code{NA}, the function -determines whether R >= 3.2 is in use and if so, trees will be written.} +computed and written to a files.} \item{out_tree}{Name of tree file if written out.} diff --git a/tests/testthat/alignment/cols-with-one-row-in_tree b/tests/testthat/alignment/cols-with-one-row-in_tree deleted file mode 100644 index f821af25e..000000000 --- a/tests/testthat/alignment/cols-with-one-row-in_tree +++ /dev/null @@ -1,73 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: c( - [0/0] {1} - ¦ ¦--expr: c [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: "x" [1/0] {6} - ¦ ¦ °--STR_CONST: "x" [0/0] {5} - ¦ ¦--',': , [0/7] {7} - ¦ ¦--expr: "z" [0/0] {9} - ¦ ¦ °--STR_CONST: "z" [0/0] {8} - ¦ ¦--',': , [0/2] {10} - ¦ ¦--expr: "cgjh [1/0] {12} - ¦ ¦ °--STR_CONST: "cgjh [0/0] {11} - ¦ ¦--',': , [0/1] {13} - ¦ ¦--expr: "thi" [0/0] {15} - ¦ ¦ °--STR_CONST: "thi" [0/0] {14} - ¦ ¦--',': , [0/1] {16} - ¦ ¦--expr: "z" [0/0] {18} - ¦ ¦ °--STR_CONST: "z" [0/0] {17} - ¦ °--')': ) [1/0] {19} - ¦--expr: c( - [3/0] {20} - ¦ ¦--expr: c [0/0] {22} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {21} - ¦ ¦--'(': ( [0/2] {23} - ¦ ¦--expr: "x" [1/0] {25} - ¦ ¦ °--STR_CONST: "x" [0/0] {24} - ¦ ¦--',': , [0/7] {26} - ¦ ¦--expr: "z" [0/0] {28} - ¦ ¦ °--STR_CONST: "z" [0/0] {27} - ¦ ¦--',': , [0/2] {29} - ¦ ¦--expr: "cgjh [1/0] {31} - ¦ ¦ °--STR_CONST: "cgjh [0/0] {30} - ¦ ¦--',': , [0/2] {32} - ¦ ¦--expr: "thi" [0/0] {34} - ¦ ¦ °--STR_CONST: "thi" [0/0] {33} - ¦ ¦--',': , [0/1] {35} - ¦ ¦--expr: "z" [0/0] {37} - ¦ ¦ °--STR_CONST: "z" [0/0] {36} - ¦ °--')': ) [1/0] {38} - °--expr: c( - [3/0] {39} - ¦--expr: c [0/0] {41} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {40} - ¦--'(': ( [0/2] {42} - ¦--expr: "x" [1/0] {44} - ¦ °--STR_CONST: "x" [0/0] {43} - ¦--',': , [0/1] {45} - ¦--expr: "y" [0/0] {47} - ¦ °--STR_CONST: "y" [0/0] {46} - ¦--',': , [0/1] {48} - ¦--expr: "z" [0/0] {50} - ¦ °--STR_CONST: "z" [0/0] {49} - ¦--',': , [0/2] {51} - ¦--expr: "m" [0/0] {53} - ¦ °--STR_CONST: "m" [0/0] {52} - ¦--',': , [0/1] {54} - ¦--expr: "n" [0/0] {56} - ¦ °--STR_CONST: "n" [0/0] {55} - ¦--',': , [0/2] {57} - ¦--expr: "o" [0/0] {59} - ¦ °--STR_CONST: "o" [0/0] {58} - ¦--',': , [0/1] {60} - ¦--expr: "p" [0/0] {62} - ¦ °--STR_CONST: "p" [0/0] {61} - ¦--',': , [0/2] {63} - ¦--expr: "c" [1/0] {65} - ¦ °--STR_CONST: "c" [0/0] {64} - ¦--',': , [0/1] {66} - ¦--expr: "d" [0/0] {68} - ¦ °--STR_CONST: "d" [0/0] {67} - °--')': ) [1/0] {69} diff --git a/tests/testthat/alignment/fun-decs-in_tree b/tests/testthat/alignment/fun-decs-in_tree deleted file mode 100644 index 4ff6219f9..000000000 --- a/tests/testthat/alignment/fun-decs-in_tree +++ /dev/null @@ -1,224 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # ali [0/0] {1} - ¦--expr: funct [1/0] {2} - ¦ ¦--FUNCTION: funct [0/0] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--SYMBOL_FORMALS: x [0/3] {5} - ¦ ¦--EQ_FORMALS: = [0/1] {6} - ¦ ¦--expr: NULL [0/0] {8} - ¦ ¦ °--NULL_CONST: NULL [0/0] {7} - ¦ ¦--',': , [0/9] {9} - ¦ ¦--SYMBOL_FORMALS: tt [1/2] {10} - ¦ ¦--EQ_FORMALS: = [0/1] {11} - ¦ ¦--expr: NULL [0/0] {13} - ¦ ¦ °--NULL_CONST: NULL [0/0] {12} - ¦ ¦--',': , [0/9] {14} - ¦ ¦--SYMBOL_FORMALS: ayz [1/1] {15} - ¦ ¦--EQ_FORMALS: = [0/1] {16} - ¦ ¦--expr: NULL [0/0] {18} - ¦ ¦ °--NULL_CONST: NULL [0/0] {17} - ¦ ¦--')': ) [0/1] {19} - ¦ °--expr: {} [0/0] {20} - ¦ ¦--'{': { [0/0] {21} - ¦ °--'}': } [0/0] {22} - ¦--COMMENT: # ali [3/0] {23} - ¦--expr: k <- [1/0] {24} - ¦ ¦--expr: k [0/1] {26} - ¦ ¦ °--SYMBOL: k [0/0] {25} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {27} - ¦ °--expr: funct [0/0] {28} - ¦ ¦--FUNCTION: funct [0/0] {29} - ¦ ¦--'(': ( [0/0] {30} - ¦ ¦--SYMBOL_FORMALS: x [0/3] {31} - ¦ ¦--EQ_FORMALS: = [0/1] {32} - ¦ ¦--expr: NULL [0/0] {34} - ¦ ¦ °--NULL_CONST: NULL [0/0] {33} - ¦ ¦--',': , [0/14] {35} - ¦ ¦--SYMBOL_FORMALS: aq [1/2] {36} - ¦ ¦--EQ_FORMALS: = [0/1] {37} - ¦ ¦--expr: NULL [0/0] {39} - ¦ ¦ °--NULL_CONST: NULL [0/0] {38} - ¦ ¦--',': , [0/14] {40} - ¦ ¦--SYMBOL_FORMALS: ayz [1/1] {41} - ¦ ¦--EQ_FORMALS: = [0/1] {42} - ¦ ¦--expr: NULL [0/0] {44} - ¦ ¦ °--NULL_CONST: NULL [0/0] {43} - ¦ ¦--')': ) [0/1] {45} - ¦ °--expr: {} [0/0] {46} - ¦ ¦--'{': { [0/0] {47} - ¦ °--'}': } [0/0] {48} - ¦--COMMENT: # ali [3/0] {49} - ¦--expr: funct [1/0] {50} - ¦ ¦--FUNCTION: funct [0/0] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--SYMBOL_FORMALS: x [0/3] {53} - ¦ ¦--EQ_FORMALS: = [0/2] {54} - ¦ ¦--expr: 2 [0/0] {56} - ¦ ¦ °--NUM_CONST: 2 [0/0] {55} - ¦ ¦--',': , [0/9] {57} - ¦ ¦--SYMBOL_FORMALS: tt [1/2] {58} - ¦ ¦--EQ_FORMALS: = [0/2] {59} - ¦ ¦--expr: 1 [0/0] {61} - ¦ ¦ °--NUM_CONST: 1 [0/0] {60} - ¦ ¦--',': , [0/9] {62} - ¦ ¦--SYMBOL_FORMALS: ayz [1/1] {63} - ¦ ¦--EQ_FORMALS: = [0/1] {64} - ¦ ¦--expr: 99 [0/0] {66} - ¦ ¦ °--NUM_CONST: 99 [0/0] {65} - ¦ ¦--')': ) [0/1] {67} - ¦ °--expr: {} [0/0] {68} - ¦ ¦--'{': { [0/0] {69} - ¦ °--'}': } [0/0] {70} - ¦--COMMENT: # ali [2/0] {71} - ¦--expr: funct [1/0] {72} - ¦ ¦--FUNCTION: funct [0/0] {73} - ¦ ¦--'(': ( [0/0] {74} - ¦ ¦--SYMBOL_FORMALS: x [0/1] {75} - ¦ ¦--EQ_FORMALS: = [0/4] {76} - ¦ ¦--expr: 2 [0/0] {78} - ¦ ¦ °--NUM_CONST: 2 [0/0] {77} - ¦ ¦--',': , [0/9] {79} - ¦ ¦--SYMBOL_FORMALS: tt [1/1] {80} - ¦ ¦--EQ_FORMALS: = [0/3] {81} - ¦ ¦--expr: 1 [0/0] {83} - ¦ ¦ °--NUM_CONST: 1 [0/0] {82} - ¦ ¦--',': , [0/9] {84} - ¦ ¦--SYMBOL_FORMALS: ayz [1/1] {85} - ¦ ¦--EQ_FORMALS: = [0/1] {86} - ¦ ¦--expr: 99 [0/0] {88} - ¦ ¦ °--NUM_CONST: 99 [0/0] {87} - ¦ ¦--')': ) [0/1] {89} - ¦ °--expr: {} [0/0] {90} - ¦ ¦--'{': { [0/0] {91} - ¦ °--'}': } [0/0] {92} - ¦--COMMENT: # not [3/0] {93} - ¦--expr: k <- [1/0] {94} - ¦ ¦--expr: k [0/1] {96} - ¦ ¦ °--SYMBOL: k [0/0] {95} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {97} - ¦ °--expr: funct [0/0] {98} - ¦ ¦--FUNCTION: funct [0/0] {99} - ¦ ¦--'(': ( [0/0] {100} - ¦ ¦--SYMBOL_FORMALS: x [0/1] {101} - ¦ ¦--EQ_FORMALS: = [0/3] {102} - ¦ ¦--expr: fish [0/0] {104} - ¦ ¦ °--SYMBOL: fish [0/0] {103} - ¦ ¦--',': , [0/14] {105} - ¦ ¦--SYMBOL_FORMALS: aq [1/1] {106} - ¦ ¦--EQ_FORMALS: = [0/5] {107} - ¦ ¦--expr: 21 [0/0] {109} - ¦ ¦ °--NUM_CONST: 21 [0/0] {108} - ¦ ¦--',': , [0/14] {110} - ¦ ¦--SYMBOL_FORMALS: ayz [1/1] {111} - ¦ ¦--EQ_FORMALS: = [0/1] {112} - ¦ ¦--expr: t(322 [0/0] {113} - ¦ ¦ ¦--expr: t [0/0] {115} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: t [0/0] {114} - ¦ ¦ ¦--'(': ( [0/0] {116} - ¦ ¦ ¦--expr: 322 [0/0] {118} - ¦ ¦ ¦ °--NUM_CONST: 322 [0/0] {117} - ¦ ¦ °--')': ) [0/0] {119} - ¦ ¦--')': ) [0/1] {120} - ¦ °--expr: {} [0/0] {121} - ¦ ¦--'{': { [0/0] {122} - ¦ °--'}': } [0/0] {123} - ¦--COMMENT: # ali [2/0] {124} - ¦--expr: k <- [1/0] {125} - ¦ ¦--expr: k [0/1] {127} - ¦ ¦ °--SYMBOL: k [0/0] {126} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {128} - ¦ °--expr: funct [0/0] {129} - ¦ ¦--FUNCTION: funct [0/0] {130} - ¦ ¦--'(': ( [0/0] {131} - ¦ ¦--SYMBOL_FORMALS: x [0/1] {132} - ¦ ¦--EQ_FORMALS: = [0/1] {133} - ¦ ¦--expr: flus( [0/0] {134} - ¦ ¦ ¦--expr: flus [0/0] {136} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: flus [0/0] {135} - ¦ ¦ ¦--'(': ( [0/0] {137} - ¦ ¦ ¦--expr: we [0/0] {139} - ¦ ¦ ¦ °--SYMBOL: we [0/0] {138} - ¦ ¦ °--')': ) [0/0] {140} - ¦ ¦--',': , [0/14] {141} - ¦ ¦--SYMBOL_FORMALS: aq [1/1] {142} - ¦ ¦--EQ_FORMALS: = [0/2] {143} - ¦ ¦--expr: x - 2 [0/0] {144} - ¦ ¦ ¦--expr: x [0/1] {146} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {145} - ¦ ¦ ¦--'-': - [0/1] {147} - ¦ ¦ °--expr: 22 [0/0] {149} - ¦ ¦ °--NUM_CONST: 22 [0/0] {148} - ¦ ¦--',': , [0/1] {150} - ¦ ¦--SYMBOL_FORMALS: k [0/1] {151} - ¦ ¦--EQ_FORMALS: = [0/1] {152} - ¦ ¦--expr: 22 [0/0] {154} - ¦ ¦ °--NUM_CONST: 22 [0/0] {153} - ¦ ¦--',': , [0/14] {155} - ¦ ¦--SYMBOL_FORMALS: ayz [1/1] {156} - ¦ ¦--EQ_FORMALS: = [0/1] {157} - ¦ ¦--expr: m(jk5 [0/0] {158} - ¦ ¦ ¦--expr: m [0/0] {160} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: m [0/0] {159} - ¦ ¦ ¦--'(': ( [0/0] {161} - ¦ ¦ ¦--expr: jk5 [0/0] {163} - ¦ ¦ ¦ °--SYMBOL: jk5 [0/0] {162} - ¦ ¦ °--')': ) [0/0] {164} - ¦ ¦--',': , [0/1] {165} - ¦ ¦--SYMBOL_FORMALS: xfea [0/1] {166} - ¦ ¦--EQ_FORMALS: = [0/2] {167} - ¦ ¦--expr: 3 [0/0] {169} - ¦ ¦ °--NUM_CONST: 3 [0/0] {168} - ¦ ¦--')': ) [0/1] {170} - ¦ °--expr: {} [0/0] {171} - ¦ ¦--'{': { [0/0] {172} - ¦ °--'}': } [0/0] {173} - ¦--COMMENT: # ali [3/0] {174} - °--expr: k <- [1/0] {175} - ¦--expr: k [0/1] {177} - ¦ °--SYMBOL: k [0/0] {176} - ¦--LEFT_ASSIGN: <- [0/1] {178} - °--expr: funct [0/0] {179} - ¦--FUNCTION: funct [0/0] {180} - ¦--'(': ( [0/0] {181} - ¦--SYMBOL_FORMALS: x [0/1] {182} - ¦--EQ_FORMALS: = [0/1] {183} - ¦--expr: flus( [0/0] {184} - ¦ ¦--expr: flus [0/0] {186} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: flus [0/0] {185} - ¦ ¦--'(': ( [0/0] {187} - ¦ ¦--expr: we [0/0] {189} - ¦ ¦ °--SYMBOL: we [0/0] {188} - ¦ °--')': ) [0/0] {190} - ¦--',': , [0/14] {191} - ¦--SYMBOL_FORMALS: aq [1/1] {192} - ¦--EQ_FORMALS: = [0/2] {193} - ¦--expr: x - 2 [0/0] {194} - ¦ ¦--expr: x [0/1] {196} - ¦ ¦ °--SYMBOL: x [0/0] {195} - ¦ ¦--'-': - [0/1] {197} - ¦ °--expr: 22 [0/0] {199} - ¦ °--NUM_CONST: 22 [0/0] {198} - ¦--',': , [0/4] {200} - ¦--SYMBOL_FORMALS: k [0/1] {201} - ¦--EQ_FORMALS: = [0/1] {202} - ¦--expr: 22 [0/0] {204} - ¦ °--NUM_CONST: 22 [0/0] {203} - ¦--',': , [0/14] {205} - ¦--SYMBOL_FORMALS: ayz [1/1] {206} - ¦--EQ_FORMALS: = [0/1] {207} - ¦--expr: m(jk5 [0/0] {208} - ¦ ¦--expr: m [0/0] {210} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: m [0/0] {209} - ¦ ¦--'(': ( [0/0] {211} - ¦ ¦--expr: jk5 [0/0] {213} - ¦ ¦ °--SYMBOL: jk5 [0/0] {212} - ¦ °--')': ) [0/0] {214} - ¦--',': , [0/1] {215} - ¦--SYMBOL_FORMALS: xfea [0/1] {216} - ¦--EQ_FORMALS: = [0/2] {217} - ¦--expr: 3 [0/0] {219} - ¦ °--NUM_CONST: 3 [0/0] {218} - ¦--')': ) [0/1] {220} - °--expr: {} [0/0] {221} - ¦--'{': { [0/0] {222} - °--'}': } [0/0] {223} diff --git a/tests/testthat/alignment/named-in_tree b/tests/testthat/alignment/named-in_tree deleted file mode 100644 index 2a569ab09..000000000 --- a/tests/testthat/alignment/named-in_tree +++ /dev/null @@ -1,966 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # alg [0/0] {1} - ¦--expr: call( [1/0] {2} - ¦ ¦--expr: call [0/0] {4} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {3} - ¦ ¦--'(': ( [0/2] {5} - ¦ ¦--SYMBOL_SUB: x [1/3] {6} - ¦ ¦--EQ_SUB: = [0/1] {7} - ¦ ¦--expr: 1 [0/0] {9} - ¦ ¦ °--NUM_CONST: 1 [0/0] {8} - ¦ ¦--',': , [0/1] {10} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {11} - ¦ ¦--EQ_SUB: = [0/2] {12} - ¦ ¦--expr: 2 [0/0] {14} - ¦ ¦ °--NUM_CONST: 2 [0/0] {13} - ¦ ¦--',': , [0/2] {15} - ¦ ¦--SYMBOL_SUB: xy [1/2] {16} - ¦ ¦--EQ_SUB: = [0/1] {17} - ¦ ¦--expr: 2 [0/0] {19} - ¦ ¦ °--NUM_CONST: 2 [0/0] {18} - ¦ ¦--',': , [0/1] {20} - ¦ ¦--SYMBOL_SUB: n [0/4] {21} - ¦ ¦--EQ_SUB: = [0/1] {22} - ¦ ¦--expr: 33 [0/0] {24} - ¦ ¦ °--NUM_CONST: 33 [0/0] {23} - ¦ ¦--',': , [0/0] {25} - ¦ °--')': ) [1/0] {26} - ¦--COMMENT: # wit [2/0] {27} - ¦--expr: call( [1/0] {28} - ¦ ¦--expr: call [0/0] {30} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {29} - ¦ ¦--'(': ( [0/2] {31} - ¦ ¦--SYMBOL_SUB: x [1/3] {32} - ¦ ¦--EQ_SUB: = [0/1] {33} - ¦ ¦--expr: 1 [0/0] {35} - ¦ ¦ °--NUM_CONST: 1 [0/0] {34} - ¦ ¦--',': , [0/1] {36} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {37} - ¦ ¦--EQ_SUB: = [0/2] {38} - ¦ ¦--expr: 2 [0/0] {40} - ¦ ¦ °--NUM_CONST: 2 [0/0] {39} - ¦ ¦--',': , [0/2] {41} - ¦ ¦--SYMBOL_SUB: xy [1/2] {42} - ¦ ¦--EQ_SUB: = [0/1] {43} - ¦ ¦--expr: 2 [0/0] {45} - ¦ ¦ °--NUM_CONST: 2 [0/0] {44} - ¦ ¦--',': , [0/1] {46} - ¦ ¦--SYMBOL_SUB: n [0/4] {47} - ¦ ¦--EQ_SUB: = [0/1] {48} - ¦ ¦--expr: 33 [0/0] {50} - ¦ ¦ °--NUM_CONST: 33 [0/0] {49} - ¦ °--')': ) [1/0] {51} - ¦--COMMENT: # alg [2/0] {52} - ¦--expr: call( [1/0] {53} - ¦ ¦--expr: call [0/0] {55} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {54} - ¦ ¦--'(': ( [0/2] {56} - ¦ ¦--SYMBOL_SUB: x [1/2] {57} - ¦ ¦--EQ_SUB: = [0/1] {58} - ¦ ¦--expr: 1 [0/0] {60} - ¦ ¦ °--NUM_CONST: 1 [0/0] {59} - ¦ ¦--',': , [0/1] {61} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {62} - ¦ ¦--EQ_SUB: = [0/2] {63} - ¦ ¦--expr: 2 [0/0] {65} - ¦ ¦ °--NUM_CONST: 2 [0/0] {64} - ¦ ¦--',': , [0/2] {66} - ¦ ¦--SYMBOL_SUB: xy [1/1] {67} - ¦ ¦--EQ_SUB: = [0/1] {68} - ¦ ¦--expr: 2 [0/0] {70} - ¦ ¦ °--NUM_CONST: 2 [0/0] {69} - ¦ ¦--',': , [0/1] {71} - ¦ ¦--SYMBOL_SUB: n [0/4] {72} - ¦ ¦--EQ_SUB: = [0/1] {73} - ¦ ¦--expr: 33 [0/0] {75} - ¦ ¦ °--NUM_CONST: 33 [0/0] {74} - ¦ ¦--',': , [0/0] {76} - ¦ °--')': ) [1/0] {77} - ¦--COMMENT: # alg [2/0] {78} - ¦--expr: call( [1/0] {79} - ¦ ¦--expr: call [0/0] {81} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {80} - ¦ ¦--'(': ( [0/2] {82} - ¦ ¦--SYMBOL_SUB: x [1/2] {83} - ¦ ¦--EQ_SUB: = [0/1] {84} - ¦ ¦--expr: 1 [0/0] {86} - ¦ ¦ °--NUM_CONST: 1 [0/0] {85} - ¦ ¦--',': , [0/1] {87} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {88} - ¦ ¦--EQ_SUB: = [0/2] {89} - ¦ ¦--expr: 2 [0/0] {91} - ¦ ¦ °--NUM_CONST: 2 [0/0] {90} - ¦ ¦--',': , [0/2] {92} - ¦ ¦--SYMBOL_SUB: xy [1/1] {93} - ¦ ¦--EQ_SUB: = [0/1] {94} - ¦ ¦--expr: 2 [0/0] {96} - ¦ ¦ °--NUM_CONST: 2 [0/0] {95} - ¦ ¦--',': , [0/1] {97} - ¦ ¦--SYMBOL_SUB: n [0/4] {98} - ¦ ¦--EQ_SUB: = [0/1] {99} - ¦ ¦--expr: 33 [0/0] {101} - ¦ ¦ °--NUM_CONST: 33 [0/0] {100} - ¦ ¦--',': , [0/0] {102} - ¦ °--')': ) [1/0] {103} - ¦--COMMENT: # alg [2/0] {104} - ¦--expr: call( [1/0] {105} - ¦ ¦--expr: call [0/0] {107} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {106} - ¦ ¦--'(': ( [0/2] {108} - ¦ ¦--SYMBOL_SUB: x [1/2] {109} - ¦ ¦--EQ_SUB: = [0/0] {110} - ¦ ¦--expr: 1 [0/0] {112} - ¦ ¦ °--NUM_CONST: 1 [0/0] {111} - ¦ ¦--',': , [0/3] {113} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {114} - ¦ ¦--EQ_SUB: = [0/2] {115} - ¦ ¦--expr: 2 [0/0] {117} - ¦ ¦ °--NUM_CONST: 2 [0/0] {116} - ¦ ¦--',': , [0/2] {118} - ¦ ¦--SYMBOL_SUB: xy [1/1] {119} - ¦ ¦--EQ_SUB: = [0/0] {120} - ¦ ¦--expr: 2 [0/0] {122} - ¦ ¦ °--NUM_CONST: 2 [0/0] {121} - ¦ ¦--',': , [0/3] {123} - ¦ ¦--SYMBOL_SUB: n [0/4] {124} - ¦ ¦--EQ_SUB: = [0/1] {125} - ¦ ¦--expr: 33 [0/0] {127} - ¦ ¦ °--NUM_CONST: 33 [0/0] {126} - ¦ ¦--',': , [0/0] {128} - ¦ °--')': ) [1/0] {129} - ¦--COMMENT: # alg [2/0] {130} - ¦--expr: call( [1/0] {131} - ¦ ¦--expr: call [0/0] {133} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {132} - ¦ ¦--'(': ( [0/2] {134} - ¦ ¦--SYMBOL_SUB: x [1/2] {135} - ¦ ¦--EQ_SUB: = [0/1] {136} - ¦ ¦--expr: 1 [0/0] {138} - ¦ ¦ °--NUM_CONST: 1 [0/0] {137} - ¦ ¦--',': , [0/3] {139} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {140} - ¦ ¦--EQ_SUB: = [0/2] {141} - ¦ ¦--expr: 2 [0/0] {143} - ¦ ¦ °--NUM_CONST: 2 [0/0] {142} - ¦ ¦--',': , [0/2] {144} - ¦ ¦--SYMBOL_SUB: xy [1/1] {145} - ¦ ¦--EQ_SUB: = [0/1] {146} - ¦ ¦--expr: 2 [0/0] {148} - ¦ ¦ °--NUM_CONST: 2 [0/0] {147} - ¦ ¦--',': , [0/1] {149} - ¦ ¦--SYMBOL_SUB: n [0/1] {150} - ¦ ¦--EQ_SUB: = [0/1] {151} - ¦ ¦--expr: 33 [0/0] {153} - ¦ ¦ °--NUM_CONST: 33 [0/0] {152} - ¦ ¦--',': , [0/0] {154} - ¦ °--')': ) [1/0] {155} - ¦--COMMENT: # alg [2/0] {156} - ¦--expr: call( [1/0] {157} - ¦ ¦--expr: call [0/0] {159} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {158} - ¦ ¦--'(': ( [0/2] {160} - ¦ ¦--SYMBOL_SUB: x [1/2] {161} - ¦ ¦--EQ_SUB: = [0/2] {162} - ¦ ¦--expr: 1 [0/0] {164} - ¦ ¦ °--NUM_CONST: 1 [0/0] {163} - ¦ ¦--',': , [0/3] {165} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {166} - ¦ ¦--EQ_SUB: = [0/2] {167} - ¦ ¦--expr: 2 [0/0] {169} - ¦ ¦ °--NUM_CONST: 2 [0/0] {168} - ¦ ¦--',': , [0/2] {170} - ¦ ¦--SYMBOL_SUB: xy [1/1] {171} - ¦ ¦--EQ_SUB: = [0/1] {172} - ¦ ¦--expr: 22 [0/0] {174} - ¦ ¦ °--NUM_CONST: 22 [0/0] {173} - ¦ ¦--',': , [0/1] {175} - ¦ ¦--SYMBOL_SUB: n [0/1] {176} - ¦ ¦--EQ_SUB: = [0/1] {177} - ¦ ¦--expr: 33 [0/0] {179} - ¦ ¦ °--NUM_CONST: 33 [0/0] {178} - ¦ ¦--',': , [0/0] {180} - ¦ °--')': ) [1/0] {181} - ¦--COMMENT: # alg [2/0] {182} - ¦--expr: call( [1/0] {183} - ¦ ¦--expr: call [0/0] {185} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {184} - ¦ ¦--'(': ( [0/2] {186} - ¦ ¦--SYMBOL_SUB: x [1/2] {187} - ¦ ¦--EQ_SUB: = [0/1] {188} - ¦ ¦--expr: 1 [0/0] {190} - ¦ ¦ °--NUM_CONST: 1 [0/0] {189} - ¦ ¦--',': , [0/1] {191} - ¦ ¦--SYMBOL_SUB: d [0/1] {192} - ¦ ¦--EQ_SUB: = [0/1] {193} - ¦ ¦--expr: 2 [0/0] {195} - ¦ ¦ °--NUM_CONST: 2 [0/0] {194} - ¦ ¦--',': , [0/2] {196} - ¦ ¦--SYMBOL_SUB: xy [1/1] {197} - ¦ ¦--EQ_SUB: = [0/1] {198} - ¦ ¦--expr: 22 [0/0] {200} - ¦ ¦ °--NUM_CONST: 22 [0/0] {199} - ¦ ¦--',': , [0/1] {201} - ¦ ¦--SYMBOL_SUB: n [0/1] {202} - ¦ ¦--EQ_SUB: = [0/1] {203} - ¦ ¦--expr: 33 [0/0] {205} - ¦ ¦ °--NUM_CONST: 33 [0/0] {204} - ¦ ¦--',': , [0/0] {206} - ¦ °--')': ) [1/0] {207} - ¦--COMMENT: # alg [3/0] {208} - ¦--expr: call( [1/0] {209} - ¦ ¦--expr: call [0/0] {211} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {210} - ¦ ¦--'(': ( [0/2] {212} - ¦ ¦--SYMBOL_SUB: x [1/2] {213} - ¦ ¦--EQ_SUB: = [0/1] {214} - ¦ ¦--expr: 1 [0/0] {216} - ¦ ¦ °--NUM_CONST: 1 [0/0] {215} - ¦ ¦--',': , [0/3] {217} - ¦ ¦--SYMBOL_SUB: kdd [0/2] {218} - ¦ ¦--EQ_SUB: = [0/2] {219} - ¦ ¦--expr: 2 [0/0] {221} - ¦ ¦ °--NUM_CONST: 2 [0/0] {220} - ¦ ¦--',': , [0/1] {222} - ¦ ¦--SYMBOL_SUB: k [0/1] {223} - ¦ ¦--EQ_SUB: = [0/1] {224} - ¦ ¦--expr: "abc" [0/0] {226} - ¦ ¦ °--STR_CONST: "abc" [0/0] {225} - ¦ ¦--',': , [0/2] {227} - ¦ ¦--SYMBOL_SUB: xy [1/1] {228} - ¦ ¦--EQ_SUB: = [0/1] {229} - ¦ ¦--expr: 2 [0/0] {231} - ¦ ¦ °--NUM_CONST: 2 [0/0] {230} - ¦ ¦--',': , [0/3] {232} - ¦ ¦--SYMBOL_SUB: n [0/4] {233} - ¦ ¦--EQ_SUB: = [0/1] {234} - ¦ ¦--expr: 33 [0/0] {236} - ¦ ¦ °--NUM_CONST: 33 [0/0] {235} - ¦ ¦--',': , [0/1] {237} - ¦ ¦--SYMBOL_SUB: z [0/1] {238} - ¦ ¦--EQ_SUB: = [0/1] {239} - ¦ ¦--expr: "333" [0/0] {241} - ¦ ¦ °--STR_CONST: "333" [0/0] {240} - ¦ °--')': ) [1/0] {242} - ¦--COMMENT: # alg [3/0] {243} - ¦--expr: call( [1/0] {244} - ¦ ¦--expr: call [0/0] {246} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {245} - ¦ ¦--'(': ( [0/2] {247} - ¦ ¦--SYMBOL_SUB: x [1/2] {248} - ¦ ¦--EQ_SUB: = [0/1] {249} - ¦ ¦--expr: 1 [0/0] {251} - ¦ ¦ °--NUM_CONST: 1 [0/0] {250} - ¦ ¦--',': , [0/2] {252} - ¦ ¦--SYMBOL_SUB: xy [1/1] {253} - ¦ ¦--EQ_SUB: = [0/1] {254} - ¦ ¦--expr: 2 [0/0] {256} - ¦ ¦ °--NUM_CONST: 2 [0/0] {255} - ¦ ¦--',': , [0/1] {257} - ¦ ¦--SYMBOL_SUB: n [0/1] {258} - ¦ ¦--EQ_SUB: = [0/1] {259} - ¦ ¦--expr: 33 [0/0] {261} - ¦ ¦ °--NUM_CONST: 33 [0/0] {260} - ¦ ¦--',': , [0/1] {262} - ¦ ¦--SYMBOL_SUB: z [0/1] {263} - ¦ ¦--EQ_SUB: = [0/1] {264} - ¦ ¦--expr: "333" [0/0] {266} - ¦ ¦ °--STR_CONST: "333" [0/0] {265} - ¦ °--')': ) [1/0] {267} - ¦--COMMENT: # alg [2/0] {268} - ¦--expr: call( [1/0] {269} - ¦ ¦--expr: call [0/0] {271} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {270} - ¦ ¦--'(': ( [0/2] {272} - ¦ ¦--SYMBOL_SUB: x [1/2] {273} - ¦ ¦--EQ_SUB: = [0/1] {274} - ¦ ¦--expr: 1 [0/0] {276} - ¦ ¦ °--NUM_CONST: 1 [0/0] {275} - ¦ ¦--',': , [0/1] {277} - ¦ ¦--SYMBOL_SUB: n [0/1] {278} - ¦ ¦--EQ_SUB: = [0/1] {279} - ¦ ¦--expr: 33 [0/0] {281} - ¦ ¦ °--NUM_CONST: 33 [0/0] {280} - ¦ ¦--',': , [0/1] {282} - ¦ ¦--SYMBOL_SUB: z [0/1] {283} - ¦ ¦--EQ_SUB: = [0/1] {284} - ¦ ¦--expr: "333" [0/0] {286} - ¦ ¦ °--STR_CONST: "333" [0/0] {285} - ¦ ¦--',': , [0/2] {287} - ¦ ¦--SYMBOL_SUB: xy [2/1] {288} - ¦ ¦--EQ_SUB: = [0/1] {289} - ¦ ¦--expr: 2 [0/0] {291} - ¦ ¦ °--NUM_CONST: 2 [0/0] {290} - ¦ ¦--',': , [0/0] {292} - ¦ °--')': ) [1/0] {293} - ¦--COMMENT: # ali [2/0] {294} - ¦--expr: call( [1/0] {295} - ¦ ¦--expr: call [0/0] {297} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {296} - ¦ ¦--'(': ( [0/2] {298} - ¦ ¦--SYMBOL_SUB: k [1/1] {299} - ¦ ¦--EQ_SUB: = [0/2] {300} - ¦ ¦--expr: ff("p [0/0] {301} - ¦ ¦ ¦--expr: ff [0/0] {303} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ff [0/0] {302} - ¦ ¦ ¦--'(': ( [0/0] {304} - ¦ ¦ ¦--expr: "pk" [0/0] {306} - ¦ ¦ ¦ °--STR_CONST: "pk" [0/0] {305} - ¦ ¦ °--')': ) [0/0] {307} - ¦ ¦--',': , [0/1] {308} - ¦ ¦--SYMBOL_SUB: k [0/2] {309} - ¦ ¦--EQ_SUB: = [0/1] {310} - ¦ ¦--expr: 3 [0/0] {312} - ¦ ¦ °--NUM_CONST: 3 [0/0] {311} - ¦ ¦--',': , [0/2] {313} - ¦ ¦--SYMBOL_SUB: b [1/1] {314} - ¦ ¦--EQ_SUB: = [0/1] {315} - ¦ ¦--expr: f(-g) [0/0] {316} - ¦ ¦ ¦--expr: f [0/0] {318} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {317} - ¦ ¦ ¦--'(': ( [0/0] {319} - ¦ ¦ ¦--expr: -g [0/0] {320} - ¦ ¦ ¦ ¦--'-': - [0/0] {321} - ¦ ¦ ¦ °--expr: g [0/0] {323} - ¦ ¦ ¦ °--SYMBOL: g [0/0] {322} - ¦ ¦ °--')': ) [0/0] {324} - ¦ ¦--',': , [0/5] {325} - ¦ ¦--expr: 22 + [0/0] {326} - ¦ ¦ ¦--expr: 22 [0/1] {328} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {327} - ¦ ¦ ¦--'+': + [0/1] {329} - ¦ ¦ °--expr: 1 [0/0] {331} - ¦ ¦ °--NUM_CONST: 1 [0/0] {330} - ¦ ¦--',': , [0/2] {332} - ¦ ¦--expr: 44 [1/0] {334} - ¦ ¦ °--NUM_CONST: 44 [0/0] {333} - ¦ ¦--',': , [0/15] {335} - ¦ ¦--expr: 323 [0/0] {337} - ¦ ¦ °--NUM_CONST: 323 [0/0] {336} - ¦ °--')': ) [1/0] {338} - ¦--COMMENT: # ali [2/0] {339} - ¦--expr: call( [1/0] {340} - ¦ ¦--expr: call [0/0] {342} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {341} - ¦ ¦--'(': ( [0/2] {343} - ¦ ¦--SYMBOL_SUB: k [1/1] {344} - ¦ ¦--EQ_SUB: = [0/2] {345} - ¦ ¦--expr: ff("p [0/0] {346} - ¦ ¦ ¦--expr: ff [0/0] {348} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ff [0/0] {347} - ¦ ¦ ¦--'(': ( [0/0] {349} - ¦ ¦ ¦--expr: "pk" [0/0] {351} - ¦ ¦ ¦ °--STR_CONST: "pk" [0/0] {350} - ¦ ¦ °--')': ) [0/0] {352} - ¦ ¦--',': , [0/1] {353} - ¦ ¦--SYMBOL_SUB: k [0/2] {354} - ¦ ¦--EQ_SUB: = [0/1] {355} - ¦ ¦--expr: 3 [0/0] {357} - ¦ ¦ °--NUM_CONST: 3 [0/0] {356} - ¦ ¦--',': , [0/2] {358} - ¦ ¦--SYMBOL_SUB: b [1/1] {359} - ¦ ¦--EQ_SUB: = [0/1] {360} - ¦ ¦--expr: f(-g) [0/0] {361} - ¦ ¦ ¦--expr: f [0/0] {363} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {362} - ¦ ¦ ¦--'(': ( [0/0] {364} - ¦ ¦ ¦--expr: -g [0/0] {365} - ¦ ¦ ¦ ¦--'-': - [0/0] {366} - ¦ ¦ ¦ °--expr: g [0/0] {368} - ¦ ¦ ¦ °--SYMBOL: g [0/0] {367} - ¦ ¦ °--')': ) [0/0] {369} - ¦ ¦--',': , [0/5] {370} - ¦ ¦--expr: 22 + [0/0] {371} - ¦ ¦ ¦--expr: 22 [0/1] {373} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {372} - ¦ ¦ ¦--'+': + [0/1] {374} - ¦ ¦ °--expr: 1 [0/0] {376} - ¦ ¦ °--NUM_CONST: 1 [0/0] {375} - ¦ ¦--',': , [0/2] {377} - ¦ ¦--expr: 44 [1/0] {379} - ¦ ¦ °--NUM_CONST: 44 [0/0] {378} - ¦ ¦--',': , [0/15] {380} - ¦ ¦--expr: 323 [0/0] {382} - ¦ ¦ °--NUM_CONST: 323 [0/0] {381} - ¦ ¦--',': , [0/0] {383} - ¦ °--')': ) [1/0] {384} - ¦--COMMENT: # no [2/0] {385} - ¦--expr: call( [1/0] {386} - ¦ ¦--expr: call [0/0] {388} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {387} - ¦ ¦--'(': ( [0/2] {389} - ¦ ¦--SYMBOL_SUB: k [1/1] {390} - ¦ ¦--EQ_SUB: = [0/2] {391} - ¦ ¦--expr: ff("p [0/0] {392} - ¦ ¦ ¦--expr: ff [0/0] {394} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ff [0/0] {393} - ¦ ¦ ¦--'(': ( [0/0] {395} - ¦ ¦ ¦--expr: "pk" [0/0] {397} - ¦ ¦ ¦ °--STR_CONST: "pk" [0/0] {396} - ¦ ¦ °--')': ) [0/0] {398} - ¦ ¦--',': , [0/1] {399} - ¦ ¦--SYMBOL_SUB: k [0/2] {400} - ¦ ¦--EQ_SUB: = [0/1] {401} - ¦ ¦--expr: 3 [0/0] {403} - ¦ ¦ °--NUM_CONST: 3 [0/0] {402} - ¦ ¦--',': , [0/2] {404} - ¦ ¦--SYMBOL_SUB: b [1/1] {405} - ¦ ¦--EQ_SUB: = [0/1] {406} - ¦ ¦--expr: f(-g) [0/0] {407} - ¦ ¦ ¦--expr: f [0/0] {409} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {408} - ¦ ¦ ¦--'(': ( [0/0] {410} - ¦ ¦ ¦--expr: -g [0/0] {411} - ¦ ¦ ¦ ¦--'-': - [0/0] {412} - ¦ ¦ ¦ °--expr: g [0/0] {414} - ¦ ¦ ¦ °--SYMBOL: g [0/0] {413} - ¦ ¦ °--')': ) [0/0] {415} - ¦ ¦--',': , [0/5] {416} - ¦ ¦--expr: 22 + [0/0] {417} - ¦ ¦ ¦--expr: 22 [0/1] {419} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {418} - ¦ ¦ ¦--'+': + [0/1] {420} - ¦ ¦ °--expr: 1 [0/0] {422} - ¦ ¦ °--NUM_CONST: 1 [0/0] {421} - ¦ ¦--',': , [0/2] {423} - ¦ ¦--expr: 44 [1/0] {425} - ¦ ¦ °--NUM_CONST: 44 [0/0] {424} - ¦ °--')': ) [1/0] {426} - ¦--COMMENT: # ali [2/0] {427} - ¦--expr: call( [1/0] {428} - ¦ ¦--expr: call [0/0] {430} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {429} - ¦ ¦--'(': ( [0/2] {431} - ¦ ¦--expr: 44 [1/0] {433} - ¦ ¦ °--NUM_CONST: 44 [0/0] {432} - ¦ ¦--',': , [0/2] {434} - ¦ ¦--SYMBOL_SUB: k [1/1] {435} - ¦ ¦--EQ_SUB: = [0/2] {436} - ¦ ¦--expr: ff("p [0/0] {437} - ¦ ¦ ¦--expr: ff [0/0] {439} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ff [0/0] {438} - ¦ ¦ ¦--'(': ( [0/0] {440} - ¦ ¦ ¦--expr: "pk" [0/0] {442} - ¦ ¦ ¦ °--STR_CONST: "pk" [0/0] {441} - ¦ ¦ °--')': ) [0/0] {443} - ¦ ¦--',': , [0/1] {444} - ¦ ¦--SYMBOL_SUB: k [0/2] {445} - ¦ ¦--EQ_SUB: = [0/1] {446} - ¦ ¦--expr: 3 [0/0] {448} - ¦ ¦ °--NUM_CONST: 3 [0/0] {447} - ¦ ¦--',': , [0/2] {449} - ¦ ¦--SYMBOL_SUB: b [1/1] {450} - ¦ ¦--EQ_SUB: = [0/1] {451} - ¦ ¦--expr: f(-g) [0/0] {452} - ¦ ¦ ¦--expr: f [0/0] {454} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {453} - ¦ ¦ ¦--'(': ( [0/0] {455} - ¦ ¦ ¦--expr: -g [0/0] {456} - ¦ ¦ ¦ ¦--'-': - [0/0] {457} - ¦ ¦ ¦ °--expr: g [0/0] {459} - ¦ ¦ ¦ °--SYMBOL: g [0/0] {458} - ¦ ¦ °--')': ) [0/0] {460} - ¦ ¦--',': , [0/5] {461} - ¦ ¦--expr: 22 + [0/0] {462} - ¦ ¦ ¦--expr: 22 [0/1] {464} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {463} - ¦ ¦ ¦--'+': + [0/1] {465} - ¦ ¦ °--expr: 1 [0/0] {467} - ¦ ¦ °--NUM_CONST: 1 [0/0] {466} - ¦ ¦--',': , [0/0] {468} - ¦ °--')': ) [1/0] {469} - ¦--COMMENT: # ali [2/0] {470} - ¦--expr: call( [1/0] {471} - ¦ ¦--expr: call [0/0] {473} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {472} - ¦ ¦--'(': ( [0/2] {474} - ¦ ¦--SYMBOL_SUB: k [1/1] {475} - ¦ ¦--EQ_SUB: = [0/2] {476} - ¦ ¦--expr: ff("p [0/0] {477} - ¦ ¦ ¦--expr: ff [0/0] {479} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ff [0/0] {478} - ¦ ¦ ¦--'(': ( [0/0] {480} - ¦ ¦ ¦--expr: "pk" [0/0] {482} - ¦ ¦ ¦ °--STR_CONST: "pk" [0/0] {481} - ¦ ¦ °--')': ) [0/0] {483} - ¦ ¦--',': , [0/1] {484} - ¦ ¦--SYMBOL_SUB: k [0/2] {485} - ¦ ¦--EQ_SUB: = [0/1] {486} - ¦ ¦--expr: 3 [0/0] {488} - ¦ ¦ °--NUM_CONST: 3 [0/0] {487} - ¦ ¦--',': , [0/2] {489} - ¦ ¦--expr: 44 [1/0] {491} - ¦ ¦ °--NUM_CONST: 44 [0/0] {490} - ¦ ¦--',': , [0/2] {492} - ¦ ¦--SYMBOL_SUB: b [1/1] {493} - ¦ ¦--EQ_SUB: = [0/1] {494} - ¦ ¦--expr: f(-g) [0/0] {495} - ¦ ¦ ¦--expr: f [0/0] {497} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {496} - ¦ ¦ ¦--'(': ( [0/0] {498} - ¦ ¦ ¦--expr: -g [0/0] {499} - ¦ ¦ ¦ ¦--'-': - [0/0] {500} - ¦ ¦ ¦ °--expr: g [0/0] {502} - ¦ ¦ ¦ °--SYMBOL: g [0/0] {501} - ¦ ¦ °--')': ) [0/0] {503} - ¦ ¦--',': , [0/5] {504} - ¦ ¦--expr: 22 + [0/0] {505} - ¦ ¦ ¦--expr: 22 [0/1] {507} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {506} - ¦ ¦ ¦--'+': + [0/1] {508} - ¦ ¦ °--expr: 1 [0/0] {510} - ¦ ¦ °--NUM_CONST: 1 [0/0] {509} - ¦ ¦--',': , [0/0] {511} - ¦ °--')': ) [1/0] {512} - ¦--COMMENT: # if [4/0] {513} - ¦--COMMENT: # not [1/0] {514} - ¦--expr: fell( [1/0] {515} - ¦ ¦--expr: fell [0/0] {517} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fell [0/0] {516} - ¦ ¦--'(': ( [0/2] {518} - ¦ ¦--SYMBOL_SUB: x [1/1] {519} - ¦ ¦--EQ_SUB: = [0/3] {520} - ¦ ¦--expr: 1 [0/0] {522} - ¦ ¦ °--NUM_CONST: 1 [0/0] {521} - ¦ ¦--',': , [0/2] {523} - ¦ ¦--SYMBOL_SUB: y [1/1] {524} - ¦ ¦--EQ_SUB: = [0/2] {525} - ¦ ¦--expr: 23 [0/0] {527} - ¦ ¦ °--NUM_CONST: 23 [0/0] {526} - ¦ ¦--',': , [0/2] {528} - ¦ ¦--SYMBOL_SUB: zz [1/1] {529} - ¦ ¦--EQ_SUB: = [0/1] {530} - ¦ ¦--expr: NULL [0/0] {532} - ¦ ¦ °--NULL_CONST: NULL [0/0] {531} - ¦ °--')': ) [1/0] {533} - ¦--COMMENT: # ali [2/0] {534} - ¦--expr: fell( [1/0] {535} - ¦ ¦--expr: fell [0/0] {537} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fell [0/0] {536} - ¦ ¦--'(': ( [0/2] {538} - ¦ ¦--SYMBOL_SUB: x [1/1] {539} - ¦ ¦--EQ_SUB: = [0/5] {540} - ¦ ¦--expr: 1 [0/0] {542} - ¦ ¦ °--NUM_CONST: 1 [0/0] {541} - ¦ ¦--',': , [0/2] {543} - ¦ ¦--SYMBOL_SUB: y [1/1] {544} - ¦ ¦--EQ_SUB: = [0/4] {545} - ¦ ¦--expr: 23 [0/0] {547} - ¦ ¦ °--NUM_CONST: 23 [0/0] {546} - ¦ ¦--',': , [0/2] {548} - ¦ ¦--SYMBOL_SUB: zz [1/1] {549} - ¦ ¦--EQ_SUB: = [0/1] {550} - ¦ ¦--expr: NULL [0/0] {552} - ¦ ¦ °--NULL_CONST: NULL [0/0] {551} - ¦ °--')': ) [1/0] {553} - ¦--COMMENT: # ali [2/0] {554} - ¦--expr: call( [1/0] {555} - ¦ ¦--expr: call [0/0] {557} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {556} - ¦ ¦--'(': ( [0/2] {558} - ¦ ¦--SYMBOL_SUB: a [1/2] {559} - ¦ ¦--EQ_SUB: = [0/2] {560} - ¦ ¦--expr: 2 [0/0] {562} - ¦ ¦ °--NUM_CONST: 2 [0/0] {561} - ¦ ¦--',': , [0/2] {563} - ¦ ¦--SYMBOL_SUB: bb [1/1] {564} - ¦ ¦--EQ_SUB: = [0/2] {565} - ¦ ¦--expr: 3 [0/0] {567} - ¦ ¦ °--NUM_CONST: 3 [0/0] {566} - ¦ ¦--',': , [1/0] {568} - ¦ °--')': ) [0/0] {569} - ¦--COMMENT: # ali [3/0] {570} - ¦--expr: call( [1/0] {571} - ¦ ¦--expr: call [0/0] {573} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {572} - ¦ ¦--'(': ( [0/2] {574} - ¦ ¦--SYMBOL_SUB: a [1/2] {575} - ¦ ¦--EQ_SUB: = [0/2] {576} - ¦ ¦--expr: 2 [0/0] {578} - ¦ ¦ °--NUM_CONST: 2 [0/0] {577} - ¦ ¦--',': , [0/1] {579} - ¦ ¦--SYMBOL_SUB: x [0/1] {580} - ¦ ¦--EQ_SUB: = [0/1] {581} - ¦ ¦--expr: 111 [0/0] {583} - ¦ ¦ °--NUM_CONST: 111 [0/0] {582} - ¦ ¦--',': , [0/2] {584} - ¦ ¦--COMMENT: # ano [1/2] {585} - ¦ ¦--SYMBOL_SUB: bb [1/1] {586} - ¦ ¦--EQ_SUB: = [0/2] {587} - ¦ ¦--expr: 3 [0/0] {589} - ¦ ¦ °--NUM_CONST: 3 [0/0] {588} - ¦ ¦--',': , [0/1] {590} - ¦ ¦--COMMENT: # hi [0/0] {591} - ¦ °--')': ) [1/0] {592} - ¦--COMMENT: # ali [2/0] {593} - ¦--expr: call( [1/0] {594} - ¦ ¦--expr: call [0/0] {596} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {595} - ¦ ¦--'(': ( [0/2] {597} - ¦ ¦--SYMBOL_SUB: a [1/2] {598} - ¦ ¦--EQ_SUB: = [0/2] {599} - ¦ ¦--expr: 2 [0/0] {601} - ¦ ¦ °--NUM_CONST: 2 [0/0] {600} - ¦ ¦--',': , [0/1] {602} - ¦ ¦--SYMBOL_SUB: x [0/1] {603} - ¦ ¦--EQ_SUB: = [0/1] {604} - ¦ ¦--expr: 111 [0/0] {606} - ¦ ¦ °--NUM_CONST: 111 [0/0] {605} - ¦ ¦--',': , [0/2] {607} - ¦ ¦--SYMBOL_SUB: bb [1/1] {608} - ¦ ¦--EQ_SUB: = [0/2] {609} - ¦ ¦--expr: 3 [0/0] {611} - ¦ ¦ °--NUM_CONST: 3 [0/0] {610} - ¦ ¦--',': , [0/1] {612} - ¦ ¦--COMMENT: # hi [0/0] {613} - ¦ °--')': ) [1/0] {614} - ¦--COMMENT: # ali [2/0] {615} - ¦--expr: call( [1/0] {616} - ¦ ¦--expr: call [0/0] {618} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {617} - ¦ ¦--'(': ( [0/2] {619} - ¦ ¦--COMMENT: # ano [1/2] {620} - ¦ ¦--SYMBOL_SUB: a [1/2] {621} - ¦ ¦--EQ_SUB: = [0/2] {622} - ¦ ¦--expr: 2 [0/0] {624} - ¦ ¦ °--NUM_CONST: 2 [0/0] {623} - ¦ ¦--',': , [0/1] {625} - ¦ ¦--SYMBOL_SUB: x [0/1] {626} - ¦ ¦--EQ_SUB: = [0/1] {627} - ¦ ¦--expr: 111 [0/0] {629} - ¦ ¦ °--NUM_CONST: 111 [0/0] {628} - ¦ ¦--',': , [0/2] {630} - ¦ ¦--SYMBOL_SUB: bb [1/1] {631} - ¦ ¦--EQ_SUB: = [0/2] {632} - ¦ ¦--expr: 3 [0/0] {634} - ¦ ¦ °--NUM_CONST: 3 [0/0] {633} - ¦ ¦--',': , [0/1] {635} - ¦ ¦--COMMENT: # hi [0/0] {636} - ¦ °--')': ) [1/0] {637} - ¦--COMMENT: # ali [2/0] {638} - ¦--expr: call( [1/0] {639} - ¦ ¦--expr: call [0/0] {641} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {640} - ¦ ¦--'(': ( [0/2] {642} - ¦ ¦--COMMENT: # ano [1/2] {643} - ¦ ¦--SYMBOL_SUB: a [1/2] {644} - ¦ ¦--EQ_SUB: = [0/2] {645} - ¦ ¦--expr: 2 [0/0] {647} - ¦ ¦ °--NUM_CONST: 2 [0/0] {646} - ¦ ¦--',': , [0/1] {648} - ¦ ¦--SYMBOL_SUB: x [0/1] {649} - ¦ ¦--EQ_SUB: = [0/1] {650} - ¦ ¦--expr: 111 [0/0] {652} - ¦ ¦ °--NUM_CONST: 111 [0/0] {651} - ¦ ¦--',': , [0/2] {653} - ¦ ¦--SYMBOL_SUB: bb [1/1] {654} - ¦ ¦--EQ_SUB: = [0/2] {655} - ¦ ¦--expr: 3 [0/1] {657} - ¦ ¦ °--NUM_CONST: 3 [0/0] {656} - ¦ ¦--COMMENT: # hi [0/0] {658} - ¦ °--')': ) [1/0] {659} - ¦--COMMENT: # not [2/0] {660} - ¦--expr: call( [1/0] {661} - ¦ ¦--expr: call [0/0] {663} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {662} - ¦ ¦--'(': ( [0/2] {664} - ¦ ¦--SYMBOL_SUB: a [1/1] {665} - ¦ ¦--EQ_SUB: = [0/2] {666} - ¦ ¦--expr: 2 [0/0] {668} - ¦ ¦ °--NUM_CONST: 2 [0/0] {667} - ¦ ¦--',': , [0/1] {669} - ¦ ¦--SYMBOL_SUB: x [0/1] {670} - ¦ ¦--EQ_SUB: = [0/1] {671} - ¦ ¦--expr: 111 [0/0] {673} - ¦ ¦ °--NUM_CONST: 111 [0/0] {672} - ¦ ¦--',': , [0/2] {674} - ¦ ¦--SYMBOL_SUB: bb [1/1] {675} - ¦ ¦--EQ_SUB: = [0/2] {676} - ¦ ¦--expr: 3 [0/0] {678} - ¦ ¦ °--NUM_CONST: 3 [0/0] {677} - ¦ ¦--',': , [0/1] {679} - ¦ ¦--COMMENT: # hi [0/0] {680} - ¦ °--')': ) [1/0] {681} - ¦--COMMENT: # not [2/0] {682} - ¦--expr: call( [1/0] {683} - ¦ ¦--expr: call [0/0] {685} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {684} - ¦ ¦--'(': ( [0/2] {686} - ¦ ¦--COMMENT: # ano [1/2] {687} - ¦ ¦--SYMBOL_SUB: a [1/1] {688} - ¦ ¦--EQ_SUB: = [0/2] {689} - ¦ ¦--expr: 2 [0/0] {691} - ¦ ¦ °--NUM_CONST: 2 [0/0] {690} - ¦ ¦--',': , [0/1] {692} - ¦ ¦--SYMBOL_SUB: x [0/1] {693} - ¦ ¦--EQ_SUB: = [0/1] {694} - ¦ ¦--expr: 111 [0/0] {696} - ¦ ¦ °--NUM_CONST: 111 [0/0] {695} - ¦ ¦--',': , [0/2] {697} - ¦ ¦--SYMBOL_SUB: bb [1/1] {698} - ¦ ¦--EQ_SUB: = [0/2] {699} - ¦ ¦--expr: 3 [0/0] {701} - ¦ ¦ °--NUM_CONST: 3 [0/0] {700} - ¦ ¦--',': , [0/2] {702} - ¦ ¦--COMMENT: # hi [1/0] {703} - ¦ °--')': ) [1/0] {704} - ¦--COMMENT: # If [2/0] {705} - ¦--COMMENT: # not [1/0] {706} - ¦--COMMENT: # in [1/0] {707} - ¦--COMMENT: # the [1/0] {708} - ¦--expr: call( [1/0] {709} - ¦ ¦--expr: call [0/0] {711} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {710} - ¦ ¦--'(': ( [0/2] {712} - ¦ ¦--SYMBOL_SUB: x [1/2] {713} - ¦ ¦--EQ_SUB: = [0/1] {714} - ¦ ¦--expr: 95232 [0/0] {716} - ¦ ¦ °--NUM_CONST: 95232 [0/0] {715} - ¦ ¦--',': , [0/2] {717} - ¦ ¦--SYMBOL_SUB: y [1/2] {718} - ¦ ¦--EQ_SUB: = [0/1] {719} - ¦ ¦--expr: f( - [0/0] {720} - ¦ ¦ ¦--expr: f [0/0] {722} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {721} - ¦ ¦ ¦--'(': ( [0/2] {723} - ¦ ¦ °--')': ) [1/0] {724} - ¦ ¦--',': , [0/0] {725} - ¦ °--')': ) [1/0] {726} - ¦--COMMENT: # ali [3/0] {727} - ¦--expr: ca( - [1/0] {728} - ¦ ¦--expr: ca [0/0] {730} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ca [0/0] {729} - ¦ ¦--'(': ( [0/2] {731} - ¦ ¦--SYMBOL_SUB: x [1/2] {732} - ¦ ¦--EQ_SUB: = [0/1] {733} - ¦ ¦--expr: 23200 [0/0] {735} - ¦ ¦ °--NUM_CONST: 23200 [0/0] {734} - ¦ ¦--',': , [0/2] {736} - ¦ ¦--SYMBOL_SUB: y2 [1/1] {737} - ¦ ¦--EQ_SUB: = [0/1] {738} - ¦ ¦--expr: "hi" [0/0] {740} - ¦ ¦ °--STR_CONST: "hi" [0/0] {739} - ¦ ¦--',': , [0/2] {741} - ¦ ¦--SYMBOL_SUB: m [1/2] {742} - ¦ ¦--EQ_SUB: = [0/1] {743} - ¦ ¦--expr: c(rm. [0/0] {744} - ¦ ¦ ¦--expr: c [0/0] {746} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {745} - ¦ ¦ ¦--'(': ( [0/0] {747} - ¦ ¦ ¦--SYMBOL_SUB: rm.na [0/1] {748} - ¦ ¦ ¦--EQ_SUB: = [0/1] {749} - ¦ ¦ ¦--expr: 7 [0/0] {751} - ¦ ¦ ¦ °--NUM_CONST: 7 [0/0] {750} - ¦ ¦ °--')': ) [0/0] {752} - ¦ °--')': ) [1/0] {753} - ¦--COMMENT: # not [2/0] {754} - ¦--expr: ca( - [1/0] {755} - ¦ ¦--expr: ca [0/0] {757} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ca [0/0] {756} - ¦ ¦--'(': ( [0/2] {758} - ¦ ¦--SYMBOL_SUB: x [1/2] {759} - ¦ ¦--EQ_SUB: = [0/1] {760} - ¦ ¦--expr: 23200 [0/0] {762} - ¦ ¦ °--NUM_CONST: 23200 [0/0] {761} - ¦ ¦--',': , [0/2] {763} - ¦ ¦--SYMBOL_SUB: y2 [1/1] {764} - ¦ ¦--EQ_SUB: = [0/1] {765} - ¦ ¦--expr: "hi" [0/0] {767} - ¦ ¦ °--STR_CONST: "hi" [0/0] {766} - ¦ ¦--',': , [0/2] {768} - ¦ ¦--SYMBOL_SUB: m [1/2] {769} - ¦ ¦--EQ_SUB: = [0/2] {770} - ¦ ¦--expr: c(rm. [0/0] {771} - ¦ ¦ ¦--expr: c [0/0] {773} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {772} - ¦ ¦ ¦--'(': ( [0/0] {774} - ¦ ¦ ¦--SYMBOL_SUB: rm.na [0/1] {775} - ¦ ¦ ¦--EQ_SUB: = [0/1] {776} - ¦ ¦ ¦--expr: 7 [0/0] {778} - ¦ ¦ ¦ °--NUM_CONST: 7 [0/0] {777} - ¦ ¦ °--')': ) [0/0] {779} - ¦ °--')': ) [1/0] {780} - ¦--COMMENT: # ali [2/0] {781} - ¦--expr: fell( [1/0] {782} - ¦ ¦--expr: fell [0/0] {784} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fell [0/0] {783} - ¦ ¦--'(': ( [0/2] {785} - ¦ ¦--SYMBOL_SUB: x [1/2] {786} - ¦ ¦--EQ_SUB: = [0/1] {787} - ¦ ¦--expr: 8 [0/0] {789} - ¦ ¦ °--NUM_CONST: 8 [0/0] {788} - ¦ ¦--',': , [0/1] {790} - ¦ ¦--SYMBOL_SUB: annoy [0/3] {791} - ¦ ¦--EQ_SUB: = [0/1] {792} - ¦ ¦--expr: 3 [0/0] {794} - ¦ ¦ °--NUM_CONST: 3 [0/0] {793} - ¦ ¦--',': , [0/2] {795} - ¦ ¦--SYMBOL_SUB: y [1/2] {796} - ¦ ¦--EQ_SUB: = [0/1] {797} - ¦ ¦--expr: 23 [0/0] {799} - ¦ ¦ °--NUM_CONST: 23 [0/0] {798} - ¦ ¦--',': , [0/1] {800} - ¦ ¦--COMMENT: # not [0/2] {801} - ¦ ¦--SYMBOL_SUB: zz [1/1] {802} - ¦ ¦--EQ_SUB: = [0/1] {803} - ¦ ¦--expr: NULL [0/0] {805} - ¦ ¦ °--NULL_CONST: NULL [0/0] {804} - ¦ ¦--',': , [0/1] {806} - ¦ ¦--SYMBOL_SUB: final [0/1] {807} - ¦ ¦--EQ_SUB: = [0/1] {808} - ¦ ¦--expr: "stuf [0/0] {810} - ¦ ¦ °--STR_CONST: "stuf [0/0] {809} - ¦ °--')': ) [1/0] {811} - ¦--COMMENT: # ali [2/0] {812} - ¦--expr: gell( [1/0] {813} - ¦ ¦--expr: gell [0/0] {815} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: gell [0/0] {814} - ¦ ¦--'(': ( [0/2] {816} - ¦ ¦--SYMBOL_SUB: p [1/1] {817} - ¦ ¦--EQ_SUB: = [0/1] {818} - ¦ ¦--expr: 2 [0/0] {820} - ¦ ¦ °--NUM_CONST: 2 [0/0] {819} - ¦ ¦--',': , [0/3] {821} - ¦ ¦--SYMBOL_SUB: g [0/1] {822} - ¦ ¦--EQ_SUB: = [0/1] {823} - ¦ ¦--expr: gg(x) [0/0] {824} - ¦ ¦ ¦--expr: gg [0/0] {826} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: gg [0/0] {825} - ¦ ¦ ¦--'(': ( [0/0] {827} - ¦ ¦ ¦--expr: x [0/0] {829} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {828} - ¦ ¦ °--')': ) [0/0] {830} - ¦ ¦--',': , [0/1] {831} - ¦ ¦--SYMBOL_SUB: n [0/1] {832} - ¦ ¦--EQ_SUB: = [0/1] {833} - ¦ ¦--expr: 3 * 3 [0/0] {834} - ¦ ¦ ¦--expr: 3 [0/1] {836} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {835} - ¦ ¦ ¦--'*': * [0/1] {837} - ¦ ¦ °--expr: 3 [0/0] {839} - ¦ ¦ °--NUM_CONST: 3 [0/0] {838} - ¦ ¦--',': , [0/1] {840} - ¦ ¦--COMMENT: # [0/2] {841} - ¦ ¦--expr: 31 [1/0] {843} - ¦ ¦ °--NUM_CONST: 31 [0/0] {842} - ¦ ¦--',': , [0/4] {844} - ¦ ¦--SYMBOL_SUB: fds [0/1] {845} - ¦ ¦--EQ_SUB: = [0/1] {846} - ¦ ¦--expr: -1 [0/0] {847} - ¦ ¦ ¦--'-': - [0/0] {848} - ¦ ¦ °--expr: 1 [0/0] {850} - ¦ ¦ °--NUM_CONST: 1 [0/0] {849} - ¦ ¦--',': , [0/1] {851} - ¦ ¦--SYMBOL_SUB: gz [0/3] {852} - ¦ ¦--EQ_SUB: = [0/1] {853} - ¦ ¦--expr: f / 3 [0/0] {854} - ¦ ¦ ¦--expr: f [0/1] {857} - ¦ ¦ ¦ °--SYMBOL: f [0/0] {856} - ¦ ¦ ¦--'/': / [0/1] {858} - ¦ ¦ ¦--expr: 3 [0/1] {860} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {859} - ¦ ¦ ¦--'+': + [0/1] {861} - ¦ ¦ °--expr: 1 [0/0] {863} - ¦ ¦ °--NUM_CONST: 1 [0/0] {862} - ¦ ¦--',': , [0/0] {864} - ¦ °--')': ) [1/0] {865} - ¦--expr: xgle( [2/0] {866} - ¦ ¦--expr: xgle [0/0] {868} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: xgle [0/0] {867} - ¦ ¦--'(': ( [0/2] {869} - ¦ ¦--expr: 1212 [1/0] {871} - ¦ ¦ °--NUM_CONST: 1212 [0/0] {870} - ¦ ¦--',': , [0/1] {872} - ¦ ¦--expr: 232 [0/0] {874} - ¦ ¦ °--NUM_CONST: 232 [0/0] {873} - ¦ ¦--',': , [0/1] {875} - ¦ ¦--expr: f(n = [0/0] {876} - ¦ ¦ ¦--expr: f [0/0] {878} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {877} - ¦ ¦ ¦--'(': ( [0/0] {879} - ¦ ¦ ¦--SYMBOL_SUB: n [0/1] {880} - ¦ ¦ ¦--EQ_SUB: = [0/1] {881} - ¦ ¦ ¦--expr: 2 [0/0] {883} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {882} - ¦ ¦ °--')': ) [0/0] {884} - ¦ ¦--',': , [0/2] {885} - ¦ ¦--expr: 1 [1/0] {887} - ¦ ¦ °--NUM_CONST: 1 [0/0] {886} - ¦ ¦--',': , [0/6] {888} - ¦ ¦--expr: 2 [0/0] {890} - ¦ ¦ °--NUM_CONST: 2 [0/0] {889} - ¦ ¦--',': , [0/2] {891} - ¦ ¦--expr: "kFly [0/0] {893} - ¦ ¦ °--STR_CONST: "kFly [0/0] {892} - ¦ °--')': ) [1/0] {894} - ¦--COMMENT: # lef [2/0] {895} - ¦--expr: call( [1/0] {896} - ¦ ¦--expr: call [0/0] {898} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {897} - ¦ ¦--'(': ( [0/2] {899} - ¦ ¦--SYMBOL_SUB: x [1/1] {900} - ¦ ¦--EQ_SUB: = [0/1] {901} - ¦ ¦--expr: 2 [0/0] {903} - ¦ ¦ °--NUM_CONST: 2 [0/0] {902} - ¦ ¦--',': , [0/11] {904} - ¦ ¦--SYMBOL_SUB: y [0/1] {905} - ¦ ¦--EQ_SUB: = [0/1] {906} - ¦ ¦--expr: "anot [0/0] {908} - ¦ ¦ °--STR_CONST: "anot [0/0] {907} - ¦ ¦--',': , [0/2] {909} - ¦ ¦--SYMBOL_SUB: y [1/1] {910} - ¦ ¦--EQ_SUB: = [0/1] {911} - ¦ ¦--expr: "hhjk [0/0] {913} - ¦ ¦ °--STR_CONST: "hhjk [0/0] {912} - ¦ ¦--',': , [0/1] {914} - ¦ ¦--SYMBOL_SUB: x [0/1] {915} - ¦ ¦--EQ_SUB: = [0/1] {916} - ¦ ¦--expr: 3 [0/0] {918} - ¦ ¦ °--NUM_CONST: 3 [0/0] {917} - ¦ °--')': ) [1/0] {919} - °--expr: call( [2/0] {920} - ¦--expr: call [0/0] {922} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {921} - ¦--'(': ( [0/2] {923} - ¦--SYMBOL_SUB: k [1/1] {924} - ¦--EQ_SUB: = [0/1] {925} - ¦--expr: ff("p [0/0] {926} - ¦ ¦--expr: ff [0/0] {928} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ff [0/0] {927} - ¦ ¦--'(': ( [0/0] {929} - ¦ ¦--expr: "pk" [0/0] {931} - ¦ ¦ °--STR_CONST: "pk" [0/0] {930} - ¦ °--')': ) [0/0] {932} - ¦--',': , [0/1] {933} - ¦--SYMBOL_SUB: k [0/1] {934} - ¦--EQ_SUB: = [0/1] {935} - ¦--expr: 3 [0/0] {937} - ¦ °--NUM_CONST: 3 [0/0] {936} - ¦--',': , [0/2] {938} - ¦--SYMBOL_SUB: b [1/1] {939} - ¦--EQ_SUB: = [0/1] {940} - ¦--expr: f(-g) [0/0] {941} - ¦ ¦--expr: f [0/0] {943} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {942} - ¦ ¦--'(': ( [0/0] {944} - ¦ ¦--expr: -g [0/0] {945} - ¦ ¦ ¦--'-': - [0/0] {946} - ¦ ¦ °--expr: g [0/0] {948} - ¦ ¦ °--SYMBOL: g [0/0] {947} - ¦ °--')': ) [0/0] {949} - ¦--',': , [0/4] {950} - ¦--expr: 22 + [0/0] {951} - ¦ ¦--expr: 22 [0/1] {953} - ¦ ¦ °--NUM_CONST: 22 [0/0] {952} - ¦ ¦--'+': + [0/1] {954} - ¦ °--expr: 1 [0/0] {956} - ¦ °--NUM_CONST: 1 [0/0] {955} - ¦--',': , [0/2] {957} - ¦--expr: 44 [1/0] {959} - ¦ °--NUM_CONST: 44 [0/0] {958} - ¦--',': , [0/11] {960} - ¦--expr: 323 [0/0] {962} - ¦ °--NUM_CONST: 323 [0/0] {961} - °--')': ) [1/0] {963} diff --git a/tests/testthat/alignment/one-col-some-named-in_tree b/tests/testthat/alignment/one-col-some-named-in_tree deleted file mode 100644 index 392910286..000000000 --- a/tests/testthat/alignment/one-col-some-named-in_tree +++ /dev/null @@ -1,48 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: foo( - [0/0] {1} - ¦ ¦--expr: foo [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: foo [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: img [1/0] {6} - ¦ ¦ °--SYMBOL: img [0/0] {5} - ¦ ¦--',': , [0/2] {7} - ¦ ¦--SYMBOL_SUB: pkg [1/1] {8} - ¦ ¦--EQ_SUB: = [0/1] {9} - ¦ ¦--expr: "abc" [0/0] {11} - ¦ ¦ °--STR_CONST: "abc" [0/0] {10} - ¦ ¦--',': , [0/2] {12} - ¦ ¦--SYMBOL_SUB: color [1/7] {13} - ¦ ¦--EQ_SUB: = [0/1] {14} - ¦ ¦--expr: "lmn" [0/0] {16} - ¦ ¦ °--STR_CONST: "lmn" [0/0] {15} - ¦ ¦--',': , [0/2] {17} - ¦ ¦--SYMBOL_SUB: font [1/2] {18} - ¦ ¦--EQ_SUB: = [0/1] {19} - ¦ ¦--expr: "xyz" [0/0] {21} - ¦ ¦ °--STR_CONST: "xyz" [0/0] {20} - ¦ °--')': ) [1/0] {22} - °--expr: foo( - [3/0] {23} - ¦--expr: foo [0/0] {25} - ¦ °--SYMBOL_FUNCTION_CALL: foo [0/0] {24} - ¦--'(': ( [0/2] {26} - ¦--expr: img [1/0] {28} - ¦ °--SYMBOL: img [0/0] {27} - ¦--',': , [0/1] {29} - ¦--COMMENT: # [0/2] {30} - ¦--SYMBOL_SUB: pkg [1/1] {31} - ¦--EQ_SUB: = [0/1] {32} - ¦--expr: "abc" [0/0] {34} - ¦ °--STR_CONST: "abc" [0/0] {33} - ¦--',': , [0/2] {35} - ¦--SYMBOL_SUB: color [1/7] {36} - ¦--EQ_SUB: = [0/1] {37} - ¦--expr: "lmn" [0/0] {39} - ¦ °--STR_CONST: "lmn" [0/0] {38} - ¦--',': , [0/2] {40} - ¦--SYMBOL_SUB: font [1/2] {41} - ¦--EQ_SUB: = [0/1] {42} - ¦--expr: "xyz" [0/0] {44} - ¦ °--STR_CONST: "xyz" [0/0] {43} - °--')': ) [1/0] {45} diff --git a/tests/testthat/alignment/quoted-names-in_tree b/tests/testthat/alignment/quoted-names-in_tree deleted file mode 100644 index 0ed87be9c..000000000 --- a/tests/testthat/alignment/quoted-names-in_tree +++ /dev/null @@ -1,39 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: df <- [0/0] {1} - ¦--expr: df [0/1] {3} - ¦ °--SYMBOL: df [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: dplyr [0/0] {5} - ¦--expr: dplyr [0/0] {6} - ¦ ¦--SYMBOL_PACKAGE: dplyr [0/0] {7} - ¦ ¦--NS_GET: :: [0/0] {8} - ¦ °--SYMBOL_FUNCTION_CALL: renam [0/0] {9} - ¦--'(': ( [0/0] {10} - ¦--expr: df [0/0] {12} - ¦ °--SYMBOL: df [0/0] {11} - ¦--',': , [0/2] {13} - ¦--STR_CONST: "xVal [1/1] {14} - ¦--EQ_SUB: = [0/3] {15} - ¦--expr: "Time [0/0] {17} - ¦ °--STR_CONST: "Time [0/0] {16} - ¦--',': , [0/2] {18} - ¦--STR_CONST: "xUni [1/1] {19} - ¦--EQ_SUB: = [0/1] {20} - ¦--expr: "Time [0/0] {22} - ¦ °--STR_CONST: "Time [0/0] {21} - ¦--',': , [0/2] {23} - ¦--STR_CONST: "yVal [1/3] {24} - ¦--EQ_SUB: = [0/1] {25} - ¦--expr: "simu [0/0] {27} - ¦ °--STR_CONST: "simu [0/0] {26} - ¦--',': , [0/2] {28} - ¦--STR_CONST: "yUni [1/1] {29} - ¦--EQ_SUB: = [0/1] {30} - ¦--expr: "unit [0/0] {32} - ¦ °--STR_CONST: "unit [0/0] {31} - ¦--',': , [0/2] {33} - ¦--STR_CONST: "yDim [1/2] {34} - ¦--EQ_SUB: = [0/1] {35} - ¦--expr: "dime [0/0] {37} - ¦ °--STR_CONST: "dime [0/0] {36} - °--')': ) [1/0] {38} diff --git a/tests/testthat/alignment/tribble-in_tree b/tests/testthat/alignment/tribble-in_tree deleted file mode 100644 index cb374e0bb..000000000 --- a/tests/testthat/alignment/tribble-in_tree +++ /dev/null @@ -1,165 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: tribb [0/0] {1} - ¦ ¦--expr: tribb [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tribb [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: ~x [1/0] {5} - ¦ ¦ ¦--'~': ~ [0/0] {6} - ¦ ¦ °--expr: x [0/0] {8} - ¦ ¦ °--SYMBOL: x [0/0] {7} - ¦ ¦--',': , [0/7] {9} - ¦ ¦--expr: ~d [0/0] {10} - ¦ ¦ ¦--'~': ~ [0/0] {11} - ¦ ¦ °--expr: d [0/0] {13} - ¦ ¦ °--SYMBOL: d [0/0] {12} - ¦ ¦--',': , [0/2] {14} - ¦ ¦--expr: "axa' [1/0] {16} - ¦ ¦ °--STR_CONST: "axa' [0/0] {15} - ¦ ¦--',': , [0/1] {17} - ¦ ¦--expr: 1:6 [0/0] {18} - ¦ ¦ ¦--expr: 1 [0/0] {20} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {19} - ¦ ¦ ¦--':': : [0/0] {21} - ¦ ¦ °--expr: 6 [0/0] {23} - ¦ ¦ °--NUM_CONST: 6 [0/0] {22} - ¦ ¦--',': , [0/2] {24} - ¦ ¦--expr: "b" [1/0] {26} - ¦ ¦ °--STR_CONST: "b" [0/0] {25} - ¦ ¦--',': , [0/6] {27} - ¦ ¦--expr: 4:6 [0/0] {28} - ¦ ¦ ¦--expr: 4 [0/0] {30} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {29} - ¦ ¦ ¦--':': : [0/0] {31} - ¦ ¦ °--expr: 6 [0/0] {33} - ¦ ¦ °--NUM_CONST: 6 [0/0] {32} - ¦ °--')': ) [1/0] {34} - ¦--expr: tribb [2/0] {35} - ¦ ¦--expr: tribb [0/0] {37} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tribb [0/0] {36} - ¦ ¦--'(': ( [0/2] {38} - ¦ ¦--expr: ~x [1/0] {39} - ¦ ¦ ¦--'~': ~ [0/0] {40} - ¦ ¦ °--expr: x [0/0] {42} - ¦ ¦ °--SYMBOL: x [0/0] {41} - ¦ ¦--',': , [0/7] {43} - ¦ ¦--expr: ~d [0/0] {44} - ¦ ¦ ¦--'~': ~ [0/0] {45} - ¦ ¦ °--expr: d [0/0] {47} - ¦ ¦ °--SYMBOL: d [0/0] {46} - ¦ ¦--',': , [0/2] {48} - ¦ ¦--expr: "axa' [1/0] {50} - ¦ ¦ °--STR_CONST: "axa' [0/0] {49} - ¦ ¦--',': , [0/1] {51} - ¦ ¦--expr: 1:6 [0/0] {52} - ¦ ¦ ¦--expr: 1 [0/0] {54} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {53} - ¦ ¦ ¦--':': : [0/0] {55} - ¦ ¦ °--expr: 6 [0/0] {57} - ¦ ¦ °--NUM_CONST: 6 [0/0] {56} - ¦ ¦--',': , [0/2] {58} - ¦ ¦--expr: "b" [1/0] {60} - ¦ ¦ °--STR_CONST: "b" [0/0] {59} - ¦ ¦--',': , [0/4] {61} - ¦ ¦--expr: 4:6 [0/0] {62} - ¦ ¦ ¦--expr: 4 [0/0] {64} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {63} - ¦ ¦ ¦--':': : [0/0] {65} - ¦ ¦ °--expr: 6 [0/0] {67} - ¦ ¦ °--NUM_CONST: 6 [0/0] {66} - ¦ °--')': ) [1/0] {68} - ¦--expr: tribb [3/0] {69} - ¦ ¦--expr: tribb [0/0] {71} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tribb [0/0] {70} - ¦ ¦--'(': ( [0/2] {72} - ¦ ¦--expr: ~x [1/0] {73} - ¦ ¦ ¦--'~': ~ [0/0] {74} - ¦ ¦ °--expr: x [0/0] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--',': , [0/7] {77} - ¦ ¦--expr: ~d [0/0] {78} - ¦ ¦ ¦--'~': ~ [0/0] {79} - ¦ ¦ °--expr: d [0/0] {81} - ¦ ¦ °--SYMBOL: d [0/0] {80} - ¦ ¦--',': , [0/2] {82} - ¦ ¦--expr: "axa' [1/0] {84} - ¦ ¦ °--STR_CONST: "axa' [0/0] {83} - ¦ ¦--',': , [0/1] {85} - ¦ ¦--expr: 1:6 [0/0] {86} - ¦ ¦ ¦--expr: 1 [0/0] {88} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {87} - ¦ ¦ ¦--':': : [0/0] {89} - ¦ ¦ °--expr: 6 [0/0] {91} - ¦ ¦ °--NUM_CONST: 6 [0/0] {90} - ¦ ¦--',': , [0/0] {92} - ¦ ¦--expr: "b" [1/0] {94} - ¦ ¦ °--STR_CONST: "b" [0/0] {93} - ¦ ¦--',': , [0/6] {95} - ¦ ¦--expr: 4:6 [0/0] {96} - ¦ ¦ ¦--expr: 4 [0/0] {98} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {97} - ¦ ¦ ¦--':': : [0/0] {99} - ¦ ¦ °--expr: 6 [0/0] {101} - ¦ ¦ °--NUM_CONST: 6 [0/0] {100} - ¦ °--')': ) [1/0] {102} - ¦--expr: tribb [2/0] {103} - ¦ ¦--expr: tribb [0/0] {105} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tribb [0/0] {104} - ¦ ¦--'(': ( [0/2] {106} - ¦ ¦--expr: ~x [1/0] {107} - ¦ ¦ ¦--'~': ~ [0/0] {108} - ¦ ¦ °--expr: x [0/0] {110} - ¦ ¦ °--SYMBOL: x [0/0] {109} - ¦ ¦--',': , [0/7] {111} - ¦ ¦--expr: ~d [0/0] {112} - ¦ ¦ ¦--'~': ~ [0/0] {113} - ¦ ¦ °--expr: d [0/0] {115} - ¦ ¦ °--SYMBOL: d [0/0] {114} - ¦ ¦--',': , [0/0] {116} - ¦ ¦--expr: "axa' [1/0] {118} - ¦ ¦ °--STR_CONST: "axa' [0/0] {117} - ¦ ¦--',': , [0/2] {119} - ¦ ¦--expr: 1:6 [0/0] {120} - ¦ ¦ ¦--expr: 1 [0/0] {122} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {121} - ¦ ¦ ¦--':': : [0/0] {123} - ¦ ¦ °--expr: 6 [0/0] {125} - ¦ ¦ °--NUM_CONST: 6 [0/0] {124} - ¦ ¦--',': , [0/2] {126} - ¦ ¦--expr: "b" [1/0] {128} - ¦ ¦ °--STR_CONST: "b" [0/0] {127} - ¦ ¦--',': , [0/6] {129} - ¦ ¦--expr: 4:6 [0/0] {130} - ¦ ¦ ¦--expr: 4 [0/0] {132} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {131} - ¦ ¦ ¦--':': : [0/0] {133} - ¦ ¦ °--expr: 6 [0/0] {135} - ¦ ¦ °--NUM_CONST: 6 [0/0] {134} - ¦ °--')': ) [1/0] {136} - ¦--COMMENT: # has [2/0] {137} - °--expr: mlr3m [1/0] {138} - ¦--expr: mlr3m [0/0] {139} - ¦ ¦--SYMBOL_PACKAGE: mlr3m [0/0] {140} - ¦ ¦--NS_GET_INT: ::: [0/0] {141} - ¦ °--SYMBOL_FUNCTION_CALL: rowwi [0/0] {142} - ¦--'(': ( [0/2] {143} - ¦--SYMBOL_SUB: x [1/1] {144} - ¦--EQ_SUB: = [0/1] {145} - ¦--expr: 23 [0/0] {147} - ¦ °--NUM_CONST: 23 [0/0] {146} - ¦--',': , [0/1] {148} - ¦--SYMBOL_SUB: zy [0/1] {149} - ¦--EQ_SUB: = [0/1] {150} - ¦--expr: 3 [0/0] {152} - ¦ °--NUM_CONST: 3 [0/0] {151} - ¦--',': , [0/2] {153} - ¦--SYMBOL_SUB: y [1/1] {154} - ¦--EQ_SUB: = [0/1] {155} - ¦--expr: 1 [0/0] {157} - ¦ °--NUM_CONST: 1 [0/0] {156} - ¦--',': , [0/2] {158} - ¦--SYMBOL_SUB: k [0/1] {159} - ¦--EQ_SUB: = [0/1] {160} - ¦--expr: 1 [0/0] {162} - ¦ °--NUM_CONST: 1 [0/0] {161} - ¦--',': , [0/0] {163} - °--')': ) [1/0] {164} diff --git a/tests/testthat/alignment/tribble-three-cols-in_tree b/tests/testthat/alignment/tribble-three-cols-in_tree deleted file mode 100644 index aa7e8e833..000000000 --- a/tests/testthat/alignment/tribble-three-cols-in_tree +++ /dev/null @@ -1,38 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: tribb [0/0] {1} - ¦--expr: tribb [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: tribb [0/0] {2} - ¦--'(': ( [0/2] {4} - ¦--expr: ~x [1/0] {5} - ¦ ¦--'~': ~ [0/0] {6} - ¦ °--expr: x [0/0] {8} - ¦ °--SYMBOL: x [0/0] {7} - ¦--',': , [0/4] {9} - ¦--expr: ~y [0/0] {10} - ¦ ¦--'~': ~ [0/0] {11} - ¦ °--expr: y [0/0] {13} - ¦ °--SYMBOL: y [0/0] {12} - ¦--',': , [0/4] {14} - ¦--expr: ~z [0/0] {15} - ¦ ¦--'~': ~ [0/0] {16} - ¦ °--expr: z [0/0] {18} - ¦ °--SYMBOL: z [0/0] {17} - ¦--',': , [0/2] {19} - ¦--expr: "one" [1/0] {21} - ¦ °--STR_CONST: "one" [0/0] {20} - ¦--',': , [0/1] {22} - ¦--expr: TRUE [0/0] {24} - ¦ °--NUM_CONST: TRUE [0/0] {23} - ¦--',': , [0/2] {25} - ¦--expr: 1L [0/0] {27} - ¦ °--NUM_CONST: 1L [0/0] {26} - ¦--',': , [0/2] {28} - ¦--expr: "two" [1/0] {30} - ¦ °--STR_CONST: "two" [0/0] {29} - ¦--',': , [0/1] {31} - ¦--expr: FALSE [0/0] {33} - ¦ °--NUM_CONST: FALSE [0/0] {32} - ¦--',': , [0/1] {34} - ¦--expr: 2L [0/0] {36} - ¦ °--NUM_CONST: 2L [0/0] {35} - °--')': ) [1/0] {37} diff --git a/tests/testthat/curly-curly/mixed-in_tree b/tests/testthat/curly-curly/mixed-in_tree deleted file mode 100644 index b7ab6ef5a..000000000 --- a/tests/testthat/curly-curly/mixed-in_tree +++ /dev/null @@ -1,505 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: ## . [0/0] {1} - ¦--COMMENT: ## l [1/0] {2} - ¦--COMMENT: # not [1/0] {3} - ¦--expr: call( [1/0] {4} - ¦ ¦--expr: call [0/0] {6} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {5} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--expr: {{ x [0/0] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: { x } [0/0] {10} - ¦ ¦ ¦ ¦--'{': { [0/1] {11} - ¦ ¦ ¦ ¦--expr: x [0/1] {13} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {12} - ¦ ¦ ¦ °--'}': } [0/0] {14} - ¦ ¦ °--'}': } [0/0] {15} - ¦ °--')': ) [0/0] {16} - ¦--COMMENT: # rem [2/0] {17} - ¦--expr: call( [1/0] {18} - ¦ ¦--expr: call [0/0] {20} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {19} - ¦ ¦--'(': ( [0/0] {21} - ¦ ¦--expr: {{ - [0/0] {22} - ¦ ¦ ¦--'{': { [0/0] {23} - ¦ ¦ ¦--expr: { - x [0/0] {24} - ¦ ¦ ¦ ¦--'{': { [0/2] {25} - ¦ ¦ ¦ ¦--expr: x [1/0] {27} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {26} - ¦ ¦ ¦ °--'}': } [1/0] {28} - ¦ ¦ °--'}': } [0/0] {29} - ¦ °--')': ) [0/0] {30} - ¦--expr: call( [2/0] {31} - ¦ ¦--expr: call [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: { - { [0/0] {35} - ¦ ¦ ¦--'{': { [0/2] {36} - ¦ ¦ ¦--expr: {x -} [1/0] {37} - ¦ ¦ ¦ ¦--'{': { [0/0] {38} - ¦ ¦ ¦ ¦--expr: x [0/0] {40} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {39} - ¦ ¦ ¦ °--'}': } [1/0] {41} - ¦ ¦ °--'}': } [0/0] {42} - ¦ °--')': ) [0/0] {43} - ¦--expr: call( [2/0] {44} - ¦ ¦--expr: call [0/0] {46} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {45} - ¦ ¦--'(': ( [0/0] {47} - ¦ ¦--expr: { - { [0/0] {48} - ¦ ¦ ¦--'{': { [0/2] {49} - ¦ ¦ ¦--expr: {x} [1/0] {50} - ¦ ¦ ¦ ¦--'{': { [0/0] {51} - ¦ ¦ ¦ ¦--expr: x [0/0] {53} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {52} - ¦ ¦ ¦ °--'}': } [0/0] {54} - ¦ ¦ °--'}': } [0/0] {55} - ¦ °--')': ) [1/0] {56} - ¦--expr: call( [2/0] {57} - ¦ ¦--expr: call [0/0] {59} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {58} - ¦ ¦--'(': ( [0/0] {60} - ¦ ¦--expr: { - { [0/0] {61} - ¦ ¦ ¦--'{': { [0/2] {62} - ¦ ¦ ¦--expr: {x} [1/2] {63} - ¦ ¦ ¦ ¦--'{': { [0/0] {64} - ¦ ¦ ¦ ¦--expr: x [0/0] {66} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {65} - ¦ ¦ ¦ °--'}': } [0/0] {67} - ¦ ¦ °--'}': } [1/0] {68} - ¦ °--')': ) [0/0] {69} - ¦--expr: call( [2/0] {70} - ¦ ¦--expr: call [0/0] {72} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {71} - ¦ ¦--'(': ( [0/2] {73} - ¦ ¦--expr: { - { [1/2] {74} - ¦ ¦ ¦--'{': { [0/2] {75} - ¦ ¦ ¦--expr: {x - [1/4] {76} - ¦ ¦ ¦ ¦--'{': { [0/0] {77} - ¦ ¦ ¦ ¦--expr: x [0/2] {79} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {78} - ¦ ¦ ¦ °--'}': } [1/0] {80} - ¦ ¦ °--'}': } [1/0] {81} - ¦ °--')': ) [1/0] {82} - ¦--COMMENT: ## . [2/0] {83} - ¦--COMMENT: ## s [1/0] {84} - ¦--COMMENT: # not [2/0] {85} - ¦--expr: call( [1/0] {86} - ¦ ¦--expr: call [0/0] {88} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {87} - ¦ ¦--'(': ( [0/0] {89} - ¦ ¦--expr: {{ x [0/0] {90} - ¦ ¦ ¦--'{': { [0/0] {91} - ¦ ¦ ¦--expr: { x } [0/0] {92} - ¦ ¦ ¦ ¦--'{': { [0/1] {93} - ¦ ¦ ¦ ¦--expr: x [0/1] {95} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {94} - ¦ ¦ ¦ °--'}': } [0/0] {96} - ¦ ¦ °--'}': } [0/0] {97} - ¦ °--')': ) [0/0] {98} - ¦--COMMENT: # rem [2/0] {99} - ¦--expr: call( [1/0] {100} - ¦ ¦--expr: call [0/0] {102} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {101} - ¦ ¦--'(': ( [0/0] {103} - ¦ ¦--expr: { { x [0/0] {104} - ¦ ¦ ¦--'{': { [0/1] {105} - ¦ ¦ ¦--expr: { x } [0/0] {106} - ¦ ¦ ¦ ¦--'{': { [0/1] {107} - ¦ ¦ ¦ ¦--expr: x [0/1] {109} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {108} - ¦ ¦ ¦ °--'}': } [0/0] {110} - ¦ ¦ °--'}': } [0/0] {111} - ¦ °--')': ) [0/0] {112} - ¦--expr: call( [1/0] {113} - ¦ ¦--expr: call [0/0] {115} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {114} - ¦ ¦--'(': ( [0/0] {116} - ¦ ¦--expr: { { x [0/1] {117} - ¦ ¦ ¦--'{': { [0/1] {118} - ¦ ¦ ¦--expr: { x } [0/0] {119} - ¦ ¦ ¦ ¦--'{': { [0/1] {120} - ¦ ¦ ¦ ¦--expr: x [0/1] {122} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {121} - ¦ ¦ ¦ °--'}': } [0/0] {123} - ¦ ¦ °--'}': } [0/0] {124} - ¦ °--')': ) [0/0] {125} - ¦--expr: call( [1/0] {126} - ¦ ¦--expr: call [0/0] {128} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {127} - ¦ ¦--'(': ( [0/1] {129} - ¦ ¦--expr: { { x [0/0] {130} - ¦ ¦ ¦--'{': { [0/1] {131} - ¦ ¦ ¦--expr: { x } [0/0] {132} - ¦ ¦ ¦ ¦--'{': { [0/1] {133} - ¦ ¦ ¦ ¦--expr: x [0/1] {135} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {134} - ¦ ¦ ¦ °--'}': } [0/0] {136} - ¦ ¦ °--'}': } [0/0] {137} - ¦ °--')': ) [0/0] {138} - ¦--expr: call( [1/0] {139} - ¦ ¦--expr: call [0/0] {141} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {140} - ¦ ¦--'(': ( [0/1] {142} - ¦ ¦--expr: { { x [0/0] {143} - ¦ ¦ ¦--'{': { [0/1] {144} - ¦ ¦ ¦--expr: { x } [0/1] {145} - ¦ ¦ ¦ ¦--'{': { [0/1] {146} - ¦ ¦ ¦ ¦--expr: x [0/1] {148} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {147} - ¦ ¦ ¦ °--'}': } [0/0] {149} - ¦ ¦ °--'}': } [0/0] {150} - ¦ °--')': ) [0/0] {151} - ¦--COMMENT: # ins [2/0] {152} - ¦--expr: call( [1/0] {153} - ¦ ¦--expr: call [0/0] {155} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {154} - ¦ ¦--'(': ( [0/0] {156} - ¦ ¦--expr: {{x } [0/0] {157} - ¦ ¦ ¦--'{': { [0/0] {158} - ¦ ¦ ¦--expr: {x } [0/0] {159} - ¦ ¦ ¦ ¦--'{': { [0/0] {160} - ¦ ¦ ¦ ¦--expr: x [0/1] {162} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {161} - ¦ ¦ ¦ °--'}': } [0/0] {163} - ¦ ¦ °--'}': } [0/0] {164} - ¦ °--')': ) [0/0] {165} - ¦--expr: call( [1/0] {166} - ¦ ¦--expr: call [0/0] {168} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {167} - ¦ ¦--'(': ( [0/0] {169} - ¦ ¦--expr: {{x}} [0/0] {170} - ¦ ¦ ¦--'{': { [0/0] {171} - ¦ ¦ ¦--expr: {x} [0/0] {172} - ¦ ¦ ¦ ¦--'{': { [0/0] {173} - ¦ ¦ ¦ ¦--expr: x [0/0] {175} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {174} - ¦ ¦ ¦ °--'}': } [0/0] {176} - ¦ ¦ °--'}': } [0/0] {177} - ¦ °--')': ) [0/0] {178} - ¦--expr: call( [1/0] {179} - ¦ ¦--expr: call [0/0] {181} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {180} - ¦ ¦--'(': ( [0/0] {182} - ¦ ¦--expr: {{ x} [0/0] {183} - ¦ ¦ ¦--'{': { [0/0] {184} - ¦ ¦ ¦--expr: { x} [0/0] {185} - ¦ ¦ ¦ ¦--'{': { [0/1] {186} - ¦ ¦ ¦ ¦--expr: x [0/0] {188} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {187} - ¦ ¦ ¦ °--'}': } [0/0] {189} - ¦ ¦ °--'}': } [0/0] {190} - ¦ °--')': ) [0/0] {191} - ¦--COMMENT: # not [2/0] {192} - ¦--expr: call( [1/0] {193} - ¦ ¦--expr: call [0/0] {195} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {194} - ¦ ¦--'(': ( [0/0] {196} - ¦ ¦--expr: {{ x [0/0] {197} - ¦ ¦ ¦--'{': { [0/0] {198} - ¦ ¦ ¦--expr: { x } [0/0] {199} - ¦ ¦ ¦ ¦--'{': { [0/1] {200} - ¦ ¦ ¦ ¦--expr: x [0/1] {202} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {201} - ¦ ¦ ¦ °--'}': } [0/0] {203} - ¦ ¦ °--'}': } [0/0] {204} - ¦ °--')': ) [0/0] {205} - ¦--COMMENT: # com [3/0] {206} - ¦--expr: call( [1/0] {207} - ¦ ¦--expr: call [0/0] {209} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {208} - ¦ ¦--'(': ( [0/0] {210} - ¦ ¦--expr: {{ x} [0/0] {211} - ¦ ¦ ¦--'{': { [0/0] {212} - ¦ ¦ ¦--expr: { x} [0/2] {213} - ¦ ¦ ¦ ¦--'{': { [0/1] {214} - ¦ ¦ ¦ ¦--expr: x [0/0] {216} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {215} - ¦ ¦ ¦ °--'}': } [0/0] {217} - ¦ ¦ °--'}': } [1/0] {218} - ¦ °--')': ) [0/0] {219} - ¦--expr: call( [2/0] {220} - ¦ ¦--expr: call [0/0] {222} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {221} - ¦ ¦--'(': ( [0/0] {223} - ¦ ¦--expr: { - { [0/0] {224} - ¦ ¦ ¦--'{': { [0/2] {225} - ¦ ¦ ¦--expr: { x} [1/0] {226} - ¦ ¦ ¦ ¦--'{': { [0/1] {227} - ¦ ¦ ¦ ¦--expr: x [0/0] {229} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {228} - ¦ ¦ ¦ °--'}': } [0/0] {230} - ¦ ¦ °--'}': } [0/0] {231} - ¦ °--')': ) [0/0] {232} - ¦--COMMENT: # not [2/0] {233} - ¦--expr: { - y [1/0] {234} - ¦ ¦--'{': { [0/2] {235} - ¦ ¦--expr: y [1/0] {237} - ¦ ¦ °--SYMBOL: y [0/0] {236} - ¦ °--'}': } [1/0] {238} - ¦--expr: { 1 + [1/0] {239} - ¦ ¦--'{': { [0/1] {240} - ¦ ¦--expr: 1 + 1 [0/0] {241} - ¦ ¦ ¦--expr: 1 [0/1] {243} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {242} - ¦ ¦ ¦--'+': + [0/1] {244} - ¦ ¦ °--expr: 1 [0/0] {246} - ¦ ¦ °--NUM_CONST: 1 [0/0] {245} - ¦ °--'}': } [0/0] {247} - ¦--expr: {{1 + [1/1] {248} - ¦ ¦--'{': { [0/0] {249} - ¦ ¦--expr: {1 + [0/0] {250} - ¦ ¦ ¦--expr: {1 + [0/1] {251} - ¦ ¦ ¦ ¦--'{': { [0/0] {252} - ¦ ¦ ¦ ¦--expr: 1 + a [0/0] {253} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {255} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {254} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {256} - ¦ ¦ ¦ ¦ °--expr: a [0/0] {258} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {257} - ¦ ¦ ¦ °--'}': } [0/0] {259} - ¦ ¦ ¦--'+': + [0/1] {260} - ¦ ¦ °--expr: 1 [0/0] {262} - ¦ ¦ °--NUM_CONST: 1 [0/0] {261} - ¦ °--'}': } [0/0] {263} - ¦--COMMENT: # not [0/0] {264} - ¦--COMMENT: ## . [3/0] {265} - ¦--COMMENT: ## m [1/0] {266} - ¦--expr: call( [1/0] {267} - ¦ ¦--expr: call [0/0] {269} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {268} - ¦ ¦--'(': ( [0/0] {270} - ¦ ¦--expr: "test [0/0] {272} - ¦ ¦ °--STR_CONST: "test [0/0] {271} - ¦ ¦--',': , [0/1] {273} - ¦ ¦--expr: { - 1 [0/0] {274} - ¦ ¦ ¦--'{': { [0/2] {275} - ¦ ¦ ¦--expr: 1 [1/0] {277} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {276} - ¦ ¦ °--'}': } [1/0] {278} - ¦ °--')': ) [0/0] {279} - ¦--expr: call( [2/0] {280} - ¦ ¦--expr: call [0/0] {282} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {281} - ¦ ¦--'(': ( [0/2] {283} - ¦ ¦--expr: "test [1/0] {285} - ¦ ¦ °--STR_CONST: "test [0/0] {284} - ¦ ¦--',': , [0/1] {286} - ¦ ¦--expr: { - 1 [0/0] {287} - ¦ ¦ ¦--'{': { [0/2] {288} - ¦ ¦ ¦--expr: 1 [1/0] {290} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {289} - ¦ ¦ °--'}': } [1/0] {291} - ¦ °--')': ) [0/0] {292} - ¦--expr: call( [2/0] {293} - ¦ ¦--expr: call [0/0] {295} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {294} - ¦ ¦--'(': ( [0/0] {296} - ¦ ¦--expr: "test [0/0] {298} - ¦ ¦ °--STR_CONST: "test [0/0] {297} - ¦ ¦--',': , [0/5] {299} - ¦ ¦--expr: { - [1/0] {300} - ¦ ¦ ¦--'{': { [0/4] {301} - ¦ ¦ ¦--expr: 1 [1/2] {303} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {302} - ¦ ¦ °--'}': } [1/0] {304} - ¦ °--')': ) [0/0] {305} - ¦--expr: call( [2/0] {306} - ¦ ¦--expr: call [0/0] {308} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {307} - ¦ ¦--'(': ( [0/0] {309} - ¦ ¦--expr: "test [0/0] {311} - ¦ ¦ °--STR_CONST: "test [0/0] {310} - ¦ ¦--',': , [0/1] {312} - ¦ ¦--expr: { - 1 [0/0] {313} - ¦ ¦ ¦--'{': { [0/2] {314} - ¦ ¦ ¦--expr: 1 [1/1] {316} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {315} - ¦ ¦ °--'}': } [0/0] {317} - ¦ °--')': ) [1/0] {318} - ¦--expr: call( [2/0] {319} - ¦ ¦--expr: call [0/0] {321} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {320} - ¦ ¦--'(': ( [0/0] {322} - ¦ ¦--expr: { - 1 [0/0] {323} - ¦ ¦ ¦--'{': { [0/2] {324} - ¦ ¦ ¦--expr: 1 [1/0] {326} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {325} - ¦ ¦ °--'}': } [1/0] {327} - ¦ ¦--',': , [0/1] {328} - ¦ ¦--expr: a + b [0/0] {329} - ¦ ¦ ¦--expr: a [0/1] {331} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {330} - ¦ ¦ ¦--'+': + [0/1] {332} - ¦ ¦ °--expr: b [0/0] {334} - ¦ ¦ °--SYMBOL: b [0/0] {333} - ¦ ¦--',': , [0/1] {335} - ¦ ¦--expr: { 33 [0/0] {336} - ¦ ¦ ¦--'{': { [0/1] {337} - ¦ ¦ ¦--expr: 33 / [0/0] {338} - ¦ ¦ ¦ ¦--expr: 33 [0/1] {340} - ¦ ¦ ¦ ¦ °--NUM_CONST: 33 [0/0] {339} - ¦ ¦ ¦ ¦--'/': / [0/1] {341} - ¦ ¦ ¦ °--expr: f(c) [0/0] {342} - ¦ ¦ ¦ ¦--expr: f [0/0] {344} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {343} - ¦ ¦ ¦ ¦--'(': ( [0/0] {345} - ¦ ¦ ¦ ¦--expr: c [0/0] {347} - ¦ ¦ ¦ ¦ °--SYMBOL: c [0/0] {346} - ¦ ¦ ¦ °--')': ) [0/0] {348} - ¦ ¦ °--'}': } [0/0] {349} - ¦ °--')': ) [0/0] {350} - ¦--expr: call( [2/0] {351} - ¦ ¦--expr: call [0/0] {353} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {352} - ¦ ¦--'(': ( [0/0] {354} - ¦ ¦--expr: {{ x [0/0] {355} - ¦ ¦ ¦--'{': { [0/0] {356} - ¦ ¦ ¦--expr: { x } [0/0] {357} - ¦ ¦ ¦ ¦--'{': { [0/1] {358} - ¦ ¦ ¦ ¦--expr: x [0/1] {360} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {359} - ¦ ¦ ¦ °--'}': } [0/0] {361} - ¦ ¦ °--'}': } [0/0] {362} - ¦ ¦--',': , [0/1] {363} - ¦ ¦--expr: {{ y} [0/0] {364} - ¦ ¦ ¦--'{': { [0/0] {365} - ¦ ¦ ¦--expr: { y} [0/0] {366} - ¦ ¦ ¦ ¦--'{': { [0/1] {367} - ¦ ¦ ¦ ¦--expr: y [0/0] {369} - ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {368} - ¦ ¦ ¦ °--'}': } [0/0] {370} - ¦ ¦ °--'}': } [0/0] {371} - ¦ °--')': ) [0/0] {372} - ¦--expr: call( [1/0] {373} - ¦ ¦--expr: call [0/0] {375} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {374} - ¦ ¦--'(': ( [0/0] {376} - ¦ ¦--expr: {{ x [0/0] {377} - ¦ ¦ ¦--'{': { [0/0] {378} - ¦ ¦ ¦--expr: { x } [0/0] {379} - ¦ ¦ ¦ ¦--'{': { [0/1] {380} - ¦ ¦ ¦ ¦--expr: x [0/1] {382} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {381} - ¦ ¦ ¦ °--'}': } [0/0] {383} - ¦ ¦ °--'}': } [0/0] {384} - ¦ ¦--',': , [0/1] {385} - ¦ ¦--expr: {{ y} [0/0] {386} - ¦ ¦ ¦--'{': { [0/0] {387} - ¦ ¦ ¦--expr: { y} [0/2] {388} - ¦ ¦ ¦ ¦--'{': { [0/1] {389} - ¦ ¦ ¦ ¦--expr: y [0/0] {391} - ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {390} - ¦ ¦ ¦ °--'}': } [0/0] {392} - ¦ ¦ °--'}': } [1/0] {393} - ¦ °--')': ) [0/0] {394} - ¦--expr: call( [1/0] {395} - ¦ ¦--expr: call [0/0] {397} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {396} - ¦ ¦--'(': ( [0/2] {398} - ¦ ¦--expr: {{ x [1/0] {399} - ¦ ¦ ¦--'{': { [0/0] {400} - ¦ ¦ ¦--expr: { x } [0/0] {401} - ¦ ¦ ¦ ¦--'{': { [0/1] {402} - ¦ ¦ ¦ ¦--expr: x [0/1] {404} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {403} - ¦ ¦ ¦ °--'}': } [0/0] {405} - ¦ ¦ °--'}': } [0/0] {406} - ¦ ¦--',': , [0/1] {407} - ¦ ¦--expr: {{ y} [0/0] {408} - ¦ ¦ ¦--'{': { [0/0] {409} - ¦ ¦ ¦--expr: { y} [0/0] {410} - ¦ ¦ ¦ ¦--'{': { [0/1] {411} - ¦ ¦ ¦ ¦--expr: y [0/0] {413} - ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {412} - ¦ ¦ ¦ °--'}': } [0/0] {414} - ¦ ¦ °--'}': } [0/0] {415} - ¦ °--')': ) [0/0] {416} - ¦--expr: call( [2/0] {417} - ¦ ¦--expr: call [0/0] {419} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {418} - ¦ ¦--'(': ( [0/2] {420} - ¦ ¦--expr: {{ x [1/0] {421} - ¦ ¦ ¦--'{': { [0/0] {422} - ¦ ¦ ¦--expr: { x } [0/0] {423} - ¦ ¦ ¦ ¦--'{': { [0/1] {424} - ¦ ¦ ¦ ¦--expr: x [0/1] {426} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {425} - ¦ ¦ ¦ °--'}': } [0/0] {427} - ¦ ¦ °--'}': } [0/0] {428} - ¦ ¦--',': , [0/2] {429} - ¦ ¦--expr: {{ y} [1/0] {430} - ¦ ¦ ¦--expr: {{ y} [0/1] {431} - ¦ ¦ ¦ ¦--'{': { [0/0] {432} - ¦ ¦ ¦ ¦--expr: { y} [0/0] {433} - ¦ ¦ ¦ ¦ ¦--'{': { [0/1] {434} - ¦ ¦ ¦ ¦ ¦--expr: y [0/0] {436} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {435} - ¦ ¦ ¦ ¦ °--'}': } [0/0] {437} - ¦ ¦ ¦ °--'}': } [0/0] {438} - ¦ ¦ ¦--LEFT_ASSIGN: := [0/1] {439} - ¦ ¦ °--expr: 3 [0/0] {441} - ¦ ¦ °--NUM_CONST: 3 [0/0] {440} - ¦ ¦--',': , [0/1] {442} - ¦ ¦--expr: f(bk) [0/0] {443} - ¦ ¦ ¦--expr: f [0/0] {445} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {444} - ¦ ¦ ¦--'(': ( [0/0] {446} - ¦ ¦ ¦--expr: bk [0/0] {448} - ¦ ¦ ¦ °--SYMBOL: bk [0/0] {447} - ¦ ¦ °--')': ) [0/0] {449} - ¦ °--')': ) [1/0] {450} - ¦--expr: call( [2/0] {451} - ¦ ¦--expr: call [0/0] {453} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {452} - ¦ ¦--'(': ( [0/0] {454} - ¦ ¦--expr: {{ - [0/0] {455} - ¦ ¦ ¦--'{': { [0/0] {456} - ¦ ¦ ¦--expr: { - # [0/0] {457} - ¦ ¦ ¦ ¦--'{': { [0/2] {458} - ¦ ¦ ¦ ¦--COMMENT: # [1/2] {459} - ¦ ¦ ¦ ¦--expr: 1 [1/0] {461} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {460} - ¦ ¦ ¦ °--'}': } [1/0] {462} - ¦ ¦ °--'}': } [0/0] {463} - ¦ °--')': ) [0/0] {464} - ¦--expr: call( [2/0] {465} - ¦ ¦--expr: call [0/0] {467} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {466} - ¦ ¦--'(': ( [0/0] {468} - ¦ ¦--expr: {{ - [0/0] {469} - ¦ ¦ ¦--'{': { [0/0] {470} - ¦ ¦ ¦--expr: { - # [0/0] {471} - ¦ ¦ ¦ ¦--'{': { [0/2] {472} - ¦ ¦ ¦ ¦--COMMENT: # [1/0] {473} - ¦ ¦ ¦ °--'}': } [1/0] {474} - ¦ ¦ °--'}': } [0/0] {475} - ¦ °--')': ) [0/0] {476} - °--expr: {{ - [3/0] {477} - ¦--'{': { [0/0] {478} - ¦--expr: { - # [0/0] {479} - ¦ ¦--'{': { [0/2] {480} - ¦ ¦--COMMENT: # [1/0] {481} - ¦ °--'}': } [1/0] {482} - °--'}': } [0/0] {483} diff --git a/tests/testthat/escaping/basic-escape-in_tree b/tests/testthat/escaping/basic-escape-in_tree deleted file mode 100644 index 8083077fa..000000000 --- a/tests/testthat/escaping/basic-escape-in_tree +++ /dev/null @@ -1,61 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' ca [1/0] {4} - ¦--expr: NULL [1/0] {6} - ¦ °--NULL_CONST: NULL [0/0] {5} - ¦--COMMENT: #' th [3/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' @e [1/0] {9} - ¦--COMMENT: #' ca [1/0] {10} - ¦--expr: NULL [1/0] {12} - ¦ °--NULL_CONST: NULL [0/0] {11} - ¦--COMMENT: #' th [2/0] {13} - ¦--COMMENT: #' [1/0] {14} - ¦--COMMENT: #' @e [1/0] {15} - ¦--COMMENT: #' ca [1/0] {16} - ¦--COMMENT: #' an [1/0] {17} - ¦--expr: NULL [1/0] {19} - ¦ °--NULL_CONST: NULL [0/0] {18} - ¦--COMMENT: #' th [3/0] {20} - ¦--COMMENT: #' [1/0] {21} - ¦--COMMENT: #' @e [1/0] {22} - ¦--COMMENT: #' ca [1/0] {23} - ¦--COMMENT: #' an [1/0] {24} - ¦--expr: NULL [1/0] {26} - ¦ °--NULL_CONST: NULL [0/0] {25} - ¦--expr: 'sing [2/0] {28} - ¦ °--STR_CONST: 'sing [0/0] {27} - ¦--expr: x <- [2/1] {29} - ¦ ¦--expr: x [0/1] {31} - ¦ ¦ °--SYMBOL: x [0/0] {30} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {32} - ¦ °--expr: ' 2' [0/0] {34} - ¦ °--STR_CONST: ' 2' [0/0] {33} - ¦--COMMENT: # the [0/0] {35} - ¦--expr: x <- [2/0] {36} - ¦ ¦--expr: x [0/1] {38} - ¦ ¦ °--SYMBOL: x [0/0] {37} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {39} - ¦ °--expr: '\001 [0/0] {41} - ¦ °--STR_CONST: '\001 [0/0] {40} - ¦--expr: '\x01 [1/0] {43} - ¦ °--STR_CONST: '\x01 [0/0] {42} - ¦--expr: "\001 [2/0] {45} - ¦ °--STR_CONST: "\001 [0/0] {44} - ¦--expr: '\001 [1/0] {47} - ¦ °--STR_CONST: '\001 [0/0] {46} - ¦--COMMENT: #' th [2/0] {48} - ¦--COMMENT: #' [1/0] {49} - ¦--COMMENT: #' @e [1/0] {50} - ¦--COMMENT: #' ca [1/0] {51} - ¦--COMMENT: #' an [1/0] {52} - ¦--expr: NULL [1/0] {54} - ¦ °--NULL_CONST: NULL [0/0] {53} - ¦--COMMENT: #' th [2/0] {55} - ¦--COMMENT: #' [1/0] {56} - ¦--COMMENT: #' @e [1/0] {57} - ¦--COMMENT: #' an [1/0] {58} - °--expr: NULL [1/0] {60} - °--NULL_CONST: NULL [0/0] {59} diff --git a/tests/testthat/escaping/fail-parsing-1-in_tree b/tests/testthat/escaping/fail-parsing-1-in_tree deleted file mode 100644 index 120f4b968..000000000 --- a/tests/testthat/escaping/fail-parsing-1-in_tree +++ /dev/null @@ -1,9 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Ex [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' fu [1/0] {4} - ¦--COMMENT: #' [1/0] {5} - ¦--COMMENT: #' } [1/0] {6} - °--expr: NULL [1/0] {8} - °--NULL_CONST: NULL [0/0] {7} diff --git a/tests/testthat/escaping/fail-parsing-2-in_tree b/tests/testthat/escaping/fail-parsing-2-in_tree deleted file mode 100644 index 3ca043b45..000000000 --- a/tests/testthat/escaping/fail-parsing-2-in_tree +++ /dev/null @@ -1,7 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Ex [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' x [1/0] {4} - °--expr: NULL [1/0] {6} - °--NULL_CONST: NULL [0/0] {5} diff --git a/tests/testthat/escaping/fail-parsing-3-in_tree b/tests/testthat/escaping/fail-parsing-3-in_tree deleted file mode 100644 index 3d33838b7..000000000 --- a/tests/testthat/escaping/fail-parsing-3-in_tree +++ /dev/null @@ -1,7 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Ex [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' 1 [1/0] {4} - °--expr: NULL [1/0] {6} - °--NULL_CONST: NULL [0/0] {5} diff --git a/tests/testthat/escaping/fail-parsing-4-in_tree b/tests/testthat/escaping/fail-parsing-4-in_tree deleted file mode 100644 index 3d33838b7..000000000 --- a/tests/testthat/escaping/fail-parsing-4-in_tree +++ /dev/null @@ -1,7 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Ex [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' 1 [1/0] {4} - °--expr: NULL [1/0] {6} - °--NULL_CONST: NULL [0/0] {5} diff --git a/tests/testthat/fun_dec/fun_dec_scope_spaces-in_tree b/tests/testthat/fun_dec/fun_dec_scope_spaces-in_tree deleted file mode 100644 index 4fad90015..000000000 --- a/tests/testthat/fun_dec/fun_dec_scope_spaces-in_tree +++ /dev/null @@ -1,83 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a <- [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦ ¦--',': , [0/1] {9} - ¦ ¦--COMMENT: # [0/0] {10} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {11} - ¦ ¦--')': ) [1/1] {12} - ¦ °--expr: { - x [0/0] {13} - ¦ ¦--'{': { [0/2] {14} - ¦ ¦--expr: x - 1 [1/0] {15} - ¦ ¦ ¦--expr: x [0/1] {17} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {16} - ¦ ¦ ¦--'-': - [0/1] {18} - ¦ ¦ °--expr: 1 [0/0] {20} - ¦ ¦ °--NUM_CONST: 1 [0/0] {19} - ¦ °--'}': } [1/0] {21} - ¦--expr: a <- [3/0] {22} - ¦ ¦--expr: a [0/1] {24} - ¦ ¦ °--SYMBOL: a [0/0] {23} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {25} - ¦ °--expr: funct [0/0] {26} - ¦ ¦--FUNCTION: funct [0/0] {27} - ¦ ¦--'(': ( [0/0] {28} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {29} - ¦ ¦--',': , [0/1] {30} - ¦ ¦--COMMENT: # [0/2] {31} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {32} - ¦ ¦--')': ) [0/1] {33} - ¦ ¦--COMMENT: # [0/0] {34} - ¦ °--expr: { - x [1/0] {35} - ¦ ¦--'{': { [0/2] {36} - ¦ ¦--expr: x [1/0] {38} - ¦ ¦ °--SYMBOL: x [0/0] {37} - ¦ °--'}': } [1/0] {39} - ¦--expr: funct [2/0] {40} - ¦ ¦--FUNCTION: funct [0/0] {41} - ¦ ¦--'(': ( [0/0] {42} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {43} - ¦ ¦--EQ_FORMALS: = [0/11] {44} - ¦ ¦--expr: b [1/0] {46} - ¦ ¦ °--SYMBOL: b [0/0] {45} - ¦ ¦--',': , [0/9] {47} - ¦ ¦--SYMBOL_FORMALS: c [1/0] {48} - ¦ ¦--')': ) [0/1] {49} - ¦ °--expr: {} [0/0] {50} - ¦ ¦--'{': { [0/0] {51} - ¦ °--'}': } [0/0] {52} - ¦--expr: funct [2/0] {53} - ¦ ¦--FUNCTION: funct [0/0] {54} - ¦ ¦--'(': ( [0/0] {55} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {56} - ¦ ¦--EQ_FORMALS: = [0/11] {57} - ¦ ¦--expr: b [1/0] {59} - ¦ ¦ °--SYMBOL: b [0/0] {58} - ¦ ¦--',': , [0/9] {60} - ¦ ¦--SYMBOL_FORMALS: c [1/0] {61} - ¦ ¦--')': ) [0/1] {62} - ¦ °--expr: { - -} [0/0] {63} - ¦ ¦--'{': { [0/0] {64} - ¦ °--'}': } [2/0] {65} - °--expr: funct [2/0] {66} - ¦--FUNCTION: funct [0/0] {67} - ¦--'(': ( [0/0] {68} - ¦--SYMBOL_FORMALS: a [0/1] {69} - ¦--EQ_FORMALS: = [0/11] {70} - ¦--expr: b [1/0] {72} - ¦ °--SYMBOL: b [0/0] {71} - ¦--',': , [0/9] {73} - ¦--SYMBOL_FORMALS: c [1/0] {74} - ¦--')': ) [1/1] {75} - °--expr: {} [0/0] {76} - ¦--'{': { [0/0] {77} - °--'}': } [0/0] {78} diff --git a/tests/testthat/fun_dec/line_break_fun_dec-in_tree b/tests/testthat/fun_dec/line_break_fun_dec-in_tree deleted file mode 100644 index 4c1378941..000000000 --- a/tests/testthat/fun_dec/line_break_fun_dec-in_tree +++ /dev/null @@ -1,168 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a <- [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦ ¦--',': , [0/1] {9} - ¦ ¦--COMMENT: # [0/14] {10} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {11} - ¦ ¦--')': ) [0/1] {12} - ¦ °--expr: { - x [0/0] {13} - ¦ ¦--'{': { [0/2] {14} - ¦ ¦--expr: x - 1 [1/0] {15} - ¦ ¦ ¦--expr: x [0/1] {17} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {16} - ¦ ¦ ¦--'-': - [0/1] {18} - ¦ ¦ °--expr: 1 [0/0] {20} - ¦ ¦ °--NUM_CONST: 1 [0/0] {19} - ¦ °--'}': } [1/0] {21} - ¦--expr: a <- [3/0] {22} - ¦ ¦--expr: a [0/1] {24} - ¦ ¦ °--SYMBOL: a [0/0] {23} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {25} - ¦ °--expr: funct [0/0] {26} - ¦ ¦--FUNCTION: funct [0/0] {27} - ¦ ¦--'(': ( [0/0] {28} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {29} - ¦ ¦--',': , [0/1] {30} - ¦ ¦--COMMENT: # [0/14] {31} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {32} - ¦ ¦--')': ) [0/1] {33} - ¦ ¦--COMMENT: # [0/0] {34} - ¦ °--expr: { - x [1/0] {35} - ¦ ¦--'{': { [0/2] {36} - ¦ ¦--expr: x [1/0] {38} - ¦ ¦ °--SYMBOL: x [0/0] {37} - ¦ °--'}': } [1/0] {39} - ¦--expr: a <- [2/0] {40} - ¦ ¦--expr: a [0/1] {42} - ¦ ¦ °--SYMBOL: a [0/0] {41} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {43} - ¦ °--expr: funct [0/0] {44} - ¦ ¦--FUNCTION: funct [0/0] {45} - ¦ ¦--'(': ( [0/0] {46} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {47} - ¦ ¦--',': , [0/1] {48} - ¦ ¦--COMMENT: # [0/14] {49} - ¦ ¦--SYMBOL_FORMALS: y [1/1] {50} - ¦ ¦--COMMENT: # [0/0] {51} - ¦ ¦--')': ) [1/1] {52} - ¦ °--expr: { - y [0/0] {53} - ¦ ¦--'{': { [0/2] {54} - ¦ ¦--expr: y [1/0] {56} - ¦ ¦ °--SYMBOL: y [0/0] {55} - ¦ °--'}': } [1/0] {57} - ¦--expr: a <- [3/0] {58} - ¦ ¦--expr: a [0/1] {60} - ¦ ¦ °--SYMBOL: a [0/0] {59} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {61} - ¦ °--expr: funct [0/0] {62} - ¦ ¦--FUNCTION: funct [0/0] {63} - ¦ ¦--'(': ( [0/0] {64} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {65} - ¦ ¦--',': , [0/14] {66} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {67} - ¦ ¦--')': ) [0/1] {68} - ¦ °--expr: { - x [0/0] {69} - ¦ ¦--'{': { [0/2] {70} - ¦ ¦--expr: x - 1 [1/0] {71} - ¦ ¦ ¦--expr: x [0/1] {73} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {72} - ¦ ¦ ¦--'-': - [0/1] {74} - ¦ ¦ °--expr: 1 [0/0] {76} - ¦ ¦ °--NUM_CONST: 1 [0/0] {75} - ¦ °--'}': } [1/0] {77} - ¦--expr: a <- [2/0] {78} - ¦ ¦--expr: a [0/1] {80} - ¦ ¦ °--SYMBOL: a [0/0] {79} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {81} - ¦ °--expr: funct [0/0] {82} - ¦ ¦--FUNCTION: funct [0/0] {83} - ¦ ¦--'(': ( [0/0] {84} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {85} - ¦ ¦--',': , [0/14] {86} - ¦ ¦--COMMENT: # [1/14] {87} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {88} - ¦ ¦--')': ) [0/1] {89} - ¦ °--expr: { - x [0/0] {90} - ¦ ¦--'{': { [0/2] {91} - ¦ ¦--expr: x - 1 [1/0] {92} - ¦ ¦ ¦--expr: x [0/1] {94} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {93} - ¦ ¦ ¦--'-': - [0/1] {95} - ¦ ¦ °--expr: 1 [0/0] {97} - ¦ ¦ °--NUM_CONST: 1 [0/0] {96} - ¦ °--'}': } [1/0] {98} - ¦--expr: a <- [2/0] {99} - ¦ ¦--expr: a [0/1] {101} - ¦ ¦ °--SYMBOL: a [0/0] {100} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {102} - ¦ °--expr: funct [0/0] {103} - ¦ ¦--FUNCTION: funct [0/0] {104} - ¦ ¦--'(': ( [0/0] {105} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {106} - ¦ ¦--',': , [0/14] {107} - ¦ ¦--SYMBOL_FORMALS: y [2/0] {108} - ¦ ¦--')': ) [0/1] {109} - ¦ °--expr: { - x [0/0] {110} - ¦ ¦--'{': { [0/2] {111} - ¦ ¦--expr: x - 1 [1/0] {112} - ¦ ¦ ¦--expr: x [0/1] {114} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {113} - ¦ ¦ ¦--'-': - [0/1] {115} - ¦ ¦ °--expr: 1 [0/0] {117} - ¦ ¦ °--NUM_CONST: 1 [0/0] {116} - ¦ °--'}': } [1/0] {118} - ¦--expr: a <- [3/0] {119} - ¦ ¦--expr: a [0/1] {121} - ¦ ¦ °--SYMBOL: a [0/0] {120} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {122} - ¦ °--expr: funct [0/0] {123} - ¦ ¦--FUNCTION: funct [0/0] {124} - ¦ ¦--'(': ( [0/14] {125} - ¦ ¦--SYMBOL_FORMALS: x [1/0] {126} - ¦ ¦--',': , [0/14] {127} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {128} - ¦ ¦--')': ) [0/1] {129} - ¦ °--expr: { - x [0/0] {130} - ¦ ¦--'{': { [0/2] {131} - ¦ ¦--expr: x - 1 [1/0] {132} - ¦ ¦ ¦--expr: x [0/1] {134} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {133} - ¦ ¦ ¦--'-': - [0/1] {135} - ¦ ¦ °--expr: 1 [0/0] {137} - ¦ ¦ °--NUM_CONST: 1 [0/0] {136} - ¦ °--'}': } [1/0] {138} - °--expr: a <- [2/0] {139} - ¦--expr: a [0/1] {141} - ¦ °--SYMBOL: a [0/0] {140} - ¦--LEFT_ASSIGN: <- [0/1] {142} - °--expr: funct [0/0] {143} - ¦--FUNCTION: funct [0/0] {144} - ¦--'(': ( [0/1] {145} - ¦--COMMENT: # [0/2] {146} - ¦--SYMBOL_FORMALS: x [1/0] {147} - ¦--',': , [0/2] {148} - ¦--SYMBOL_FORMALS: y [1/0] {149} - ¦--')': ) [0/1] {150} - °--expr: { - x [0/0] {151} - ¦--'{': { [0/2] {152} - ¦--expr: x - 1 [1/0] {153} - ¦ ¦--expr: x [0/1] {155} - ¦ ¦ °--SYMBOL: x [0/0] {154} - ¦ ¦--'-': - [0/1] {156} - ¦ °--expr: 1 [0/0] {158} - ¦ °--NUM_CONST: 1 [0/0] {157} - °--'}': } [1/0] {159} diff --git a/tests/testthat/indention_curly_brackets/custom-in_tree b/tests/testthat/indention_curly_brackets/custom-in_tree deleted file mode 100644 index 454cd1522..000000000 --- a/tests/testthat/indention_curly_brackets/custom-in_tree +++ /dev/null @@ -1,45 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: value [0/0] {1} - ¦ ¦--expr: value [0/1] {3} - ¦ ¦ °--SYMBOL: value [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: 5 [0/0] {6} - ¦ °--NUM_CONST: 5 [0/0] {5} - ¦--expr: if (v [1/0] {7} - ¦ ¦--IF: if [0/1] {8} - ¦ ¦--'(': ( [0/0] {9} - ¦ ¦--expr: value [0/0] {10} - ¦ ¦ ¦--expr: value [0/1] {12} - ¦ ¦ ¦ °--SYMBOL: value [0/0] {11} - ¦ ¦ ¦--GT: > [0/1] {13} - ¦ ¦ °--expr: 0 [0/0] {15} - ¦ ¦ °--NUM_CONST: 0 [0/0] {14} - ¦ ¦--')': ) [0/4] {16} - ¦ °--expr: print [1/0] {17} - ¦ ¦--expr: print [0/0] {19} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {18} - ¦ ¦--'(': ( [0/0] {20} - ¦ ¦--expr: value [0/0] {22} - ¦ ¦ °--SYMBOL: value [0/0] {21} - ¦ °--')': ) [0/0] {23} - °--expr: if (v [4/0] {24} - ¦--IF: if [0/1] {25} - ¦--'(': ( [0/0] {26} - ¦--expr: value [0/0] {27} - ¦ ¦--expr: value [0/1] {29} - ¦ ¦ °--SYMBOL: value [0/0] {28} - ¦ ¦--GT: > [0/1] {30} - ¦ °--expr: 0 [0/0] {32} - ¦ °--NUM_CONST: 0 [0/0] {31} - ¦--')': ) [0/1] {33} - °--expr: { -pri [0/0] {34} - ¦--'{': { [0/0] {35} - ¦--expr: print [1/0] {36} - ¦ ¦--expr: print [0/0] {38} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {37} - ¦ ¦--'(': ( [0/0] {39} - ¦ ¦--expr: value [0/0] {41} - ¦ ¦ °--SYMBOL: value [0/0] {40} - ¦ °--')': ) [0/0] {42} - °--'}': } [1/0] {43} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree deleted file mode 100644 index 1205a1a3f..000000000 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_only-in_tree +++ /dev/null @@ -1,28 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: { - [0/0] {1} - ¦--'{': { [0/9] {2} - ¦--expr: {1 + [1/0] {3} - ¦ ¦--'{': { [0/0] {4} - ¦ ¦--expr: 1 + 3 [0/0] {5} - ¦ ¦ ¦--expr: 1 [0/1] {7} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {6} - ¦ ¦ ¦--'+': + [0/1] {8} - ¦ ¦ °--expr: 3 [0/0] {10} - ¦ ¦ °--NUM_CONST: 3 [0/0] {9} - ¦ °--'}': } [0/0] {11} - ¦--expr: {2 + [1/6] {12} - ¦ ¦--'{': { [0/0] {13} - ¦ ¦--expr: 2 + s [0/0] {14} - ¦ ¦ ¦--expr: 2 [0/1] {16} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {15} - ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ °--expr: sin(p [0/0] {18} - ¦ ¦ ¦--expr: sin [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--expr: pi [0/0] {23} - ¦ ¦ ¦ °--SYMBOL: pi [0/0] {22} - ¦ ¦ °--')': ) [0/0] {24} - ¦ °--'}': } [0/0] {25} - °--'}': } [1/0] {26} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_round_only-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_round_only-in_tree deleted file mode 100644 index 8c1eda02c..000000000 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_round_only-in_tree +++ /dev/null @@ -1,62 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦--')': ) [0/1] {9} - °--expr: { -x < [0/0] {10} - ¦--'{': { [0/0] {11} - ¦--expr: x <- [1/0] {12} - ¦ ¦--expr: x [0/1] {14} - ¦ ¦ °--SYMBOL: x [0/0] {13} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {15} - ¦ °--expr: c(1, - [0/0] {16} - ¦ ¦--expr: c [0/0] {18} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {17} - ¦ ¦--'(': ( [0/0] {19} - ¦ ¦--expr: 1 [0/0] {21} - ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦--',': , [0/7] {22} - ¦ ¦--expr: 2 + 3 [1/0] {23} - ¦ ¦ ¦--expr: 2 [0/1] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ ¦--'+': + [0/1] {26} - ¦ ¦ °--expr: 3 [0/0] {28} - ¦ ¦ °--NUM_CONST: 3 [0/0] {27} - ¦ ¦--',': , [0/0] {29} - ¦ ¦--expr: sin(p [1/0] {30} - ¦ ¦ ¦--expr: sin [0/0] {32} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {31} - ¦ ¦ ¦--'(': ( [0/0] {33} - ¦ ¦ ¦--expr: pi [0/0] {35} - ¦ ¦ ¦ °--SYMBOL: pi [0/0] {34} - ¦ ¦ °--')': ) [0/0] {36} - ¦ °--')': ) [0/0] {37} - ¦--expr: if(x [2/8] {38} - ¦ ¦--IF: if [0/0] {39} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: x > 1 [0/0] {41} - ¦ ¦ ¦--expr: x [0/1] {43} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {42} - ¦ ¦ ¦--GT: > [0/1] {44} - ¦ ¦ °--expr: 10 [0/0] {46} - ¦ ¦ °--NUM_CONST: 10 [0/0] {45} - ¦ ¦--')': ) [0/1] {47} - ¦ °--expr: { - [0/0] {48} - ¦ ¦--'{': { [0/4] {49} - ¦ ¦--expr: retur [1/16] {50} - ¦ ¦ ¦--expr: retur [0/0] {52} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {51} - ¦ ¦ ¦--'(': ( [0/0] {53} - ¦ ¦ ¦--expr: "done [0/0] {55} - ¦ ¦ ¦ °--STR_CONST: "done [0/0] {54} - ¦ ¦ °--')': ) [0/0] {56} - ¦ °--'}': } [1/0] {57} - °--'}': } [1/0] {58} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_round_spacing-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_round_spacing-in_tree deleted file mode 100644 index 67285abef..000000000 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_round_spacing-in_tree +++ /dev/null @@ -1,62 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: b<-fu [0/0] {1} - ¦--expr: b [0/0] {3} - ¦ °--SYMBOL: b [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/0] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/3] {8} - ¦--')': ) [0/0] {9} - °--expr: { - x [0/0] {10} - ¦--'{': { [0/2] {11} - ¦--expr: x <- [1/2] {12} - ¦ ¦--expr: x [0/1] {14} - ¦ ¦ °--SYMBOL: x [0/0] {13} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {15} - ¦ °--expr: c(1, - [0/0] {16} - ¦ ¦--expr: c [0/0] {18} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {17} - ¦ ¦--'(': ( [0/0] {19} - ¦ ¦--expr: 1 [0/0] {21} - ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦--',': , [0/19] {22} - ¦ ¦--expr: 2+ [1/0] {23} - ¦ ¦ ¦--expr: 2 [0/0] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ ¦--'+': + [0/5] {26} - ¦ ¦ °--expr: 3 [0/0] {28} - ¦ ¦ °--NUM_CONST: 3 [0/0] {27} - ¦ ¦--',': , [0/9] {29} - ¦ ¦--expr: sin(p [1/1] {30} - ¦ ¦ ¦--expr: sin [0/0] {32} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {31} - ¦ ¦ ¦--'(': ( [0/0] {33} - ¦ ¦ ¦--expr: pi [0/0] {35} - ¦ ¦ ¦ °--SYMBOL: pi [0/0] {34} - ¦ ¦ °--')': ) [0/0] {36} - ¦ °--')': ) [0/0] {37} - ¦--expr: if(x [2/20] {38} - ¦ ¦--IF: if [0/0] {39} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: x > 1 [0/0] {41} - ¦ ¦ ¦--expr: x [0/1] {43} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {42} - ¦ ¦ ¦--GT: > [0/1] {44} - ¦ ¦ °--expr: 10 [0/0] {46} - ¦ ¦ °--NUM_CONST: 10 [0/0] {45} - ¦ ¦--')': ) [0/0] {47} - ¦ °--expr: { -ret [0/0] {48} - ¦ ¦--'{': { [0/0] {49} - ¦ ¦--expr: retur [1/2] {50} - ¦ ¦ ¦--expr: retur [0/0] {52} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {51} - ¦ ¦ ¦--'(': ( [0/0] {53} - ¦ ¦ ¦--expr: "done [0/0] {55} - ¦ ¦ ¦ °--STR_CONST: "done [0/0] {54} - ¦ ¦ °--')': ) [0/0] {56} - ¦ °--'}': } [1/0] {57} - °--'}': } [1/0] {58} diff --git a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree b/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree deleted file mode 100644 index 99ff47e9c..000000000 --- a/tests/testthat/indention_curly_brackets/multi_line_curly_while_for_if_fun-in_tree +++ /dev/null @@ -1,89 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦--',': , [0/1] {9} - ¦--SYMBOL_FORMALS: y [0/0] {10} - ¦--',': , [0/1] {11} - ¦--SYMBOL_FORMALS: z [0/0] {12} - ¦--')': ) [0/12] {13} - °--expr: { - w [0/0] {14} - ¦--'{': { [0/2] {15} - ¦--expr: while [1/6] {16} - ¦ ¦--WHILE: while [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--expr: 2+2> [0/0] {19} - ¦ ¦ ¦--expr: 2+2 [0/0] {20} - ¦ ¦ ¦ ¦--expr: 2 [0/0] {22} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {21} - ¦ ¦ ¦ ¦--'+': + [0/0] {23} - ¦ ¦ ¦ °--expr: 2 [0/0] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ ¦--GT: > [0/1] {26} - ¦ ¦ °--expr: call( [0/0] {27} - ¦ ¦ ¦--expr: call [0/0] {29} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {28} - ¦ ¦ ¦--'(': ( [0/0] {30} - ¦ ¦ ¦--expr: 3 [0/0] {32} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {31} - ¦ ¦ ¦--',': , [0/0] {33} - ¦ ¦ ¦--expr: 1 [0/0] {35} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {34} - ¦ ¦ °--')': ) [0/0] {36} - ¦ ¦--')': ) [0/1] {37} - ¦ °--expr: { - [0/0] {38} - ¦ ¦--'{': { [0/4] {39} - ¦ ¦--expr: if (i [1/4] {40} - ¦ ¦ ¦--IF: if [0/1] {41} - ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦--expr: isTRU [0/0] {43} - ¦ ¦ ¦ ¦--expr: isTRU [0/0] {45} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: isTRU [0/0] {44} - ¦ ¦ ¦ ¦--'(': ( [0/0] {46} - ¦ ¦ ¦ ¦--expr: x [0/0] {48} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {47} - ¦ ¦ ¦ °--')': ) [0/0] {49} - ¦ ¦ ¦--')': ) [0/1] {50} - ¦ ¦ °--expr: { - [0/0] {51} - ¦ ¦ ¦--'{': { [0/6] {52} - ¦ ¦ ¦--expr: b [1/0] {54} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {53} - ¦ ¦ °--'}': } [1/0] {55} - ¦ °--'}': } [1/0] {56} - ¦--expr: for(a [1/0] {57} - ¦ ¦--FOR: for [0/0] {58} - ¦ ¦--forcond: (a in [0/0] {59} - ¦ ¦ ¦--'(': ( [0/0] {60} - ¦ ¦ ¦--SYMBOL: a [0/1] {61} - ¦ ¦ ¦--IN: in [0/1] {62} - ¦ ¦ ¦--expr: 1:19 [0/0] {63} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {65} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {64} - ¦ ¦ ¦ ¦--':': : [0/0] {66} - ¦ ¦ ¦ °--expr: 19 [0/0] {68} - ¦ ¦ ¦ °--NUM_CONST: 19 [0/0] {67} - ¦ ¦ °--')': ) [0/0] {69} - ¦ °--expr: { - [0/0] {70} - ¦ ¦--'{': { [0/4] {71} - ¦ ¦--expr: x[i] [1/2] {72} - ¦ ¦ ¦--expr: x[i] [0/1] {73} - ¦ ¦ ¦ ¦--expr: x [0/0] {75} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {74} - ¦ ¦ ¦ ¦--'[': [ [0/0] {76} - ¦ ¦ ¦ ¦--expr: i [0/0] {78} - ¦ ¦ ¦ ¦ °--SYMBOL: i [0/0] {77} - ¦ ¦ ¦ °--']': ] [0/0] {79} - ¦ ¦ ¦--'+': + [0/0] {80} - ¦ ¦ °--expr: 1 [0/0] {82} - ¦ ¦ °--NUM_CONST: 1 [0/0] {81} - ¦ °--'}': } [1/0] {83} - °--'}': } [1/0] {84} diff --git a/tests/testthat/indention_curly_brackets/one_line_curly-in_tree b/tests/testthat/indention_curly_brackets/one_line_curly-in_tree deleted file mode 100644 index 20ecfb8ac..000000000 --- a/tests/testthat/indention_curly_brackets/one_line_curly-in_tree +++ /dev/null @@ -1,14 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: {1+1} [0/0] {5} - ¦--'{': { [0/0] {6} - ¦--expr: 1+1 [0/0] {7} - ¦ ¦--expr: 1 [0/0] {9} - ¦ ¦ °--NUM_CONST: 1 [0/0] {8} - ¦ ¦--'+': + [0/0] {10} - ¦ °--expr: 1 [0/0] {12} - ¦ °--NUM_CONST: 1 [0/0] {11} - °--'}': } [0/0] {13} diff --git a/tests/testthat/indention_fun_calls/non_strict_calls-in_tree b/tests/testthat/indention_fun_calls/non_strict_calls-in_tree deleted file mode 100644 index 1d50cd650..000000000 --- a/tests/testthat/indention_fun_calls/non_strict_calls-in_tree +++ /dev/null @@ -1,121 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: a [0/0] {6} - ¦ ¦ °--SYMBOL: a [0/0] {5} - ¦ ¦--',': , [0/5] {7} - ¦ ¦--expr: b [1/0] {9} - ¦ ¦ °--SYMBOL: b [0/0] {8} - ¦ °--')': ) [0/0] {10} - ¦--expr: call( [2/0] {11} - ¦ ¦--expr: call [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {12} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--expr: a [0/0] {16} - ¦ ¦ °--SYMBOL: a [0/0] {15} - ¦ ¦--',': , [0/5] {17} - ¦ ¦--SYMBOL_SUB: b [1/1] {18} - ¦ ¦--EQ_SUB: = [0/1] {19} - ¦ ¦--expr: 3 [0/0] {21} - ¦ ¦ °--NUM_CONST: 3 [0/0] {20} - ¦ °--')': ) [0/0] {22} - ¦--expr: call( [2/0] {23} - ¦ ¦--expr: call [0/0] {25} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {24} - ¦ ¦--'(': ( [0/0] {26} - ¦ ¦--SYMBOL_SUB: a [0/1] {27} - ¦ ¦--EQ_SUB: = [0/1] {28} - ¦ ¦--expr: 1 [0/0] {30} - ¦ ¦ °--NUM_CONST: 1 [0/0] {29} - ¦ ¦--',': , [0/1] {31} - ¦ ¦--SYMBOL_SUB: b [0/1] {32} - ¦ ¦--EQ_SUB: = [0/7] {33} - ¦ ¦--expr: 3 [1/0] {35} - ¦ ¦ °--NUM_CONST: 3 [0/0] {34} - ¦ °--')': ) [0/0] {36} - ¦--expr: call( [2/0] {37} - ¦ ¦--expr: call [0/0] {39} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {38} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--SYMBOL_SUB: a [0/1] {41} - ¦ ¦--EQ_SUB: = [0/7] {42} - ¦ ¦--expr: 1 [1/0] {44} - ¦ ¦ °--NUM_CONST: 1 [0/0] {43} - ¦ ¦--',': , [0/1] {45} - ¦ ¦--SYMBOL_SUB: b [0/1] {46} - ¦ ¦--EQ_SUB: = [0/1] {47} - ¦ ¦--expr: 3 [0/0] {49} - ¦ ¦ °--NUM_CONST: 3 [0/0] {48} - ¦ °--')': ) [0/0] {50} - ¦--expr: call( [2/0] {51} - ¦ ¦--expr: call [0/0] {53} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {52} - ¦ ¦--'(': ( [0/0] {54} - ¦ ¦--SYMBOL_SUB: a [0/1] {55} - ¦ ¦--EQ_SUB: = [0/1] {56} - ¦ ¦--expr: 1 [0/0] {58} - ¦ ¦ °--NUM_CONST: 1 [0/0] {57} - ¦ ¦--',': , [0/2] {59} - ¦ ¦--SYMBOL_SUB: b [1/1] {60} - ¦ ¦--EQ_SUB: = [0/1] {61} - ¦ ¦--expr: 3 [0/0] {63} - ¦ ¦ °--NUM_CONST: 3 [0/0] {62} - ¦ °--')': ) [1/0] {64} - ¦--expr: call( [2/0] {65} - ¦ ¦--expr: call [0/0] {67} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {66} - ¦ ¦--'(': ( [0/2] {68} - ¦ ¦--SYMBOL_SUB: a [1/1] {69} - ¦ ¦--EQ_SUB: = [0/1] {70} - ¦ ¦--expr: 1 [0/0] {72} - ¦ ¦ °--NUM_CONST: 1 [0/0] {71} - ¦ ¦--',': , [0/2] {73} - ¦ ¦--SYMBOL_SUB: b [1/1] {74} - ¦ ¦--EQ_SUB: = [0/1] {75} - ¦ ¦--expr: 3 [0/0] {77} - ¦ ¦ °--NUM_CONST: 3 [0/0] {76} - ¦ °--')': ) [1/0] {78} - ¦--expr: call( [2/0] {79} - ¦ ¦--expr: call [0/0] {81} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {80} - ¦ ¦--'(': ( [0/2] {82} - ¦ ¦--SYMBOL_SUB: a [1/1] {83} - ¦ ¦--EQ_SUB: = [0/4] {84} - ¦ ¦--expr: 1 [1/0] {86} - ¦ ¦ °--NUM_CONST: 1 [0/0] {85} - ¦ ¦--',': , [0/2] {87} - ¦ ¦--SYMBOL_SUB: b [1/1] {88} - ¦ ¦--EQ_SUB: = [0/1] {89} - ¦ ¦--expr: 3 [0/0] {91} - ¦ ¦ °--NUM_CONST: 3 [0/0] {90} - ¦ °--')': ) [1/0] {92} - ¦--expr: call( [2/0] {93} - ¦ ¦--expr: call [0/0] {95} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {94} - ¦ ¦--'(': ( [0/2] {96} - ¦ ¦--SYMBOL_SUB: a [1/1] {97} - ¦ ¦--EQ_SUB: = [0/4] {98} - ¦ ¦--expr: 1 [1/0] {100} - ¦ ¦ °--NUM_CONST: 1 [0/0] {99} - ¦ ¦--',': , [0/1] {101} - ¦ ¦--SYMBOL_SUB: b [0/1] {102} - ¦ ¦--EQ_SUB: = [0/1] {103} - ¦ ¦--expr: 3 [0/0] {105} - ¦ ¦ °--NUM_CONST: 3 [0/0] {104} - ¦ °--')': ) [1/0] {106} - °--expr: call( [2/0] {107} - ¦--expr: call [0/0] {109} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {108} - ¦--'(': ( [0/2] {110} - ¦--SYMBOL_SUB: a [1/1] {111} - ¦--EQ_SUB: = [0/4] {112} - ¦--expr: 1 [1/0] {114} - ¦ °--NUM_CONST: 1 [0/0] {113} - ¦--',': , [0/1] {115} - ¦--SYMBOL_SUB: b [0/1] {116} - ¦--EQ_SUB: = [0/4] {117} - ¦--expr: 3 [1/0] {119} - ¦ °--NUM_CONST: 3 [0/0] {118} - °--')': ) [1/0] {120} diff --git a/tests/testthat/indention_fun_calls/strict_calls-in_tree b/tests/testthat/indention_fun_calls/strict_calls-in_tree deleted file mode 100644 index 36a0c9a05..000000000 --- a/tests/testthat/indention_fun_calls/strict_calls-in_tree +++ /dev/null @@ -1,28 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: call( [0/0] {1} - ¦--expr: call [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: call( [1/3] {5} - ¦ ¦--expr: call [0/0] {7} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {6} - ¦ ¦--'(': ( [0/3] {8} - ¦ ¦--expr: call( [1/0] {9} - ¦ ¦ ¦--expr: call [0/0] {11} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {10} - ¦ ¦ ¦--'(': ( [0/0] {12} - ¦ ¦ ¦--expr: call( [1/3] {13} - ¦ ¦ ¦ ¦--expr: call [0/0] {15} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {14} - ¦ ¦ ¦ ¦--'(': ( [0/10] {16} - ¦ ¦ ¦ ¦--expr: call( [1/0] {17} - ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {19} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {18} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/5] {20} - ¦ ¦ ¦ ¦ ¦--expr: 2 [1/3] {22} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {21} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {23} - ¦ ¦ ¦ °--')': ) [1/0] {24} - ¦ ¦ °--')': ) [1/0] {25} - ¦ °--')': ) [1/0] {26} - °--')': ) [1/0] {27} diff --git a/tests/testthat/indention_multiple/curly_and_round-in_tree b/tests/testthat/indention_multiple/curly_and_round-in_tree deleted file mode 100644 index 48acfd1c0..000000000 --- a/tests/testthat/indention_multiple/curly_and_round-in_tree +++ /dev/null @@ -1,97 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: test_ [0/0] {1} - ¦ ¦--expr: test_ [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: "this [0/0] {6} - ¦ ¦ °--STR_CONST: "this [0/0] {5} - ¦ ¦--',': , [0/1] {7} - ¦ ¦--expr: { - t [0/0] {8} - ¦ ¦ ¦--'{': { [0/2] {9} - ¦ ¦ ¦--expr: test( [1/0] {10} - ¦ ¦ ¦ ¦--expr: test [0/0] {12} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {11} - ¦ ¦ ¦ ¦--'(': ( [0/0] {13} - ¦ ¦ ¦ ¦--expr: x [0/0] {15} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {14} - ¦ ¦ ¦ ¦--',': , [0/1] {16} - ¦ ¦ ¦ ¦--expr: y [0/0] {18} - ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {17} - ¦ ¦ ¦ ¦--',': , [0/1] {19} - ¦ ¦ ¦ ¦--expr: call( [0/0] {20} - ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {22} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {21} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ ¦ ¦ ¦--expr: z [0/0] {25} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: z [0/0] {24} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {26} - ¦ ¦ ¦ °--')': ) [0/0] {27} - ¦ ¦ °--'}': } [1/0] {28} - ¦ °--')': ) [0/0] {29} - ¦--expr: (({{ - [2/0] {30} - ¦ ¦--'(': ( [0/0] {31} - ¦ ¦--expr: ({{ - [0/0] {32} - ¦ ¦ ¦--'(': ( [0/0] {33} - ¦ ¦ ¦--expr: {{ - [0/0] {34} - ¦ ¦ ¦ ¦--'{': { [0/0] {35} - ¦ ¦ ¦ ¦--expr: { - c [0/0] {36} - ¦ ¦ ¦ ¦ ¦--'{': { [0/2] {37} - ¦ ¦ ¦ ¦ ¦--expr: call( [1/0] {38} - ¦ ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {40} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {39} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/4] {41} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 12 [1/0] {43} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 12 [0/0] {42} - ¦ ¦ ¦ ¦ ¦ ¦--',': , [0/1] {44} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 + 1 [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {47} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {46} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {48} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {50} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {49} - ¦ ¦ ¦ ¦ ¦ ¦--',': , [0/4] {51} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 26 [1/0] {53} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] {52} - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {54} - ¦ ¦ ¦ ¦ °--'}': } [1/0] {55} - ¦ ¦ ¦ °--'}': } [0/0] {56} - ¦ ¦ °--')': ) [0/0] {57} - ¦ °--')': ) [0/0] {58} - °--expr: (({{ - [3/0] {59} - ¦--'(': ( [0/0] {60} - ¦--expr: ({{ - [0/0] {61} - ¦ ¦--'(': ( [0/0] {62} - ¦ ¦--expr: {{ - [0/0] {63} - ¦ ¦ ¦--'{': { [0/0] {64} - ¦ ¦ ¦--expr: { - c [0/0] {65} - ¦ ¦ ¦ ¦--'{': { [0/2] {66} - ¦ ¦ ¦ ¦--expr: call( [1/0] {67} - ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {69} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {68} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/4] {70} - ¦ ¦ ¦ ¦ ¦--expr: 12 [1/0] {72} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 12 [0/0] {71} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {73} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 1 [0/0] {74} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {76} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {75} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {77} - ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {79} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {78} - ¦ ¦ ¦ ¦ ¦--',': , [0/4] {80} - ¦ ¦ ¦ ¦ ¦--expr: 26 [1/2] {82} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] {81} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {83} - ¦ ¦ ¦ °--'}': } [1/0] {84} - ¦ ¦ °--'}': } [0/0] {85} - ¦ °--')': ) [0/0] {86} - °--')': ) [0/0] {87} diff --git a/tests/testthat/indention_multiple/curly_and_round_in_tree b/tests/testthat/indention_multiple/curly_and_round_in_tree deleted file mode 100644 index 018fd320a..000000000 --- a/tests/testthat/indention_multiple/curly_and_round_in_tree +++ /dev/null @@ -1,61 +0,0 @@ -ROOT (token: short_text [newlines/spaces]) - ¦--expr: [2/8] - ¦ ¦--expr: [0/0] - ¦ ¦ ¦--'{': { [1/0] - ¦ ¦ ¦--expr: [1/3] - ¦ ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: z [0/0] - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] - ¦ ¦ ¦ ¦ °--')': ) [0/0] - ¦ ¦ ¦ ¦--'(': ( [0/0] - ¦ ¦ ¦ ¦--',': , [0/1] - ¦ ¦ ¦ °--')': ) [0/0] - ¦ ¦ °--'}': } [0/0] - ¦ ¦--'(': ( [0/0] - ¦ ¦--',': , [0/1] - ¦ °--')': ) [0/0] - ¦--expr: [3/2] - ¦ ¦--'(': ( [0/0] - ¦ ¦--expr: [0/0] - ¦ ¦ ¦--'(': ( [0/0] - ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦--'{': { [0/0] - ¦ ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦ ¦--'{': { [1/2] - ¦ ¦ ¦ ¦ ¦--expr: [1/3] - ¦ ¦ ¦ ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [1/2] - ¦ ¦ ¦ ¦ ¦ ¦--',': , [0/1] - ¦ ¦ ¦ ¦ ¦ ¦--',': , [1/16] - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] - ¦ ¦ ¦ ¦ °--'}': } [0/0] - ¦ ¦ ¦ °--'}': } [0/0] - ¦ ¦ °--')': ) [0/0] - ¦ °--')': ) [0/0] - °--expr: [0/0] - ¦--'(': ( [0/0] - ¦--expr: [0/0] - ¦ ¦--'(': ( [0/0] - ¦ ¦--expr: [0/0] - ¦ ¦ ¦--'{': { [0/0] - ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦--'{': { [1/7] - ¦ ¦ ¦ ¦--expr: [1/2] - ¦ ¦ ¦ ¦ ¦--expr: [0/0] - ¦ ¦ ¦ ¦ ¦ ¦--expr: [0/1] - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] - ¦ ¦ ¦ ¦ ¦ °--expr: [0/0] - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] - ¦ ¦ ¦ ¦ ¦--'(': ( [1/9] - ¦ ¦ ¦ ¦ ¦--',': , [0/1] - ¦ ¦ ¦ ¦ ¦--',': , [1/0] - ¦ ¦ ¦ ¦ ¦--expr: [1/4] - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] - ¦ ¦ ¦ ¦ °--')': ) [0/0] - ¦ ¦ ¦ °--'}': } [0/0] - ¦ ¦ °--'}': } [0/0] - ¦ °--')': ) [0/0] - °--')': ) [0/0] diff --git a/tests/testthat/indention_multiple/curly_only-in_tree b/tests/testthat/indention_multiple/curly_only-in_tree deleted file mode 100644 index 3135ed9b6..000000000 --- a/tests/testthat/indention_multiple/curly_only-in_tree +++ /dev/null @@ -1,53 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: { - [0/7] {1} - ¦ ¦--'{': { [0/10] {2} - ¦ ¦--expr: 1 + 1 [1/1] {3} - ¦ ¦ ¦--expr: 1 [0/1] {5} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {4} - ¦ ¦ ¦--'+': + [0/1] {6} - ¦ ¦ °--expr: 1 [0/0] {8} - ¦ ¦ °--NUM_CONST: 1 [0/0] {7} - ¦ °--'}': } [1/0] {9} - ¦--expr: {{{ -2 [2/0] {10} - ¦ ¦--'{': { [0/0] {11} - ¦ ¦--expr: {{ -25 [0/0] {12} - ¦ ¦ ¦--'{': { [0/0] {13} - ¦ ¦ ¦--expr: { -25 [0/0] {14} - ¦ ¦ ¦ ¦--'{': { [0/0] {15} - ¦ ¦ ¦ ¦--expr: 25 * [1/7] {16} - ¦ ¦ ¦ ¦ ¦--expr: 25 [0/1] {18} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 25 [0/0] {17} - ¦ ¦ ¦ ¦ ¦--'*': * [0/1] {19} - ¦ ¦ ¦ ¦ °--expr: 4 [0/0] {21} - ¦ ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {20} - ¦ ¦ ¦ °--'}': } [1/0] {22} - ¦ ¦ °--'}': } [0/0] {23} - ¦ °--'}': } [0/0] {24} - °--expr: { -{ - [2/0] {25} - ¦--'{': { [0/0] {26} - ¦--expr: { - 1 [1/0] {27} - ¦ ¦--'{': { [0/2] {28} - ¦ ¦--expr: 1 + 1 [1/0] {29} - ¦ ¦ ¦--expr: 1 [0/1] {31} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {30} - ¦ ¦ ¦--'+': + [0/1] {32} - ¦ ¦ °--expr: 142 * [0/0] {33} - ¦ ¦ ¦--expr: 142 [0/1] {35} - ¦ ¦ ¦ °--NUM_CONST: 142 [0/0] {34} - ¦ ¦ ¦--'*': * [0/1] {36} - ¦ ¦ °--expr: sin(p [0/0] {37} - ¦ ¦ ¦--expr: sin [0/0] {39} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {38} - ¦ ¦ ¦--'(': ( [0/0] {40} - ¦ ¦ ¦--expr: pi [0/0] {42} - ¦ ¦ ¦ °--SYMBOL: pi [0/0] {41} - ¦ ¦ °--')': ) [0/0] {43} - ¦ °--'}': } [1/0] {44} - °--'}': } [1/0] {45} diff --git a/tests/testthat/indention_multiple/edge_strict_mixed-in_tree b/tests/testthat/indention_multiple/edge_strict_mixed-in_tree deleted file mode 100644 index a2a815bd7..000000000 --- a/tests/testthat/indention_multiple/edge_strict_mixed-in_tree +++ /dev/null @@ -1,95 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: { -( - [0/0] {1} - ¦ ¦--'{': { [0/0] {2} - ¦ ¦--expr: ( - [1/0] {3} - ¦ ¦ ¦--'(': ( [0/7] {4} - ¦ ¦ ¦--expr: (( -{{ [1/2] {5} - ¦ ¦ ¦ ¦--'(': ( [0/0] {6} - ¦ ¦ ¦ ¦--expr: ( -{{ - [0/0] {7} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {8} - ¦ ¦ ¦ ¦ ¦--expr: {{ - [1/0] {9} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {10} - ¦ ¦ ¦ ¦ ¦ ¦--expr: { - [0/0] {11} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/8] {12} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: { - [1/4] {13} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/10] {14} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: c(99, [1/8] {15} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {17} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {16} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {18} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 99 [0/0] {20} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 99 [0/0] {19} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--',': , [0/9] {21} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 + 1 [1/0] {22} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {24} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {23} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {25} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {27} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {26} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--',': , [0/17] {28} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: { - [1/0] {29} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/4] {30} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: "with [1/0] {32} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--STR_CONST: "with [0/0] {31} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {33} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {34} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {35} - ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {36} - ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {37} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {38} - ¦ ¦ ¦ °--')': ) [0/0] {39} - ¦ ¦ °--')': ) [1/0] {40} - ¦ °--'}': } [1/0] {41} - ¦--expr: ((( - [3/0] {42} - ¦ ¦--'(': ( [0/0] {43} - ¦ ¦--expr: (( - [0/0] {44} - ¦ ¦ ¦--'(': ( [0/0] {45} - ¦ ¦ ¦--expr: ( - 1 [0/0] {46} - ¦ ¦ ¦ ¦--expr: ( - 1 [0/1] {47} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/2] {48} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [1/0] {49} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {51} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {50} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {52} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {54} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {53} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {55} - ¦ ¦ ¦ ¦--'*': * [0/1] {56} - ¦ ¦ ¦ °--expr: (3 + [0/0] {57} - ¦ ¦ ¦ ¦--'(': ( [0/0] {58} - ¦ ¦ ¦ ¦--expr: 3 + 4 [0/0] {59} - ¦ ¦ ¦ ¦ ¦--expr: 3 [0/1] {61} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {60} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {62} - ¦ ¦ ¦ ¦ °--expr: 4 [0/0] {64} - ¦ ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {63} - ¦ ¦ ¦ °--')': ) [1/0] {65} - ¦ ¦ °--')': ) [0/0] {66} - ¦ °--')': ) [0/0] {67} - °--expr: funct [3/0] {68} - ¦--FUNCTION: funct [0/0] {69} - ¦--'(': ( [0/0] {70} - ¦--SYMBOL_FORMALS: x [0/0] {71} - ¦--',': , [0/1] {72} - ¦--SYMBOL_FORMALS: y [0/0] {73} - ¦--',': , [0/1] {74} - ¦--SYMBOL_FORMALS: z [0/0] {75} - ¦--')': ) [0/1] {76} - °--expr: { -} [0/0] {77} - ¦--'{': { [0/0] {78} - °--'}': } [1/0] {79} diff --git a/tests/testthat/indention_multiple/edge_strict_random-in_tree b/tests/testthat/indention_multiple/edge_strict_random-in_tree deleted file mode 100644 index 1f6495ff9..000000000 --- a/tests/testthat/indention_multiple/edge_strict_random-in_tree +++ /dev/null @@ -1,84 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: {{( [0/3] {1} - ¦ ¦--'{': { [0/0] {2} - ¦ ¦--expr: {( [0/0] {3} - ¦ ¦ ¦--'{': { [0/0] {4} - ¦ ¦ ¦--expr: ( { [0/0] {5} - ¦ ¦ ¦ ¦--'(': ( [0/3] {6} - ¦ ¦ ¦ ¦--expr: {{{{ [0/0] {7} - ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {8} - ¦ ¦ ¦ ¦ ¦--expr: {{{ [0/0] {9} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {10} - ¦ ¦ ¦ ¦ ¦ ¦--expr: {{ { [0/0] {11} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {12} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: { {{ [0/0] {13} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/2] {14} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: {{{{ [0/0] {15} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {16} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: {{{ [0/0] {17} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {18} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: {{ [0/0] {19} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {20} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: { ( [0/0] {21} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/3] {22} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: (( - [0/0] {23} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {24} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: ( - 1 [0/0] {25} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/2] {26} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 19 [1/0] {28} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 19 [0/0] {27} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {29} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {30} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {31} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {32} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {33} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {34} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {35} - ¦ ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {36} - ¦ ¦ ¦ ¦ ¦ °--'}': } [0/0] {37} - ¦ ¦ ¦ ¦ °--'}': } [0/0] {38} - ¦ ¦ ¦ °--')': ) [0/0] {39} - ¦ ¦ °--'}': } [0/0] {40} - ¦ °--'}': } [0/0] {41} - ¦--expr: ( - c [3/3] {42} - ¦ ¦--'(': ( [0/2] {43} - ¦ ¦--expr: c("x" [1/3] {44} - ¦ ¦ ¦--expr: c [0/0] {46} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {45} - ¦ ¦ ¦--'(': ( [0/0] {47} - ¦ ¦ ¦--expr: "x" [0/0] {49} - ¦ ¦ ¦ °--STR_CONST: "x" [0/0] {48} - ¦ ¦ ¦--',': , [0/1] {50} - ¦ ¦ ¦--expr: "y" [0/0] {52} - ¦ ¦ ¦ °--STR_CONST: "y" [0/0] {51} - ¦ ¦ ¦--',': , [0/1] {53} - ¦ ¦ ¦--expr: "z" [0/0] {55} - ¦ ¦ ¦ °--STR_CONST: "z" [0/0] {54} - ¦ ¦ ¦--',': , [0/1] {56} - ¦ ¦ ¦--expr: "sin( [0/0] {58} - ¦ ¦ ¦ °--STR_CONST: "sin( [0/0] {57} - ¦ ¦ °--')': ) [0/0] {59} - ¦ °--')': ) [1/0] {60} - °--expr: { - c [3/0] {61} - ¦--'{': { [0/2] {62} - ¦--expr: c("x" [1/0] {63} - ¦ ¦--expr: c [0/0] {65} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {64} - ¦ ¦--'(': ( [0/0] {66} - ¦ ¦--expr: "x" [0/0] {68} - ¦ ¦ °--STR_CONST: "x" [0/0] {67} - ¦ ¦--',': , [0/1] {69} - ¦ ¦--expr: "y" [0/0] {71} - ¦ ¦ °--STR_CONST: "y" [0/0] {70} - ¦ ¦--',': , [0/1] {72} - ¦ ¦--expr: "z" [0/0] {74} - ¦ ¦ °--STR_CONST: "z" [0/0] {73} - ¦ ¦--',': , [0/1] {75} - ¦ ¦--expr: "sin( [0/0] {77} - ¦ ¦ °--STR_CONST: "sin( [0/0] {76} - ¦ °--')': ) [0/0] {78} - °--'}': } [1/0] {79} diff --git a/tests/testthat/indention_multiple/fun_for_new_line-in_tree b/tests/testthat/indention_multiple/fun_for_new_line-in_tree deleted file mode 100644 index 8ec66a854..000000000 --- a/tests/testthat/indention_multiple/fun_for_new_line-in_tree +++ /dev/null @@ -1,27 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: funct [0/0] {1} - ¦ ¦--FUNCTION: funct [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--')': ) [0/0] {4} - ¦ °--expr: NULL [1/0] {6} - ¦ °--NULL_CONST: NULL [0/0] {5} - °--expr: for ( [2/0] {7} - ¦--FOR: for [0/1] {8} - ¦--forcond: (i in [0/1] {9} - ¦ ¦--'(': ( [0/0] {10} - ¦ ¦--SYMBOL: i [0/1] {11} - ¦ ¦--IN: in [0/1] {12} - ¦ ¦--expr: 1:3 [0/0] {13} - ¦ ¦ ¦--expr: 1 [0/0] {15} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {14} - ¦ ¦ ¦--':': : [0/0] {16} - ¦ ¦ °--expr: 3 [0/0] {18} - ¦ ¦ °--NUM_CONST: 3 [0/0] {17} - ¦ °--')': ) [0/0] {19} - °--expr: { -2 - [1/0] {20} - ¦--'{': { [0/0] {21} - ¦--expr: 2 [1/1] {23} - ¦ °--NUM_CONST: 2 [0/0] {22} - °--'}': } [1/0] {24} diff --git a/tests/testthat/indention_multiple/if_else_curly-in_tree b/tests/testthat/indention_multiple/if_else_curly-in_tree deleted file mode 100644 index 36f58267d..000000000 --- a/tests/testthat/indention_multiple/if_else_curly-in_tree +++ /dev/null @@ -1,162 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: { - [0/0] {1} - ¦ ¦--'{': { [0/4] {2} - ¦ ¦--expr: if (T [1/0] {3} - ¦ ¦ ¦--IF: if [0/1] {4} - ¦ ¦ ¦--'(': ( [0/0] {5} - ¦ ¦ ¦--expr: TRUE [0/0] {7} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {6} - ¦ ¦ ¦--')': ) [0/0] {8} - ¦ ¦ ¦--expr: 3 [1/4] {10} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {9} - ¦ ¦ ¦--ELSE: else [1/0] {11} - ¦ ¦ °--expr: 4 [1/0] {13} - ¦ ¦ °--NUM_CONST: 4 [0/0] {12} - ¦ °--'}': } [1/0] {14} - ¦--expr: { -if [2/0] {15} - ¦ ¦--'{': { [0/0] {16} - ¦ ¦--expr: if (T [1/0] {17} - ¦ ¦ ¦--IF: if [0/1] {18} - ¦ ¦ ¦--'(': ( [0/0] {19} - ¦ ¦ ¦--expr: TRUE [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {20} - ¦ ¦ ¦--')': ) [0/1] {22} - ¦ ¦ ¦--expr: { - [0/1] {23} - ¦ ¦ ¦ ¦--'{': { [0/3] {24} - ¦ ¦ ¦ ¦--expr: 3 [1/4] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {25} - ¦ ¦ ¦ °--'}': } [1/0] {27} - ¦ ¦ ¦--ELSE: else [0/0] {28} - ¦ ¦ °--expr: 4 [1/0] {30} - ¦ ¦ °--NUM_CONST: 4 [0/0] {29} - ¦ °--'}': } [1/0] {31} - ¦--expr: { -if [2/0] {32} - ¦ ¦--'{': { [0/0] {33} - ¦ ¦--expr: if (T [1/0] {34} - ¦ ¦ ¦--IF: if [0/1] {35} - ¦ ¦ ¦--'(': ( [0/0] {36} - ¦ ¦ ¦--expr: TRUE [0/0] {38} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {37} - ¦ ¦ ¦--')': ) [0/4] {39} - ¦ ¦ ¦--expr: 3 [1/0] {41} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {40} - ¦ ¦ ¦--ELSE: else [1/1] {42} - ¦ ¦ °--expr: { - 4 [0/0] {43} - ¦ ¦ ¦--'{': { [0/2] {44} - ¦ ¦ ¦--expr: 4 [1/0] {46} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {45} - ¦ ¦ °--'}': } [1/0] {47} - ¦ °--'}': } [1/0] {48} - ¦--expr: { -if [2/0] {49} - ¦ ¦--'{': { [0/0] {50} - ¦ ¦--expr: if (T [1/0] {51} - ¦ ¦ ¦--IF: if [0/1] {52} - ¦ ¦ ¦--'(': ( [0/0] {53} - ¦ ¦ ¦--expr: TRUE [0/0] {55} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {54} - ¦ ¦ ¦--')': ) [0/1] {56} - ¦ ¦ ¦--expr: { - [0/1] {57} - ¦ ¦ ¦ ¦--'{': { [0/5] {58} - ¦ ¦ ¦ ¦--expr: 3 [1/4] {60} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {59} - ¦ ¦ ¦ °--'}': } [1/0] {61} - ¦ ¦ ¦--ELSE: else [0/1] {62} - ¦ ¦ °--expr: { -4 -} [0/0] {63} - ¦ ¦ ¦--'{': { [0/0] {64} - ¦ ¦ ¦--expr: 4 [1/0] {66} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {65} - ¦ ¦ °--'}': } [1/0] {67} - ¦ °--'}': } [1/0] {68} - ¦--COMMENT: # rat [2/0] {69} - ¦--expr: foo < [1/0] {70} - ¦ ¦--expr: foo [0/1] {72} - ¦ ¦ °--SYMBOL: foo [0/0] {71} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {73} - ¦ °--expr: funct [0/0] {74} - ¦ ¦--FUNCTION: funct [0/0] {75} - ¦ ¦--'(': ( [0/0] {76} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {77} - ¦ ¦--')': ) [0/1] {78} - ¦ °--expr: { - i [0/0] {79} - ¦ ¦--'{': { [0/2] {80} - ¦ ¦--expr: if (T [1/0] {81} - ¦ ¦ ¦--IF: if [0/1] {82} - ¦ ¦ ¦--'(': ( [0/0] {83} - ¦ ¦ ¦--expr: TRUE [0/0] {85} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {84} - ¦ ¦ ¦--')': ) [0/1] {86} - ¦ ¦ ¦--expr: { - [0/2] {87} - ¦ ¦ ¦ ¦--'{': { [0/4] {88} - ¦ ¦ ¦ ¦--expr: 1 [1/2] {90} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {89} - ¦ ¦ ¦ °--'}': } [1/0] {91} - ¦ ¦ ¦--ELSE: else [1/1] {92} - ¦ ¦ °--expr: { - [0/0] {93} - ¦ ¦ ¦--'{': { [0/4] {94} - ¦ ¦ ¦--expr: 2 [1/2] {96} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {95} - ¦ ¦ °--'}': } [1/0] {97} - ¦ °--'}': } [1/0] {98} - ¦--expr: if (T [3/0] {99} - ¦ ¦--IF: if [0/1] {100} - ¦ ¦--'(': ( [0/0] {101} - ¦ ¦--expr: TRUE [0/0] {103} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {102} - ¦ ¦--')': ) [0/1] {104} - ¦ ¦--expr: { - 3 [0/1] {105} - ¦ ¦ ¦--'{': { [0/2] {106} - ¦ ¦ ¦--expr: 3 [1/0] {108} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {107} - ¦ ¦ °--'}': } [1/0] {109} - ¦ ¦--ELSE: else [0/2] {110} - ¦ °--expr: if (F [1/0] {111} - ¦ ¦--IF: if [0/1] {112} - ¦ ¦--'(': ( [0/0] {113} - ¦ ¦--expr: FALSE [0/0] {115} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {114} - ¦ ¦--')': ) [0/1] {116} - ¦ °--expr: { - 4 [0/0] {117} - ¦ ¦--'{': { [0/2] {118} - ¦ ¦--expr: 4 [1/0] {120} - ¦ ¦ °--NUM_CONST: 4 [0/0] {119} - ¦ °--'}': } [1/0] {121} - °--expr: if (T [2/0] {122} - ¦--IF: if [0/1] {123} - ¦--'(': ( [0/0] {124} - ¦--expr: TRUE [0/0] {126} - ¦ °--NUM_CONST: TRUE [0/0] {125} - ¦--')': ) [0/1] {127} - ¦--expr: { - 3 [0/1] {128} - ¦ ¦--'{': { [0/2] {129} - ¦ ¦--expr: 3 [1/0] {131} - ¦ ¦ °--NUM_CONST: 3 [0/0] {130} - ¦ °--'}': } [1/0] {132} - ¦--ELSE: else [0/1] {133} - ¦--COMMENT: # com [0/2] {134} - °--expr: if (F [1/0] {135} - ¦--IF: if [0/1] {136} - ¦--'(': ( [0/0] {137} - ¦--expr: FALSE [0/0] {139} - ¦ °--NUM_CONST: FALSE [0/0] {138} - ¦--')': ) [0/1] {140} - °--expr: { - [0/0] {141} - ¦--'{': { [0/4] {142} - ¦--expr: 4 [1/2] {144} - ¦ °--NUM_CONST: 4 [0/0] {143} - °--'}': } [1/0] {145} diff --git a/tests/testthat/indention_multiple/overall-in_tree b/tests/testthat/indention_multiple/overall-in_tree deleted file mode 100644 index 93795a351..000000000 --- a/tests/testthat/indention_multiple/overall-in_tree +++ /dev/null @@ -1,160 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @p [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--expr: a <- [1/0] {5} - ¦ ¦--expr: a [0/1] {7} - ¦ ¦ °--SYMBOL: a [0/0] {6} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {8} - ¦ °--expr: funct [0/0] {9} - ¦ ¦--FUNCTION: funct [0/0] {10} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {12} - ¦ ¦--')': ) [0/1] {13} - ¦ °--expr: { - t [0/0] {14} - ¦ ¦--'{': { [0/2] {15} - ¦ ¦--expr: test_ [1/2] {16} - ¦ ¦ ¦--expr: test_ [0/0] {18} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {17} - ¦ ¦ ¦--'(': ( [0/0] {19} - ¦ ¦ ¦--expr: "I wa [0/0] {21} - ¦ ¦ ¦ °--STR_CONST: "I wa [0/0] {20} - ¦ ¦ ¦--',': , [0/1] {22} - ¦ ¦ ¦--expr: { - [0/0] {23} - ¦ ¦ ¦ ¦--'{': { [0/4] {24} - ¦ ¦ ¦ ¦--expr: out < [1/4] {25} - ¦ ¦ ¦ ¦ ¦--expr: out [0/1] {27} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: out [0/0] {26} - ¦ ¦ ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {28} - ¦ ¦ ¦ ¦ °--expr: c(1, [0/0] {29} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {31} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {30} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {32} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {34} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {33} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {35} - ¦ ¦ ¦ ¦ ¦--expr: c( - [0/0] {36} - ¦ ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {38} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {37} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/6] {39} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 + [1/4] {40} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/1] {42} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {41} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {43} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {44} - ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {46} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {47} - ¦ ¦ ¦ ¦--expr: if (x [1/2] {48} - ¦ ¦ ¦ ¦ ¦--IF: if [0/1] {49} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {50} - ¦ ¦ ¦ ¦ ¦--expr: x > 1 [0/0] {51} - ¦ ¦ ¦ ¦ ¦ ¦--expr: x [0/1] {53} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {52} - ¦ ¦ ¦ ¦ ¦ ¦--GT: > [0/1] {54} - ¦ ¦ ¦ ¦ ¦ °--expr: 10 [0/0] {56} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 10 [0/0] {55} - ¦ ¦ ¦ ¦ ¦--')': ) [0/1] {57} - ¦ ¦ ¦ ¦ °--expr: { - [0/0] {58} - ¦ ¦ ¦ ¦ ¦--'{': { [0/6] {59} - ¦ ¦ ¦ ¦ ¦--expr: for ( [1/4] {60} - ¦ ¦ ¦ ¦ ¦ ¦--FOR: for [0/1] {61} - ¦ ¦ ¦ ¦ ¦ ¦--forcond: (x in [0/1] {62} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {63} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--SYMBOL: x [0/1] {64} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--IN: in [0/1] {65} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/0] {67} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {66} - ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {68} - ¦ ¦ ¦ ¦ ¦ °--expr: { # F [0/0] {69} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/1] {70} - ¦ ¦ ¦ ¦ ¦ ¦--COMMENT: # FIX [0/8] {71} - ¦ ¦ ¦ ¦ ¦ ¦--expr: prin( [1/6] {72} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: prin [0/0] {74} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: prin [0/0] {73} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {75} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: x [0/0] {77} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {76} - ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {79} - ¦ ¦ ¦ ¦ °--'}': } [1/0] {80} - ¦ ¦ ¦ °--'}': } [1/0] {81} - ¦ ¦ °--')': ) [0/0] {82} - ¦ ¦--COMMENT: # we [1/2] {83} - ¦ ¦--expr: c( - [1/2] {84} - ¦ ¦ ¦--expr: c [0/0] {86} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {85} - ¦ ¦ ¦--'(': ( [0/4] {87} - ¦ ¦ ¦--expr: list( [1/0] {88} - ¦ ¦ ¦ ¦--expr: list [0/0] {90} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {89} - ¦ ¦ ¦ ¦--'(': ( [0/0] {91} - ¦ ¦ ¦ ¦--expr: x + 2 [0/0] {92} - ¦ ¦ ¦ ¦ ¦--expr: x [0/1] {94} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {93} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {95} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {97} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {96} - ¦ ¦ ¦ °--')': ) [0/0] {98} - ¦ ¦ ¦--',': , [0/4] {99} - ¦ ¦ ¦--expr: c(c( - [1/0] {100} - ¦ ¦ ¦ ¦--expr: c [0/0] {102} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {101} - ¦ ¦ ¦ ¦--'(': ( [0/0] {103} - ¦ ¦ ¦ ¦--expr: c( - [0/0] {104} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {106} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {105} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/6] {107} - ¦ ¦ ¦ ¦ ¦--expr: 26 ^ [1/0] {108} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 26 [0/1] {110} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] {109} - ¦ ¦ ¦ ¦ ¦ ¦--'^': ^ [0/1] {111} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {113} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {112} - ¦ ¦ ¦ ¦ ¦--',': , [0/6] {114} - ¦ ¦ ¦ ¦ ¦--expr: 8 [1/0] {116} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 8 [0/0] {115} - ¦ ¦ ¦ ¦ ¦--',': , [0/6] {117} - ¦ ¦ ¦ ¦ ¦--expr: 7 [1/2] {119} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 7 [0/0] {118} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {120} - ¦ ¦ ¦ °--')': ) [0/0] {121} - ¦ ¦ °--')': ) [0/0] {122} - ¦ ¦--expr: call( [2/0] {123} - ¦ ¦ ¦--expr: call [0/0] {125} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {124} - ¦ ¦ ¦--'(': ( [0/4] {126} - ¦ ¦ ¦--expr: 1 [1/0] {128} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {127} - ¦ ¦ ¦--',': , [0/1] {129} - ¦ ¦ ¦--expr: 2 [0/0] {131} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {130} - ¦ ¦ ¦--',': , [0/4] {132} - ¦ ¦ ¦--expr: 23 + [1/0] {133} - ¦ ¦ ¦ ¦--expr: 23 [0/1] {136} - ¦ ¦ ¦ ¦ °--NUM_CONST: 23 [0/0] {135} - ¦ ¦ ¦ ¦--'+': + [0/1] {137} - ¦ ¦ ¦ ¦--expr: Inf [0/1] {139} - ¦ ¦ ¦ ¦ °--NUM_CONST: Inf [0/0] {138} - ¦ ¦ ¦ ¦--'-': - [0/1] {140} - ¦ ¦ ¦ °--expr: 99 [0/0] {142} - ¦ ¦ ¦ °--NUM_CONST: 99 [0/0] {141} - ¦ ¦ ¦--',': , [0/1] {143} - ¦ ¦ ¦--expr: call( [0/0] {144} - ¦ ¦ ¦ ¦--expr: call [0/0] {146} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {145} - ¦ ¦ ¦ ¦--'(': ( [0/6] {147} - ¦ ¦ ¦ ¦--expr: 16 [1/2] {149} - ¦ ¦ ¦ ¦ °--NUM_CONST: 16 [0/0] {148} - ¦ ¦ ¦ °--')': ) [1/0] {150} - ¦ ¦ °--')': ) [0/0] {151} - ¦ °--'}': } [1/0] {152} - °--COMMENT: # com [1/0] {153} diff --git a/tests/testthat/indention_multiple/round_closing_on_same_line-in_tree b/tests/testthat/indention_multiple/round_closing_on_same_line-in_tree deleted file mode 100644 index 145b8bb50..000000000 --- a/tests/testthat/indention_multiple/round_closing_on_same_line-in_tree +++ /dev/null @@ -1,20 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: c(cal [0/0] {1} - ¦--expr: c [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: call( [0/0] {5} - ¦ ¦--expr: call [0/0] {7} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {6} - ¦ ¦--'(': ( [0/0] {8} - ¦ ¦--expr: 2 [0/0] {10} - ¦ ¦ °--NUM_CONST: 2 [0/0] {9} - ¦ °--')': ) [0/0] {11} - ¦--',': , [0/1] {12} - ¦--expr: 1 [0/0] {14} - ¦ °--NUM_CONST: 1 [0/0] {13} - ¦--',': , [0/1] {15} - ¦--COMMENT: # com [0/0] {16} - ¦--expr: 29 [1/1] {18} - ¦ °--NUM_CONST: 29 [0/0] {17} - °--')': ) [1/0] {19} diff --git a/tests/testthat/indention_multiple/round_only-in_tree b/tests/testthat/indention_multiple/round_only-in_tree deleted file mode 100644 index 70166c710..000000000 --- a/tests/testthat/indention_multiple/round_only-in_tree +++ /dev/null @@ -1,40 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: ((((( [0/3] {1} - ¦ ¦--'(': ( [0/0] {2} - ¦ ¦--expr: (((( - [0/0] {3} - ¦ ¦ ¦--'(': ( [0/0] {4} - ¦ ¦ ¦--expr: ((( -1 [0/0] {5} - ¦ ¦ ¦ ¦--'(': ( [0/0] {6} - ¦ ¦ ¦ ¦--expr: (( -1 - [0/0] {7} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {8} - ¦ ¦ ¦ ¦ ¦--expr: ( -1 - [0/0] {9} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {10} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [1/7] {12} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {11} - ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {13} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {14} - ¦ ¦ ¦ °--')': ) [0/0] {15} - ¦ ¦ °--')': ) [0/0] {16} - ¦ °--')': ) [0/0] {17} - °--expr: ((( -2 [2/0] {18} - ¦--'(': ( [0/0] {19} - ¦--expr: (( -2 - [0/0] {20} - ¦ ¦--'(': ( [0/0] {21} - ¦ ¦--expr: ( -2 -) [0/0] {22} - ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ ¦--expr: 2 [1/0] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ °--')': ) [1/0] {26} - ¦ °--')': ) [0/0] {27} - °--')': ) [0/0] {28} diff --git a/tests/testthat/indention_operators/base_pipe_and_assignment-in_tree b/tests/testthat/indention_operators/base_pipe_and_assignment-in_tree deleted file mode 100644 index 85acfef3b..000000000 --- a/tests/testthat/indention_operators/base_pipe_and_assignment-in_tree +++ /dev/null @@ -1,43 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a [0/0] {1} - ¦ ¦--expr: a [0/4] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/0] {4} - ¦ ¦--expr: b() [1/1] {7} - ¦ ¦ ¦--expr: b [0/0] {9} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {8} - ¦ ¦ ¦--'(': ( [0/0] {10} - ¦ ¦ °--')': ) [0/0] {11} - ¦ ¦--PIPE: |> [0/2] {12} - ¦ ¦--expr: q() [1/1] {13} - ¦ ¦ ¦--expr: q [0/0] {15} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {14} - ¦ ¦ ¦--'(': ( [0/0] {16} - ¦ ¦ °--')': ) [0/0] {17} - ¦ ¦--PIPE: |> [0/5] {18} - ¦ °--expr: g() [1/0] {19} - ¦ ¦--expr: g [0/0] {21} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {20} - ¦ ¦--'(': ( [0/0] {22} - ¦ °--')': ) [0/0] {23} - °--expr: a <- [2/0] {24} - ¦--expr: a [0/1] {26} - ¦ °--SYMBOL: a [0/0] {25} - ¦--LEFT_ASSIGN: <- [0/4] {27} - ¦--expr: b() [0/1] {30} - ¦ ¦--expr: b [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ °--')': ) [0/0] {34} - ¦--PIPE: |> [0/2] {35} - ¦--expr: c() [1/0] {36} - ¦ ¦--expr: c [0/0] {38} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {37} - ¦ ¦--'(': ( [0/0] {39} - ¦ °--')': ) [0/0] {40} - ¦--PIPE: |> [0/0] {41} - °--expr: ggg() [1/0] {42} - ¦--expr: ggg [0/0] {44} - ¦ °--SYMBOL_FUNCTION_CALL: ggg [0/0] {43} - ¦--'(': ( [0/0] {45} - °--')': ) [0/0] {46} diff --git a/tests/testthat/indention_operators/base_pipe_and_assignment_and_comment-in_tree b/tests/testthat/indention_operators/base_pipe_and_assignment_and_comment-in_tree deleted file mode 100644 index baae8dbbf..000000000 --- a/tests/testthat/indention_operators/base_pipe_and_assignment_and_comment-in_tree +++ /dev/null @@ -1,115 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a <-# [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/0] {4} - ¦ ¦--COMMENT: # [0/2] {5} - ¦ ¦--expr: b() [1/1] {8} - ¦ ¦ ¦--expr: b [0/0] {10} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {9} - ¦ ¦ ¦--'(': ( [0/0] {11} - ¦ ¦ °--')': ) [0/0] {12} - ¦ ¦--PIPE: |> [0/2] {13} - ¦ ¦--expr: c() [1/1] {14} - ¦ ¦ ¦--expr: c [0/0] {16} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {15} - ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ °--')': ) [0/0] {18} - ¦ ¦--PIPE: |> [0/2] {19} - ¦ °--expr: d() [1/0] {20} - ¦ ¦--expr: d [0/0] {22} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {21} - ¦ ¦--'(': ( [0/0] {23} - ¦ °--')': ) [0/0] {24} - ¦--expr: a <- [2/0] {25} - ¦ ¦--expr: a [0/1] {27} - ¦ ¦ °--SYMBOL: a [0/0] {26} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {28} - ¦ ¦--COMMENT: # [0/2] {29} - ¦ ¦--expr: b() [1/1] {32} - ¦ ¦ ¦--expr: b [0/0] {34} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {33} - ¦ ¦ ¦--'(': ( [0/0] {35} - ¦ ¦ °--')': ) [0/0] {36} - ¦ ¦--PIPE: |> [0/2] {37} - ¦ ¦--expr: c() [1/1] {38} - ¦ ¦ ¦--expr: c [0/0] {40} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {39} - ¦ ¦ ¦--'(': ( [0/0] {41} - ¦ ¦ °--')': ) [0/0] {42} - ¦ ¦--PIPE: |> [0/2] {43} - ¦ °--expr: d() [1/0] {44} - ¦ ¦--expr: d [0/0] {46} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {45} - ¦ ¦--'(': ( [0/0] {47} - ¦ °--')': ) [0/0] {48} - ¦--expr: a <- - [3/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {52} - ¦ ¦--expr: b() [1/1] {55} - ¦ ¦ ¦--expr: b [0/0] {57} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {56} - ¦ ¦ ¦--'(': ( [0/0] {58} - ¦ ¦ °--')': ) [0/0] {59} - ¦ ¦--PIPE: |> [0/2] {60} - ¦ ¦--expr: c() [1/1] {61} - ¦ ¦ ¦--expr: c [0/0] {63} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {62} - ¦ ¦ ¦--'(': ( [0/0] {64} - ¦ ¦ °--')': ) [0/0] {65} - ¦ ¦--PIPE: |> [0/2] {66} - ¦ °--expr: d() [1/0] {67} - ¦ ¦--expr: d [0/0] {69} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {68} - ¦ ¦--'(': ( [0/0] {70} - ¦ °--')': ) [0/0] {71} - ¦--expr: a <- [2/0] {72} - ¦ ¦--expr: a [0/1] {74} - ¦ ¦ °--SYMBOL: a [0/0] {73} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {75} - ¦ ¦--expr: c [0/1] {80} - ¦ ¦ °--SYMBOL: c [0/0] {79} - ¦ ¦--PIPE: |> [0/2] {81} - ¦ ¦--expr: b() [1/0] {82} - ¦ ¦ ¦--expr: b [0/0] {84} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {83} - ¦ ¦ ¦--'(': ( [0/0] {85} - ¦ ¦ °--')': ) [0/0] {86} - ¦ ¦--PIPE: |> [0/2] {87} - ¦ ¦--expr: c( ) [1/1] {88} - ¦ ¦ ¦--expr: c [0/0] {90} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {89} - ¦ ¦ ¦--'(': ( [0/1] {91} - ¦ ¦ °--')': ) [0/0] {92} - ¦ ¦--PIPE: |> [0/2] {93} - ¦ °--expr: d() [1/0] {94} - ¦ ¦--expr: d [0/0] {96} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {95} - ¦ ¦--'(': ( [0/0] {97} - ¦ °--')': ) [0/0] {98} - ¦--expr: a <- - [2/0] {99} - ¦ ¦--expr: a [0/1] {101} - ¦ ¦ °--SYMBOL: a [0/0] {100} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {102} - ¦ ¦--expr: b() [1/1] {105} - ¦ ¦ ¦--expr: b [0/0] {107} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {106} - ¦ ¦ ¦--'(': ( [0/0] {108} - ¦ ¦ °--')': ) [0/0] {109} - ¦ ¦--PIPE: |> [0/1] {110} - ¦ ¦--COMMENT: # [0/2] {111} - ¦ ¦--expr: c() [1/1] {112} - ¦ ¦ ¦--expr: c [0/0] {114} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {113} - ¦ ¦ ¦--'(': ( [0/0] {115} - ¦ ¦ °--')': ) [0/0] {116} - ¦ ¦--PIPE: |> [0/2] {117} - ¦ °--expr: d() [1/0] {118} - ¦ ¦--expr: d [0/0] {120} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {119} - ¦ ¦--'(': ( [0/0] {121} - ¦ °--')': ) [0/0] {122} - °--COMMENT: # d [0/0] {123} diff --git a/tests/testthat/indention_operators/base_pipe_and_assignment_and_math-in_tree b/tests/testthat/indention_operators/base_pipe_and_assignment_and_math-in_tree deleted file mode 100644 index 422b0c21e..000000000 --- a/tests/testthat/indention_operators/base_pipe_and_assignment_and_math-in_tree +++ /dev/null @@ -1,27 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: q <- [0/0] {1} - ¦--expr: q [0/1] {3} - ¦ °--SYMBOL: q [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/2] {4} - ¦--expr: a [0/0] {9} - ¦ °--SYMBOL: a [0/0] {8} - ¦--'+': + [0/2] {10} - ¦--expr: - 3 [1/1] {11} - ¦ ¦--'-': - [0/1] {12} - ¦ °--expr: 3 [0/0] {14} - ¦ °--NUM_CONST: 3 [0/0] {13} - ¦--'+': + [0/0] {15} - ¦--expr: 2 [1/0] {17} - ¦ °--NUM_CONST: 2 [0/0] {16} - ¦--'+': + [0/0] {18} - ¦--expr: g() [1/0] {20} - ¦ ¦--expr: g [0/0] {22} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {21} - ¦ ¦--'(': ( [0/0] {23} - ¦ °--')': ) [0/0] {24} - ¦--PIPE: |> [0/3] {25} - °--expr: k() [1/0] {26} - ¦--expr: k [0/0] {28} - ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {27} - ¦--'(': ( [0/0] {29} - °--')': ) [0/0] {30} diff --git a/tests/testthat/indention_operators/base_pipe_simple-in_tree b/tests/testthat/indention_operators/base_pipe_simple-in_tree deleted file mode 100644 index e30c30168..000000000 --- a/tests/testthat/indention_operators/base_pipe_simple-in_tree +++ /dev/null @@ -1,79 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a |> - [0/0] {1} - ¦ ¦--expr: a [0/1] {6} - ¦ ¦ °--SYMBOL: a [0/0] {5} - ¦ ¦--PIPE: |> [0/0] {7} - ¦ ¦--expr: b() [1/1] {8} - ¦ ¦ ¦--expr: b [0/0] {10} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {9} - ¦ ¦ ¦--'(': ( [0/0] {11} - ¦ ¦ °--')': ) [0/0] {12} - ¦ ¦--PIPE: |> [0/0] {13} - ¦ ¦--expr: c() [1/1] {14} - ¦ ¦ ¦--expr: c [0/0] {16} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {15} - ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ °--')': ) [0/0] {18} - ¦ ¦--PIPE: |> [0/10] {19} - ¦ ¦--expr: d(1 + [1/1] {20} - ¦ ¦ ¦--expr: d [0/0] {22} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {21} - ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ ¦--expr: 1 + e [0/0] {24} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ ¦ ¦ ¦--'+': + [0/1] {27} - ¦ ¦ ¦ °--expr: e (si [0/0] {28} - ¦ ¦ ¦ ¦--expr: e [0/1] {30} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: e [0/0] {29} - ¦ ¦ ¦ ¦--'(': ( [0/0] {31} - ¦ ¦ ¦ ¦--expr: sin(f [0/0] {32} - ¦ ¦ ¦ ¦ ¦--expr: sin [0/0] {34} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {33} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {35} - ¦ ¦ ¦ ¦ ¦--expr: f [0/0] {37} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: f [0/0] {36} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {38} - ¦ ¦ ¦ °--')': ) [0/0] {39} - ¦ ¦ °--')': ) [0/0] {40} - ¦ ¦--PIPE: |> [0/33] {41} - ¦ °--expr: g_out [1/0] {42} - ¦ ¦--expr: g_out [0/0] {44} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g_out [0/0] {43} - ¦ ¦--'(': ( [0/0] {45} - ¦ °--')': ) [0/0] {46} - ¦--expr: a <- [2/0] {47} - ¦ ¦--expr: a [0/1] {49} - ¦ ¦ °--SYMBOL: a [0/0] {48} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {50} - ¦ °--expr: funct [0/0] {51} - ¦ ¦--FUNCTION: funct [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--SYMBOL_FORMALS: jon_t [0/0] {54} - ¦ ¦--')': ) [0/1] {55} - ¦ °--expr: {} [0/0] {56} - ¦ ¦--'{': { [0/0] {57} - ¦ °--'}': } [0/0] {58} - ¦--expr: x |> - [2/0] {59} - ¦ ¦--expr: x [0/1] {61} - ¦ ¦ °--SYMBOL: x [0/0] {60} - ¦ ¦--PIPE: |> [0/2] {62} - ¦ ¦--COMMENT: # bre [2/2] {63} - ¦ °--expr: call( [1/0] {64} - ¦ ¦--expr: call [0/0] {66} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {65} - ¦ ¦--'(': ( [0/0] {67} - ¦ °--')': ) [0/0] {68} - ¦--expr: y |> - [3/1] {69} - ¦ ¦--expr: y [0/1] {71} - ¦ ¦ °--SYMBOL: y [0/0] {70} - ¦ ¦--PIPE: |> [0/2] {72} - ¦ °--expr: call( [3/0] {73} - ¦ ¦--expr: call [0/0] {75} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {74} - ¦ ¦--'(': ( [0/0] {76} - ¦ °--')': ) [0/0] {77} - °--COMMENT: # mor [0/0] {78} diff --git a/tests/testthat/indention_operators/dollar_R6-in_tree b/tests/testthat/indention_operators/dollar_R6-in_tree deleted file mode 100644 index 31105cc5a..000000000 --- a/tests/testthat/indention_operators/dollar_R6-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: x$ - [0/0] {1} - ¦--expr: x$ - [0/0] {3} - ¦ ¦--expr: x$ - [0/0] {4} - ¦ ¦ ¦--expr: x$ - [0/2] {5} - ¦ ¦ ¦ ¦--expr: x$ - [0/0] {6} - ¦ ¦ ¦ ¦ ¦--expr: x [0/0] {8} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {7} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/3] {9} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: add [1/0] {10} - ¦ ¦ ¦ ¦--'(': ( [0/0] {11} - ¦ ¦ ¦ ¦--expr: 10 [0/0] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 10 [0/0] {12} - ¦ ¦ ¦ °--')': ) [0/0] {14} - ¦ ¦ ¦--'$': $ [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: add [1/0] {16} - ¦ ¦--'(': ( [0/0] {17} - ¦ ¦--expr: 10 [0/0] {19} - ¦ ¦ °--NUM_CONST: 10 [0/0] {18} - ¦ °--')': ) [0/0] {20} - ¦--'$': $ [0/0] {21} - ¦--SYMBOL: sum [0/1] {22} - ¦--'+': + [0/0] {23} - °--expr: 3 [1/0] {25} - °--NUM_CONST: 3 [0/0] {24} diff --git a/tests/testthat/indention_operators/eq_assign-in_tree b/tests/testthat/indention_operators/eq_assign-in_tree deleted file mode 100644 index c11954b1d..000000000 --- a/tests/testthat/indention_operators/eq_assign-in_tree +++ /dev/null @@ -1,47 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: switc [0/0] {1} - ¦ ¦--expr: switc [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: engin [0/0] {6} - ¦ ¦ °--SYMBOL: engin [0/0] {5} - ¦ ¦--',': , [0/4] {7} - ¦ ¦--SYMBOL_SUB: pdfte [1/1] {8} - ¦ ¦--EQ_SUB: = [0/1] {9} - ¦ ¦--expr: { - [0/0] {10} - ¦ ¦ ¦--'{': { [0/5] {11} - ¦ ¦ ¦--expr: if (a [1/9] {12} - ¦ ¦ ¦ ¦--IF: if [0/1] {13} - ¦ ¦ ¦ ¦--'(': ( [0/0] {14} - ¦ ¦ ¦ ¦--expr: any [0/0] {16} - ¦ ¦ ¦ ¦ °--SYMBOL: any [0/0] {15} - ¦ ¦ ¦ ¦--')': ) [0/1] {17} - ¦ ¦ ¦ °--expr: { - [0/0] {18} - ¦ ¦ ¦ ¦--'{': { [0/14] {19} - ¦ ¦ ¦ ¦--expr: x [1/12] {21} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {20} - ¦ ¦ ¦ °--'}': } [1/0] {22} - ¦ ¦ °--'}': } [1/0] {23} - ¦ ¦--',': , [0/7] {24} - ¦ ¦--SYMBOL_SUB: new [1/0] {25} - ¦ ¦--EQ_SUB: = [0/0] {26} - ¦ ¦--expr: ( - [0/3] {27} - ¦ ¦ ¦--'(': ( [0/6] {28} - ¦ ¦ ¦--expr: 2 [1/7] {30} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {29} - ¦ ¦ °--')': ) [1/0] {31} - ¦ °--')': ) [0/0] {32} - °--expr: { - a [2/0] {33} - ¦--'{': { [0/2] {34} - ¦--expr: a <- - [1/0] {35} - ¦ ¦--expr: a [0/1] {37} - ¦ ¦ °--SYMBOL: a [0/0] {36} - ¦ ¦--LEFT_ASSIGN: <- [0/4] {38} - ¦ °--expr: 3 [1/0] {40} - ¦ °--NUM_CONST: 3 [0/0] {39} - °--'}': } [1/0] {41} diff --git a/tests/testthat/indention_operators/eq_formal_simple-in_tree b/tests/testthat/indention_operators/eq_formal_simple-in_tree deleted file mode 100644 index ce4a97830..000000000 --- a/tests/testthat/indention_operators/eq_formal_simple-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: abbbb [0/0] {1} - ¦--expr: abbbb [0/1] {3} - ¦ °--SYMBOL: abbbb [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/1] {8} - ¦--EQ_FORMALS: = [0/18] {9} - ¦--expr: 22 [1/18] {11} - ¦ °--NUM_CONST: 22 [0/0] {10} - ¦--')': ) [1/1] {12} - °--expr: { - d [0/0] {13} - ¦--'{': { [0/2] {14} - ¦--expr: data_ [1/0] {15} - ¦ ¦--expr: data_ [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {16} - ¦ ¦--'(': ( [0/4] {18} - ¦ ¦--SYMBOL_SUB: x [1/1] {19} - ¦ ¦--EQ_SUB: = [0/6] {20} - ¦ ¦--expr: long_ [1/2] {21} - ¦ ¦ ¦--expr: long_ [0/1] {23} - ¦ ¦ ¦ °--SYMBOL: long_ [0/0] {22} - ¦ ¦ ¦--'*': * [0/1] {24} - ¦ ¦ °--expr: x [0/0] {26} - ¦ ¦ °--SYMBOL: x [0/0] {25} - ¦ °--')': ) [1/0] {27} - °--'}': } [1/0] {28} diff --git a/tests/testthat/indention_operators/eq_formals_complex_indention-in_tree b/tests/testthat/indention_operators/eq_formals_complex_indention-in_tree deleted file mode 100644 index 210e47a12..000000000 --- a/tests/testthat/indention_operators/eq_formals_complex_indention-in_tree +++ /dev/null @@ -1,166 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: funct [0/0] {1} - ¦ ¦--FUNCTION: funct [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {4} - ¦ ¦--EQ_FORMALS: = [0/0] {5} - ¦ ¦--expr: 33 [1/0] {7} - ¦ ¦ °--NUM_CONST: 33 [0/0] {6} - ¦ ¦--',': , [0/2] {8} - ¦ ¦--SYMBOL_FORMALS: b [1/2] {9} - ¦ ¦--')': ) [1/1] {10} - ¦ °--expr: {} [0/0] {11} - ¦ ¦--'{': { [0/0] {12} - ¦ °--'}': } [0/0] {13} - ¦--expr: funct [2/0] {14} - ¦ ¦--FUNCTION: funct [0/0] {15} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {17} - ¦ ¦--EQ_FORMALS: = [0/4] {18} - ¦ ¦--expr: 33 [1/0] {20} - ¦ ¦ °--NUM_CONST: 33 [0/0] {19} - ¦ ¦--',': , [0/2] {21} - ¦ ¦--SYMBOL_FORMALS: b [1/2] {22} - ¦ ¦--')': ) [0/1] {23} - ¦ °--expr: {} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ °--'}': } [0/0] {26} - ¦--expr: funct [2/0] {27} - ¦ ¦--FUNCTION: funct [0/0] {28} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {30} - ¦ ¦--',': , [0/4] {31} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {32} - ¦ ¦--',': , [0/0] {33} - ¦ ¦--SYMBOL_FORMALS: c [1/2] {34} - ¦ ¦--')': ) [1/1] {35} - ¦ °--expr: {} [0/0] {36} - ¦ ¦--'{': { [0/0] {37} - ¦ °--'}': } [0/0] {38} - ¦--expr: funct [2/0] {39} - ¦ ¦--FUNCTION: funct [0/0] {40} - ¦ ¦--'(': ( [0/0] {41} - ¦ ¦--SYMBOL_FORMALS: a [0/0] {42} - ¦ ¦--',': , [0/2] {43} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {44} - ¦ ¦--',': , [0/0] {45} - ¦ ¦--SYMBOL_FORMALS: c [1/0] {46} - ¦ ¦--')': ) [0/1] {47} - ¦ °--expr: {} [0/0] {48} - ¦ ¦--'{': { [0/0] {49} - ¦ °--'}': } [0/0] {50} - ¦--expr: funct [2/0] {51} - ¦ ¦--FUNCTION: funct [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--SYMBOL_FORMALS: ss [0/0] {54} - ¦ ¦--',': , [0/3] {55} - ¦ ¦--SYMBOL_FORMALS: a [1/1] {56} - ¦ ¦--EQ_FORMALS: = [0/0] {57} - ¦ ¦--expr: 3 [1/0] {59} - ¦ ¦ °--NUM_CONST: 3 [0/0] {58} - ¦ ¦--',': , [0/3] {60} - ¦ ¦--SYMBOL_FORMALS: er [1/1] {61} - ¦ ¦--EQ_FORMALS: = [0/2] {62} - ¦ ¦--expr: 4 [1/1] {64} - ¦ ¦ °--NUM_CONST: 4 [0/0] {63} - ¦ ¦--')': ) [1/1] {65} - ¦ °--expr: {} [0/0] {66} - ¦ ¦--'{': { [0/0] {67} - ¦ °--'}': } [0/0] {68} - ¦--expr: funct [2/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {72} - ¦ ¦--EQ_FORMALS: = [0/11] {73} - ¦ ¦--expr: b [1/0] {75} - ¦ ¦ °--SYMBOL: b [0/0] {74} - ¦ ¦--',': , [0/9] {76} - ¦ ¦--SYMBOL_FORMALS: f [1/1] {77} - ¦ ¦--EQ_FORMALS: = [0/11] {78} - ¦ ¦--expr: d [1/0] {80} - ¦ ¦ °--SYMBOL: d [0/0] {79} - ¦ ¦--',': , [0/1] {81} - ¦ ¦--SYMBOL_FORMALS: c [0/1] {82} - ¦ ¦--EQ_FORMALS: = [0/11] {83} - ¦ ¦--expr: 3 [1/0] {85} - ¦ ¦ °--NUM_CONST: 3 [0/0] {84} - ¦ ¦--',': , [0/1] {86} - ¦ ¦--SYMBOL_FORMALS: d [0/1] {87} - ¦ ¦--EQ_FORMALS: = [0/11] {88} - ¦ ¦--expr: 4 [1/0] {90} - ¦ ¦ °--NUM_CONST: 4 [0/0] {89} - ¦ ¦--')': ) [0/1] {91} - ¦ °--expr: { - -} [0/0] {92} - ¦ ¦--'{': { [0/0] {93} - ¦ °--'}': } [2/0] {94} - ¦--COMMENT: # cla [3/0] {95} - ¦--expr: funct [1/0] {96} - ¦ ¦--FUNCTION: funct [0/0] {97} - ¦ ¦--'(': ( [0/0] {98} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {99} - ¦ ¦--EQ_FORMALS: = [0/13] {100} - ¦ ¦--expr: 33 [1/0] {102} - ¦ ¦ °--NUM_CONST: 33 [0/0] {101} - ¦ ¦--',': , [0/9] {103} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {104} - ¦ ¦--')': ) [1/1] {105} - ¦ °--expr: {} [0/0] {106} - ¦ ¦--'{': { [0/0] {107} - ¦ °--'}': } [0/0] {108} - ¦--expr: funct [2/0] {109} - ¦ ¦--FUNCTION: funct [0/0] {110} - ¦ ¦--'(': ( [0/0] {111} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {112} - ¦ ¦--EQ_FORMALS: = [0/11] {113} - ¦ ¦--expr: 33 [1/0] {115} - ¦ ¦ °--NUM_CONST: 33 [0/0] {114} - ¦ ¦--',': , [0/12] {116} - ¦ ¦--SYMBOL_FORMALS: b [1/2] {117} - ¦ ¦--')': ) [0/1] {118} - ¦ °--expr: {} [0/0] {119} - ¦ ¦--'{': { [0/0] {120} - ¦ °--'}': } [0/0] {121} - ¦--expr: funct [2/0] {122} - ¦ ¦--FUNCTION: funct [0/0] {123} - ¦ ¦--'(': ( [0/0] {124} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {125} - ¦ ¦--',': , [0/9] {126} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {127} - ¦ ¦--',': , [0/0] {128} - ¦ ¦--SYMBOL_FORMALS: c [1/0] {129} - ¦ ¦--')': ) [1/1] {130} - ¦ °--expr: {} [0/0] {131} - ¦ ¦--'{': { [0/0] {132} - ¦ °--'}': } [0/0] {133} - ¦--expr: funct [2/0] {134} - ¦ ¦--FUNCTION: funct [0/0] {135} - ¦ ¦--'(': ( [0/0] {136} - ¦ ¦--SYMBOL_FORMALS: a [0/0] {137} - ¦ ¦--',': , [0/12] {138} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {139} - ¦ ¦--',': , [0/9] {140} - ¦ ¦--SYMBOL_FORMALS: c [1/0] {141} - ¦ ¦--')': ) [0/1] {142} - ¦ °--expr: {} [0/0] {143} - ¦ ¦--'{': { [0/0] {144} - ¦ °--'}': } [0/0] {145} - °--expr: funct [2/0] {146} - ¦--FUNCTION: funct [0/0] {147} - ¦--'(': ( [0/0] {148} - ¦--SYMBOL_FORMALS: ss [0/0] {149} - ¦--',': , [0/11] {150} - ¦--SYMBOL_FORMALS: a [1/1] {151} - ¦--EQ_FORMALS: = [0/13] {152} - ¦--expr: 3 [1/0] {154} - ¦ °--NUM_CONST: 3 [0/0] {153} - ¦--',': , [0/9] {155} - ¦--SYMBOL_FORMALS: er [1/1] {156} - ¦--EQ_FORMALS: = [0/11] {157} - ¦--expr: 4 [1/0] {159} - ¦ °--NUM_CONST: 4 [0/0] {158} - ¦--')': ) [1/1] {160} - °--expr: {} [0/0] {161} - ¦--'{': { [0/0] {162} - °--'}': } [0/0] {163} diff --git a/tests/testthat/indention_operators/eq_formals_complex_tokens-in_tree b/tests/testthat/indention_operators/eq_formals_complex_tokens-in_tree deleted file mode 100644 index dde5f33df..000000000 --- a/tests/testthat/indention_operators/eq_formals_complex_tokens-in_tree +++ /dev/null @@ -1,97 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: funct [0/0] {1} - ¦ ¦--FUNCTION: funct [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {4} - ¦ ¦--EQ_FORMALS: = [0/0] {5} - ¦ ¦--expr: 33 [1/0] {7} - ¦ ¦ °--NUM_CONST: 33 [0/0] {6} - ¦ ¦--',': , [0/2] {8} - ¦ ¦--SYMBOL_FORMALS: b [1/2] {9} - ¦ ¦--')': ) [1/1] {10} - ¦ °--expr: {} [0/0] {11} - ¦ ¦--'{': { [0/0] {12} - ¦ °--'}': } [0/0] {13} - ¦--expr: funct [2/0] {14} - ¦ ¦--FUNCTION: funct [0/0] {15} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {17} - ¦ ¦--EQ_FORMALS: = [0/4] {18} - ¦ ¦--expr: 33 [1/0] {20} - ¦ ¦ °--NUM_CONST: 33 [0/0] {19} - ¦ ¦--',': , [0/2] {21} - ¦ ¦--SYMBOL_FORMALS: b [1/2] {22} - ¦ ¦--')': ) [0/1] {23} - ¦ °--expr: {} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ °--'}': } [0/0] {26} - ¦--expr: funct [2/0] {27} - ¦ ¦--FUNCTION: funct [0/0] {28} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--SYMBOL_FORMALS: a [0/1] {30} - ¦ ¦--',': , [0/4] {31} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {32} - ¦ ¦--',': , [0/0] {33} - ¦ ¦--SYMBOL_FORMALS: c [1/2] {34} - ¦ ¦--')': ) [1/1] {35} - ¦ °--expr: {} [0/0] {36} - ¦ ¦--'{': { [0/0] {37} - ¦ °--'}': } [0/0] {38} - ¦--expr: funct [2/0] {39} - ¦ ¦--FUNCTION: funct [0/0] {40} - ¦ ¦--'(': ( [0/0] {41} - ¦ ¦--SYMBOL_FORMALS: a [0/0] {42} - ¦ ¦--',': , [0/2] {43} - ¦ ¦--SYMBOL_FORMALS: b [1/0] {44} - ¦ ¦--',': , [0/0] {45} - ¦ ¦--SYMBOL_FORMALS: c [1/0] {46} - ¦ ¦--')': ) [0/1] {47} - ¦ °--expr: {} [0/0] {48} - ¦ ¦--'{': { [0/0] {49} - ¦ °--'}': } [0/0] {50} - ¦--expr: funct [2/0] {51} - ¦ ¦--FUNCTION: funct [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--SYMBOL_FORMALS: ss [0/0] {54} - ¦ ¦--',': , [0/3] {55} - ¦ ¦--SYMBOL_FORMALS: a [1/1] {56} - ¦ ¦--EQ_FORMALS: = [0/0] {57} - ¦ ¦--expr: 3 [1/0] {59} - ¦ ¦ °--NUM_CONST: 3 [0/0] {58} - ¦ ¦--',': , [0/3] {60} - ¦ ¦--SYMBOL_FORMALS: er [1/1] {61} - ¦ ¦--EQ_FORMALS: = [0/2] {62} - ¦ ¦--expr: 4 [1/1] {64} - ¦ ¦ °--NUM_CONST: 4 [0/0] {63} - ¦ ¦--')': ) [1/1] {65} - ¦ °--expr: {} [0/0] {66} - ¦ ¦--'{': { [0/0] {67} - ¦ °--'}': } [0/0] {68} - °--expr: funct [2/0] {69} - ¦--FUNCTION: funct [0/0] {70} - ¦--'(': ( [0/0] {71} - ¦--SYMBOL_FORMALS: a [0/1] {72} - ¦--EQ_FORMALS: = [0/11] {73} - ¦--expr: b [1/0] {75} - ¦ °--SYMBOL: b [0/0] {74} - ¦--',': , [0/9] {76} - ¦--SYMBOL_FORMALS: f [1/1] {77} - ¦--EQ_FORMALS: = [0/11] {78} - ¦--expr: d [1/0] {80} - ¦ °--SYMBOL: d [0/0] {79} - ¦--',': , [0/1] {81} - ¦--SYMBOL_FORMALS: c [0/1] {82} - ¦--EQ_FORMALS: = [0/11] {83} - ¦--expr: 3 [1/0] {85} - ¦ °--NUM_CONST: 3 [0/0] {84} - ¦--',': , [0/1] {86} - ¦--SYMBOL_FORMALS: d [0/1] {87} - ¦--EQ_FORMALS: = [0/11] {88} - ¦--expr: 4 [1/0] {90} - ¦ °--NUM_CONST: 4 [0/0] {89} - ¦--')': ) [0/1] {91} - °--expr: { - -} [0/0] {92} - ¦--'{': { [0/0] {93} - °--'}': } [2/0] {94} diff --git a/tests/testthat/indention_operators/eq_sub_complex_indention-in_tree b/tests/testthat/indention_operators/eq_sub_complex_indention-in_tree deleted file mode 100644 index 51e45b4fa..000000000 --- a/tests/testthat/indention_operators/eq_sub_complex_indention-in_tree +++ /dev/null @@ -1,118 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--SYMBOL_SUB: a [0/1] {5} - ¦ ¦--EQ_SUB: = [0/7] {6} - ¦ ¦--expr: 5 [1/0] {8} - ¦ ¦ °--NUM_CONST: 5 [0/0] {7} - ¦ ¦--',': , [0/5] {9} - ¦ ¦--expr: b [1/0] {11} - ¦ ¦ °--SYMBOL: b [0/0] {10} - ¦ °--')': ) [0/0] {12} - ¦--expr: call( [2/0] {13} - ¦ ¦--expr: call [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {14} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--SYMBOL_SUB: a [0/1] {17} - ¦ ¦--EQ_SUB: = [0/7] {18} - ¦ ¦--expr: 5 [1/0] {20} - ¦ ¦ °--NUM_CONST: 5 [0/0] {19} - ¦ ¦--',': , [0/5] {21} - ¦ ¦--expr: b [1/5] {23} - ¦ ¦ °--SYMBOL: b [0/0] {22} - ¦ °--')': ) [1/0] {24} - ¦--COMMENT: # mul [2/0] {25} - ¦--expr: { - v [1/0] {26} - ¦ ¦--'{': { [0/2] {27} - ¦ ¦--expr: v <- [1/0] {28} - ¦ ¦ ¦--expr: v [0/1] {30} - ¦ ¦ ¦ °--SYMBOL: v [0/0] {29} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {31} - ¦ ¦ °--expr: funct [0/0] {32} - ¦ ¦ ¦--FUNCTION: funct [0/0] {33} - ¦ ¦ ¦--'(': ( [0/0] {34} - ¦ ¦ ¦--SYMBOL_FORMALS: x [0/1] {35} - ¦ ¦ ¦--EQ_FORMALS: = [0/2] {36} - ¦ ¦ ¦--expr: 122 [1/0] {38} - ¦ ¦ ¦ °--NUM_CONST: 122 [0/0] {37} - ¦ ¦ ¦--',': , [0/2] {39} - ¦ ¦ ¦--SYMBOL_FORMALS: y [1/0] {40} - ¦ ¦ ¦--')': ) [0/1] {41} - ¦ ¦ °--expr: { - [0/0] {42} - ¦ ¦ ¦--'{': { [0/7] {43} - ¦ ¦ °--'}': } [1/0] {44} - ¦ °--'}': } [1/0] {45} - ¦--expr: { - [3/0] {46} - ¦ ¦--'{': { [0/8] {47} - ¦ ¦--expr: v <- [1/0] {48} - ¦ ¦ ¦--expr: v [0/1] {50} - ¦ ¦ ¦ °--SYMBOL: v [0/0] {49} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {51} - ¦ ¦ °--expr: funct [0/0] {52} - ¦ ¦ ¦--FUNCTION: funct [0/0] {53} - ¦ ¦ ¦--'(': ( [0/0] {54} - ¦ ¦ ¦--SYMBOL_FORMALS: x [0/1] {55} - ¦ ¦ ¦--EQ_FORMALS: = [0/1] {56} - ¦ ¦ ¦--expr: 122 [0/0] {58} - ¦ ¦ ¦ °--NUM_CONST: 122 [0/0] {57} - ¦ ¦ ¦--',': , [0/22] {59} - ¦ ¦ ¦--SYMBOL_FORMALS: y [1/0] {60} - ¦ ¦ ¦--')': ) [0/1] {61} - ¦ ¦ °--expr: { - [0/0] {62} - ¦ ¦ ¦--'{': { [0/8] {63} - ¦ ¦ °--'}': } [1/0] {64} - ¦ °--'}': } [1/0] {65} - °--expr: MyCla [2/0] {66} - ¦--expr: MyCla [0/1] {68} - ¦ °--SYMBOL: MyCla [0/0] {67} - ¦--LEFT_ASSIGN: <- [0/1] {69} - °--expr: R6::R [0/0] {70} - ¦--expr: R6::R [0/0] {71} - ¦ ¦--SYMBOL_PACKAGE: R6 [0/0] {72} - ¦ ¦--NS_GET: :: [0/0] {73} - ¦ °--SYMBOL_FUNCTION_CALL: R6Cla [0/0] {74} - ¦--'(': ( [0/8] {75} - ¦--expr: "MyCl [1/0] {77} - ¦ °--STR_CONST: "MyCl [0/0] {76} - ¦--',': , [0/8] {78} - ¦--SYMBOL_SUB: publi [1/1] {79} - ¦--EQ_SUB: = [0/1] {80} - ¦--expr: list( [0/0] {81} - ¦ ¦--expr: list [0/0] {83} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {82} - ¦ ¦--'(': ( [0/0] {84} - ¦ ¦--SYMBOL_SUB: initi [0/1] {85} - ¦ ¦--EQ_SUB: = [0/1] {86} - ¦ ¦--expr: funct [0/8] {87} - ¦ ¦ ¦--FUNCTION: funct [0/0] {88} - ¦ ¦ ¦--'(': ( [0/0] {89} - ¦ ¦ ¦--SYMBOL_FORMALS: my_ar [0/0] {90} - ¦ ¦ ¦--',': , [0/44] {91} - ¦ ¦ ¦--SYMBOL_FORMALS: my_na [1/1] {92} - ¦ ¦ ¦--EQ_FORMALS: = [0/1] {93} - ¦ ¦ ¦--expr: 1 [0/0] {95} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {94} - ¦ ¦ ¦--')': ) [0/1] {96} - ¦ ¦ °--expr: { - [0/0] {97} - ¦ ¦ ¦--'{': { [0/16] {98} - ¦ ¦ ¦--expr: retur [1/8] {99} - ¦ ¦ ¦ ¦--expr: retur [0/0] {101} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {100} - ¦ ¦ ¦ ¦--'(': ( [0/0] {102} - ¦ ¦ ¦ ¦--expr: invis [0/0] {103} - ¦ ¦ ¦ ¦ ¦--expr: invis [0/0] {105} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {104} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {106} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {107} - ¦ ¦ ¦ °--')': ) [0/0] {108} - ¦ ¦ °--'}': } [1/0] {109} - ¦ °--')': ) [1/0] {110} - ¦--',': , [0/0] {111} - °--')': ) [1/0] {112} diff --git a/tests/testthat/indention_operators/eq_sub_complex_tokens-in_tree b/tests/testthat/indention_operators/eq_sub_complex_tokens-in_tree deleted file mode 100644 index f9605b5f9..000000000 --- a/tests/testthat/indention_operators/eq_sub_complex_tokens-in_tree +++ /dev/null @@ -1,41 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--SYMBOL_SUB: a [0/1] {5} - ¦ ¦--EQ_SUB: = [0/7] {6} - ¦ ¦--expr: 5 [1/0] {8} - ¦ ¦ °--NUM_CONST: 5 [0/0] {7} - ¦ ¦--',': , [0/5] {9} - ¦ ¦--expr: b [1/0] {11} - ¦ ¦ °--SYMBOL: b [0/0] {10} - ¦ °--')': ) [0/0] {12} - ¦--expr: call( [2/0] {13} - ¦ ¦--expr: call [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {14} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--SYMBOL_SUB: a [0/1] {17} - ¦ ¦--EQ_SUB: = [0/7] {18} - ¦ ¦--expr: 5 [1/0] {20} - ¦ ¦ °--NUM_CONST: 5 [0/0] {19} - ¦ ¦--',': , [0/5] {21} - ¦ ¦--expr: b [1/5] {23} - ¦ ¦ °--SYMBOL: b [0/0] {22} - ¦ °--')': ) [1/0] {24} - °--expr: c( - [2/0] {25} - ¦--expr: c [0/0] {27} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {26} - ¦--'(': ( [0/8] {28} - ¦--SYMBOL_SUB: a [1/1] {29} - ¦--EQ_SUB: = [0/16] {30} - ¦--expr: 1 [1/0] {32} - ¦ °--NUM_CONST: 1 [0/0] {31} - ¦--',': , [0/8] {33} - ¦--SYMBOL_SUB: b [1/1] {34} - ¦--EQ_SUB: = [0/1] {35} - ¦--COMMENT: # com [0/16] {36} - ¦--expr: 2 [1/0] {38} - ¦ °--NUM_CONST: 2 [0/0] {37} - °--')': ) [1/0] {39} diff --git a/tests/testthat/indention_operators/function-multiline-no-braces-in_tree b/tests/testthat/indention_operators/function-multiline-no-braces-in_tree deleted file mode 100644 index 767984697..000000000 --- a/tests/testthat/indention_operators/function-multiline-no-braces-in_tree +++ /dev/null @@ -1,102 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: [0/0] {1} - ¦ ¦--expr: [0/1] {3} - ¦ ¦ °--SYMBOL: g [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {8} - ¦ ¦--')': ) [0/2] {9} - ¦ °--expr: [1/0] {11} - ¦ °--NULL_CONST: NULL [0/0] {10} - ¦--expr: [3/0] {12} - ¦ ¦--expr: [0/1] {14} - ¦ ¦ °--SYMBOL: g [0/0] {13} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {15} - ¦ °--expr: [0/0] {16} - ¦ ¦--FUNCTION: funct [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {19} - ¦ ¦--')': ) [0/1] {20} - ¦ °--expr: [0/0] {21} - ¦ ¦--expr: [0/0] {23} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {22} - ¦ ¦--'(': ( [0/2] {24} - ¦ ¦--expr: [1/0] {26} - ¦ ¦ °--NULL_CONST: NULL [0/0] {25} - ¦ °--')': ) [1/0] {27} - ¦--expr: [3/0] {28} - ¦ ¦--expr: [0/1] {30} - ¦ ¦ °--SYMBOL: g [0/0] {29} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {31} - ¦ °--expr: [0/0] {32} - ¦ ¦--FUNCTION: funct [0/0] {33} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {35} - ¦ ¦--')': ) [0/1] {36} - ¦ °--expr: [0/0] {37} - ¦ ¦--expr: [0/0] {39} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {38} - ¦ ¦--'(': ( [0/1] {40} - ¦ ¦--COMMENT: # y [0/2] {41} - ¦ ¦--expr: [1/1] {43} - ¦ ¦ °--NULL_CONST: NULL [0/0] {42} - ¦ ¦--COMMENT: # x [0/0] {44} - ¦ °--')': ) [1/0] {45} - ¦--expr: [2/0] {46} - ¦ ¦--expr: [0/1] {48} - ¦ ¦ °--SYMBOL: g [0/0] {47} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {49} - ¦ °--expr: [0/0] {50} - ¦ ¦--FUNCTION: funct [0/0] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {53} - ¦ ¦--')': ) [0/1] {54} - ¦ °--expr: [0/0] {55} - ¦ ¦--expr: [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {56} - ¦ ¦--'(': ( [0/1] {58} - ¦ ¦--COMMENT: # y [0/2] {59} - ¦ ¦--expr: [1/0] {61} - ¦ ¦ °--NULL_CONST: NULL [0/0] {60} - ¦ °--')': ) [1/0] {62} - ¦--expr: [3/0] {63} - ¦ ¦--expr: [0/1] {65} - ¦ ¦ °--SYMBOL: g [0/0] {64} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {66} - ¦ °--expr: [0/0] {67} - ¦ ¦--FUNCTION: funct [0/0] {68} - ¦ ¦--'(': ( [0/0] {69} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {70} - ¦ ¦--')': ) [0/1] {71} - ¦ °--expr: [0/0] {72} - ¦ ¦--expr: [0/0] {74} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {73} - ¦ ¦--'(': ( [0/2] {75} - ¦ ¦--expr: [1/1] {77} - ¦ ¦ °--NULL_CONST: NULL [0/0] {76} - ¦ ¦--COMMENT: # 3jk [0/0] {78} - ¦ °--')': ) [1/0] {79} - °--expr: [2/0] {80} - ¦--expr: [0/1] {82} - ¦ °--SYMBOL: g [0/0] {81} - ¦--LEFT_ASSIGN: <- [0/1] {83} - °--expr: [0/0] {84} - ¦--FUNCTION: funct [0/0] {85} - ¦--'(': ( [0/0] {86} - ¦--SYMBOL_FORMALS: k [0/0] {87} - ¦--')': ) [0/1] {88} - °--expr: [0/0] {89} - ¦--expr: [0/0] {91} - ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {90} - ¦--'(': ( [0/2] {92} - ¦--expr: [1/0] {93} - ¦ ¦--IF: if [0/1] {94} - ¦ ¦--'(': ( [0/0] {95} - ¦ ¦--expr: [0/0] {97} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {96} - ¦ ¦--')': ) [0/4] {98} - ¦ °--expr: [1/0] {100} - ¦ °--SYMBOL: x [0/0] {99} - °--')': ) [1/0] {101} diff --git a/tests/testthat/indention_operators/function-multiline-no-braces-non-strict-in_tree b/tests/testthat/indention_operators/function-multiline-no-braces-non-strict-in_tree deleted file mode 100644 index aa5df2234..000000000 --- a/tests/testthat/indention_operators/function-multiline-no-braces-non-strict-in_tree +++ /dev/null @@ -1,105 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: g <- [0/0] {1} - ¦ ¦--expr: g [0/1] {3} - ¦ ¦ °--SYMBOL: g [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {8} - ¦ ¦--')': ) [0/2] {9} - ¦ °--expr: NULL [1/0] {11} - ¦ °--NULL_CONST: NULL [0/0] {10} - ¦--expr: g <- [3/0] {12} - ¦ ¦--expr: g [0/1] {14} - ¦ ¦ °--SYMBOL: g [0/0] {13} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {15} - ¦ °--expr: funct [0/0] {16} - ¦ ¦--FUNCTION: funct [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {19} - ¦ ¦--')': ) [0/1] {20} - ¦ °--expr: h( - [0/0] {21} - ¦ ¦--expr: h [0/0] {23} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {22} - ¦ ¦--'(': ( [0/2] {24} - ¦ ¦--expr: NULL [1/0] {26} - ¦ ¦ °--NULL_CONST: NULL [0/0] {25} - ¦ °--')': ) [1/0] {27} - ¦--expr: g <- [3/0] {28} - ¦ ¦--expr: g [0/1] {30} - ¦ ¦ °--SYMBOL: g [0/0] {29} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {31} - ¦ °--expr: funct [0/0] {32} - ¦ ¦--FUNCTION: funct [0/0] {33} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {35} - ¦ ¦--')': ) [0/1] {36} - ¦ °--expr: h( # [0/0] {37} - ¦ ¦--expr: h [0/0] {39} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {38} - ¦ ¦--'(': ( [0/1] {40} - ¦ ¦--COMMENT: # y [0/2] {41} - ¦ ¦--expr: NULL [1/1] {43} - ¦ ¦ °--NULL_CONST: NULL [0/0] {42} - ¦ ¦--COMMENT: # x [0/0] {44} - ¦ °--')': ) [1/0] {45} - ¦--expr: g <- [2/0] {46} - ¦ ¦--expr: g [0/1] {48} - ¦ ¦ °--SYMBOL: g [0/0] {47} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {49} - ¦ °--expr: funct [0/0] {50} - ¦ ¦--FUNCTION: funct [0/0] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {53} - ¦ ¦--')': ) [0/1] {54} - ¦ °--expr: h( # [0/0] {55} - ¦ ¦--expr: h [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {56} - ¦ ¦--'(': ( [0/1] {58} - ¦ ¦--COMMENT: # y [0/2] {59} - ¦ ¦--expr: NULL [1/0] {61} - ¦ ¦ °--NULL_CONST: NULL [0/0] {60} - ¦ °--')': ) [1/0] {62} - ¦--expr: g <- [3/0] {63} - ¦ ¦--expr: g [0/1] {65} - ¦ ¦ °--SYMBOL: g [0/0] {64} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {66} - ¦ °--expr: funct [0/0] {67} - ¦ ¦--FUNCTION: funct [0/0] {68} - ¦ ¦--'(': ( [0/0] {69} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {70} - ¦ ¦--')': ) [0/1] {71} - ¦ °--expr: h( - [0/0] {72} - ¦ ¦--expr: h [0/0] {74} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {73} - ¦ ¦--'(': ( [0/2] {75} - ¦ ¦--expr: NULL [1/1] {77} - ¦ ¦ °--NULL_CONST: NULL [0/0] {76} - ¦ ¦--COMMENT: # 3jk [0/0] {78} - ¦ °--')': ) [1/0] {79} - °--expr: g <- [2/0] {80} - ¦--expr: g [0/1] {82} - ¦ °--SYMBOL: g [0/0] {81} - ¦--LEFT_ASSIGN: <- [0/1] {83} - °--expr: funct [0/0] {84} - ¦--FUNCTION: funct [0/0] {85} - ¦--'(': ( [0/0] {86} - ¦--SYMBOL_FORMALS: k [0/0] {87} - ¦--')': ) [0/1] {88} - °--expr: h( - [0/0] {89} - ¦--expr: h [0/0] {91} - ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {90} - ¦--'(': ( [0/2] {92} - ¦--expr: if (T [1/0] {93} - ¦ ¦--IF: if [0/1] {94} - ¦ ¦--'(': ( [0/0] {95} - ¦ ¦--expr: TRUE [0/0] {97} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {96} - ¦ ¦--')': ) [0/4] {98} - ¦ °--expr: x [1/0] {100} - ¦ °--SYMBOL: x [0/0] {99} - °--')': ) [1/0] {101} diff --git a/tests/testthat/indention_operators/function-multiline-no-braces-strict-in_tree b/tests/testthat/indention_operators/function-multiline-no-braces-strict-in_tree deleted file mode 100644 index aa5df2234..000000000 --- a/tests/testthat/indention_operators/function-multiline-no-braces-strict-in_tree +++ /dev/null @@ -1,105 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: g <- [0/0] {1} - ¦ ¦--expr: g [0/1] {3} - ¦ ¦ °--SYMBOL: g [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {8} - ¦ ¦--')': ) [0/2] {9} - ¦ °--expr: NULL [1/0] {11} - ¦ °--NULL_CONST: NULL [0/0] {10} - ¦--expr: g <- [3/0] {12} - ¦ ¦--expr: g [0/1] {14} - ¦ ¦ °--SYMBOL: g [0/0] {13} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {15} - ¦ °--expr: funct [0/0] {16} - ¦ ¦--FUNCTION: funct [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {19} - ¦ ¦--')': ) [0/1] {20} - ¦ °--expr: h( - [0/0] {21} - ¦ ¦--expr: h [0/0] {23} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {22} - ¦ ¦--'(': ( [0/2] {24} - ¦ ¦--expr: NULL [1/0] {26} - ¦ ¦ °--NULL_CONST: NULL [0/0] {25} - ¦ °--')': ) [1/0] {27} - ¦--expr: g <- [3/0] {28} - ¦ ¦--expr: g [0/1] {30} - ¦ ¦ °--SYMBOL: g [0/0] {29} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {31} - ¦ °--expr: funct [0/0] {32} - ¦ ¦--FUNCTION: funct [0/0] {33} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {35} - ¦ ¦--')': ) [0/1] {36} - ¦ °--expr: h( # [0/0] {37} - ¦ ¦--expr: h [0/0] {39} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {38} - ¦ ¦--'(': ( [0/1] {40} - ¦ ¦--COMMENT: # y [0/2] {41} - ¦ ¦--expr: NULL [1/1] {43} - ¦ ¦ °--NULL_CONST: NULL [0/0] {42} - ¦ ¦--COMMENT: # x [0/0] {44} - ¦ °--')': ) [1/0] {45} - ¦--expr: g <- [2/0] {46} - ¦ ¦--expr: g [0/1] {48} - ¦ ¦ °--SYMBOL: g [0/0] {47} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {49} - ¦ °--expr: funct [0/0] {50} - ¦ ¦--FUNCTION: funct [0/0] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {53} - ¦ ¦--')': ) [0/1] {54} - ¦ °--expr: h( # [0/0] {55} - ¦ ¦--expr: h [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {56} - ¦ ¦--'(': ( [0/1] {58} - ¦ ¦--COMMENT: # y [0/2] {59} - ¦ ¦--expr: NULL [1/0] {61} - ¦ ¦ °--NULL_CONST: NULL [0/0] {60} - ¦ °--')': ) [1/0] {62} - ¦--expr: g <- [3/0] {63} - ¦ ¦--expr: g [0/1] {65} - ¦ ¦ °--SYMBOL: g [0/0] {64} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {66} - ¦ °--expr: funct [0/0] {67} - ¦ ¦--FUNCTION: funct [0/0] {68} - ¦ ¦--'(': ( [0/0] {69} - ¦ ¦--SYMBOL_FORMALS: k [0/0] {70} - ¦ ¦--')': ) [0/1] {71} - ¦ °--expr: h( - [0/0] {72} - ¦ ¦--expr: h [0/0] {74} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {73} - ¦ ¦--'(': ( [0/2] {75} - ¦ ¦--expr: NULL [1/1] {77} - ¦ ¦ °--NULL_CONST: NULL [0/0] {76} - ¦ ¦--COMMENT: # 3jk [0/0] {78} - ¦ °--')': ) [1/0] {79} - °--expr: g <- [2/0] {80} - ¦--expr: g [0/1] {82} - ¦ °--SYMBOL: g [0/0] {81} - ¦--LEFT_ASSIGN: <- [0/1] {83} - °--expr: funct [0/0] {84} - ¦--FUNCTION: funct [0/0] {85} - ¦--'(': ( [0/0] {86} - ¦--SYMBOL_FORMALS: k [0/0] {87} - ¦--')': ) [0/1] {88} - °--expr: h( - [0/0] {89} - ¦--expr: h [0/0] {91} - ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {90} - ¦--'(': ( [0/2] {92} - ¦--expr: if (T [1/0] {93} - ¦ ¦--IF: if [0/1] {94} - ¦ ¦--'(': ( [0/0] {95} - ¦ ¦--expr: TRUE [0/0] {97} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {96} - ¦ ¦--')': ) [0/4] {98} - ¦ °--expr: x [1/0] {100} - ¦ °--SYMBOL: x [0/0] {99} - °--')': ) [1/0] {101} diff --git a/tests/testthat/indention_operators/if-else-no-braces-not-strict-in_tree b/tests/testthat/indention_operators/if-else-no-braces-not-strict-in_tree deleted file mode 100644 index 450857878..000000000 --- a/tests/testthat/indention_operators/if-else-no-braces-not-strict-in_tree +++ /dev/null @@ -1,71 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if (T [0/0] {1} - ¦ ¦--IF: if [0/1] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/1] {6} - ¦ ¦--expr: c( - [0/1] {7} - ¦ ¦ ¦--expr: c [0/0] {9} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {8} - ¦ ¦ ¦--'(': ( [0/2] {10} - ¦ ¦ ¦--expr: 2 [1/0] {12} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {11} - ¦ ¦ °--')': ) [1/0] {13} - ¦ ¦--ELSE: else [0/1] {14} - ¦ °--expr: c( - [0/0] {15} - ¦ ¦--expr: c [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {16} - ¦ ¦--'(': ( [0/2] {18} - ¦ ¦--expr: 1 [1/0] {20} - ¦ ¦ °--NUM_CONST: 1 [0/0] {19} - ¦ °--')': ) [1/0] {21} - ¦--expr: if (T [2/0] {22} - ¦ ¦--IF: if [0/1] {23} - ¦ ¦--'(': ( [0/0] {24} - ¦ ¦--expr: TRUE [0/0] {26} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {25} - ¦ ¦--')': ) [0/1] {27} - ¦ ¦--expr: c( - [0/1] {28} - ¦ ¦ ¦--expr: c [0/0] {30} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {29} - ¦ ¦ ¦--'(': ( [0/2] {31} - ¦ ¦ ¦--expr: 2 [1/0] {33} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {32} - ¦ ¦ °--')': ) [1/0] {34} - ¦ ¦--ELSE: else [0/1] {35} - ¦ °--expr: c( # [0/0] {36} - ¦ ¦--expr: c [0/0] {38} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {37} - ¦ ¦--'(': ( [0/1] {39} - ¦ ¦--COMMENT: # not [0/2] {40} - ¦ ¦--expr: 1 [1/0] {42} - ¦ ¦ °--NUM_CONST: 1 [0/0] {41} - ¦ °--')': ) [1/0] {43} - °--expr: if (T [2/0] {44} - ¦--IF: if [0/1] {45} - ¦--'(': ( [0/0] {46} - ¦--expr: TRUE [0/0] {48} - ¦ °--NUM_CONST: TRUE [0/0] {47} - ¦--')': ) [0/1] {49} - ¦--expr: c( - [0/1] {50} - ¦ ¦--expr: c [0/0] {52} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {51} - ¦ ¦--'(': ( [0/2] {53} - ¦ ¦--expr: 2 [1/1] {55} - ¦ ¦ °--NUM_CONST: 2 [0/0] {54} - ¦ ¦--COMMENT: # als [0/0] {56} - ¦ °--')': ) [1/0] {57} - ¦--ELSE: else [0/1] {58} - °--expr: c( - [0/0] {59} - ¦--expr: c [0/0] {61} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {60} - ¦--'(': ( [0/2] {62} - ¦--expr: 1 [1/0] {64} - ¦ °--NUM_CONST: 1 [0/0] {63} - °--')': ) [1/0] {65} diff --git a/tests/testthat/indention_operators/logical_special_eq_sub-in_tree b/tests/testthat/indention_operators/logical_special_eq_sub-in_tree deleted file mode 100644 index 79e0333ae..000000000 --- a/tests/testthat/indention_operators/logical_special_eq_sub-in_tree +++ /dev/null @@ -1,47 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a || - [0/2] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--OR2: || [0/0] {4} - ¦ °--expr: b [1/0] {6} - ¦ °--SYMBOL: b [0/0] {5} - ¦--expr: a > -4 [2/0] {7} - ¦ ¦--expr: a [0/1] {9} - ¦ ¦ °--SYMBOL: a [0/0] {8} - ¦ ¦--GT: > [0/0] {10} - ¦ °--expr: 4 [1/0] {12} - ¦ °--NUM_CONST: 4 [0/0] {11} - ¦--expr: a& -3 [2/0] {13} - ¦ ¦--expr: a [0/0] {15} - ¦ ¦ °--SYMBOL: a [0/0] {14} - ¦ ¦--AND: & [0/0] {16} - ¦ °--expr: 3 [1/0] {18} - ¦ °--NUM_CONST: 3 [0/0] {17} - ¦--expr: b %in [2/0] {19} - ¦ ¦--expr: b [0/1] {21} - ¦ ¦ °--SYMBOL: b [0/0] {20} - ¦ ¦--SPECIAL-IN: %in% [0/1] {22} - ¦ °--expr: c [1/0] {24} - ¦ °--SYMBOL: c [0/0] {23} - ¦--expr: data_ [2/0] {25} - ¦ ¦--expr: data_ [0/0] {27} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {26} - ¦ ¦--'(': ( [0/0] {28} - ¦ ¦--SYMBOL_SUB: a [1/5] {29} - ¦ ¦--EQ_SUB: = [0/6] {30} - ¦ ¦--expr: list( [1/1] {31} - ¦ ¦ ¦--expr: list [0/0] {33} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {32} - ¦ ¦ ¦--'(': ( [0/0] {34} - ¦ ¦ °--')': ) [0/0] {35} - ¦ °--')': ) [1/0] {36} - °--expr_or_assign_or_help: b = -3 [1/0] {37} - ¦--expr: b [0/1] {39} - ¦ °--SYMBOL: b [0/0] {38} - ¦--EQ_ASSIGN: = [0/0] {40} - °--expr: 3 [1/0] {42} - °--NUM_CONST: 3 [0/0] {41} diff --git a/tests/testthat/indention_operators/multiply_divide-in_tree b/tests/testthat/indention_operators/multiply_divide-in_tree deleted file mode 100644 index 22a0e338c..000000000 --- a/tests/testthat/indention_operators/multiply_divide-in_tree +++ /dev/null @@ -1,33 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1 / -2 [0/3] {1} - ¦ ¦--expr: 1 [0/1] {4} - ¦ ¦ °--NUM_CONST: 1 [0/0] {3} - ¦ ¦--'/': / [0/0] {5} - ¦ ¦--expr: 2 [1/1] {7} - ¦ ¦ °--NUM_CONST: 2 [0/0] {6} - ¦ ¦--'+': + [0/1] {8} - ¦ °--expr: 3 * -1 [0/0] {9} - ¦ ¦--expr: 3 [0/1] {14} - ¦ ¦ °--NUM_CONST: 3 [0/0] {13} - ¦ ¦--'*': * [0/0] {15} - ¦ ¦--expr: 17 [1/1] {17} - ¦ ¦ °--NUM_CONST: 17 [0/0] {16} - ¦ ¦--'*': * [0/0] {18} - ¦ ¦--expr: 22222 [1/1] {20} - ¦ ¦ °--NUM_CONST: 22222 [0/0] {19} - ¦ ¦--'/': / [0/6] {21} - ¦ ¦--expr: 19 [1/1] {23} - ¦ ¦ °--NUM_CONST: 19 [0/0] {22} - ¦ ¦--'*': * [0/6] {24} - ¦ °--expr: -1 [1/0] {25} - ¦ ¦--'-': - [0/0] {26} - ¦ °--expr: 1 [0/0] {28} - ¦ °--NUM_CONST: 1 [0/0] {27} - °--expr: 3 * 2 [2/0] {29} - ¦--expr: 3 [0/1] {31} - ¦ °--NUM_CONST: 3 [0/0] {30} - ¦--'*': * [0/1] {32} - °--expr: 22 [0/0] {34} - °--NUM_CONST: 22 [0/0] {33} diff --git a/tests/testthat/indention_operators/nested-for-spacing-scope-indention-in_tree b/tests/testthat/indention_operators/nested-for-spacing-scope-indention-in_tree deleted file mode 100644 index a6579de76..000000000 --- a/tests/testthat/indention_operators/nested-for-spacing-scope-indention-in_tree +++ /dev/null @@ -1,54 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: for ( [0/0] {1} - ¦ ¦--FOR: for [0/1] {2} - ¦ ¦--forcond: (x in [0/0] {3} - ¦ ¦ ¦--'(': ( [0/0] {4} - ¦ ¦ ¦--SYMBOL: x [0/1] {5} - ¦ ¦ ¦--IN: in [0/1] {6} - ¦ ¦ ¦--expr: 1 [0/0] {8} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {7} - ¦ ¦ °--')': ) [0/0] {9} - ¦ °--expr: { -x -f [0/0] {10} - ¦ ¦--'{': { [0/0] {11} - ¦ ¦--expr: x [1/0] {13} - ¦ ¦ °--SYMBOL: x [0/0] {12} - ¦ ¦--expr: for ( [1/0] {14} - ¦ ¦ ¦--FOR: for [0/1] {15} - ¦ ¦ ¦--forcond: (x in [0/0] {16} - ¦ ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ ¦ ¦--SYMBOL: x [0/1] {18} - ¦ ¦ ¦ ¦--IN: in [0/1] {19} - ¦ ¦ ¦ ¦--expr: k [0/1] {21} - ¦ ¦ ¦ ¦ °--SYMBOL: k [0/0] {20} - ¦ ¦ ¦ °--')': ) [0/0] {22} - ¦ ¦ °--expr: 3 [1/0] {24} - ¦ ¦ °--NUM_CONST: 3 [0/0] {23} - ¦ °--'}': } [1/0] {25} - °--expr: for ( [2/0] {26} - ¦--FOR: for [0/1] {27} - ¦--forcond: (x in [0/1] {28} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--SYMBOL: x [0/1] {30} - ¦ ¦--IN: in [0/1] {31} - ¦ ¦--expr: 1 [0/0] {33} - ¦ ¦ °--NUM_CONST: 1 [0/0] {32} - ¦ °--')': ) [0/0] {34} - °--expr: { - x [0/0] {35} - ¦--'{': { [0/2] {36} - ¦--expr: x [1/2] {38} - ¦ °--SYMBOL: x [0/0] {37} - ¦--expr: for ( [1/0] {39} - ¦ ¦--FOR: for [0/1] {40} - ¦ ¦--forcond: (x in [0/2] {41} - ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦--SYMBOL: x [0/1] {43} - ¦ ¦ ¦--IN: in [0/1] {44} - ¦ ¦ ¦--expr: k [0/1] {46} - ¦ ¦ ¦ °--SYMBOL: k [0/0] {45} - ¦ ¦ °--')': ) [0/0] {47} - ¦ °--expr: 3 [1/0] {49} - ¦ °--NUM_CONST: 3 [0/0] {48} - °--'}': } [1/0] {50} diff --git a/tests/testthat/indention_operators/nested-for-spacing-scope-spaces-in_tree b/tests/testthat/indention_operators/nested-for-spacing-scope-spaces-in_tree deleted file mode 100644 index 2f0f75e20..000000000 --- a/tests/testthat/indention_operators/nested-for-spacing-scope-spaces-in_tree +++ /dev/null @@ -1,53 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: for ( [0/0] {1} - ¦ ¦--FOR: for [0/1] {2} - ¦ ¦--forcond: (x in [0/1] {3} - ¦ ¦ ¦--'(': ( [0/0] {4} - ¦ ¦ ¦--SYMBOL: x [0/1] {5} - ¦ ¦ ¦--IN: in [0/1] {6} - ¦ ¦ ¦--expr: 1 [0/0] {8} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {7} - ¦ ¦ °--')': ) [0/0] {9} - ¦ °--expr: { - x [0/0] {10} - ¦ ¦--'{': { [0/2] {11} - ¦ ¦--expr: x [1/2] {13} - ¦ ¦ °--SYMBOL: x [0/0] {12} - ¦ ¦--expr: for ( [1/0] {14} - ¦ ¦ ¦--FOR: for [0/1] {15} - ¦ ¦ ¦--forcond: (x in [0/4] {16} - ¦ ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ ¦ ¦--SYMBOL: x [0/1] {18} - ¦ ¦ ¦ ¦--IN: in [0/1] {19} - ¦ ¦ ¦ ¦--expr: k [0/1] {21} - ¦ ¦ ¦ ¦ °--SYMBOL: k [0/0] {20} - ¦ ¦ ¦ °--')': ) [0/0] {22} - ¦ ¦ °--expr: 3 [1/0] {24} - ¦ ¦ °--NUM_CONST: 3 [0/0] {23} - ¦ °--'}': } [1/0] {25} - °--expr: for ( [2/0] {26} - ¦--FOR: for [0/1] {27} - ¦--forcond: (x in [0/1] {28} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--SYMBOL: x [0/1] {30} - ¦ ¦--IN: in [0/1] {31} - ¦ ¦--expr: 1 [0/0] {33} - ¦ ¦ °--NUM_CONST: 1 [0/0] {32} - ¦ °--')': ) [0/0] {34} - °--expr: { - x [0/0] {35} - ¦--'{': { [0/2] {36} - ¦--expr: x [1/2] {38} - ¦ °--SYMBOL: x [0/0] {37} - ¦--expr: for ( [1/0] {39} - ¦ ¦--FOR: for [0/1] {40} - ¦ ¦--forcond: (x in [0/2] {41} - ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦--SYMBOL: x [0/1] {43} - ¦ ¦ ¦--IN: in [0/1] {44} - ¦ ¦ ¦--expr: k [0/1] {46} - ¦ ¦ ¦ °--SYMBOL: k [0/0] {45} - ¦ ¦ °--')': ) [0/0] {47} - ¦ °--expr: 3 [1/0] {49} - ¦ °--NUM_CONST: 3 [0/0] {48} - °--'}': } [1/0] {50} diff --git a/tests/testthat/indention_operators/not_first_trigger-in_tree b/tests/testthat/indention_operators/not_first_trigger-in_tree deleted file mode 100644 index a25d4081f..000000000 --- a/tests/testthat/indention_operators/not_first_trigger-in_tree +++ /dev/null @@ -1,70 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1+ ( - [0/0] {1} - ¦ ¦--expr: 1 [0/0] {3} - ¦ ¦ °--NUM_CONST: 1 [0/0] {2} - ¦ ¦--'+': + [0/1] {4} - ¦ ¦--expr: ( - 3 [0/1] {6} - ¦ ¦ ¦--'(': ( [0/2] {7} - ¦ ¦ ¦--expr: 3 [1/0] {9} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {8} - ¦ ¦ °--')': ) [1/0] {10} - ¦ ¦--SPECIAL-PIPE: %>% [0/0] {11} - ¦ °--expr: j() [1/0] {12} - ¦ ¦--expr: j [0/0] {14} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: j [0/0] {13} - ¦ ¦--'(': ( [0/0] {15} - ¦ °--')': ) [0/0] {16} - ¦--expr: a <- [2/0] {17} - ¦ ¦--expr: a [0/1] {19} - ¦ ¦ °--SYMBOL: a [0/0] {18} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {20} - ¦ ¦--expr: c(x, [0/1] {22} - ¦ ¦ ¦--expr: c [0/0] {24} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {23} - ¦ ¦ ¦--'(': ( [0/0] {25} - ¦ ¦ ¦--expr: x [0/0] {27} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {26} - ¦ ¦ ¦--',': , [0/1] {28} - ¦ ¦ ¦--expr: y [0/0] {30} - ¦ ¦ ¦ °--SYMBOL: y [0/0] {29} - ¦ ¦ ¦--',': , [0/7] {31} - ¦ ¦ ¦--expr: z [1/0] {33} - ¦ ¦ ¦ °--SYMBOL: z [0/0] {32} - ¦ ¦ °--')': ) [0/0] {34} - ¦ ¦--SPECIAL-PIPE: %>% [0/0] {35} - ¦ °--expr: k() [1/0] {36} - ¦ ¦--expr: k [0/0] {38} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {37} - ¦ ¦--'(': ( [0/0] {39} - ¦ °--')': ) [0/0] {40} - °--expr: a + ( [2/0] {41} - ¦--expr: a [0/1] {44} - ¦ °--SYMBOL: a [0/0] {43} - ¦--'+': + [0/1] {45} - ¦--expr: ( - c [0/3] {46} - ¦ ¦--'(': ( [0/2] {47} - ¦ ¦--expr: c [1/0] {49} - ¦ ¦ °--SYMBOL: c [0/0] {48} - ¦ °--')': ) [1/0] {50} - ¦--'+': + [0/1] {51} - ¦--expr: ( - c( [0/0] {53} - ¦ ¦--'(': ( [0/1] {54} - ¦ ¦--expr: c( - [1/0] {55} - ¦ ¦ ¦--expr: c [0/0] {57} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {56} - ¦ ¦ ¦--'(': ( [0/2] {58} - ¦ ¦ ¦--expr: 2 [1/5] {60} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {59} - ¦ ¦ °--')': ) [1/0] {61} - ¦ °--')': ) [1/0] {62} - ¦--SPECIAL-PIPE: %>% [0/0] {63} - °--expr: j() [1/0] {64} - ¦--expr: j [0/0] {66} - ¦ °--SYMBOL_FUNCTION_CALL: j [0/0] {65} - ¦--'(': ( [0/0] {67} - °--')': ) [0/0] {68} diff --git a/tests/testthat/indention_operators/overall-in_tree b/tests/testthat/indention_operators/overall-in_tree deleted file mode 100644 index 9f04d8e5d..000000000 --- a/tests/testthat/indention_operators/overall-in_tree +++ /dev/null @@ -1,186 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: pd%>% [0/0] {1} - ¦ ¦--expr: pd [0/0] {6} - ¦ ¦ °--SYMBOL: pd [0/0] {5} - ¦ ¦--SPECIAL-PIPE: %>% [0/0] {7} - ¦ ¦--expr: mutat [1/1] {8} - ¦ ¦ ¦--expr: mutat [0/0] {10} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mutat [0/0] {9} - ¦ ¦ ¦--'(': ( [0/0] {11} - ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {12} - ¦ ¦ ¦--EQ_SUB: = [0/0] {13} - ¦ ¦ ¦--expr: devid [0/0] {14} - ¦ ¦ ¦ ¦--expr: devid [0/0] {16} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: devid [0/0] {15} - ¦ ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ ¦ ¦--expr: call3 [0/0] {18} - ¦ ¦ ¦ ¦ ¦--expr: call3 [0/0] {20} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {19} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦ ¦ ¦--expr: a [0/0] {23} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {22} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {24} - ¦ ¦ ¦ ¦ ¦--expr: b [0/0] {26} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: b [0/0] {25} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {27} - ¦ ¦ ¦ ¦ ¦--expr: 1 + q [0/0] {28} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {30} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {29} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {31} - ¦ ¦ ¦ ¦ ¦ °--expr: q [0/0] {33} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: q [0/0] {32} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {34} - ¦ ¦ ¦ °--')': ) [0/0] {35} - ¦ ¦ °--')': ) [0/0] {36} - ¦ ¦--SPECIAL-PIPE: %>% [0/5] {37} - ¦ ¦--expr: filte [1/1] {38} - ¦ ¦ ¦--expr: filte [0/0] {40} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {39} - ¦ ¦ ¦--'(': ( [0/1] {41} - ¦ ¦ ¦--expr: !term [0/0] {42} - ¦ ¦ ¦ ¦--'!': ! [0/0] {43} - ¦ ¦ ¦ °--expr: termi [0/0] {45} - ¦ ¦ ¦ °--SYMBOL: termi [0/0] {44} - ¦ ¦ °--')': ) [0/0] {46} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {47} - ¦ ¦--expr: ggplo [1/0] {48} - ¦ ¦ ¦--expr: ggplo [0/0] {50} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {49} - ¦ ¦ ¦--'(': ( [0/0] {51} - ¦ ¦ ¦--expr: aes(x [0/0] {52} - ¦ ¦ ¦ ¦--expr: aes [0/0] {54} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {53} - ¦ ¦ ¦ ¦--'(': ( [0/0] {55} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {56} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {57} - ¦ ¦ ¦ ¦--expr: new [0/0] {59} - ¦ ¦ ¦ ¦ °--SYMBOL: new [0/0] {58} - ¦ ¦ ¦ ¦--',': , [0/1] {60} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {61} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {62} - ¦ ¦ ¦ ¦--expr: old [0/0] {64} - ¦ ¦ ¦ ¦ °--SYMBOL: old [0/0] {63} - ¦ ¦ ¦ °--')': ) [0/0] {65} - ¦ ¦ °--')': ) [0/0] {66} - ¦ ¦--'+': + [0/0] {67} - ¦ °--expr: geom_ [1/0] {68} - ¦ ¦--expr: geom_ [0/0] {70} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {69} - ¦ ¦--'(': ( [0/0] {71} - ¦ °--')': ) [0/0] {72} - ¦--expr: 1+( -2 [2/0] {73} - ¦ ¦--expr: 1 [0/0] {75} - ¦ ¦ °--NUM_CONST: 1 [0/0] {74} - ¦ ¦--'+': + [0/0] {76} - ¦ °--expr: ( -22- [0/0] {77} - ¦ ¦--'(': ( [0/0] {78} - ¦ ¦--expr: 22- ( [1/2] {79} - ¦ ¦ ¦--expr: 22 [0/0] {83} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {82} - ¦ ¦ ¦--'-': - [0/1] {84} - ¦ ¦ ¦--expr: (1/ - [0/1] {85} - ¦ ¦ ¦ ¦--'(': ( [0/0] {86} - ¦ ¦ ¦ ¦--expr: 1/ - [0/0] {87} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {93} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {92} - ¦ ¦ ¦ ¦ ¦--'/': / [0/2] {94} - ¦ ¦ ¦ ¦ ¦--expr: 2718 [1/1] {96} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2718 [0/0] {95} - ¦ ¦ ¦ ¦ ¦--'/': / [0/4] {97} - ¦ ¦ ¦ ¦ ¦--expr: 23 [1/0] {99} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 23 [0/0] {98} - ¦ ¦ ¦ ¦ ¦--'*': * [0/1] {100} - ¦ ¦ ¦ ¦ ¦--expr: 29 [0/1] {102} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 29 [0/0] {101} - ¦ ¦ ¦ ¦ ¦--'*': * [0/1] {103} - ¦ ¦ ¦ ¦ ¦--expr: ( - [0/5] {104} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/12] {105} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 2 [1/0] {106} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 2 [0/5] {109} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {108} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'*': * [0/1] {110} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: (22*- [0/1] {111} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {112} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22*-1 [0/0] {113} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/0] {115} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {114} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'*': * [0/0] {116} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--expr: -1 [0/0] {117} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'-': - [0/0] {118} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {120} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {119} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {121} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/14] {122} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [1/0] {124} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {123} - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {125} - ¦ ¦ ¦ ¦ ¦--'-': - [0/10] {126} - ¦ ¦ ¦ ¦ °--expr: 18 [1/0] {128} - ¦ ¦ ¦ ¦ °--NUM_CONST: 18 [0/0] {127} - ¦ ¦ ¦ °--')': ) [0/0] {129} - ¦ ¦ ¦--'+': + [0/4] {130} - ¦ ¦ ¦--expr: sin( [1/1] {131} - ¦ ¦ ¦ ¦--expr: sin [0/0] {133} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {132} - ¦ ¦ ¦ ¦--'(': ( [0/4] {134} - ¦ ¦ ¦ ¦--expr: pi [0/0] {136} - ¦ ¦ ¦ ¦ °--SYMBOL: pi [0/0] {135} - ¦ ¦ ¦ °--')': ) [0/0] {137} - ¦ ¦ ¦--'-': - [0/0] {138} - ¦ ¦ °--expr: 2 [1/0] {140} - ¦ ¦ °--NUM_CONST: 2 [0/0] {139} - ¦ °--')': ) [1/0] {141} - ¦--expr: a <- [2/1] {142} - ¦ ¦--expr: a [0/1] {144} - ¦ ¦ °--SYMBOL: a [0/0] {143} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {145} - ¦ °--expr: funct [0/0] {146} - ¦ ¦--FUNCTION: funct [0/0] {147} - ¦ ¦--'(': ( [0/0] {148} - ¦ ¦--SYMBOL_FORMALS: z [0/0] {149} - ¦ ¦--')': ) [0/1] {150} - ¦ °--expr: { - a [0/0] {151} - ¦ ¦--'{': { [0/2] {152} - ¦ ¦--expr: a %>% [1/0] {153} - ¦ ¦ ¦--expr: a [0/1] {156} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {155} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {157} - ¦ ¦ ¦--expr: q() [1/1] {158} - ¦ ¦ ¦ ¦--expr: q [0/0] {160} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {159} - ¦ ¦ ¦ ¦--'(': ( [0/0] {161} - ¦ ¦ ¦ °--')': ) [0/0] {162} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {163} - ¦ ¦ °--expr: n() [1/0] {164} - ¦ ¦ ¦--expr: n [0/0] {166} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {165} - ¦ ¦ ¦--'(': ( [0/0] {167} - ¦ ¦ °--')': ) [0/0] {168} - ¦ °--'}': } [1/0] {169} - °--expr: a %>% [2/0] {170} - ¦--expr: a [0/1] {174} - ¦ °--SYMBOL: a [0/0] {173} - ¦--SPECIAL-PIPE: %>% [0/0] {175} - ¦--expr: b() [1/0] {176} - ¦ ¦--expr: b [0/0] {178} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {177} - ¦ ¦--'(': ( [0/0] {179} - ¦ °--')': ) [0/0] {180} - ¦--SPECIAL-PIPE: %>% [0/0] {181} - ¦--expr: c() [1/0] {182} - ¦ ¦--expr: c [0/0] {184} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {183} - ¦ ¦--'(': ( [0/0] {185} - ¦ °--')': ) [0/0] {186} - ¦--SPECIAL-PIPE: %>% [0/0] {187} - °--expr: k() [1/0] {188} - ¦--expr: k [0/0] {190} - ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {189} - ¦--'(': ( [0/0] {191} - °--')': ) [0/0] {192} diff --git a/tests/testthat/indention_operators/pipe_and_assignment-in_tree b/tests/testthat/indention_operators/pipe_and_assignment-in_tree deleted file mode 100644 index f7586ded7..000000000 --- a/tests/testthat/indention_operators/pipe_and_assignment-in_tree +++ /dev/null @@ -1,43 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a [0/0] {1} - ¦ ¦--expr: a [0/4] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/0] {4} - ¦ ¦--expr: b() [1/1] {7} - ¦ ¦ ¦--expr: b [0/0] {9} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {8} - ¦ ¦ ¦--'(': ( [0/0] {10} - ¦ ¦ °--')': ) [0/0] {11} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {12} - ¦ ¦--expr: q() [1/1] {13} - ¦ ¦ ¦--expr: q [0/0] {15} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {14} - ¦ ¦ ¦--'(': ( [0/0] {16} - ¦ ¦ °--')': ) [0/0] {17} - ¦ ¦--SPECIAL-PIPE: %>% [0/5] {18} - ¦ °--expr: g() [1/0] {19} - ¦ ¦--expr: g [0/0] {21} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {20} - ¦ ¦--'(': ( [0/0] {22} - ¦ °--')': ) [0/0] {23} - °--expr: a <- [2/0] {24} - ¦--expr: a [0/1] {26} - ¦ °--SYMBOL: a [0/0] {25} - ¦--LEFT_ASSIGN: <- [0/4] {27} - ¦--expr: b() [0/1] {30} - ¦ ¦--expr: b [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ °--')': ) [0/0] {34} - ¦--SPECIAL-PIPE: %>% [0/2] {35} - ¦--expr: c() [1/0] {36} - ¦ ¦--expr: c [0/0] {38} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {37} - ¦ ¦--'(': ( [0/0] {39} - ¦ °--')': ) [0/0] {40} - ¦--SPECIAL-PIPE: %>% [0/0] {41} - °--expr: ggg() [1/0] {42} - ¦--expr: ggg [0/0] {44} - ¦ °--SYMBOL_FUNCTION_CALL: ggg [0/0] {43} - ¦--'(': ( [0/0] {45} - °--')': ) [0/0] {46} diff --git a/tests/testthat/indention_operators/pipe_and_assignment_and_comment-in_tree b/tests/testthat/indention_operators/pipe_and_assignment_and_comment-in_tree deleted file mode 100644 index b88ba53ae..000000000 --- a/tests/testthat/indention_operators/pipe_and_assignment_and_comment-in_tree +++ /dev/null @@ -1,115 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a <-# [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/0] {4} - ¦ ¦--COMMENT: # [0/2] {5} - ¦ ¦--expr: b() [1/1] {8} - ¦ ¦ ¦--expr: b [0/0] {10} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {9} - ¦ ¦ ¦--'(': ( [0/0] {11} - ¦ ¦ °--')': ) [0/0] {12} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {13} - ¦ ¦--expr: c() [1/1] {14} - ¦ ¦ ¦--expr: c [0/0] {16} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {15} - ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ °--')': ) [0/0] {18} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {19} - ¦ °--expr: d() [1/0] {20} - ¦ ¦--expr: d [0/0] {22} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {21} - ¦ ¦--'(': ( [0/0] {23} - ¦ °--')': ) [0/0] {24} - ¦--expr: a <- [2/0] {25} - ¦ ¦--expr: a [0/1] {27} - ¦ ¦ °--SYMBOL: a [0/0] {26} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {28} - ¦ ¦--COMMENT: # [0/2] {29} - ¦ ¦--expr: b() [1/1] {32} - ¦ ¦ ¦--expr: b [0/0] {34} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {33} - ¦ ¦ ¦--'(': ( [0/0] {35} - ¦ ¦ °--')': ) [0/0] {36} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {37} - ¦ ¦--expr: c() [1/1] {38} - ¦ ¦ ¦--expr: c [0/0] {40} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {39} - ¦ ¦ ¦--'(': ( [0/0] {41} - ¦ ¦ °--')': ) [0/0] {42} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {43} - ¦ °--expr: d() [1/0] {44} - ¦ ¦--expr: d [0/0] {46} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {45} - ¦ ¦--'(': ( [0/0] {47} - ¦ °--')': ) [0/0] {48} - ¦--expr: a <- - [3/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {52} - ¦ ¦--expr: b() [1/1] {55} - ¦ ¦ ¦--expr: b [0/0] {57} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {56} - ¦ ¦ ¦--'(': ( [0/0] {58} - ¦ ¦ °--')': ) [0/0] {59} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {60} - ¦ ¦--expr: c() [1/1] {61} - ¦ ¦ ¦--expr: c [0/0] {63} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {62} - ¦ ¦ ¦--'(': ( [0/0] {64} - ¦ ¦ °--')': ) [0/0] {65} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {66} - ¦ °--expr: d() [1/0] {67} - ¦ ¦--expr: d [0/0] {69} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {68} - ¦ ¦--'(': ( [0/0] {70} - ¦ °--')': ) [0/0] {71} - ¦--expr: a <- [2/0] {72} - ¦ ¦--expr: a [0/1] {74} - ¦ ¦ °--SYMBOL: a [0/0] {73} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {75} - ¦ ¦--expr: c [0/1] {80} - ¦ ¦ °--SYMBOL: c [0/0] {79} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {81} - ¦ ¦--expr: b() [1/0] {82} - ¦ ¦ ¦--expr: b [0/0] {84} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {83} - ¦ ¦ ¦--'(': ( [0/0] {85} - ¦ ¦ °--')': ) [0/0] {86} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {87} - ¦ ¦--expr: c( ) [1/1] {88} - ¦ ¦ ¦--expr: c [0/0] {90} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {89} - ¦ ¦ ¦--'(': ( [0/1] {91} - ¦ ¦ °--')': ) [0/0] {92} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {93} - ¦ °--expr: d() [1/0] {94} - ¦ ¦--expr: d [0/0] {96} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {95} - ¦ ¦--'(': ( [0/0] {97} - ¦ °--')': ) [0/0] {98} - ¦--expr: a <- - [2/0] {99} - ¦ ¦--expr: a [0/1] {101} - ¦ ¦ °--SYMBOL: a [0/0] {100} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {102} - ¦ ¦--expr: b() [1/1] {105} - ¦ ¦ ¦--expr: b [0/0] {107} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {106} - ¦ ¦ ¦--'(': ( [0/0] {108} - ¦ ¦ °--')': ) [0/0] {109} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {110} - ¦ ¦--COMMENT: # [0/2] {111} - ¦ ¦--expr: c() [1/1] {112} - ¦ ¦ ¦--expr: c [0/0] {114} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {113} - ¦ ¦ ¦--'(': ( [0/0] {115} - ¦ ¦ °--')': ) [0/0] {116} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {117} - ¦ °--expr: d() [1/0] {118} - ¦ ¦--expr: d [0/0] {120} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {119} - ¦ ¦--'(': ( [0/0] {121} - ¦ °--')': ) [0/0] {122} - °--COMMENT: # d [0/0] {123} diff --git a/tests/testthat/indention_operators/pipe_and_assignment_and_math-in_tree b/tests/testthat/indention_operators/pipe_and_assignment_and_math-in_tree deleted file mode 100644 index ecbf9d3ab..000000000 --- a/tests/testthat/indention_operators/pipe_and_assignment_and_math-in_tree +++ /dev/null @@ -1,27 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: q <- [0/0] {1} - ¦--expr: q [0/1] {3} - ¦ °--SYMBOL: q [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/2] {4} - ¦--expr: a [0/0] {9} - ¦ °--SYMBOL: a [0/0] {8} - ¦--'+': + [0/2] {10} - ¦--expr: - 3 [1/1] {11} - ¦ ¦--'-': - [0/1] {12} - ¦ °--expr: 3 [0/0] {14} - ¦ °--NUM_CONST: 3 [0/0] {13} - ¦--'+': + [0/0] {15} - ¦--expr: 2 [1/0] {17} - ¦ °--NUM_CONST: 2 [0/0] {16} - ¦--'+': + [0/0] {18} - ¦--expr: g() [1/0] {20} - ¦ ¦--expr: g [0/0] {22} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {21} - ¦ ¦--'(': ( [0/0] {23} - ¦ °--')': ) [0/0] {24} - ¦--SPECIAL-PIPE: %>% [0/3] {25} - °--expr: k() [1/0] {26} - ¦--expr: k [0/0] {28} - ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {27} - ¦--'(': ( [0/0] {29} - °--')': ) [0/0] {30} diff --git a/tests/testthat/indention_operators/pipe_simple-in_tree b/tests/testthat/indention_operators/pipe_simple-in_tree deleted file mode 100644 index 9cd38e1cd..000000000 --- a/tests/testthat/indention_operators/pipe_simple-in_tree +++ /dev/null @@ -1,76 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a %>% [0/0] {1} - ¦ ¦--expr: a [0/1] {6} - ¦ ¦ °--SYMBOL: a [0/0] {5} - ¦ ¦--SPECIAL-PIPE: %>% [0/0] {7} - ¦ ¦--expr: b() [1/1] {8} - ¦ ¦ ¦--expr: b [0/0] {10} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {9} - ¦ ¦ ¦--'(': ( [0/0] {11} - ¦ ¦ °--')': ) [0/0] {12} - ¦ ¦--SPECIAL-PIPE: %>% [0/0] {13} - ¦ ¦--expr: c() [1/1] {14} - ¦ ¦ ¦--expr: c [0/0] {16} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {15} - ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ °--')': ) [0/0] {18} - ¦ ¦--SPECIAL-PIPE: %>% [0/10] {19} - ¦ ¦--expr: d(1 + [1/1] {20} - ¦ ¦ ¦--expr: d [0/0] {22} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: d [0/0] {21} - ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ ¦--expr: 1 + e [0/0] {24} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ ¦ ¦ ¦--'+': + [0/1] {27} - ¦ ¦ ¦ °--expr: e (si [0/0] {28} - ¦ ¦ ¦ ¦--expr: e [0/1] {30} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: e [0/0] {29} - ¦ ¦ ¦ ¦--'(': ( [0/0] {31} - ¦ ¦ ¦ ¦--expr: sin(f [0/0] {32} - ¦ ¦ ¦ ¦ ¦--expr: sin [0/0] {34} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {33} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {35} - ¦ ¦ ¦ ¦ ¦--expr: f [0/0] {37} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: f [0/0] {36} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {38} - ¦ ¦ ¦ °--')': ) [0/0] {39} - ¦ ¦ °--')': ) [0/0] {40} - ¦ ¦--SPECIAL-PIPE: %>% [0/33] {41} - ¦ °--expr: g_out [1/0] {42} - ¦ ¦--expr: g_out [0/0] {44} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g_out [0/0] {43} - ¦ ¦--'(': ( [0/0] {45} - ¦ °--')': ) [0/0] {46} - ¦--expr: a <- [2/0] {47} - ¦ ¦--expr: a [0/1] {49} - ¦ ¦ °--SYMBOL: a [0/0] {48} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {50} - ¦ °--expr: funct [0/0] {51} - ¦ ¦--FUNCTION: funct [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--SYMBOL_FORMALS: jon_t [0/0] {54} - ¦ ¦--')': ) [0/1] {55} - ¦ °--expr: {} [0/0] {56} - ¦ ¦--'{': { [0/0] {57} - ¦ °--'}': } [0/0] {58} - ¦--expr: x %>% [2/0] {59} - ¦ ¦--expr: x [0/1] {61} - ¦ ¦ °--SYMBOL: x [0/0] {60} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {62} - ¦ ¦--COMMENT: # bre [2/2] {63} - ¦ °--expr: call( [1/0] {64} - ¦ ¦--expr: call [0/0] {66} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {65} - ¦ ¦--'(': ( [0/0] {67} - ¦ °--')': ) [0/0] {68} - ¦--expr: y %>% [3/1] {69} - ¦ ¦--expr: y [0/1] {71} - ¦ ¦ °--SYMBOL: y [0/0] {70} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {72} - ¦ °--expr: call( [3/0] {73} - ¦ ¦--expr: call [0/0] {75} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {74} - ¦ ¦--'(': ( [0/0] {76} - ¦ °--')': ) [0/0] {77} - °--COMMENT: # mor [0/0] {78} diff --git a/tests/testthat/indention_operators/pipe_with_dot-in_tree b/tests/testthat/indention_operators/pipe_with_dot-in_tree deleted file mode 100644 index 61a900661..000000000 --- a/tests/testthat/indention_operators/pipe_with_dot-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: strsp [0/0] {1} - ¦--expr: strsp [0/1] {2} - ¦ ¦--expr: strsp [0/0] {4} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: strsp [0/0] {3} - ¦ ¦--'(': ( [0/0] {5} - ¦ ¦--expr: "\n" [0/0] {7} - ¦ ¦ °--STR_CONST: "\n" [0/0] {6} - ¦ ¦--',': , [0/1] {8} - ¦ ¦--SYMBOL_SUB: fixed [0/1] {9} - ¦ ¦--EQ_SUB: = [0/1] {10} - ¦ ¦--expr: TRUE [0/0] {12} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {11} - ¦ °--')': ) [0/0] {13} - ¦--SPECIAL-PIPE: %>% [0/2] {14} - °--expr: .[[1L [1/0] {15} - ¦--expr: . [0/0] {17} - ¦ °--SYMBOL: . [0/0] {16} - ¦--LBB: [[ [0/0] {18} - ¦--expr: 1L [0/0] {20} - ¦ °--NUM_CONST: 1L [0/0] {19} - ¦--']': ] [0/0] {21} - °--']': ] [0/0] {22} diff --git a/tests/testthat/indention_operators/plus_minus-in_tree b/tests/testthat/indention_operators/plus_minus-in_tree deleted file mode 100644 index d805fc5a7..000000000 --- a/tests/testthat/indention_operators/plus_minus-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1 + - [0/0] {1} - ¦ ¦--expr: 1 [0/1] {6} - ¦ ¦ °--NUM_CONST: 1 [0/0] {5} - ¦ ¦--'+': + [0/7] {7} - ¦ ¦--expr: 2 [1/1] {9} - ¦ ¦ °--NUM_CONST: 2 [0/0] {8} - ¦ ¦--'+': + [0/0] {10} - ¦ ¦--expr: 3 [1/1] {12} - ¦ ¦ °--NUM_CONST: 3 [0/0] {11} - ¦ ¦--'+': + [0/7] {13} - ¦ ¦--expr: 4 [1/1] {15} - ¦ ¦ °--NUM_CONST: 4 [0/0] {14} - ¦ ¦--'-': - [0/2] {16} - ¦ °--expr: 5 [1/0] {18} - ¦ °--NUM_CONST: 5 [0/0] {17} - °--expr: 1 + 1 [2/0] {19} - ¦--expr: 1 [0/1] {21} - ¦ °--NUM_CONST: 1 [0/0] {20} - ¦--'+': + [0/1] {22} - °--expr: 1 [0/0] {24} - °--NUM_CONST: 1 [0/0] {23} diff --git a/tests/testthat/indention_operators/tilde-in_tree b/tests/testthat/indention_operators/tilde-in_tree deleted file mode 100644 index 7f3155dd1..000000000 --- a/tests/testthat/indention_operators/tilde-in_tree +++ /dev/null @@ -1,28 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: y ~ -x [0/0] {1} - ¦ ¦--expr: y [0/1] {3} - ¦ ¦ °--SYMBOL: y [0/0] {2} - ¦ ¦--'~': ~ [0/0] {4} - ¦ ¦--expr: x [1/0] {7} - ¦ ¦ °--SYMBOL: x [0/0] {6} - ¦ ¦--'+': + [0/0] {8} - ¦ °--expr: y [1/0] {10} - ¦ °--SYMBOL: y [0/0] {9} - °--expr: x ~ - [3/0] {11} - ¦--expr: x [0/1] {13} - ¦ °--SYMBOL: x [0/0] {12} - ¦--'~': ~ [0/2] {14} - ¦--expr: 1 [1/1] {17} - ¦ °--NUM_CONST: 1 [0/0] {16} - ¦--'+': + [0/1] {18} - °--expr: (x|b) [0/0] {19} - ¦--'(': ( [0/0] {20} - ¦--expr: x|b [0/0] {21} - ¦ ¦--expr: x [0/0] {23} - ¦ ¦ °--SYMBOL: x [0/0] {22} - ¦ ¦--OR: | [0/0] {24} - ¦ °--expr: b [0/0] {26} - ¦ °--SYMBOL: b [0/0] {25} - °--')': ) [0/0] {27} diff --git a/tests/testthat/indention_operators/while_for_if_without_curly_non_strict-in_tree b/tests/testthat/indention_operators/while_for_if_without_curly_non_strict-in_tree deleted file mode 100644 index 375209df0..000000000 --- a/tests/testthat/indention_operators/while_for_if_without_curly_non_strict-in_tree +++ /dev/null @@ -1,253 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: while [0/0] {1} - ¦ ¦--WHILE: while [0/1] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: x > 3 [0/0] {4} - ¦ ¦ ¦--expr: x [0/1] {6} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦ ¦--GT: > [0/1] {7} - ¦ ¦ °--expr: 3 [0/0] {9} - ¦ ¦ °--NUM_CONST: 3 [0/0] {8} - ¦ ¦--')': ) [0/2] {10} - ¦ °--expr: retur [1/0] {11} - ¦ ¦--expr: retur [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {12} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--expr: FALSE [0/0] {16} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {15} - ¦ °--')': ) [0/0] {17} - ¦--expr: for ( [2/0] {18} - ¦ ¦--FOR: for [0/1] {19} - ¦ ¦--forcond: (i in [0/2] {20} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--SYMBOL: i [0/1] {22} - ¦ ¦ ¦--IN: in [0/1] {23} - ¦ ¦ ¦--expr: 1:3 [0/0] {24} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ ¦ ¦ ¦--':': : [0/0] {27} - ¦ ¦ ¦ °--expr: 3 [0/0] {29} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {28} - ¦ ¦ °--')': ) [0/0] {30} - ¦ °--expr: print [1/0] {31} - ¦ ¦--expr: print [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: i [0/0] {36} - ¦ ¦ °--SYMBOL: i [0/0] {35} - ¦ °--')': ) [0/0] {37} - ¦--expr: if (x [2/0] {38} - ¦ ¦--IF: if [0/1] {39} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: x [0/0] {42} - ¦ ¦ °--SYMBOL: x [0/0] {41} - ¦ ¦--')': ) [0/2] {43} - ¦ °--expr: call2 [1/0] {44} - ¦ ¦--expr: call2 [0/0] {46} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {45} - ¦ ¦--'(': ( [0/0] {47} - ¦ ¦--expr: 3 [0/0] {49} - ¦ ¦ °--NUM_CONST: 3 [0/0] {48} - ¦ °--')': ) [0/0] {50} - ¦--expr: for ( [2/0] {51} - ¦ ¦--FOR: for [0/1] {52} - ¦ ¦--forcond: (i in [0/1] {53} - ¦ ¦ ¦--'(': ( [0/0] {54} - ¦ ¦ ¦--SYMBOL: i [0/1] {55} - ¦ ¦ ¦--IN: in [0/1] {56} - ¦ ¦ ¦--expr: 1:3 [0/0] {57} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {59} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {58} - ¦ ¦ ¦ ¦--':': : [0/0] {60} - ¦ ¦ ¦ °--expr: 3 [0/0] {62} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ ¦ °--')': ) [0/0] {63} - ¦ ¦--COMMENT: # [0/2] {64} - ¦ °--expr: print [1/0] {65} - ¦ ¦--expr: print [0/0] {67} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {66} - ¦ ¦--'(': ( [0/0] {68} - ¦ ¦--expr: i [0/0] {70} - ¦ ¦ °--SYMBOL: i [0/0] {69} - ¦ °--')': ) [0/0] {71} - ¦--expr: for ( [2/0] {72} - ¦ ¦--FOR: for [0/1] {73} - ¦ ¦--forcond: (i in [0/1] {74} - ¦ ¦ ¦--'(': ( [0/0] {75} - ¦ ¦ ¦--SYMBOL: i [0/1] {76} - ¦ ¦ ¦--IN: in [0/5] {77} - ¦ ¦ ¦--expr: 1:3 [1/0] {78} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {80} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {79} - ¦ ¦ ¦ ¦--':': : [0/0] {81} - ¦ ¦ ¦ °--expr: 3 [0/0] {83} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {82} - ¦ ¦ °--')': ) [0/0] {84} - ¦ ¦--COMMENT: # [0/2] {85} - ¦ °--expr: print [1/0] {86} - ¦ ¦--expr: print [0/0] {88} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {87} - ¦ ¦--'(': ( [0/0] {89} - ¦ ¦--expr: i [0/0] {91} - ¦ ¦ °--SYMBOL: i [0/0] {90} - ¦ °--')': ) [0/0] {92} - ¦--expr: for ( [2/0] {93} - ¦ ¦--FOR: for [0/1] {94} - ¦ ¦--forcond: (i in [0/1] {95} - ¦ ¦ ¦--'(': ( [0/0] {96} - ¦ ¦ ¦--SYMBOL: i [0/1] {97} - ¦ ¦ ¦--IN: in [0/1] {98} - ¦ ¦ ¦--COMMENT: # [0/5] {99} - ¦ ¦ ¦--expr: 1:3 [1/0] {100} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {102} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {101} - ¦ ¦ ¦ ¦--':': : [0/0] {103} - ¦ ¦ ¦ °--expr: 3 [0/0] {105} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {104} - ¦ ¦ °--')': ) [0/0] {106} - ¦ ¦--COMMENT: # [0/2] {107} - ¦ °--expr: print [1/0] {108} - ¦ ¦--expr: print [0/0] {110} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {109} - ¦ ¦--'(': ( [0/0] {111} - ¦ ¦--expr: i [0/0] {113} - ¦ ¦ °--SYMBOL: i [0/0] {112} - ¦ °--')': ) [0/0] {114} - ¦--expr: for ( [2/0] {115} - ¦ ¦--FOR: for [0/1] {116} - ¦ ¦--forcond: (# - [0/1] {117} - ¦ ¦ ¦--'(': ( [0/0] {118} - ¦ ¦ ¦--COMMENT: # [0/2] {119} - ¦ ¦ ¦--SYMBOL: i [1/1] {120} - ¦ ¦ ¦--IN: in [0/1] {121} - ¦ ¦ ¦--COMMENT: # [0/2] {122} - ¦ ¦ ¦--expr: 1:3 [1/0] {123} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {125} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {124} - ¦ ¦ ¦ ¦--':': : [0/0] {126} - ¦ ¦ ¦ °--expr: 3 [0/0] {128} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {127} - ¦ ¦ ¦--COMMENT: # [0/0] {129} - ¦ ¦ °--')': ) [1/0] {130} - ¦ ¦--COMMENT: # [0/2] {131} - ¦ °--expr: print [1/0] {132} - ¦ ¦--expr: print [0/0] {134} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {133} - ¦ ¦--'(': ( [0/0] {135} - ¦ ¦--expr: i [0/0] {137} - ¦ ¦ °--SYMBOL: i [0/0] {136} - ¦ °--')': ) [0/0] {138} - ¦--expr: while [3/0] {139} - ¦ ¦--WHILE: while [0/1] {140} - ¦ ¦--'(': ( [0/0] {141} - ¦ ¦--expr: x > 3 [0/0] {142} - ¦ ¦ ¦--expr: x [0/1] {144} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {143} - ¦ ¦ ¦--GT: > [0/1] {145} - ¦ ¦ °--expr: 3 [0/0] {147} - ¦ ¦ °--NUM_CONST: 3 [0/0] {146} - ¦ ¦--')': ) [0/1] {148} - ¦ ¦--COMMENT: # [0/2] {149} - ¦ °--expr: retur [1/0] {150} - ¦ ¦--expr: retur [0/0] {152} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {151} - ¦ ¦--'(': ( [0/0] {153} - ¦ ¦--expr: FALSE [0/0] {155} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {154} - ¦ °--')': ) [0/0] {156} - ¦--expr: while [2/0] {157} - ¦ ¦--WHILE: while [0/1] {158} - ¦ ¦--'(': ( [0/0] {159} - ¦ ¦--expr: x > 3 [0/1] {160} - ¦ ¦ ¦--expr: x [0/1] {162} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {161} - ¦ ¦ ¦--GT: > [0/1] {163} - ¦ ¦ °--expr: 3 [0/0] {165} - ¦ ¦ °--NUM_CONST: 3 [0/0] {164} - ¦ ¦--COMMENT: # [0/0] {166} - ¦ ¦--')': ) [1/2] {167} - ¦ °--expr: retur [1/0] {168} - ¦ ¦--expr: retur [0/0] {170} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {169} - ¦ ¦--'(': ( [0/0] {171} - ¦ ¦--expr: FALSE [0/0] {173} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {172} - ¦ °--')': ) [0/0] {174} - ¦--expr: while [2/0] {175} - ¦ ¦--WHILE: while [0/1] {176} - ¦ ¦--'(': ( [0/1] {177} - ¦ ¦--COMMENT: # tes [0/2] {178} - ¦ ¦--expr: x > 3 [1/0] {179} - ¦ ¦ ¦--expr: x [0/1] {181} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {180} - ¦ ¦ ¦--GT: > [0/1] {182} - ¦ ¦ °--expr: 3 [0/0] {184} - ¦ ¦ °--NUM_CONST: 3 [0/0] {183} - ¦ ¦--')': ) [0/1] {185} - ¦ ¦--COMMENT: # ano [0/2] {186} - ¦ °--expr: retur [1/0] {187} - ¦ ¦--expr: retur [0/0] {189} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {188} - ¦ ¦--'(': ( [0/0] {190} - ¦ ¦--expr: FALSE [0/0] {192} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {191} - ¦ °--')': ) [0/0] {193} - ¦--expr: while [2/0] {194} - ¦ ¦--WHILE: while [0/1] {195} - ¦ ¦--'(': ( [0/2] {196} - ¦ ¦--expr: 2 > # [1/1] {197} - ¦ ¦ ¦--expr: 2 [0/1] {199} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {198} - ¦ ¦ ¦--GT: > [0/1] {200} - ¦ ¦ ¦--COMMENT: #here [0/2] {201} - ¦ ¦ °--expr: 3 [1/0] {203} - ¦ ¦ °--NUM_CONST: 3 [0/0] {202} - ¦ ¦--COMMENT: # [0/0] {204} - ¦ ¦--')': ) [1/1] {205} - ¦ ¦--COMMENT: # [0/2] {206} - ¦ °--expr: FALSE [1/0] {208} - ¦ °--NUM_CONST: FALSE [0/0] {207} - ¦--expr: while [2/0] {209} - ¦ ¦--WHILE: while [0/1] {210} - ¦ ¦--'(': ( [0/2] {211} - ¦ ¦--expr: 2 > # [1/1] {212} - ¦ ¦ ¦--expr: 2 [0/1] {214} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {213} - ¦ ¦ ¦--GT: > [0/1] {215} - ¦ ¦ ¦--COMMENT: #here [0/2] {216} - ¦ ¦ °--expr: 3 [1/0] {218} - ¦ ¦ °--NUM_CONST: 3 [0/0] {217} - ¦ ¦--COMMENT: # [0/0] {219} - ¦ ¦--')': ) [1/2] {220} - ¦ °--expr: FALSE [1/0] {222} - ¦ °--NUM_CONST: FALSE [0/0] {221} - ¦--expr: while [2/0] {223} - ¦ ¦--WHILE: while [0/1] {224} - ¦ ¦--'(': ( [0/2] {225} - ¦ ¦--expr: 2 > # [1/0] {226} - ¦ ¦ ¦--expr: 2 [0/1] {228} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {227} - ¦ ¦ ¦--GT: > [0/1] {229} - ¦ ¦ ¦--COMMENT: #here [0/2] {230} - ¦ ¦ °--expr: 3 [1/0] {232} - ¦ ¦ °--NUM_CONST: 3 [0/0] {231} - ¦ ¦--')': ) [1/1] {233} - ¦ ¦--COMMENT: # [0/2] {234} - ¦ °--expr: FALSE [1/0] {236} - ¦ °--NUM_CONST: FALSE [0/0] {235} - °--expr: while [2/0] {237} - ¦--WHILE: while [0/1] {238} - ¦--'(': ( [0/0] {239} - ¦--COMMENT: # [0/2] {240} - ¦--expr: 2 > - [1/0] {241} - ¦ ¦--expr: 2 [0/1] {243} - ¦ ¦ °--NUM_CONST: 2 [0/0] {242} - ¦ ¦--GT: > [0/2] {244} - ¦ °--expr: 3 [1/0] {246} - ¦ °--NUM_CONST: 3 [0/0] {245} - ¦--')': ) [1/1] {247} - ¦--COMMENT: # [0/2] {248} - °--expr: FALSE [1/0] {250} - °--NUM_CONST: FALSE [0/0] {249} diff --git a/tests/testthat/indention_operators/while_for_if_without_curly_strict-in_tree b/tests/testthat/indention_operators/while_for_if_without_curly_strict-in_tree deleted file mode 100644 index 3375e43cc..000000000 --- a/tests/testthat/indention_operators/while_for_if_without_curly_strict-in_tree +++ /dev/null @@ -1,253 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: while [0/0] {1} - ¦ ¦--WHILE: while [0/1] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: x > 3 [0/0] {4} - ¦ ¦ ¦--expr: x [0/1] {6} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦ ¦--GT: > [0/1] {7} - ¦ ¦ °--expr: 3 [0/0] {9} - ¦ ¦ °--NUM_CONST: 3 [0/0] {8} - ¦ ¦--')': ) [0/0] {10} - ¦ °--expr: retur [1/0] {11} - ¦ ¦--expr: retur [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {12} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--expr: FALSE [0/0] {16} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {15} - ¦ °--')': ) [0/0] {17} - ¦--expr: for ( [2/0] {18} - ¦ ¦--FOR: for [0/1] {19} - ¦ ¦--forcond: (i in [0/0] {20} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--SYMBOL: i [0/1] {22} - ¦ ¦ ¦--IN: in [0/1] {23} - ¦ ¦ ¦--expr: 1:3 [0/0] {24} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ ¦ ¦ ¦--':': : [0/0] {27} - ¦ ¦ ¦ °--expr: 3 [0/0] {29} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {28} - ¦ ¦ °--')': ) [0/0] {30} - ¦ °--expr: print [1/0] {31} - ¦ ¦--expr: print [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: i [0/0] {36} - ¦ ¦ °--SYMBOL: i [0/0] {35} - ¦ °--')': ) [0/0] {37} - ¦--expr: if (x [2/0] {38} - ¦ ¦--IF: if [0/1] {39} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: x [0/0] {42} - ¦ ¦ °--SYMBOL: x [0/0] {41} - ¦ ¦--')': ) [0/0] {43} - ¦ °--expr: call2 [1/0] {44} - ¦ ¦--expr: call2 [0/0] {46} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {45} - ¦ ¦--'(': ( [0/0] {47} - ¦ ¦--expr: 3 [0/0] {49} - ¦ ¦ °--NUM_CONST: 3 [0/0] {48} - ¦ °--')': ) [0/0] {50} - ¦--expr: for ( [2/0] {51} - ¦ ¦--FOR: for [0/1] {52} - ¦ ¦--forcond: (i in [0/1] {53} - ¦ ¦ ¦--'(': ( [0/0] {54} - ¦ ¦ ¦--SYMBOL: i [0/1] {55} - ¦ ¦ ¦--IN: in [0/1] {56} - ¦ ¦ ¦--expr: 1:3 [0/0] {57} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {59} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {58} - ¦ ¦ ¦ ¦--':': : [0/0] {60} - ¦ ¦ ¦ °--expr: 3 [0/0] {62} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ ¦ °--')': ) [0/0] {63} - ¦ ¦--COMMENT: # [0/2] {64} - ¦ °--expr: print [1/0] {65} - ¦ ¦--expr: print [0/0] {67} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {66} - ¦ ¦--'(': ( [0/0] {68} - ¦ ¦--expr: i [0/0] {70} - ¦ ¦ °--SYMBOL: i [0/0] {69} - ¦ °--')': ) [0/0] {71} - ¦--expr: for ( [2/0] {72} - ¦ ¦--FOR: for [0/1] {73} - ¦ ¦--forcond: (i in [0/1] {74} - ¦ ¦ ¦--'(': ( [0/0] {75} - ¦ ¦ ¦--SYMBOL: i [0/1] {76} - ¦ ¦ ¦--IN: in [0/5] {77} - ¦ ¦ ¦--expr: 1:3 [1/0] {78} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {80} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {79} - ¦ ¦ ¦ ¦--':': : [0/0] {81} - ¦ ¦ ¦ °--expr: 3 [0/0] {83} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {82} - ¦ ¦ °--')': ) [0/0] {84} - ¦ ¦--COMMENT: # [0/2] {85} - ¦ °--expr: print [1/0] {86} - ¦ ¦--expr: print [0/0] {88} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {87} - ¦ ¦--'(': ( [0/0] {89} - ¦ ¦--expr: i [0/0] {91} - ¦ ¦ °--SYMBOL: i [0/0] {90} - ¦ °--')': ) [0/0] {92} - ¦--expr: for ( [2/0] {93} - ¦ ¦--FOR: for [0/1] {94} - ¦ ¦--forcond: (i in [0/1] {95} - ¦ ¦ ¦--'(': ( [0/0] {96} - ¦ ¦ ¦--SYMBOL: i [0/1] {97} - ¦ ¦ ¦--IN: in [0/1] {98} - ¦ ¦ ¦--COMMENT: # [0/5] {99} - ¦ ¦ ¦--expr: 1:3 [1/0] {100} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {102} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {101} - ¦ ¦ ¦ ¦--':': : [0/0] {103} - ¦ ¦ ¦ °--expr: 3 [0/0] {105} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {104} - ¦ ¦ °--')': ) [0/0] {106} - ¦ ¦--COMMENT: # [0/2] {107} - ¦ °--expr: print [1/0] {108} - ¦ ¦--expr: print [0/0] {110} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {109} - ¦ ¦--'(': ( [0/0] {111} - ¦ ¦--expr: i [0/0] {113} - ¦ ¦ °--SYMBOL: i [0/0] {112} - ¦ °--')': ) [0/0] {114} - ¦--expr: for ( [2/0] {115} - ¦ ¦--FOR: for [0/1] {116} - ¦ ¦--forcond: (# - [0/1] {117} - ¦ ¦ ¦--'(': ( [0/0] {118} - ¦ ¦ ¦--COMMENT: # [0/2] {119} - ¦ ¦ ¦--SYMBOL: i [1/1] {120} - ¦ ¦ ¦--IN: in [0/1] {121} - ¦ ¦ ¦--COMMENT: # [0/5] {122} - ¦ ¦ ¦--expr: 1:3 [1/0] {123} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {125} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {124} - ¦ ¦ ¦ ¦--':': : [0/0] {126} - ¦ ¦ ¦ °--expr: 3 [0/0] {128} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {127} - ¦ ¦ ¦--COMMENT: # [0/2] {129} - ¦ ¦ °--')': ) [1/0] {130} - ¦ ¦--COMMENT: # [0/2] {131} - ¦ °--expr: print [1/0] {132} - ¦ ¦--expr: print [0/0] {134} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: print [0/0] {133} - ¦ ¦--'(': ( [0/0] {135} - ¦ ¦--expr: i [0/0] {137} - ¦ ¦ °--SYMBOL: i [0/0] {136} - ¦ °--')': ) [0/0] {138} - ¦--expr: while [3/0] {139} - ¦ ¦--WHILE: while [0/1] {140} - ¦ ¦--'(': ( [0/0] {141} - ¦ ¦--expr: x > 3 [0/0] {142} - ¦ ¦ ¦--expr: x [0/1] {144} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {143} - ¦ ¦ ¦--GT: > [0/1] {145} - ¦ ¦ °--expr: 3 [0/0] {147} - ¦ ¦ °--NUM_CONST: 3 [0/0] {146} - ¦ ¦--')': ) [0/1] {148} - ¦ ¦--COMMENT: # [0/2] {149} - ¦ °--expr: retur [1/0] {150} - ¦ ¦--expr: retur [0/0] {152} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {151} - ¦ ¦--'(': ( [0/0] {153} - ¦ ¦--expr: FALSE [0/0] {155} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {154} - ¦ °--')': ) [0/0] {156} - ¦--expr: while [2/0] {157} - ¦ ¦--WHILE: while [0/1] {158} - ¦ ¦--'(': ( [0/0] {159} - ¦ ¦--expr: x > 3 [0/1] {160} - ¦ ¦ ¦--expr: x [0/1] {162} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {161} - ¦ ¦ ¦--GT: > [0/1] {163} - ¦ ¦ °--expr: 3 [0/0] {165} - ¦ ¦ °--NUM_CONST: 3 [0/0] {164} - ¦ ¦--COMMENT: # [0/7] {166} - ¦ ¦--')': ) [1/2] {167} - ¦ °--expr: retur [1/0] {168} - ¦ ¦--expr: retur [0/0] {170} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {169} - ¦ ¦--'(': ( [0/0] {171} - ¦ ¦--expr: FALSE [0/0] {173} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {172} - ¦ °--')': ) [0/0] {174} - ¦--expr: while [2/0] {175} - ¦ ¦--WHILE: while [0/1] {176} - ¦ ¦--'(': ( [0/1] {177} - ¦ ¦--COMMENT: # tes [0/2] {178} - ¦ ¦--expr: x > 3 [1/0] {179} - ¦ ¦ ¦--expr: x [0/1] {181} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {180} - ¦ ¦ ¦--GT: > [0/1] {182} - ¦ ¦ °--expr: 3 [0/0] {184} - ¦ ¦ °--NUM_CONST: 3 [0/0] {183} - ¦ ¦--')': ) [0/1] {185} - ¦ ¦--COMMENT: # ano [0/2] {186} - ¦ °--expr: retur [1/0] {187} - ¦ ¦--expr: retur [0/0] {189} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {188} - ¦ ¦--'(': ( [0/0] {190} - ¦ ¦--expr: FALSE [0/0] {192} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {191} - ¦ °--')': ) [0/0] {193} - ¦--expr: while [2/0] {194} - ¦ ¦--WHILE: while [0/1] {195} - ¦ ¦--'(': ( [0/2] {196} - ¦ ¦--expr: 2 > # [1/1] {197} - ¦ ¦ ¦--expr: 2 [0/1] {199} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {198} - ¦ ¦ ¦--GT: > [0/1] {200} - ¦ ¦ ¦--COMMENT: #here [0/2] {201} - ¦ ¦ °--expr: 3 [1/0] {203} - ¦ ¦ °--NUM_CONST: 3 [0/0] {202} - ¦ ¦--COMMENT: # [0/2] {204} - ¦ ¦--')': ) [1/1] {205} - ¦ ¦--COMMENT: # [0/2] {206} - ¦ °--expr: FALSE [1/0] {208} - ¦ °--NUM_CONST: FALSE [0/0] {207} - ¦--expr: while [2/0] {209} - ¦ ¦--WHILE: while [0/1] {210} - ¦ ¦--'(': ( [0/2] {211} - ¦ ¦--expr: 2 > # [1/1] {212} - ¦ ¦ ¦--expr: 2 [0/1] {214} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {213} - ¦ ¦ ¦--GT: > [0/1] {215} - ¦ ¦ ¦--COMMENT: #here [0/2] {216} - ¦ ¦ °--expr: 3 [1/0] {218} - ¦ ¦ °--NUM_CONST: 3 [0/0] {217} - ¦ ¦--COMMENT: # [0/0] {219} - ¦ ¦--')': ) [1/2] {220} - ¦ °--expr: FALSE [1/0] {222} - ¦ °--NUM_CONST: FALSE [0/0] {221} - ¦--expr: while [2/0] {223} - ¦ ¦--WHILE: while [0/1] {224} - ¦ ¦--'(': ( [0/2] {225} - ¦ ¦--expr: 2 > # [1/0] {226} - ¦ ¦ ¦--expr: 2 [0/1] {228} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {227} - ¦ ¦ ¦--GT: > [0/1] {229} - ¦ ¦ ¦--COMMENT: #here [0/2] {230} - ¦ ¦ °--expr: 3 [1/0] {232} - ¦ ¦ °--NUM_CONST: 3 [0/0] {231} - ¦ ¦--')': ) [1/1] {233} - ¦ ¦--COMMENT: # [0/2] {234} - ¦ °--expr: FALSE [1/0] {236} - ¦ °--NUM_CONST: FALSE [0/0] {235} - °--expr: while [2/0] {237} - ¦--WHILE: while [0/1] {238} - ¦--'(': ( [0/0] {239} - ¦--COMMENT: # [0/2] {240} - ¦--expr: 2 > - [1/0] {241} - ¦ ¦--expr: 2 [0/1] {243} - ¦ ¦ °--NUM_CONST: 2 [0/0] {242} - ¦ ¦--GT: > [0/2] {244} - ¦ °--expr: 3 [1/0] {246} - ¦ °--NUM_CONST: 3 [0/0] {245} - ¦--')': ) [1/1] {247} - ¦--COMMENT: # [0/2] {248} - °--expr: FALSE [1/0] {250} - °--NUM_CONST: FALSE [0/0] {249} diff --git a/tests/testthat/indention_operators/while_for_without_curly_same_line_non_strict-in_tree b/tests/testthat/indention_operators/while_for_without_curly_same_line_non_strict-in_tree deleted file mode 100644 index 95ae7014b..000000000 --- a/tests/testthat/indention_operators/while_for_without_curly_same_line_non_strict-in_tree +++ /dev/null @@ -1,163 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: while [0/0] {1} - ¦ ¦--WHILE: while [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: x == [0/0] {4} - ¦ ¦ ¦--expr: x [0/1] {6} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦ ¦--EQ: == [0/1] {7} - ¦ ¦ °--expr: 2 [0/0] {9} - ¦ ¦ °--NUM_CONST: 2 [0/0] {8} - ¦ ¦--')': ) [0/1] {10} - ¦ °--expr: h( - [0/0] {11} - ¦ ¦--expr: h [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {12} - ¦ ¦--'(': ( [0/2] {14} - ¦ ¦--expr: 2 [1/0] {16} - ¦ ¦ °--NUM_CONST: 2 [0/0] {15} - ¦ °--')': ) [1/0] {17} - ¦--expr: while [2/0] {18} - ¦ ¦--WHILE: while [0/0] {19} - ¦ ¦--'(': ( [0/0] {20} - ¦ ¦--expr: x == [0/0] {21} - ¦ ¦ ¦--expr: x [0/1] {23} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {22} - ¦ ¦ ¦--EQ: == [0/1] {24} - ¦ ¦ °--expr: 2 [0/0] {26} - ¦ ¦ °--NUM_CONST: 2 [0/0] {25} - ¦ ¦--')': ) [0/1] {27} - ¦ °--expr: h( # [0/0] {28} - ¦ ¦--expr: h [0/0] {30} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {29} - ¦ ¦--'(': ( [0/1] {31} - ¦ ¦--COMMENT: # com [0/2] {32} - ¦ ¦--expr: 2 [1/0] {34} - ¦ ¦ °--NUM_CONST: 2 [0/0] {33} - ¦ °--')': ) [1/0] {35} - ¦--expr: while [2/0] {36} - ¦ ¦--WHILE: while [0/0] {37} - ¦ ¦--'(': ( [0/0] {38} - ¦ ¦--expr: x == [0/0] {39} - ¦ ¦ ¦--expr: x == [0/1] {40} - ¦ ¦ ¦ ¦--expr: x [0/1] {42} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {41} - ¦ ¦ ¦ ¦--EQ: == [0/1] {43} - ¦ ¦ ¦ °--expr: 2 [0/0] {45} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {44} - ¦ ¦ ¦--AND2: && [0/6] {46} - ¦ ¦ °--expr: 2 + 2 [1/0] {47} - ¦ ¦ ¦--expr: 2 + 2 [0/1] {48} - ¦ ¦ ¦ ¦--expr: 2 [0/1] {50} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {49} - ¦ ¦ ¦ ¦--'+': + [0/1] {51} - ¦ ¦ ¦ °--expr: 2 [0/0] {53} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {52} - ¦ ¦ ¦--EQ: == [0/1] {54} - ¦ ¦ °--expr: 2 [0/0] {56} - ¦ ¦ °--NUM_CONST: 2 [0/0] {55} - ¦ ¦--')': ) [0/1] {57} - ¦ °--expr: h( - [0/0] {58} - ¦ ¦--expr: h [0/0] {60} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {59} - ¦ ¦--'(': ( [0/2] {61} - ¦ ¦--expr: 2 [1/0] {63} - ¦ ¦ °--NUM_CONST: 2 [0/0] {62} - ¦ °--')': ) [1/0] {64} - ¦--expr: for(x [3/0] {65} - ¦ ¦--FOR: for [0/0] {66} - ¦ ¦--forcond: (x in [0/1] {67} - ¦ ¦ ¦--'(': ( [0/0] {68} - ¦ ¦ ¦--SYMBOL: x [0/1] {69} - ¦ ¦ ¦--IN: in [0/1] {70} - ¦ ¦ ¦--expr: 1:22 [0/0] {71} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {73} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {72} - ¦ ¦ ¦ ¦--':': : [0/0] {74} - ¦ ¦ ¦ °--expr: 22 [0/0] {76} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {75} - ¦ ¦ °--')': ) [0/0] {77} - ¦ °--expr: h( - [0/0] {78} - ¦ ¦--expr: h [0/0] {80} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {79} - ¦ ¦--'(': ( [0/2] {81} - ¦ ¦--expr: 2 [1/0] {83} - ¦ ¦ °--NUM_CONST: 2 [0/0] {82} - ¦ °--')': ) [1/0] {84} - ¦--expr: for(x [2/0] {85} - ¦ ¦--FOR: for [0/0] {86} - ¦ ¦--forcond: (x in [0/1] {87} - ¦ ¦ ¦--'(': ( [0/0] {88} - ¦ ¦ ¦--SYMBOL: x [0/1] {89} - ¦ ¦ ¦--IN: in [0/1] {90} - ¦ ¦ ¦--expr: 1:22 [0/0] {91} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {93} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {92} - ¦ ¦ ¦ ¦--':': : [0/0] {94} - ¦ ¦ ¦ °--expr: 22 [0/0] {96} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {95} - ¦ ¦ °--')': ) [0/0] {97} - ¦ °--expr: h( # [0/0] {98} - ¦ ¦--expr: h [0/0] {100} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {99} - ¦ ¦--'(': ( [0/1] {101} - ¦ ¦--COMMENT: # com [0/2] {102} - ¦ ¦--expr: 2 [1/0] {104} - ¦ ¦ °--NUM_CONST: 2 [0/0] {103} - ¦ °--')': ) [1/0] {105} - ¦--expr: for(k [2/0] {106} - ¦ ¦--FOR: for [0/0] {107} - ¦ ¦--forcond: (k in [0/1] {108} - ¦ ¦ ¦--'(': ( [0/0] {109} - ¦ ¦ ¦--SYMBOL: k [0/1] {110} - ¦ ¦ ¦--IN: in [0/1] {111} - ¦ ¦ ¦--expr: f( - [0/0] {112} - ¦ ¦ ¦ ¦--expr: f [0/0] {114} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {113} - ¦ ¦ ¦ ¦--'(': ( [0/2] {115} - ¦ ¦ ¦ ¦--expr: 2:22 [1/0] {116} - ¦ ¦ ¦ ¦ ¦--expr: 2 [0/0] {118} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {117} - ¦ ¦ ¦ ¦ ¦--':': : [0/0] {119} - ¦ ¦ ¦ ¦ °--expr: 22 [0/0] {121} - ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {120} - ¦ ¦ ¦ °--')': ) [1/0] {122} - ¦ ¦ °--')': ) [0/0] {123} - ¦ °--expr: h( - [0/0] {124} - ¦ ¦--expr: h [0/0] {126} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {125} - ¦ ¦--'(': ( [0/8] {127} - ¦ ¦--expr: 2 [1/6] {129} - ¦ ¦ °--NUM_CONST: 2 [0/0] {128} - ¦ °--')': ) [1/0] {130} - °--expr: for(k [2/0] {131} - ¦--FOR: for [0/0] {132} - ¦--forcond: (k in [0/1] {133} - ¦ ¦--'(': ( [0/0] {134} - ¦ ¦--SYMBOL: k [0/1] {135} - ¦ ¦--IN: in [0/1] {136} - ¦ ¦--expr: f( - [0/0] {137} - ¦ ¦ ¦--expr: f [0/0] {139} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {138} - ¦ ¦ ¦--'(': ( [0/2] {140} - ¦ ¦ ¦--expr: 2:22 [1/1] {141} - ¦ ¦ ¦ ¦--expr: 2 [0/0] {143} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {142} - ¦ ¦ ¦ ¦--':': : [0/0] {144} - ¦ ¦ ¦ °--expr: 22 [0/0] {146} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {145} - ¦ ¦ ¦--COMMENT: # com [0/0] {147} - ¦ ¦ °--')': ) [1/0] {148} - ¦ °--')': ) [0/0] {149} - °--expr: h(2) [0/0] {150} - ¦--expr: h [0/0] {152} - ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {151} - ¦--'(': ( [0/0] {153} - ¦--expr: 2 [0/0] {155} - ¦ °--NUM_CONST: 2 [0/0] {154} - °--')': ) [0/0] {156} diff --git a/tests/testthat/indention_round_brackets/arithmetic_no_start-in_tree b/tests/testthat/indention_round_brackets/arithmetic_no_start-in_tree deleted file mode 100644 index 4f3aa7dc8..000000000 --- a/tests/testthat/indention_round_brackets/arithmetic_no_start-in_tree +++ /dev/null @@ -1,19 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1 + - [0/0] {1} - ¦--expr: 1 [0/1] {4} - ¦ °--NUM_CONST: 1 [0/0] {3} - ¦--'+': + [0/13] {5} - ¦--expr: 2 [1/1] {7} - ¦ °--NUM_CONST: 2 [0/0] {6} - ¦--'+': + [0/1] {8} - °--expr: ( -3 + [0/0] {9} - ¦--'(': ( [0/0] {10} - ¦--expr: 3 + 4 [1/0] {11} - ¦ ¦--expr: 3 [0/1] {13} - ¦ ¦ °--NUM_CONST: 3 [0/0] {12} - ¦ ¦--'+': + [0/1] {14} - ¦ °--expr: 4 [0/0] {16} - ¦ °--NUM_CONST: 4 [0/0] {15} - °--')': ) [0/0] {17} diff --git a/tests/testthat/indention_round_brackets/arithmetic_start-in_tree b/tests/testthat/indention_round_brackets/arithmetic_start-in_tree deleted file mode 100644 index b4c868352..000000000 --- a/tests/testthat/indention_round_brackets/arithmetic_start-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: (1 + - [0/0] {1} - ¦--'(': ( [0/0] {2} - ¦--expr: 1 + -2 [0/0] {3} - ¦ ¦--expr: 1 [0/1] {6} - ¦ ¦ °--NUM_CONST: 1 [0/0] {5} - ¦ ¦--'+': + [0/0] {7} - ¦ ¦--expr: 2 [1/1] {9} - ¦ ¦ °--NUM_CONST: 2 [0/0] {8} - ¦ ¦--'+': + [0/1] {10} - ¦ °--expr: ( -3 + [0/0] {11} - ¦ ¦--'(': ( [0/0] {12} - ¦ ¦--expr: 3 + 4 [1/2] {13} - ¦ ¦ ¦--expr: 3 [0/1] {15} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {14} - ¦ ¦ ¦--'+': + [0/1] {16} - ¦ ¦ °--expr: 4 [0/0] {18} - ¦ ¦ °--NUM_CONST: 4 [0/0] {17} - ¦ °--')': ) [1/0] {19} - °--')': ) [1/0] {20} diff --git a/tests/testthat/indention_round_brackets/multi_line-no-indention-in_tree b/tests/testthat/indention_round_brackets/multi_line-no-indention-in_tree deleted file mode 100644 index cdf8dcd24..000000000 --- a/tests/testthat/indention_round_brackets/multi_line-no-indention-in_tree +++ /dev/null @@ -1,39 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: call( [0/0] {1} - ¦--expr: call [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: 1 [1/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--',': , [0/0] {7} - ¦--expr: call2 [1/0] {8} - ¦ ¦--expr: call2 [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {9} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--expr: 2 [1/0] {13} - ¦ ¦ °--NUM_CONST: 2 [0/0] {12} - ¦ ¦--',': , [0/1] {14} - ¦ ¦--expr: 3 [0/0] {16} - ¦ ¦ °--NUM_CONST: 3 [0/0] {15} - ¦ ¦--',': , [0/0] {17} - ¦ ¦--expr: call3 [1/0] {18} - ¦ ¦ ¦--expr: call3 [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--expr: 1 [0/0] {23} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {22} - ¦ ¦ ¦--',': , [0/1] {24} - ¦ ¦ ¦--expr: 2 [0/0] {26} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {25} - ¦ ¦ ¦--',': , [0/1] {27} - ¦ ¦ ¦--expr: 22 [0/0] {29} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {28} - ¦ ¦ °--')': ) [0/0] {30} - ¦ ¦--',': , [0/0] {31} - ¦ ¦--expr: 5 [1/0] {33} - ¦ ¦ °--NUM_CONST: 5 [0/0] {32} - ¦ °--')': ) [1/0] {34} - ¦--',': , [0/0] {35} - ¦--expr: 144 [1/0] {37} - ¦ °--NUM_CONST: 144 [0/0] {36} - °--')': ) [1/0] {38} diff --git a/tests/testthat/indention_round_brackets/multi_line-random-in_tree b/tests/testthat/indention_round_brackets/multi_line-random-in_tree deleted file mode 100644 index def8bc3ab..000000000 --- a/tests/testthat/indention_round_brackets/multi_line-random-in_tree +++ /dev/null @@ -1,39 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: call( [0/0] {1} - ¦--expr: call [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: 1 [1/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--',': , [0/2] {7} - ¦--expr: call2 [1/0] {8} - ¦ ¦--expr: call2 [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {9} - ¦ ¦--'(': ( [0/4] {11} - ¦ ¦--expr: 2 [1/0] {13} - ¦ ¦ °--NUM_CONST: 2 [0/0] {12} - ¦ ¦--',': , [0/1] {14} - ¦ ¦--expr: 3 [0/0] {16} - ¦ ¦ °--NUM_CONST: 3 [0/0] {15} - ¦ ¦--',': , [0/0] {17} - ¦ ¦--expr: call3 [1/0] {18} - ¦ ¦ ¦--expr: call3 [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--expr: 1 [0/0] {23} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {22} - ¦ ¦ ¦--',': , [0/1] {24} - ¦ ¦ ¦--expr: 2 [0/0] {26} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {25} - ¦ ¦ ¦--',': , [0/1] {27} - ¦ ¦ ¦--expr: 22 [0/0] {29} - ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {28} - ¦ ¦ °--')': ) [0/0] {30} - ¦ ¦--',': , [0/13] {31} - ¦ ¦--expr: 5 [1/2] {33} - ¦ ¦ °--NUM_CONST: 5 [0/0] {32} - ¦ °--')': ) [1/0] {34} - ¦--',': , [0/2] {35} - ¦--expr: 144 [1/12] {37} - ¦ °--NUM_CONST: 144 [0/0] {36} - °--')': ) [1/0] {38} diff --git a/tests/testthat/indention_round_brackets/one_line-in_tree b/tests/testthat/indention_round_brackets/one_line-in_tree deleted file mode 100644 index 89d3695f6..000000000 --- a/tests/testthat/indention_round_brackets/one_line-in_tree +++ /dev/null @@ -1,31 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: xyz(x [0/0] {5} - ¦--expr: xyz [0/0] {7} - ¦ °--SYMBOL_FUNCTION_CALL: xyz [0/0] {6} - ¦--'(': ( [0/0] {8} - ¦--expr: x [0/0] {10} - ¦ °--SYMBOL: x [0/0] {9} - ¦--',': , [0/1] {11} - ¦--expr: 22 [0/0] {13} - ¦ °--NUM_CONST: 22 [0/0] {12} - ¦--',': , [0/1] {14} - ¦--expr: if(x [0/0] {15} - ¦ ¦--IF: if [0/0] {16} - ¦ ¦--'(': ( [0/0] {17} - ¦ ¦--expr: x > 1 [0/0] {18} - ¦ ¦ ¦--expr: x [0/1] {20} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {19} - ¦ ¦ ¦--GT: > [0/1] {21} - ¦ ¦ °--expr: 1 [0/0] {23} - ¦ ¦ °--NUM_CONST: 1 [0/0] {22} - ¦ ¦--')': ) [0/1] {24} - ¦ ¦--expr: 33 [0/1] {26} - ¦ ¦ °--NUM_CONST: 33 [0/0] {25} - ¦ ¦--ELSE: else [0/1] {27} - ¦ °--expr: 4 [0/0] {29} - ¦ °--NUM_CONST: 4 [0/0] {28} - °--')': ) [0/0] {30} diff --git a/tests/testthat/indention_round_brackets/one_line-nested-in_tree b/tests/testthat/indention_round_brackets/one_line-nested-in_tree deleted file mode 100644 index 89d3695f6..000000000 --- a/tests/testthat/indention_round_brackets/one_line-nested-in_tree +++ /dev/null @@ -1,31 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: xyz(x [0/0] {5} - ¦--expr: xyz [0/0] {7} - ¦ °--SYMBOL_FUNCTION_CALL: xyz [0/0] {6} - ¦--'(': ( [0/0] {8} - ¦--expr: x [0/0] {10} - ¦ °--SYMBOL: x [0/0] {9} - ¦--',': , [0/1] {11} - ¦--expr: 22 [0/0] {13} - ¦ °--NUM_CONST: 22 [0/0] {12} - ¦--',': , [0/1] {14} - ¦--expr: if(x [0/0] {15} - ¦ ¦--IF: if [0/0] {16} - ¦ ¦--'(': ( [0/0] {17} - ¦ ¦--expr: x > 1 [0/0] {18} - ¦ ¦ ¦--expr: x [0/1] {20} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {19} - ¦ ¦ ¦--GT: > [0/1] {21} - ¦ ¦ °--expr: 1 [0/0] {23} - ¦ ¦ °--NUM_CONST: 1 [0/0] {22} - ¦ ¦--')': ) [0/1] {24} - ¦ ¦--expr: 33 [0/1] {26} - ¦ ¦ °--NUM_CONST: 33 [0/0] {25} - ¦ ¦--ELSE: else [0/1] {27} - ¦ °--expr: 4 [0/0] {29} - ¦ °--NUM_CONST: 4 [0/0] {28} - °--')': ) [0/0] {30} diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree deleted file mode 100644 index f6ae4068d..000000000 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree +++ /dev/null @@ -1,46 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a[[b] [0/0] {1} - ¦ ¦--expr: a [0/0] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LBB: [[ [0/0] {4} - ¦ ¦--expr: b [0/0] {6} - ¦ ¦ °--SYMBOL: b [0/0] {5} - ¦ ¦--']': ] [0/0] {7} - ¦ °--']': ] [0/0] {8} - ¦--expr: a[[ - [3/0] {9} - ¦ ¦--expr: a [0/0] {11} - ¦ ¦ °--SYMBOL: a [0/0] {10} - ¦ ¦--LBB: [[ [0/2] {12} - ¦ ¦--expr: 2 [1/0] {14} - ¦ ¦ °--NUM_CONST: 2 [0/0] {13} - ¦ ¦--']': ] [1/0] {15} - ¦ °--']': ] [1/0] {16} - ¦--expr: a[[ - [2/0] {17} - ¦ ¦--expr: a [0/0] {19} - ¦ ¦ °--SYMBOL: a [0/0] {18} - ¦ ¦--LBB: [[ [0/2] {20} - ¦ ¦--expr: 2 [1/0] {22} - ¦ ¦ °--NUM_CONST: 2 [0/0] {21} - ¦ ¦--']': ] [1/0] {23} - ¦ °--']': ] [0/0] {24} - ¦--expr: a[[ -2 [3/0] {25} - ¦ ¦--expr: a [0/0] {27} - ¦ ¦ °--SYMBOL: a [0/0] {26} - ¦ ¦--LBB: [[ [0/0] {28} - ¦ ¦--expr: 2 [1/2] {30} - ¦ ¦ °--NUM_CONST: 2 [0/0] {29} - ¦ ¦--']': ] [1/0] {31} - ¦ °--']': ] [0/0] {32} - °--expr: a[[ - [3/0] {33} - ¦--expr: a [0/0] {35} - ¦ °--SYMBOL: a [0/0] {34} - ¦--LBB: [[ [0/2] {36} - ¦--expr: 2 [1/0] {38} - ¦ °--NUM_CONST: 2 [0/0] {37} - ¦--']': ] [1/1] {39} - ¦--COMMENT: # [0/0] {40} - °--']': ] [1/0] {41} diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree deleted file mode 100644 index 834f2095e..000000000 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree +++ /dev/null @@ -1,280 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: range [0/0] {1} - ¦ ¦--expr: range [0/0] {3} - ¦ ¦ °--SYMBOL: range [0/0] {2} - ¦ ¦--'[': [ [0/0] {4} - ¦ ¦--expr: tag = [0/0] {5} - ¦ ¦ ¦--expr: tag = [0/1] {6} - ¦ ¦ ¦ ¦--expr: tag [0/1] {8} - ¦ ¦ ¦ ¦ °--SYMBOL: tag [0/0] {7} - ¦ ¦ ¦ ¦--EQ: == [0/1] {9} - ¦ ¦ ¦ °--expr: "non_ [0/0] {11} - ¦ ¦ ¦ °--STR_CONST: "non_ [0/0] {10} - ¦ ¦ ¦--AND: & [0/1] {12} - ¦ ¦ °--expr: str_d [0/0] {13} - ¦ ¦ ¦--expr: str_d [0/0] {15} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: str_d [0/0] {14} - ¦ ¦ ¦--'(': ( [0/0] {16} - ¦ ¦ ¦--expr: text [0/0] {18} - ¦ ¦ ¦ °--SYMBOL: text [0/0] {17} - ¦ ¦ ¦--',': , [0/1] {19} - ¦ ¦ ¦--expr: ";" [0/0] {21} - ¦ ¦ ¦ °--STR_CONST: ";" [0/0] {20} - ¦ ¦ °--')': ) [0/0] {22} - ¦ ¦--',': , [0/0] {23} - ¦ ¦--expr: text [1/0] {24} - ¦ ¦ ¦--expr: text [0/1] {26} - ¦ ¦ ¦ °--SYMBOL: text [0/0] {25} - ¦ ¦ ¦--LEFT_ASSIGN: := [0/1] {27} - ¦ ¦ °--expr: str_r [0/0] {28} - ¦ ¦ ¦--expr: str_r [0/0] {30} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: str_r [0/0] {29} - ¦ ¦ ¦--'(': ( [0/0] {31} - ¦ ¦ ¦--expr: text [0/0] {33} - ¦ ¦ ¦ °--SYMBOL: text [0/0] {32} - ¦ ¦ ¦--',': , [0/1] {34} - ¦ ¦ ¦--expr: ";" [0/0] {36} - ¦ ¦ ¦ °--STR_CONST: ";" [0/0] {35} - ¦ ¦ ¦--',': , [0/1] {37} - ¦ ¦ ¦--expr: "\n" [0/0] {39} - ¦ ¦ ¦ °--STR_CONST: "\n" [0/0] {38} - ¦ ¦ °--')': ) [0/0] {40} - ¦ °--']': ] [0/0] {41} - ¦--expr: fak[a [2/0] {42} - ¦ ¦--expr: fak [0/0] {44} - ¦ ¦ °--SYMBOL: fak [0/0] {43} - ¦ ¦--'[': [ [0/0] {45} - ¦ ¦--expr: a [0/0] {47} - ¦ ¦ °--SYMBOL: a [0/0] {46} - ¦ ¦--',': , [0/1] {48} - ¦ ¦--expr: b [0/0] {50} - ¦ ¦ °--SYMBOL: b [0/0] {49} - ¦ °--']': ] [0/0] {51} - ¦--expr: fac[a [2/0] {52} - ¦ ¦--expr: fac [0/0] {54} - ¦ ¦ °--SYMBOL: fac [0/0] {53} - ¦ ¦--'[': [ [0/0] {55} - ¦ ¦--expr: a [0/0] {57} - ¦ ¦ °--SYMBOL: a [0/0] {56} - ¦ ¦--',': , [0/4] {58} - ¦ ¦--expr: b [1/0] {60} - ¦ ¦ °--SYMBOL: b [0/0] {59} - ¦ °--']': ] [0/0] {61} - ¦--expr: fac[ - [2/0] {62} - ¦ ¦--expr: fac [0/0] {64} - ¦ ¦ °--SYMBOL: fac [0/0] {63} - ¦ ¦--'[': [ [0/2] {65} - ¦ ¦--expr: a [1/0] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--',': , [0/2] {68} - ¦ ¦--expr: b [1/2] {70} - ¦ ¦ °--SYMBOL: b [0/0] {69} - ¦ °--']': ] [1/0] {71} - ¦--expr: fac[ - [2/0] {72} - ¦ ¦--expr: fac [0/0] {74} - ¦ ¦ °--SYMBOL: fac [0/0] {73} - ¦ ¦--'[': [ [0/2] {75} - ¦ ¦--',': , [1/1] {76} - ¦ ¦--expr: `:`(a [0/0] {77} - ¦ ¦ ¦--expr: `:` [0/0] {79} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: `:` [0/0] {78} - ¦ ¦ ¦--'(': ( [0/0] {80} - ¦ ¦ ¦--SYMBOL_SUB: a [0/1] {81} - ¦ ¦ ¦--EQ_SUB: = [0/1] {82} - ¦ ¦ ¦--expr: b [0/0] {84} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {83} - ¦ ¦ °--')': ) [0/0] {85} - ¦ °--']': ] [0/0] {86} - ¦--expr: fac[ - [2/0] {87} - ¦ ¦--expr: fac [0/0] {89} - ¦ ¦ °--SYMBOL: fac [0/0] {88} - ¦ ¦--'[': [ [0/2] {90} - ¦ ¦--',': , [1/1] {91} - ¦ ¦--expr: `:`(a [0/0] {92} - ¦ ¦ ¦--expr: `:` [0/0] {94} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: `:` [0/0] {93} - ¦ ¦ ¦--'(': ( [0/0] {95} - ¦ ¦ ¦--SYMBOL_SUB: a [0/1] {96} - ¦ ¦ ¦--EQ_SUB: = [0/1] {97} - ¦ ¦ ¦--expr: b [0/0] {99} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {98} - ¦ ¦ °--')': ) [0/0] {100} - ¦ °--']': ] [1/0] {101} - ¦--expr: fac[, [2/0] {102} - ¦ ¦--expr: fac [0/0] {104} - ¦ ¦ °--SYMBOL: fac [0/0] {103} - ¦ ¦--'[': [ [0/0] {105} - ¦ ¦--',': , [0/1] {106} - ¦ ¦--expr: `:`(a [0/0] {107} - ¦ ¦ ¦--expr: `:` [0/0] {109} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: `:` [0/0] {108} - ¦ ¦ ¦--'(': ( [0/0] {110} - ¦ ¦ ¦--SYMBOL_SUB: a [0/1] {111} - ¦ ¦ ¦--EQ_SUB: = [0/1] {112} - ¦ ¦ ¦--expr: c [0/0] {114} - ¦ ¦ ¦ °--SYMBOL: c [0/0] {113} - ¦ ¦ °--')': ) [0/0] {115} - ¦ °--']': ] [1/0] {116} - ¦--expr: x[a = [2/0] {117} - ¦ ¦--expr: x [0/0] {119} - ¦ ¦ °--SYMBOL: x [0/0] {118} - ¦ ¦--'[': [ [0/0] {120} - ¦ ¦--expr: a ==3 [0/0] {121} - ¦ ¦ ¦--expr: a ==3 [0/1] {122} - ¦ ¦ ¦ ¦--expr: a [0/1] {124} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {123} - ¦ ¦ ¦ ¦--EQ: == [0/0] {125} - ¦ ¦ ¦ °--expr: 3 [0/0] {127} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {126} - ¦ ¦ ¦--OR: | [0/2] {128} - ¦ ¦ °--expr: b == [1/0] {129} - ¦ ¦ ¦--expr: b [0/1] {131} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {130} - ¦ ¦ ¦--EQ: == [0/1] {132} - ¦ ¦ °--expr: v [0/0] {134} - ¦ ¦ °--SYMBOL: v [0/0] {133} - ¦ ¦--',': , [0/0] {135} - ¦ °--']': ] [0/0] {136} - ¦--expr: x[a = [2/0] {137} - ¦ ¦--expr: x [0/0] {139} - ¦ ¦ °--SYMBOL: x [0/0] {138} - ¦ ¦--'[': [ [0/0] {140} - ¦ ¦--expr: a ==3 [0/0] {141} - ¦ ¦ ¦--expr: a ==3 [0/2] {142} - ¦ ¦ ¦ ¦--expr: a [0/1] {144} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {143} - ¦ ¦ ¦ ¦--EQ: == [0/0] {145} - ¦ ¦ ¦ °--expr: 3 [0/0] {147} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {146} - ¦ ¦ ¦--OR: | [1/2] {148} - ¦ ¦ °--expr: b == [0/0] {149} - ¦ ¦ ¦--expr: b [0/1] {151} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {150} - ¦ ¦ ¦--EQ: == [0/1] {152} - ¦ ¦ °--expr: v [0/0] {154} - ¦ ¦ °--SYMBOL: v [0/0] {153} - ¦ ¦--',': , [0/0] {155} - ¦ °--']': ] [0/0] {156} - ¦--expr: x[a = [2/0] {157} - ¦ ¦--expr: x [0/0] {159} - ¦ ¦ °--SYMBOL: x [0/0] {158} - ¦ ¦--'[': [ [0/0] {160} - ¦ ¦--expr: a ==3 [0/0] {161} - ¦ ¦ ¦--expr: a ==3 [0/1] {162} - ¦ ¦ ¦ ¦--expr: a [0/1] {164} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {163} - ¦ ¦ ¦ ¦--EQ: == [0/0] {165} - ¦ ¦ ¦ °--expr: 3 [0/0] {167} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {166} - ¦ ¦ ¦--OR2: || [0/4] {168} - ¦ ¦ °--expr: b == [1/0] {169} - ¦ ¦ ¦--expr: b [0/1] {171} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {170} - ¦ ¦ ¦--EQ: == [0/1] {172} - ¦ ¦ °--expr: v [0/0] {174} - ¦ ¦ °--SYMBOL: v [0/0] {173} - ¦ ¦--',': , [0/0] {175} - ¦ °--']': ] [0/0] {176} - ¦--expr: x[a = [2/0] {177} - ¦ ¦--expr: x [0/0] {179} - ¦ ¦ °--SYMBOL: x [0/0] {178} - ¦ ¦--'[': [ [0/0] {180} - ¦ ¦--expr: a ==3 [0/0] {181} - ¦ ¦ ¦--expr: a ==3 [0/2] {182} - ¦ ¦ ¦ ¦--expr: a [0/1] {184} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {183} - ¦ ¦ ¦ ¦--EQ: == [0/0] {185} - ¦ ¦ ¦ °--expr: 3 [0/0] {187} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {186} - ¦ ¦ ¦--OR2: || [1/2] {188} - ¦ ¦ °--expr: b == [0/0] {189} - ¦ ¦ ¦--expr: b [0/1] {191} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {190} - ¦ ¦ ¦--EQ: == [0/1] {192} - ¦ ¦ °--expr: v [0/0] {194} - ¦ ¦ °--SYMBOL: v [0/0] {193} - ¦ ¦--',': , [0/0] {195} - ¦ °--']': ] [0/0] {196} - ¦--expr: x[a = [2/0] {197} - ¦ ¦--expr: x [0/0] {199} - ¦ ¦ °--SYMBOL: x [0/0] {198} - ¦ ¦--'[': [ [0/0] {200} - ¦ ¦--expr: a ==3 [0/0] {201} - ¦ ¦ ¦--expr: a ==3 [0/2] {202} - ¦ ¦ ¦ ¦--expr: a [0/1] {204} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {203} - ¦ ¦ ¦ ¦--EQ: == [0/0] {205} - ¦ ¦ ¦ °--expr: 3 [0/0] {207} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {206} - ¦ ¦ ¦--AND2: && [1/2] {208} - ¦ ¦ °--expr: b == [0/0] {209} - ¦ ¦ ¦--expr: b [0/1] {211} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {210} - ¦ ¦ ¦--EQ: == [0/1] {212} - ¦ ¦ °--expr: v [0/0] {214} - ¦ ¦ °--SYMBOL: v [0/0] {213} - ¦ ¦--',': , [0/0] {215} - ¦ °--']': ] [0/0] {216} - ¦--expr: x[a = [2/0] {217} - ¦ ¦--expr: x [0/0] {219} - ¦ ¦ °--SYMBOL: x [0/0] {218} - ¦ ¦--'[': [ [0/0] {220} - ¦ ¦--expr: a ==3 [0/0] {221} - ¦ ¦ ¦--expr: a ==3 [0/2] {222} - ¦ ¦ ¦ ¦--expr: a [0/1] {224} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {223} - ¦ ¦ ¦ ¦--EQ: == [0/0] {225} - ¦ ¦ ¦ °--expr: 3 [0/0] {227} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {226} - ¦ ¦ ¦--AND: & [1/2] {228} - ¦ ¦ °--expr: b == [0/0] {229} - ¦ ¦ ¦--expr: b [0/1] {231} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {230} - ¦ ¦ ¦--EQ: == [0/1] {232} - ¦ ¦ °--expr: v [0/0] {234} - ¦ ¦ °--SYMBOL: v [0/0] {233} - ¦ ¦--',': , [0/0] {235} - ¦ °--']': ] [0/0] {236} - ¦--expr: x[a = [2/0] {237} - ¦ ¦--expr: x [0/0] {239} - ¦ ¦ °--SYMBOL: x [0/0] {238} - ¦ ¦--'[': [ [0/0] {240} - ¦ ¦--expr: a ==3 [0/0] {241} - ¦ ¦ ¦--expr: a ==3 [0/1] {242} - ¦ ¦ ¦ ¦--expr: a [0/1] {244} - ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {243} - ¦ ¦ ¦ ¦--EQ: == [0/0] {245} - ¦ ¦ ¦ °--expr: 3 [0/0] {247} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {246} - ¦ ¦ ¦--AND2: && [0/4] {248} - ¦ ¦ °--expr: b == [1/0] {249} - ¦ ¦ ¦--expr: b [0/1] {251} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {250} - ¦ ¦ ¦--EQ: == [0/1] {252} - ¦ ¦ °--expr: v [0/0] {254} - ¦ ¦ °--SYMBOL: v [0/0] {253} - ¦ ¦--',': , [0/0] {255} - ¦ °--']': ] [0/0] {256} - °--expr: x[a = [2/0] {257} - ¦--expr: x [0/0] {259} - ¦ °--SYMBOL: x [0/0] {258} - ¦--'[': [ [0/0] {260} - ¦--expr: a ==3 [0/0] {261} - ¦ ¦--expr: a ==3 [0/1] {262} - ¦ ¦ ¦--expr: a [0/1] {264} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {263} - ¦ ¦ ¦--EQ: == [0/0] {265} - ¦ ¦ °--expr: 3 [0/0] {267} - ¦ ¦ °--NUM_CONST: 3 [0/0] {266} - ¦ ¦--AND: & [0/3] {268} - ¦ °--expr: b == [1/0] {269} - ¦ ¦--expr: b [0/1] {271} - ¦ ¦ °--SYMBOL: b [0/0] {270} - ¦ ¦--EQ: == [0/1] {272} - ¦ °--expr: v [0/0] {274} - ¦ °--SYMBOL: v [0/0] {273} - ¦--',': , [0/0] {275} - °--']': ] [0/0] {276} diff --git a/tests/testthat/insertion_comment_interaction/if_else_if_else_non_strict-in_tree b/tests/testthat/insertion_comment_interaction/if_else_if_else_non_strict-in_tree deleted file mode 100644 index 8604c95f4..000000000 --- a/tests/testthat/insertion_comment_interaction/if_else_if_else_non_strict-in_tree +++ /dev/null @@ -1,256 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if(TR [0/0] {1} - ¦ ¦--IF: if [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/0] {6} - ¦ ¦--expr: NULL [0/1] {8} - ¦ ¦ °--NULL_CONST: NULL [0/0] {7} - ¦ ¦--ELSE: else [0/1] {9} - ¦ °--expr: if(FA [0/0] {10} - ¦ ¦--IF: if [0/0] {11} - ¦ ¦--'(': ( [0/0] {12} - ¦ ¦--expr: FALSE [0/0] {14} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {13} - ¦ ¦--')': ) [0/0] {15} - ¦ ¦--expr: NULL [0/1] {17} - ¦ ¦ °--NULL_CONST: NULL [0/0] {16} - ¦ ¦--ELSE: else [0/1] {18} - ¦ °--expr: NULL [0/0] {20} - ¦ °--NULL_CONST: NULL [0/0] {19} - ¦--expr: if(TR [2/1] {21} - ¦ ¦--IF: if [0/0] {22} - ¦ ¦--'(': ( [0/0] {23} - ¦ ¦--expr: TRUE [0/0] {25} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {24} - ¦ ¦--')': ) [0/0] {26} - ¦ ¦--expr: NULL [0/1] {28} - ¦ ¦ °--NULL_CONST: NULL [0/0] {27} - ¦ ¦--ELSE: else [0/1] {29} - ¦ °--expr: if(FA [0/0] {30} - ¦ ¦--IF: if [0/0] {31} - ¦ ¦--'(': ( [0/0] {32} - ¦ ¦--expr: FALSE [0/0] {34} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {33} - ¦ ¦--')': ) [0/0] {35} - ¦ ¦--expr: NULL [0/1] {37} - ¦ ¦ °--NULL_CONST: NULL [0/0] {36} - ¦ ¦--ELSE: else [0/1] {38} - ¦ °--expr: NULL [0/0] {40} - ¦ °--NULL_CONST: NULL [0/0] {39} - ¦--COMMENT: # com [0/0] {41} - ¦--expr: if(TR [3/0] {42} - ¦ ¦--IF: if [0/0] {43} - ¦ ¦--'(': ( [0/0] {44} - ¦ ¦--expr: TRUE [0/0] {46} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {45} - ¦ ¦--')': ) [0/0] {47} - ¦ ¦--expr: NULL [0/1] {49} - ¦ ¦ °--NULL_CONST: NULL [0/0] {48} - ¦ ¦--ELSE: else [0/1] {50} - ¦ °--expr: if(FA [0/0] {51} - ¦ ¦--IF: if [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--expr: FALSE [0/0] {55} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {54} - ¦ ¦--')': ) [0/0] {56} - ¦ ¦--expr: NULL [0/1] {58} - ¦ ¦ °--NULL_CONST: NULL [0/0] {57} - ¦ ¦--ELSE: else [0/1] {59} - ¦ ¦--COMMENT: # com [0/1] {60} - ¦ °--expr: NULL [1/0] {62} - ¦ °--NULL_CONST: NULL [0/0] {61} - ¦--COMMENT: # if( [2/0] {63} - ¦--COMMENT: # el [1/0] {64} - ¦--expr: if(TR [2/0] {65} - ¦ ¦--IF: if [0/0] {66} - ¦ ¦--'(': ( [0/0] {67} - ¦ ¦--expr: TRUE [0/0] {69} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {68} - ¦ ¦--')': ) [0/0] {70} - ¦ ¦--expr: NULL [0/1] {72} - ¦ ¦ °--NULL_CONST: NULL [0/0] {71} - ¦ ¦--ELSE: else [0/1] {73} - ¦ °--expr: if(FA [0/0] {74} - ¦ ¦--IF: if [0/0] {75} - ¦ ¦--'(': ( [0/0] {76} - ¦ ¦--expr: FALSE [0/0] {78} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {77} - ¦ ¦--')': ) [0/1] {79} - ¦ ¦--COMMENT: # com [0/0] {80} - ¦ ¦--expr: NULL [1/1] {82} - ¦ ¦ °--NULL_CONST: NULL [0/0] {81} - ¦ ¦--ELSE: else [0/1] {83} - ¦ °--expr: NULL [0/0] {85} - ¦ °--NULL_CONST: NULL [0/0] {84} - ¦--expr: if(TR [2/0] {86} - ¦ ¦--IF: if [0/0] {87} - ¦ ¦--'(': ( [0/0] {88} - ¦ ¦--expr: TRUE [0/0] {90} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {89} - ¦ ¦--')': ) [0/0] {91} - ¦ ¦--expr: NULL [0/1] {93} - ¦ ¦ °--NULL_CONST: NULL [0/0] {92} - ¦ ¦--ELSE: else [0/1] {94} - ¦ °--expr: if(FA [0/0] {95} - ¦ ¦--IF: if [0/0] {96} - ¦ ¦--'(': ( [0/0] {97} - ¦ ¦--expr: FALSE [0/1] {99} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {98} - ¦ ¦--COMMENT: # com [0/0] {100} - ¦ ¦--')': ) [1/0] {101} - ¦ ¦--expr: NULL [0/1] {103} - ¦ ¦ °--NULL_CONST: NULL [0/0] {102} - ¦ ¦--ELSE: else [0/1] {104} - ¦ °--expr: NULL [0/0] {106} - ¦ °--NULL_CONST: NULL [0/0] {105} - ¦--expr: if(TR [2/0] {107} - ¦ ¦--IF: if [0/0] {108} - ¦ ¦--'(': ( [0/0] {109} - ¦ ¦--expr: TRUE [0/0] {111} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {110} - ¦ ¦--')': ) [0/0] {112} - ¦ ¦--expr: NULL [0/1] {114} - ¦ ¦ °--NULL_CONST: NULL [0/0] {113} - ¦ ¦--ELSE: else [0/1] {115} - ¦ °--expr: if( # [0/0] {116} - ¦ ¦--IF: if [0/0] {117} - ¦ ¦--'(': ( [0/1] {118} - ¦ ¦--COMMENT: # com [0/0] {119} - ¦ ¦--expr: FALSE [1/0] {121} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {120} - ¦ ¦--')': ) [0/0] {122} - ¦ ¦--expr: NULL [0/1] {124} - ¦ ¦ °--NULL_CONST: NULL [0/0] {123} - ¦ ¦--ELSE: else [0/1] {125} - ¦ °--expr: NULL [0/0] {127} - ¦ °--NULL_CONST: NULL [0/0] {126} - ¦--expr: if(TR [2/0] {128} - ¦ ¦--IF: if [0/0] {129} - ¦ ¦--'(': ( [0/0] {130} - ¦ ¦--expr: TRUE [0/0] {132} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {131} - ¦ ¦--')': ) [0/0] {133} - ¦ ¦--expr: NULL [0/1] {135} - ¦ ¦ °--NULL_CONST: NULL [0/0] {134} - ¦ ¦--ELSE: else [0/1] {136} - ¦ °--expr: if # [0/0] {137} - ¦ ¦--IF: if [0/1] {138} - ¦ ¦--COMMENT: # com [0/0] {139} - ¦ ¦--'(': ( [1/0] {140} - ¦ ¦--expr: FALSE [0/0] {142} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {141} - ¦ ¦--')': ) [0/0] {143} - ¦ ¦--expr: NULL [0/1] {145} - ¦ ¦ °--NULL_CONST: NULL [0/0] {144} - ¦ ¦--ELSE: else [0/1] {146} - ¦ °--expr: NULL [0/0] {148} - ¦ °--NULL_CONST: NULL [0/0] {147} - ¦--expr: if(TR [2/0] {149} - ¦ ¦--IF: if [0/0] {150} - ¦ ¦--'(': ( [0/0] {151} - ¦ ¦--expr: TRUE [0/0] {153} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {152} - ¦ ¦--')': ) [0/0] {154} - ¦ ¦--expr: NULL [0/1] {156} - ¦ ¦ °--NULL_CONST: NULL [0/0] {155} - ¦ ¦--ELSE: else [0/1] {157} - ¦ ¦--COMMENT: # com [0/1] {158} - ¦ °--expr: if(FA [1/0] {159} - ¦ ¦--IF: if [0/0] {160} - ¦ ¦--'(': ( [0/0] {161} - ¦ ¦--expr: FALSE [0/0] {163} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {162} - ¦ ¦--')': ) [0/0] {164} - ¦ ¦--expr: NULL [0/1] {166} - ¦ ¦ °--NULL_CONST: NULL [0/0] {165} - ¦ ¦--ELSE: else [0/1] {167} - ¦ °--expr: NULL [0/0] {169} - ¦ °--NULL_CONST: NULL [0/0] {168} - ¦--COMMENT: # if( [2/0] {170} - ¦--COMMENT: # el [1/0] {171} - ¦--expr: if(TR [2/0] {172} - ¦ ¦--IF: if [0/0] {173} - ¦ ¦--'(': ( [0/0] {174} - ¦ ¦--expr: TRUE [0/0] {176} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {175} - ¦ ¦--')': ) [0/1] {177} - ¦ ¦--COMMENT: # com [0/0] {178} - ¦ ¦--expr: NULL [1/1] {180} - ¦ ¦ °--NULL_CONST: NULL [0/0] {179} - ¦ ¦--ELSE: else [0/1] {181} - ¦ °--expr: if(FA [0/0] {182} - ¦ ¦--IF: if [0/0] {183} - ¦ ¦--'(': ( [0/0] {184} - ¦ ¦--expr: FALSE [0/0] {186} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {185} - ¦ ¦--')': ) [0/0] {187} - ¦ ¦--expr: NULL [0/1] {189} - ¦ ¦ °--NULL_CONST: NULL [0/0] {188} - ¦ ¦--ELSE: else [0/1] {190} - ¦ °--expr: NULL [0/0] {192} - ¦ °--NULL_CONST: NULL [0/0] {191} - ¦--expr: if(TR [2/0] {193} - ¦ ¦--IF: if [0/0] {194} - ¦ ¦--'(': ( [0/0] {195} - ¦ ¦--expr: TRUE [0/1] {197} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {196} - ¦ ¦--COMMENT: # com [0/0] {198} - ¦ ¦--')': ) [1/0] {199} - ¦ ¦--expr: NULL [0/1] {201} - ¦ ¦ °--NULL_CONST: NULL [0/0] {200} - ¦ ¦--ELSE: else [0/1] {202} - ¦ °--expr: if(FA [0/0] {203} - ¦ ¦--IF: if [0/0] {204} - ¦ ¦--'(': ( [0/0] {205} - ¦ ¦--expr: FALSE [0/0] {207} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {206} - ¦ ¦--')': ) [0/0] {208} - ¦ ¦--expr: NULL [0/1] {210} - ¦ ¦ °--NULL_CONST: NULL [0/0] {209} - ¦ ¦--ELSE: else [0/1] {211} - ¦ °--expr: NULL [0/0] {213} - ¦ °--NULL_CONST: NULL [0/0] {212} - ¦--expr: if( # [2/0] {214} - ¦ ¦--IF: if [0/0] {215} - ¦ ¦--'(': ( [0/1] {216} - ¦ ¦--COMMENT: # com [0/0] {217} - ¦ ¦--expr: TRUE [1/0] {219} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {218} - ¦ ¦--')': ) [0/0] {220} - ¦ ¦--expr: NULL [0/1] {222} - ¦ ¦ °--NULL_CONST: NULL [0/0] {221} - ¦ ¦--ELSE: else [0/1] {223} - ¦ °--expr: if(FA [0/0] {224} - ¦ ¦--IF: if [0/0] {225} - ¦ ¦--'(': ( [0/0] {226} - ¦ ¦--expr: FALSE [0/0] {228} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {227} - ¦ ¦--')': ) [0/0] {229} - ¦ ¦--expr: NULL [0/1] {231} - ¦ ¦ °--NULL_CONST: NULL [0/0] {230} - ¦ ¦--ELSE: else [0/1] {232} - ¦ °--expr: NULL [0/0] {234} - ¦ °--NULL_CONST: NULL [0/0] {233} - °--expr: if # [2/0] {235} - ¦--IF: if [0/1] {236} - ¦--COMMENT: # com [0/0] {237} - ¦--'(': ( [1/0] {238} - ¦--expr: TRUE [0/0] {240} - ¦ °--NUM_CONST: TRUE [0/0] {239} - ¦--')': ) [0/0] {241} - ¦--expr: NULL [0/1] {243} - ¦ °--NULL_CONST: NULL [0/0] {242} - ¦--ELSE: else [0/1] {244} - °--expr: if(FA [0/0] {245} - ¦--IF: if [0/0] {246} - ¦--'(': ( [0/0] {247} - ¦--expr: FALSE [0/0] {249} - ¦ °--NUM_CONST: FALSE [0/0] {248} - ¦--')': ) [0/0] {250} - ¦--expr: NULL [0/1] {252} - ¦ °--NULL_CONST: NULL [0/0] {251} - ¦--ELSE: else [0/1] {253} - °--expr: NULL [0/0] {255} - °--NULL_CONST: NULL [0/0] {254} diff --git a/tests/testthat/insertion_comment_interaction/if_else_if_else_strict-in_tree b/tests/testthat/insertion_comment_interaction/if_else_if_else_strict-in_tree deleted file mode 100644 index 8604c95f4..000000000 --- a/tests/testthat/insertion_comment_interaction/if_else_if_else_strict-in_tree +++ /dev/null @@ -1,256 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if(TR [0/0] {1} - ¦ ¦--IF: if [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/0] {6} - ¦ ¦--expr: NULL [0/1] {8} - ¦ ¦ °--NULL_CONST: NULL [0/0] {7} - ¦ ¦--ELSE: else [0/1] {9} - ¦ °--expr: if(FA [0/0] {10} - ¦ ¦--IF: if [0/0] {11} - ¦ ¦--'(': ( [0/0] {12} - ¦ ¦--expr: FALSE [0/0] {14} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {13} - ¦ ¦--')': ) [0/0] {15} - ¦ ¦--expr: NULL [0/1] {17} - ¦ ¦ °--NULL_CONST: NULL [0/0] {16} - ¦ ¦--ELSE: else [0/1] {18} - ¦ °--expr: NULL [0/0] {20} - ¦ °--NULL_CONST: NULL [0/0] {19} - ¦--expr: if(TR [2/1] {21} - ¦ ¦--IF: if [0/0] {22} - ¦ ¦--'(': ( [0/0] {23} - ¦ ¦--expr: TRUE [0/0] {25} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {24} - ¦ ¦--')': ) [0/0] {26} - ¦ ¦--expr: NULL [0/1] {28} - ¦ ¦ °--NULL_CONST: NULL [0/0] {27} - ¦ ¦--ELSE: else [0/1] {29} - ¦ °--expr: if(FA [0/0] {30} - ¦ ¦--IF: if [0/0] {31} - ¦ ¦--'(': ( [0/0] {32} - ¦ ¦--expr: FALSE [0/0] {34} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {33} - ¦ ¦--')': ) [0/0] {35} - ¦ ¦--expr: NULL [0/1] {37} - ¦ ¦ °--NULL_CONST: NULL [0/0] {36} - ¦ ¦--ELSE: else [0/1] {38} - ¦ °--expr: NULL [0/0] {40} - ¦ °--NULL_CONST: NULL [0/0] {39} - ¦--COMMENT: # com [0/0] {41} - ¦--expr: if(TR [3/0] {42} - ¦ ¦--IF: if [0/0] {43} - ¦ ¦--'(': ( [0/0] {44} - ¦ ¦--expr: TRUE [0/0] {46} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {45} - ¦ ¦--')': ) [0/0] {47} - ¦ ¦--expr: NULL [0/1] {49} - ¦ ¦ °--NULL_CONST: NULL [0/0] {48} - ¦ ¦--ELSE: else [0/1] {50} - ¦ °--expr: if(FA [0/0] {51} - ¦ ¦--IF: if [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--expr: FALSE [0/0] {55} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {54} - ¦ ¦--')': ) [0/0] {56} - ¦ ¦--expr: NULL [0/1] {58} - ¦ ¦ °--NULL_CONST: NULL [0/0] {57} - ¦ ¦--ELSE: else [0/1] {59} - ¦ ¦--COMMENT: # com [0/1] {60} - ¦ °--expr: NULL [1/0] {62} - ¦ °--NULL_CONST: NULL [0/0] {61} - ¦--COMMENT: # if( [2/0] {63} - ¦--COMMENT: # el [1/0] {64} - ¦--expr: if(TR [2/0] {65} - ¦ ¦--IF: if [0/0] {66} - ¦ ¦--'(': ( [0/0] {67} - ¦ ¦--expr: TRUE [0/0] {69} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {68} - ¦ ¦--')': ) [0/0] {70} - ¦ ¦--expr: NULL [0/1] {72} - ¦ ¦ °--NULL_CONST: NULL [0/0] {71} - ¦ ¦--ELSE: else [0/1] {73} - ¦ °--expr: if(FA [0/0] {74} - ¦ ¦--IF: if [0/0] {75} - ¦ ¦--'(': ( [0/0] {76} - ¦ ¦--expr: FALSE [0/0] {78} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {77} - ¦ ¦--')': ) [0/1] {79} - ¦ ¦--COMMENT: # com [0/0] {80} - ¦ ¦--expr: NULL [1/1] {82} - ¦ ¦ °--NULL_CONST: NULL [0/0] {81} - ¦ ¦--ELSE: else [0/1] {83} - ¦ °--expr: NULL [0/0] {85} - ¦ °--NULL_CONST: NULL [0/0] {84} - ¦--expr: if(TR [2/0] {86} - ¦ ¦--IF: if [0/0] {87} - ¦ ¦--'(': ( [0/0] {88} - ¦ ¦--expr: TRUE [0/0] {90} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {89} - ¦ ¦--')': ) [0/0] {91} - ¦ ¦--expr: NULL [0/1] {93} - ¦ ¦ °--NULL_CONST: NULL [0/0] {92} - ¦ ¦--ELSE: else [0/1] {94} - ¦ °--expr: if(FA [0/0] {95} - ¦ ¦--IF: if [0/0] {96} - ¦ ¦--'(': ( [0/0] {97} - ¦ ¦--expr: FALSE [0/1] {99} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {98} - ¦ ¦--COMMENT: # com [0/0] {100} - ¦ ¦--')': ) [1/0] {101} - ¦ ¦--expr: NULL [0/1] {103} - ¦ ¦ °--NULL_CONST: NULL [0/0] {102} - ¦ ¦--ELSE: else [0/1] {104} - ¦ °--expr: NULL [0/0] {106} - ¦ °--NULL_CONST: NULL [0/0] {105} - ¦--expr: if(TR [2/0] {107} - ¦ ¦--IF: if [0/0] {108} - ¦ ¦--'(': ( [0/0] {109} - ¦ ¦--expr: TRUE [0/0] {111} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {110} - ¦ ¦--')': ) [0/0] {112} - ¦ ¦--expr: NULL [0/1] {114} - ¦ ¦ °--NULL_CONST: NULL [0/0] {113} - ¦ ¦--ELSE: else [0/1] {115} - ¦ °--expr: if( # [0/0] {116} - ¦ ¦--IF: if [0/0] {117} - ¦ ¦--'(': ( [0/1] {118} - ¦ ¦--COMMENT: # com [0/0] {119} - ¦ ¦--expr: FALSE [1/0] {121} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {120} - ¦ ¦--')': ) [0/0] {122} - ¦ ¦--expr: NULL [0/1] {124} - ¦ ¦ °--NULL_CONST: NULL [0/0] {123} - ¦ ¦--ELSE: else [0/1] {125} - ¦ °--expr: NULL [0/0] {127} - ¦ °--NULL_CONST: NULL [0/0] {126} - ¦--expr: if(TR [2/0] {128} - ¦ ¦--IF: if [0/0] {129} - ¦ ¦--'(': ( [0/0] {130} - ¦ ¦--expr: TRUE [0/0] {132} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {131} - ¦ ¦--')': ) [0/0] {133} - ¦ ¦--expr: NULL [0/1] {135} - ¦ ¦ °--NULL_CONST: NULL [0/0] {134} - ¦ ¦--ELSE: else [0/1] {136} - ¦ °--expr: if # [0/0] {137} - ¦ ¦--IF: if [0/1] {138} - ¦ ¦--COMMENT: # com [0/0] {139} - ¦ ¦--'(': ( [1/0] {140} - ¦ ¦--expr: FALSE [0/0] {142} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {141} - ¦ ¦--')': ) [0/0] {143} - ¦ ¦--expr: NULL [0/1] {145} - ¦ ¦ °--NULL_CONST: NULL [0/0] {144} - ¦ ¦--ELSE: else [0/1] {146} - ¦ °--expr: NULL [0/0] {148} - ¦ °--NULL_CONST: NULL [0/0] {147} - ¦--expr: if(TR [2/0] {149} - ¦ ¦--IF: if [0/0] {150} - ¦ ¦--'(': ( [0/0] {151} - ¦ ¦--expr: TRUE [0/0] {153} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {152} - ¦ ¦--')': ) [0/0] {154} - ¦ ¦--expr: NULL [0/1] {156} - ¦ ¦ °--NULL_CONST: NULL [0/0] {155} - ¦ ¦--ELSE: else [0/1] {157} - ¦ ¦--COMMENT: # com [0/1] {158} - ¦ °--expr: if(FA [1/0] {159} - ¦ ¦--IF: if [0/0] {160} - ¦ ¦--'(': ( [0/0] {161} - ¦ ¦--expr: FALSE [0/0] {163} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {162} - ¦ ¦--')': ) [0/0] {164} - ¦ ¦--expr: NULL [0/1] {166} - ¦ ¦ °--NULL_CONST: NULL [0/0] {165} - ¦ ¦--ELSE: else [0/1] {167} - ¦ °--expr: NULL [0/0] {169} - ¦ °--NULL_CONST: NULL [0/0] {168} - ¦--COMMENT: # if( [2/0] {170} - ¦--COMMENT: # el [1/0] {171} - ¦--expr: if(TR [2/0] {172} - ¦ ¦--IF: if [0/0] {173} - ¦ ¦--'(': ( [0/0] {174} - ¦ ¦--expr: TRUE [0/0] {176} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {175} - ¦ ¦--')': ) [0/1] {177} - ¦ ¦--COMMENT: # com [0/0] {178} - ¦ ¦--expr: NULL [1/1] {180} - ¦ ¦ °--NULL_CONST: NULL [0/0] {179} - ¦ ¦--ELSE: else [0/1] {181} - ¦ °--expr: if(FA [0/0] {182} - ¦ ¦--IF: if [0/0] {183} - ¦ ¦--'(': ( [0/0] {184} - ¦ ¦--expr: FALSE [0/0] {186} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {185} - ¦ ¦--')': ) [0/0] {187} - ¦ ¦--expr: NULL [0/1] {189} - ¦ ¦ °--NULL_CONST: NULL [0/0] {188} - ¦ ¦--ELSE: else [0/1] {190} - ¦ °--expr: NULL [0/0] {192} - ¦ °--NULL_CONST: NULL [0/0] {191} - ¦--expr: if(TR [2/0] {193} - ¦ ¦--IF: if [0/0] {194} - ¦ ¦--'(': ( [0/0] {195} - ¦ ¦--expr: TRUE [0/1] {197} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {196} - ¦ ¦--COMMENT: # com [0/0] {198} - ¦ ¦--')': ) [1/0] {199} - ¦ ¦--expr: NULL [0/1] {201} - ¦ ¦ °--NULL_CONST: NULL [0/0] {200} - ¦ ¦--ELSE: else [0/1] {202} - ¦ °--expr: if(FA [0/0] {203} - ¦ ¦--IF: if [0/0] {204} - ¦ ¦--'(': ( [0/0] {205} - ¦ ¦--expr: FALSE [0/0] {207} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {206} - ¦ ¦--')': ) [0/0] {208} - ¦ ¦--expr: NULL [0/1] {210} - ¦ ¦ °--NULL_CONST: NULL [0/0] {209} - ¦ ¦--ELSE: else [0/1] {211} - ¦ °--expr: NULL [0/0] {213} - ¦ °--NULL_CONST: NULL [0/0] {212} - ¦--expr: if( # [2/0] {214} - ¦ ¦--IF: if [0/0] {215} - ¦ ¦--'(': ( [0/1] {216} - ¦ ¦--COMMENT: # com [0/0] {217} - ¦ ¦--expr: TRUE [1/0] {219} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {218} - ¦ ¦--')': ) [0/0] {220} - ¦ ¦--expr: NULL [0/1] {222} - ¦ ¦ °--NULL_CONST: NULL [0/0] {221} - ¦ ¦--ELSE: else [0/1] {223} - ¦ °--expr: if(FA [0/0] {224} - ¦ ¦--IF: if [0/0] {225} - ¦ ¦--'(': ( [0/0] {226} - ¦ ¦--expr: FALSE [0/0] {228} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {227} - ¦ ¦--')': ) [0/0] {229} - ¦ ¦--expr: NULL [0/1] {231} - ¦ ¦ °--NULL_CONST: NULL [0/0] {230} - ¦ ¦--ELSE: else [0/1] {232} - ¦ °--expr: NULL [0/0] {234} - ¦ °--NULL_CONST: NULL [0/0] {233} - °--expr: if # [2/0] {235} - ¦--IF: if [0/1] {236} - ¦--COMMENT: # com [0/0] {237} - ¦--'(': ( [1/0] {238} - ¦--expr: TRUE [0/0] {240} - ¦ °--NUM_CONST: TRUE [0/0] {239} - ¦--')': ) [0/0] {241} - ¦--expr: NULL [0/1] {243} - ¦ °--NULL_CONST: NULL [0/0] {242} - ¦--ELSE: else [0/1] {244} - °--expr: if(FA [0/0] {245} - ¦--IF: if [0/0] {246} - ¦--'(': ( [0/0] {247} - ¦--expr: FALSE [0/0] {249} - ¦ °--NUM_CONST: FALSE [0/0] {248} - ¦--')': ) [0/0] {250} - ¦--expr: NULL [0/1] {252} - ¦ °--NULL_CONST: NULL [0/0] {251} - ¦--ELSE: else [0/1] {253} - °--expr: NULL [0/0] {255} - °--NULL_CONST: NULL [0/0] {254} diff --git a/tests/testthat/insertion_comment_interaction/if_else_non_strict-in_tree b/tests/testthat/insertion_comment_interaction/if_else_non_strict-in_tree deleted file mode 100644 index 7d277ba18..000000000 --- a/tests/testthat/insertion_comment_interaction/if_else_non_strict-in_tree +++ /dev/null @@ -1,86 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if(TR [0/0] {1} - ¦ ¦--IF: if [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/0] {6} - ¦ ¦--expr: NULL [0/1] {8} - ¦ ¦ °--NULL_CONST: NULL [0/0] {7} - ¦ ¦--ELSE: else [0/1] {9} - ¦ °--expr: NULL [0/0] {11} - ¦ °--NULL_CONST: NULL [0/0] {10} - ¦--expr: if(TR [2/1] {12} - ¦ ¦--IF: if [0/0] {13} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--expr: TRUE [0/0] {16} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {15} - ¦ ¦--')': ) [0/0] {17} - ¦ ¦--expr: NULL [0/1] {19} - ¦ ¦ °--NULL_CONST: NULL [0/0] {18} - ¦ ¦--ELSE: else [0/1] {20} - ¦ °--expr: NULL [0/0] {22} - ¦ °--NULL_CONST: NULL [0/0] {21} - ¦--COMMENT: # com [0/0] {23} - ¦--expr: if(TR [3/0] {24} - ¦ ¦--IF: if [0/0] {25} - ¦ ¦--'(': ( [0/0] {26} - ¦ ¦--expr: TRUE [0/0] {28} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {27} - ¦ ¦--')': ) [0/0] {29} - ¦ ¦--expr: NULL [0/1] {31} - ¦ ¦ °--NULL_CONST: NULL [0/0] {30} - ¦ ¦--ELSE: else [0/1] {32} - ¦ ¦--COMMENT: # com [0/1] {33} - ¦ °--expr: NULL [1/0] {35} - ¦ °--NULL_CONST: NULL [0/0] {34} - ¦--COMMENT: # if( [2/0] {36} - ¦--COMMENT: # el [1/0] {37} - ¦--expr: if(TR [2/0] {38} - ¦ ¦--IF: if [0/0] {39} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: TRUE [0/0] {42} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {41} - ¦ ¦--')': ) [0/1] {43} - ¦ ¦--COMMENT: # com [0/0] {44} - ¦ ¦--expr: NULL [1/1] {46} - ¦ ¦ °--NULL_CONST: NULL [0/0] {45} - ¦ ¦--ELSE: else [0/1] {47} - ¦ °--expr: NULL [0/0] {49} - ¦ °--NULL_CONST: NULL [0/0] {48} - ¦--expr: if(TR [2/0] {50} - ¦ ¦--IF: if [0/0] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--expr: TRUE [0/1] {54} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {53} - ¦ ¦--COMMENT: # com [0/0] {55} - ¦ ¦--')': ) [1/0] {56} - ¦ ¦--expr: NULL [0/1] {58} - ¦ ¦ °--NULL_CONST: NULL [0/0] {57} - ¦ ¦--ELSE: else [0/1] {59} - ¦ °--expr: NULL [0/0] {61} - ¦ °--NULL_CONST: NULL [0/0] {60} - ¦--expr: if( # [2/0] {62} - ¦ ¦--IF: if [0/0] {63} - ¦ ¦--'(': ( [0/1] {64} - ¦ ¦--COMMENT: # com [0/0] {65} - ¦ ¦--expr: TRUE [1/0] {67} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {66} - ¦ ¦--')': ) [0/0] {68} - ¦ ¦--expr: NULL [0/1] {70} - ¦ ¦ °--NULL_CONST: NULL [0/0] {69} - ¦ ¦--ELSE: else [0/1] {71} - ¦ °--expr: NULL [0/0] {73} - ¦ °--NULL_CONST: NULL [0/0] {72} - °--expr: if # [2/0] {74} - ¦--IF: if [0/1] {75} - ¦--COMMENT: # com [0/0] {76} - ¦--'(': ( [1/0] {77} - ¦--expr: TRUE [0/0] {79} - ¦ °--NUM_CONST: TRUE [0/0] {78} - ¦--')': ) [0/0] {80} - ¦--expr: NULL [0/1] {82} - ¦ °--NULL_CONST: NULL [0/0] {81} - ¦--ELSE: else [0/1] {83} - °--expr: NULL [0/0] {85} - °--NULL_CONST: NULL [0/0] {84} diff --git a/tests/testthat/insertion_comment_interaction/if_else_strict-in_tree b/tests/testthat/insertion_comment_interaction/if_else_strict-in_tree deleted file mode 100644 index 7d277ba18..000000000 --- a/tests/testthat/insertion_comment_interaction/if_else_strict-in_tree +++ /dev/null @@ -1,86 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if(TR [0/0] {1} - ¦ ¦--IF: if [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/0] {6} - ¦ ¦--expr: NULL [0/1] {8} - ¦ ¦ °--NULL_CONST: NULL [0/0] {7} - ¦ ¦--ELSE: else [0/1] {9} - ¦ °--expr: NULL [0/0] {11} - ¦ °--NULL_CONST: NULL [0/0] {10} - ¦--expr: if(TR [2/1] {12} - ¦ ¦--IF: if [0/0] {13} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--expr: TRUE [0/0] {16} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {15} - ¦ ¦--')': ) [0/0] {17} - ¦ ¦--expr: NULL [0/1] {19} - ¦ ¦ °--NULL_CONST: NULL [0/0] {18} - ¦ ¦--ELSE: else [0/1] {20} - ¦ °--expr: NULL [0/0] {22} - ¦ °--NULL_CONST: NULL [0/0] {21} - ¦--COMMENT: # com [0/0] {23} - ¦--expr: if(TR [3/0] {24} - ¦ ¦--IF: if [0/0] {25} - ¦ ¦--'(': ( [0/0] {26} - ¦ ¦--expr: TRUE [0/0] {28} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {27} - ¦ ¦--')': ) [0/0] {29} - ¦ ¦--expr: NULL [0/1] {31} - ¦ ¦ °--NULL_CONST: NULL [0/0] {30} - ¦ ¦--ELSE: else [0/1] {32} - ¦ ¦--COMMENT: # com [0/1] {33} - ¦ °--expr: NULL [1/0] {35} - ¦ °--NULL_CONST: NULL [0/0] {34} - ¦--COMMENT: # if( [2/0] {36} - ¦--COMMENT: # el [1/0] {37} - ¦--expr: if(TR [2/0] {38} - ¦ ¦--IF: if [0/0] {39} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: TRUE [0/0] {42} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {41} - ¦ ¦--')': ) [0/1] {43} - ¦ ¦--COMMENT: # com [0/0] {44} - ¦ ¦--expr: NULL [1/1] {46} - ¦ ¦ °--NULL_CONST: NULL [0/0] {45} - ¦ ¦--ELSE: else [0/1] {47} - ¦ °--expr: NULL [0/0] {49} - ¦ °--NULL_CONST: NULL [0/0] {48} - ¦--expr: if(TR [2/0] {50} - ¦ ¦--IF: if [0/0] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--expr: TRUE [0/1] {54} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {53} - ¦ ¦--COMMENT: # com [0/0] {55} - ¦ ¦--')': ) [1/0] {56} - ¦ ¦--expr: NULL [0/1] {58} - ¦ ¦ °--NULL_CONST: NULL [0/0] {57} - ¦ ¦--ELSE: else [0/1] {59} - ¦ °--expr: NULL [0/0] {61} - ¦ °--NULL_CONST: NULL [0/0] {60} - ¦--expr: if( # [2/0] {62} - ¦ ¦--IF: if [0/0] {63} - ¦ ¦--'(': ( [0/1] {64} - ¦ ¦--COMMENT: # com [0/0] {65} - ¦ ¦--expr: TRUE [1/0] {67} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {66} - ¦ ¦--')': ) [0/0] {68} - ¦ ¦--expr: NULL [0/1] {70} - ¦ ¦ °--NULL_CONST: NULL [0/0] {69} - ¦ ¦--ELSE: else [0/1] {71} - ¦ °--expr: NULL [0/0] {73} - ¦ °--NULL_CONST: NULL [0/0] {72} - °--expr: if # [2/0] {74} - ¦--IF: if [0/1] {75} - ¦--COMMENT: # com [0/0] {76} - ¦--'(': ( [1/0] {77} - ¦--expr: TRUE [0/0] {79} - ¦ °--NUM_CONST: TRUE [0/0] {78} - ¦--')': ) [0/0] {80} - ¦--expr: NULL [0/1] {82} - ¦ °--NULL_CONST: NULL [0/0] {81} - ¦--ELSE: else [0/1] {83} - °--expr: NULL [0/0] {85} - °--NULL_CONST: NULL [0/0] {84} diff --git a/tests/testthat/insertion_comment_interaction/just_if_non_strict-in_tree b/tests/testthat/insertion_comment_interaction/just_if_non_strict-in_tree deleted file mode 100644 index cc8154b6e..000000000 --- a/tests/testthat/insertion_comment_interaction/just_if_non_strict-in_tree +++ /dev/null @@ -1,54 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if(TR [0/0] {1} - ¦ ¦--IF: if [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/0] {6} - ¦ °--expr: NULL [0/0] {8} - ¦ °--NULL_CONST: NULL [0/0] {7} - ¦--expr: if(TR [2/1] {9} - ¦ ¦--IF: if [0/0] {10} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--expr: TRUE [0/0] {13} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {12} - ¦ ¦--')': ) [0/0] {14} - ¦ °--expr: NULL [0/0] {16} - ¦ °--NULL_CONST: NULL [0/0] {15} - ¦--COMMENT: # com [0/0] {17} - ¦--expr: if(TR [3/0] {18} - ¦ ¦--IF: if [0/0] {19} - ¦ ¦--'(': ( [0/0] {20} - ¦ ¦--expr: TRUE [0/0] {22} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {21} - ¦ ¦--')': ) [0/1] {23} - ¦ ¦--COMMENT: # com [0/0] {24} - ¦ °--expr: NULL [1/0] {26} - ¦ °--NULL_CONST: NULL [0/0] {25} - ¦--expr: if(TR [2/0] {27} - ¦ ¦--IF: if [0/0] {28} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--expr: TRUE [0/1] {31} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {30} - ¦ ¦--COMMENT: # com [0/0] {32} - ¦ ¦--')': ) [1/0] {33} - ¦ °--expr: NULL [0/0] {35} - ¦ °--NULL_CONST: NULL [0/0] {34} - ¦--expr: if( # [2/0] {36} - ¦ ¦--IF: if [0/0] {37} - ¦ ¦--'(': ( [0/1] {38} - ¦ ¦--COMMENT: # com [0/0] {39} - ¦ ¦--expr: TRUE [1/0] {41} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {40} - ¦ ¦--')': ) [0/0] {42} - ¦ °--expr: NULL [0/0] {44} - ¦ °--NULL_CONST: NULL [0/0] {43} - °--expr: if # [2/0] {45} - ¦--IF: if [0/1] {46} - ¦--COMMENT: # com [0/0] {47} - ¦--'(': ( [1/0] {48} - ¦--expr: TRUE [0/0] {50} - ¦ °--NUM_CONST: TRUE [0/0] {49} - ¦--')': ) [0/0] {51} - °--expr: NULL [0/0] {53} - °--NULL_CONST: NULL [0/0] {52} diff --git a/tests/testthat/insertion_comment_interaction/just_if_strict-in_tree b/tests/testthat/insertion_comment_interaction/just_if_strict-in_tree deleted file mode 100644 index cc8154b6e..000000000 --- a/tests/testthat/insertion_comment_interaction/just_if_strict-in_tree +++ /dev/null @@ -1,54 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if(TR [0/0] {1} - ¦ ¦--IF: if [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/0] {6} - ¦ °--expr: NULL [0/0] {8} - ¦ °--NULL_CONST: NULL [0/0] {7} - ¦--expr: if(TR [2/1] {9} - ¦ ¦--IF: if [0/0] {10} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--expr: TRUE [0/0] {13} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {12} - ¦ ¦--')': ) [0/0] {14} - ¦ °--expr: NULL [0/0] {16} - ¦ °--NULL_CONST: NULL [0/0] {15} - ¦--COMMENT: # com [0/0] {17} - ¦--expr: if(TR [3/0] {18} - ¦ ¦--IF: if [0/0] {19} - ¦ ¦--'(': ( [0/0] {20} - ¦ ¦--expr: TRUE [0/0] {22} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {21} - ¦ ¦--')': ) [0/1] {23} - ¦ ¦--COMMENT: # com [0/0] {24} - ¦ °--expr: NULL [1/0] {26} - ¦ °--NULL_CONST: NULL [0/0] {25} - ¦--expr: if(TR [2/0] {27} - ¦ ¦--IF: if [0/0] {28} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--expr: TRUE [0/1] {31} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {30} - ¦ ¦--COMMENT: # com [0/0] {32} - ¦ ¦--')': ) [1/0] {33} - ¦ °--expr: NULL [0/0] {35} - ¦ °--NULL_CONST: NULL [0/0] {34} - ¦--expr: if( # [2/0] {36} - ¦ ¦--IF: if [0/0] {37} - ¦ ¦--'(': ( [0/1] {38} - ¦ ¦--COMMENT: # com [0/0] {39} - ¦ ¦--expr: TRUE [1/0] {41} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {40} - ¦ ¦--')': ) [0/0] {42} - ¦ °--expr: NULL [0/0] {44} - ¦ °--NULL_CONST: NULL [0/0] {43} - °--expr: if # [2/0] {45} - ¦--IF: if [0/1] {46} - ¦--COMMENT: # com [0/0] {47} - ¦--'(': ( [1/0] {48} - ¦--expr: TRUE [0/0] {50} - ¦ °--NUM_CONST: TRUE [0/0] {49} - ¦--')': ) [0/0] {51} - °--expr: NULL [0/0] {53} - °--NULL_CONST: NULL [0/0] {52} diff --git a/tests/testthat/line_breaks_and_other/around-eq-sub-in_tree b/tests/testthat/line_breaks_and_other/around-eq-sub-in_tree deleted file mode 100644 index 095d86fc9..000000000 --- a/tests/testthat/line_breaks_and_other/around-eq-sub-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: c(x = [0/0] {1} - ¦ ¦--expr: c [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--SYMBOL_SUB: x [0/1] {5} - ¦ ¦--EQ_SUB: = [0/1] {6} - ¦ ¦--expr: 2 [0/0] {8} - ¦ ¦ °--NUM_CONST: 2 [0/0] {7} - ¦ °--')': ) [0/0] {9} - ¦--expr: c(x = [2/0] {10} - ¦ ¦--expr: c [0/0] {12} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {11} - ¦ ¦--'(': ( [0/0] {13} - ¦ ¦--SYMBOL_SUB: x [0/1] {14} - ¦ ¦--EQ_SUB: = [0/4] {15} - ¦ ¦--expr: 2 [1/0] {17} - ¦ ¦ °--NUM_CONST: 2 [0/0] {16} - ¦ °--')': ) [0/0] {18} - ¦--expr: c( - [2/0] {19} - ¦ ¦--expr: c [0/0] {21} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {20} - ¦ ¦--'(': ( [0/2] {22} - ¦ ¦--SYMBOL_SUB: x [1/1] {23} - ¦ ¦--EQ_SUB: = [0/1] {24} - ¦ ¦--expr: 2 [0/0] {26} - ¦ ¦ °--NUM_CONST: 2 [0/0] {25} - ¦ °--')': ) [0/0] {27} - ¦--expr: c(x - [2/0] {28} - ¦ ¦--expr: c [0/0] {30} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {29} - ¦ ¦--'(': ( [0/0] {31} - ¦ ¦--SYMBOL_SUB: x [0/2] {32} - ¦ ¦--EQ_SUB: = [1/1] {33} - ¦ ¦--expr: 2 [0/0] {35} - ¦ ¦ °--NUM_CONST: 2 [0/0] {34} - ¦ °--')': ) [0/0] {36} - ¦--expr: c(x = [2/0] {37} - ¦ ¦--expr: c [0/0] {39} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {38} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--SYMBOL_SUB: x [0/1] {41} - ¦ ¦--EQ_SUB: = [0/1] {42} - ¦ ¦--expr: 2 [0/0] {44} - ¦ ¦ °--NUM_CONST: 2 [0/0] {43} - ¦ ¦--',': , [0/1] {45} - ¦ ¦--SYMBOL_SUB: a [0/2] {46} - ¦ ¦--EQ_SUB: = [1/4] {47} - ¦ ¦--expr: 1 [1/0] {49} - ¦ ¦ °--NUM_CONST: 1 [0/0] {48} - ¦ °--')': ) [0/0] {50} - ¦--expr: c(x = [3/0] {51} - ¦ ¦--expr: c [0/0] {53} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {52} - ¦ ¦--'(': ( [0/0] {54} - ¦ ¦--SYMBOL_SUB: x [0/1] {55} - ¦ ¦--EQ_SUB: = [0/1] {56} - ¦ ¦--expr: 2 [0/0] {58} - ¦ ¦ °--NUM_CONST: 2 [0/0] {57} - ¦ ¦--',': , [0/1] {59} - ¦ ¦--SYMBOL_SUB: a [0/2] {60} - ¦ ¦--EQ_SUB: = [1/1] {61} - ¦ ¦--COMMENT: # stu [0/4] {62} - ¦ ¦--expr: 1 [1/0] {64} - ¦ ¦ °--NUM_CONST: 1 [0/0] {63} - ¦ °--')': ) [0/0] {65} - ¦--expr: c(b=4 [3/0] {66} - ¦ ¦--expr: c [0/0] {68} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {67} - ¦ ¦--'(': ( [0/0] {69} - ¦ ¦--SYMBOL_SUB: b [0/0] {70} - ¦ ¦--EQ_SUB: = [0/0] {71} - ¦ ¦--expr: 4 [0/0] {73} - ¦ ¦ °--NUM_CONST: 4 [0/0] {72} - ¦ ¦--',': , [0/1] {74} - ¦ ¦--SYMBOL_SUB: x [0/1] {75} - ¦ ¦--COMMENT: # com [0/2] {76} - ¦ ¦--EQ_SUB: = [1/1] {77} - ¦ ¦--expr: 2 [0/0] {79} - ¦ ¦ °--NUM_CONST: 2 [0/0] {78} - ¦ °--')': ) [0/0] {80} - °--expr: c(x = [3/0] {81} - ¦--expr: c [0/0] {83} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {82} - ¦--'(': ( [0/0] {84} - ¦--SYMBOL_SUB: x [0/1] {85} - ¦--EQ_SUB: = [0/0] {86} - ¦--COMMENT: # com [0/2] {87} - ¦--expr: 2 [1/0] {89} - ¦ °--NUM_CONST: 2 [0/0] {88} - ¦--',': , [0/1] {90} - ¦--SYMBOL_SUB: c [0/0] {91} - ¦--EQ_SUB: = [0/0] {92} - °--')': ) [0/0] {93} diff --git a/tests/testthat/line_breaks_and_other/assignment-in_tree b/tests/testthat/line_breaks_and_other/assignment-in_tree deleted file mode 100644 index 22eaa0017..000000000 --- a/tests/testthat/line_breaks_and_other/assignment-in_tree +++ /dev/null @@ -1,115 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: x <- - [0/0] {1} - ¦ ¦--expr: x [0/1] {3} - ¦ ¦ °--SYMBOL: x [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {4} - ¦ °--expr: 2 [1/0] {6} - ¦ °--NUM_CONST: 2 [0/0] {5} - ¦--expr: x <- [3/0] {7} - ¦ ¦--expr: x [0/1] {9} - ¦ ¦ °--SYMBOL: x [0/0] {8} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {10} - ¦ °--expr: 3 [0/0] {12} - ¦ °--NUM_CONST: 3 [0/0] {11} - ¦--COMMENT: # FIX [2/0] {13} - ¦--COMMENT: # not [1/0] {14} - ¦--expr: x <- - [1/0] {15} - ¦ ¦--expr: x [0/1] {17} - ¦ ¦ °--SYMBOL: x [0/0] {16} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {18} - ¦ ¦--COMMENT: # the [1/2] {19} - ¦ °--expr: 3 [2/0] {21} - ¦ °--NUM_CONST: 3 [0/0] {20} - ¦--expr_or_assign_or_help: x = # [3/0] {22} - ¦ ¦--expr: x [0/1] {24} - ¦ ¦ °--SYMBOL: x [0/0] {23} - ¦ ¦--EQ_ASSIGN: = [0/1] {25} - ¦ ¦--COMMENT: # [0/2] {26} - ¦ °--expr: 2 [1/0] {28} - ¦ °--NUM_CONST: 2 [0/0] {27} - ¦--expr_or_assign_or_help: x = 3 [3/0] {29} - ¦ ¦--expr: x [0/1] {31} - ¦ ¦ °--SYMBOL: x [0/0] {30} - ¦ ¦--EQ_ASSIGN: = [0/1] {32} - ¦ °--expr: 3 [0/0] {34} - ¦ °--NUM_CONST: 3 [0/0] {33} - ¦--expr_or_assign_or_help: x = - - [2/0] {35} - ¦ ¦--expr: x [0/1] {37} - ¦ ¦ °--SYMBOL: x [0/0] {36} - ¦ ¦--EQ_ASSIGN: = [0/2] {38} - ¦ ¦--COMMENT: # com [2/2] {39} - ¦ °--expr: 3 [1/0] {41} - ¦ °--NUM_CONST: 3 [0/0] {40} - ¦--expr: Impor [4/0] {42} - ¦ ¦--expr: Impor [0/1] {43} - ¦ ¦ ¦--expr: Impor [0/0] {45} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {44} - ¦ ¦ ¦--'$': $ [0/0] {46} - ¦ ¦ °--SYMBOL: Impor [0/0] {47} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {48} - ¦ ¦--expr: Impor [1/1] {50} - ¦ ¦ ¦--expr: Impor [0/0] {52} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {51} - ¦ ¦ ¦--'$': $ [0/0] {53} - ¦ ¦ °--SYMBOL: Impor [0/0] {54} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {55} - ¦ °--expr: Compl [1/0] {56} - ¦ ¦--expr: Compl [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--expr: Impor [0/0] {60} - ¦ ¦ ¦--expr: Impor [0/0] {62} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {61} - ¦ ¦ ¦--'$': $ [0/0] {63} - ¦ ¦ °--SYMBOL: Input [0/0] {64} - ¦ °--')': ) [0/0] {65} - ¦--expr: Impor [3/0] {66} - ¦ ¦--expr: Impor [0/1] {67} - ¦ ¦ ¦--expr: Impor [0/0] {69} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {68} - ¦ ¦ ¦--'$': $ [0/0] {70} - ¦ ¦ °--SYMBOL: Impor [0/0] {71} - ¦ ¦--LEFT_ASSIGN: <- [0/2] {72} - ¦ ¦--expr: Impor [1/1] {74} - ¦ ¦ ¦--expr: Impor [0/0] {76} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {75} - ¦ ¦ ¦--'$': $ [0/0] {77} - ¦ ¦ °--SYMBOL: Impor [0/0] {78} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {79} - ¦ °--expr: Compl [0/0] {80} - ¦ ¦--expr: Compl [0/0] {82} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {81} - ¦ ¦--'(': ( [0/0] {83} - ¦ ¦--expr: Impor [0/0] {84} - ¦ ¦ ¦--expr: Impor [0/0] {86} - ¦ ¦ ¦ °--SYMBOL: Impor [0/0] {85} - ¦ ¦ ¦--'$': $ [0/0] {87} - ¦ ¦ °--SYMBOL: Input [0/0] {88} - ¦ °--')': ) [0/0] {89} - °--expr: Impor [4/0] {90} - ¦--expr: Impor [0/1] {91} - ¦ ¦--expr: Impor [0/0] {93} - ¦ ¦ °--SYMBOL: Impor [0/0] {92} - ¦ ¦--'$': $ [0/0] {94} - ¦ °--SYMBOL: Impor [0/0] {95} - ¦--LEFT_ASSIGN: <- [0/2] {96} - ¦--expr: Impor [2/1] {98} - ¦ ¦--expr: Impor [0/0] {100} - ¦ ¦ °--SYMBOL: Impor [0/0] {99} - ¦ ¦--'$': $ [0/0] {101} - ¦ °--SYMBOL: Impor [0/0] {102} - ¦--LEFT_ASSIGN: <- [0/1] {103} - °--expr: Compl [0/0] {104} - ¦--expr: Compl [0/0] {106} - ¦ °--SYMBOL_FUNCTION_CALL: Compl [0/0] {105} - ¦--'(': ( [0/0] {107} - ¦--expr: Impor [0/0] {108} - ¦ ¦--expr: Impor [0/0] {110} - ¦ ¦ °--SYMBOL: Impor [0/0] {109} - ¦ ¦--'$': $ [0/0] {111} - ¦ °--SYMBOL: Input [0/0] {112} - °--')': ) [0/0] {113} diff --git a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree b/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree deleted file mode 100644 index c685ecc97..000000000 --- a/tests/testthat/line_breaks_and_other/base-pipe-line-breaks-in_tree +++ /dev/null @@ -1,465 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: c(a | [0/0] {1} - ¦ ¦--expr: c [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: a |> [0/0] {5} - ¦ ¦ ¦--expr: a [0/1] {7} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {6} - ¦ ¦ ¦--PIPE: |> [0/1] {8} - ¦ ¦ °--expr: b() [0/0] {9} - ¦ ¦ ¦--expr: b [0/0] {11} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {10} - ¦ ¦ ¦--'(': ( [0/0] {12} - ¦ ¦ °--')': ) [0/0] {13} - ¦ °--')': ) [0/0] {14} - ¦--expr: c(a + [2/0] {15} - ¦ ¦--expr: c [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {16} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--expr: a + b [0/0] {19} - ¦ ¦ ¦--expr: a [0/1] {21} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {20} - ¦ ¦ ¦--'+': + [0/1] {22} - ¦ ¦ ¦--expr: b [0/1] {25} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {24} - ¦ ¦ ¦--PIPE: |> [0/1] {26} - ¦ ¦ °--expr: c() [0/0] {27} - ¦ ¦ ¦--expr: c [0/0] {29} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {28} - ¦ ¦ ¦--'(': ( [0/0] {30} - ¦ ¦ °--')': ) [0/0] {31} - ¦ °--')': ) [0/0] {32} - ¦--expr: c(a | [3/0] {33} - ¦ ¦--expr: c [0/0] {35} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {34} - ¦ ¦--'(': ( [0/0] {36} - ¦ ¦--expr: a |> [0/0] {37} - ¦ ¦ ¦--expr: a [0/1] {39} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {38} - ¦ ¦ ¦--PIPE: |> [0/1] {40} - ¦ ¦ °--expr: b() [0/0] {41} - ¦ ¦ ¦--expr: b [0/0] {43} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {42} - ¦ ¦ ¦--'(': ( [0/0] {44} - ¦ ¦ °--')': ) [0/0] {45} - ¦ °--')': ) [1/0] {46} - ¦--expr: c(a | [2/0] {47} - ¦ ¦--expr: c [0/0] {49} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {48} - ¦ ¦--'(': ( [0/0] {50} - ¦ ¦--expr: a |> [0/1] {51} - ¦ ¦ ¦--expr: a [0/1] {53} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {52} - ¦ ¦ ¦--PIPE: |> [0/1] {54} - ¦ ¦ °--expr: b() [0/0] {55} - ¦ ¦ ¦--expr: b [0/0] {57} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {56} - ¦ ¦ ¦--'(': ( [0/0] {58} - ¦ ¦ °--')': ) [0/0] {59} - ¦ ¦--COMMENT: # 33 [0/0] {60} - ¦ °--')': ) [1/0] {61} - ¦--expr: c( - [2/0] {62} - ¦ ¦--expr: c [0/0] {64} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {63} - ¦ ¦--'(': ( [0/2] {65} - ¦ ¦--expr: a + b [1/2] {66} - ¦ ¦ ¦--expr: a [0/1] {68} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {67} - ¦ ¦ ¦--'+': + [0/1] {69} - ¦ ¦ ¦--expr: b [0/1] {72} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {71} - ¦ ¦ ¦--PIPE: |> [0/1] {73} - ¦ ¦ °--expr: c() [0/0] {74} - ¦ ¦ ¦--expr: c [0/0] {76} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {75} - ¦ ¦ ¦--'(': ( [0/0] {77} - ¦ ¦ °--')': ) [0/0] {78} - ¦ °--')': ) [1/0] {79} - ¦--expr: c( - [2/0] {80} - ¦ ¦--expr: c [0/0] {82} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {81} - ¦ ¦--'(': ( [0/2] {83} - ¦ ¦--expr: a + b [1/0] {84} - ¦ ¦ ¦--expr: a [0/1] {86} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {85} - ¦ ¦ ¦--'+': + [0/1] {87} - ¦ ¦ ¦--expr: b [0/1] {90} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {89} - ¦ ¦ ¦--PIPE: |> [0/4] {91} - ¦ ¦ °--expr: c() [1/0] {92} - ¦ ¦ ¦--expr: c [0/0] {94} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {93} - ¦ ¦ ¦--'(': ( [0/0] {95} - ¦ ¦ °--')': ) [0/0] {96} - ¦ °--')': ) [0/0] {97} - ¦--expr: c(a + [2/0] {98} - ¦ ¦--expr: c [0/0] {100} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {99} - ¦ ¦--'(': ( [0/0] {101} - ¦ ¦--expr: a + b [0/0] {102} - ¦ ¦ ¦--expr: a [0/1] {104} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {103} - ¦ ¦ ¦--'+': + [0/1] {105} - ¦ ¦ ¦--expr: b [0/1] {108} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {107} - ¦ ¦ ¦--PIPE: |> [0/4] {109} - ¦ ¦ °--expr: c() [1/0] {110} - ¦ ¦ ¦--expr: c [0/0] {112} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {111} - ¦ ¦ ¦--'(': ( [0/0] {113} - ¦ ¦ °--')': ) [0/0] {114} - ¦ °--')': ) [1/0] {115} - ¦--expr: c( - [2/0] {116} - ¦ ¦--expr: c [0/0] {118} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {117} - ¦ ¦--'(': ( [0/2] {119} - ¦ ¦--expr: a + b [1/0] {120} - ¦ ¦ ¦--expr: a [0/1] {122} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {121} - ¦ ¦ ¦--'+': + [0/1] {123} - ¦ ¦ ¦--expr: b [0/1] {126} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {125} - ¦ ¦ ¦--PIPE: |> [0/1] {127} - ¦ ¦ ¦--COMMENT: # 654 [0/4] {128} - ¦ ¦ °--expr: c() [1/0] {129} - ¦ ¦ ¦--expr: c [0/0] {131} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {130} - ¦ ¦ ¦--'(': ( [0/0] {132} - ¦ ¦ °--')': ) [0/0] {133} - ¦ °--')': ) [1/0] {134} - ¦--expr: c( # [2/0] {135} - ¦ ¦--expr: c [0/0] {137} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {136} - ¦ ¦--'(': ( [0/1] {138} - ¦ ¦--COMMENT: # rr [0/2] {139} - ¦ ¦--expr: a + b [1/0] {140} - ¦ ¦ ¦--expr: a [0/1] {142} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {141} - ¦ ¦ ¦--'+': + [0/1] {143} - ¦ ¦ ¦--expr: b [0/1] {146} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {145} - ¦ ¦ ¦--PIPE: |> [0/4] {147} - ¦ ¦ °--expr: c() [1/0] {148} - ¦ ¦ ¦--expr: c [0/0] {150} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {149} - ¦ ¦ ¦--'(': ( [0/0] {151} - ¦ ¦ °--')': ) [0/0] {152} - ¦ °--')': ) [1/0] {153} - ¦--expr: c( - [2/0] {154} - ¦ ¦--expr: c [0/0] {156} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {155} - ¦ ¦--'(': ( [0/2] {157} - ¦ ¦--expr: a + - [1/0] {158} - ¦ ¦ ¦--expr: a [0/1] {160} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {159} - ¦ ¦ ¦--'+': + [0/4] {161} - ¦ ¦ ¦--expr: b [1/1] {164} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {163} - ¦ ¦ ¦--PIPE: |> [0/1] {165} - ¦ ¦ °--expr: c() [0/0] {166} - ¦ ¦ ¦--expr: c [0/0] {168} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {167} - ¦ ¦ ¦--'(': ( [0/0] {169} - ¦ ¦ °--')': ) [0/0] {170} - ¦ °--')': ) [1/0] {171} - ¦--expr: c(a + [2/0] {172} - ¦ ¦--expr: c [0/0] {174} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {173} - ¦ ¦--'(': ( [0/0] {175} - ¦ ¦--expr: a + - [0/0] {176} - ¦ ¦ ¦--expr: a [0/1] {178} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {177} - ¦ ¦ ¦--'+': + [0/4] {179} - ¦ ¦ ¦--expr: b [1/1] {182} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {181} - ¦ ¦ ¦--PIPE: |> [0/1] {183} - ¦ ¦ °--expr: c() [0/0] {184} - ¦ ¦ ¦--expr: c [0/0] {186} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {185} - ¦ ¦ ¦--'(': ( [0/0] {187} - ¦ ¦ °--')': ) [0/0] {188} - ¦ °--')': ) [1/0] {189} - ¦--expr: a |> [2/0] {190} - ¦ ¦--expr: a [0/1] {192} - ¦ ¦ °--SYMBOL: a [0/0] {191} - ¦ ¦--PIPE: |> [0/1] {193} - ¦ °--expr: b( -) [0/0] {194} - ¦ ¦--expr: b [0/0] {196} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {195} - ¦ ¦--'(': ( [0/0] {197} - ¦ °--')': ) [1/0] {198} - ¦--expr: a |> [2/0] {199} - ¦ ¦--expr: a [0/1] {202} - ¦ ¦ °--SYMBOL: a [0/0] {201} - ¦ ¦--PIPE: |> [0/1] {203} - ¦ ¦--expr: b( -) [0/1] {204} - ¦ ¦ ¦--expr: b [0/0] {206} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {205} - ¦ ¦ ¦--'(': ( [0/0] {207} - ¦ ¦ °--')': ) [1/0] {208} - ¦ ¦--PIPE: |> [0/1] {209} - ¦ °--expr: q() [0/0] {210} - ¦ ¦--expr: q [0/0] {212} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {211} - ¦ ¦--'(': ( [0/0] {213} - ¦ °--')': ) [0/0] {214} - ¦--expr: a |> - [2/0] {215} - ¦ ¦--expr: a [0/1] {217} - ¦ ¦ °--SYMBOL: a [0/0] {216} - ¦ ¦--PIPE: |> [0/2] {218} - ¦ °--expr: b() [1/0] {219} - ¦ ¦--expr: b [0/0] {221} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {220} - ¦ ¦--'(': ( [0/0] {222} - ¦ °--')': ) [0/0] {223} - ¦--expr: a |> [2/0] {224} - ¦ ¦--expr: a [0/1] {227} - ¦ ¦ °--SYMBOL: a [0/0] {226} - ¦ ¦--PIPE: |> [0/1] {228} - ¦ ¦--expr: b() [0/1] {229} - ¦ ¦ ¦--expr: b [0/0] {231} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {230} - ¦ ¦ ¦--'(': ( [0/0] {232} - ¦ ¦ °--')': ) [0/0] {233} - ¦ ¦--PIPE: |> [0/1] {234} - ¦ °--expr: c() [0/0] {235} - ¦ ¦--expr: c [0/0] {237} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {236} - ¦ ¦--'(': ( [0/0] {238} - ¦ °--')': ) [0/0] {239} - ¦--COMMENT: # sho [2/0] {240} - ¦--expr: a |> [1/0] {241} - ¦ ¦--expr: a [0/1] {243} - ¦ ¦ °--SYMBOL: a [0/0] {242} - ¦ ¦--PIPE: |> [0/1] {244} - ¦ °--expr: b() [0/0] {245} - ¦ ¦--expr: b [0/0] {247} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {246} - ¦ ¦--'(': ( [0/0] {248} - ¦ °--')': ) [0/0] {249} - ¦--expr: fun(x [2/0] {250} - ¦ ¦--expr: fun [0/0] {252} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {251} - ¦ ¦--'(': ( [0/0] {253} - ¦ ¦--expr: x [0/0] {255} - ¦ ¦ °--SYMBOL: x [0/0] {254} - ¦ ¦--',': , [0/2] {256} - ¦ ¦--expr: a |> [1/0] {257} - ¦ ¦ ¦--expr: a [0/1] {259} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {258} - ¦ ¦ ¦--PIPE: |> [0/1] {260} - ¦ ¦ °--expr: b() [0/0] {261} - ¦ ¦ ¦--expr: b [0/0] {263} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {262} - ¦ ¦ ¦--'(': ( [0/0] {264} - ¦ ¦ °--')': ) [0/0] {265} - ¦ °--')': ) [0/0] {266} - ¦--expr: fun(x [2/0] {267} - ¦ ¦--expr: fun [0/0] {269} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {268} - ¦ ¦--'(': ( [0/0] {270} - ¦ ¦--expr: x [0/0] {272} - ¦ ¦ °--SYMBOL: x [0/0] {271} - ¦ ¦--',': , [0/4] {273} - ¦ ¦--SYMBOL_SUB: gg [1/1] {274} - ¦ ¦--EQ_SUB: = [0/1] {275} - ¦ ¦--expr: a |> [0/0] {276} - ¦ ¦ ¦--expr: a [0/1] {278} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {277} - ¦ ¦ ¦--PIPE: |> [0/1] {279} - ¦ ¦ °--expr: b() [0/0] {280} - ¦ ¦ ¦--expr: b [0/0] {282} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {281} - ¦ ¦ ¦--'(': ( [0/0] {283} - ¦ ¦ °--')': ) [0/0] {284} - ¦ ¦--',': , [0/4] {285} - ¦ ¦--expr: tt |> [1/0] {286} - ¦ ¦ ¦--expr: tt [0/1] {288} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {287} - ¦ ¦ ¦--PIPE: |> [0/1] {289} - ¦ ¦ °--expr: q() [0/0] {290} - ¦ ¦ ¦--expr: q [0/0] {292} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {291} - ¦ ¦ ¦--'(': ( [0/0] {293} - ¦ ¦ °--')': ) [0/0] {294} - ¦ °--')': ) [0/0] {295} - ¦--expr: fun(x [2/0] {296} - ¦ ¦--expr: fun [0/0] {298} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {297} - ¦ ¦--'(': ( [0/0] {299} - ¦ ¦--expr: x [0/0] {301} - ¦ ¦ °--SYMBOL: x [0/0] {300} - ¦ ¦--',': , [0/1] {302} - ¦ ¦--SYMBOL_SUB: gg [0/1] {303} - ¦ ¦--EQ_SUB: = [0/1] {304} - ¦ ¦--expr: a |> [0/0] {305} - ¦ ¦ ¦--expr: a [0/1] {307} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {306} - ¦ ¦ ¦--PIPE: |> [0/1] {308} - ¦ ¦ °--expr: b() [0/0] {309} - ¦ ¦ ¦--expr: b [0/0] {311} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {310} - ¦ ¦ ¦--'(': ( [0/0] {312} - ¦ ¦ °--')': ) [0/0] {313} - ¦ ¦--',': , [0/1] {314} - ¦ ¦--expr: tt |> [0/0] {315} - ¦ ¦ ¦--expr: tt [0/1] {317} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {316} - ¦ ¦ ¦--PIPE: |> [0/1] {318} - ¦ ¦ °--expr: q() [0/0] {319} - ¦ ¦ ¦--expr: q [0/0] {321} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {320} - ¦ ¦ ¦--'(': ( [0/0] {322} - ¦ ¦ °--')': ) [0/0] {323} - ¦ °--')': ) [0/0] {324} - ¦--expr_or_assign_or_help: z = a [2/0] {325} - ¦ ¦--expr: z [0/1] {327} - ¦ ¦ °--SYMBOL: z [0/0] {326} - ¦ ¦--EQ_ASSIGN: = [0/1] {328} - ¦ ¦--expr: a [0/1] {331} - ¦ ¦ °--SYMBOL: a [0/0] {330} - ¦ ¦--PIPE: |> [0/1] {332} - ¦ °--expr: b() [0/0] {333} - ¦ ¦--expr: b [0/0] {335} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {334} - ¦ ¦--'(': ( [0/0] {336} - ¦ °--')': ) [0/0] {337} - ¦--expr: fun( [2/0] {338} - ¦ ¦--expr: fun [0/0] {340} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {339} - ¦ ¦--'(': ( [0/1] {341} - ¦ ¦--SYMBOL_SUB: s [0/1] {342} - ¦ ¦--EQ_SUB: = [0/1] {343} - ¦ ¦--expr: g(x) [0/0] {344} - ¦ ¦ ¦--expr: g [0/0] {346} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {345} - ¦ ¦ ¦--'(': ( [0/0] {347} - ¦ ¦ ¦--expr: x [0/0] {349} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {348} - ¦ ¦ °--')': ) [0/0] {350} - ¦ ¦--',': , [0/4] {351} - ¦ ¦--SYMBOL_SUB: gg [1/1] {352} - ¦ ¦--EQ_SUB: = [0/1] {353} - ¦ ¦--expr: a(n = [0/0] {354} - ¦ ¦ ¦--expr: a(n = [0/1] {355} - ¦ ¦ ¦ ¦--expr: a [0/0] {357} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {356} - ¦ ¦ ¦ ¦--'(': ( [0/0] {358} - ¦ ¦ ¦ ¦--expr: n == [0/0] {359} - ¦ ¦ ¦ ¦ ¦--expr: n [0/1] {361} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: n [0/0] {360} - ¦ ¦ ¦ ¦ ¦--EQ: == [0/1] {362} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {364} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {363} - ¦ ¦ ¦ °--')': ) [0/0] {365} - ¦ ¦ ¦--PIPE: |> [0/1] {366} - ¦ ¦ °--expr: b() [0/0] {367} - ¦ ¦ ¦--expr: b [0/0] {369} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {368} - ¦ ¦ ¦--'(': ( [0/0] {370} - ¦ ¦ °--')': ) [0/0] {371} - ¦ ¦--',': , [0/4] {372} - ¦ ¦--expr: tt |> [1/0] {373} - ¦ ¦ ¦--expr: tt [0/1] {375} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {374} - ¦ ¦ ¦--PIPE: |> [0/1] {376} - ¦ ¦ °--expr: q(r = [0/0] {377} - ¦ ¦ ¦--expr: q [0/0] {379} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {378} - ¦ ¦ ¦--'(': ( [0/0] {380} - ¦ ¦ ¦--SYMBOL_SUB: r [0/1] {381} - ¦ ¦ ¦--EQ_SUB: = [0/1] {382} - ¦ ¦ ¦--expr: 3 [0/0] {384} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {383} - ¦ ¦ °--')': ) [0/0] {385} - ¦ °--')': ) [0/0] {386} - ¦--COMMENT: # FIX [2/0] {387} - ¦--expr: blew( [1/0] {388} - ¦ ¦--expr: blew [0/0] {390} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {389} - ¦ ¦--'(': ( [0/0] {391} - ¦ ¦--expr: x |> - [0/0] {392} - ¦ ¦ ¦--expr: x [0/1] {394} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {393} - ¦ ¦ ¦--PIPE: |> [0/7] {395} - ¦ ¦ °--expr: c() [2/0] {396} - ¦ ¦ ¦--expr: c [0/0] {398} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {397} - ¦ ¦ ¦--'(': ( [0/0] {399} - ¦ ¦ °--')': ) [0/0] {400} - ¦ ¦--',': , [0/1] {401} - ¦ ¦--SYMBOL_SUB: y [0/1] {402} - ¦ ¦--EQ_SUB: = [0/1] {403} - ¦ ¦--expr: 2 [0/0] {405} - ¦ ¦ °--NUM_CONST: 2 [0/0] {404} - ¦ °--')': ) [0/0] {406} - ¦--COMMENT: # FIX [2/0] {407} - ¦--expr: blew( [1/0] {408} - ¦ ¦--expr: blew [0/0] {410} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {409} - ¦ ¦--'(': ( [0/0] {411} - ¦ ¦--SYMBOL_SUB: y [0/1] {412} - ¦ ¦--EQ_SUB: = [0/1] {413} - ¦ ¦--expr: 2 [0/0] {415} - ¦ ¦ °--NUM_CONST: 2 [0/0] {414} - ¦ ¦--',': , [0/1] {416} - ¦ ¦--expr: x |> - [0/0] {417} - ¦ ¦ ¦--expr: x [0/1] {419} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {418} - ¦ ¦ ¦--PIPE: |> [0/7] {420} - ¦ ¦ °--expr: c() [1/0] {421} - ¦ ¦ ¦--expr: c [0/0] {423} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {422} - ¦ ¦ ¦--'(': ( [0/0] {424} - ¦ ¦ °--')': ) [0/0] {425} - ¦ °--')': ) [0/0] {426} - ¦--expr: {a |> [3/0] {427} - ¦ ¦--'{': { [0/0] {428} - ¦ ¦--expr: a |> [0/0] {429} - ¦ ¦ ¦--expr: a [0/1] {432} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {431} - ¦ ¦ ¦--PIPE: |> [0/1] {433} - ¦ ¦ ¦--expr: c() [0/1] {434} - ¦ ¦ ¦ ¦--expr: c [0/0] {436} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {435} - ¦ ¦ ¦ ¦--'(': ( [0/0] {437} - ¦ ¦ ¦ °--')': ) [0/0] {438} - ¦ ¦ ¦--'+': + [0/0] {439} - ¦ ¦ °--expr: 1 [0/0] {441} - ¦ ¦ °--NUM_CONST: 1 [0/0] {440} - ¦ °--'}': } [0/0] {442} - °--expr: b |> - [2/0] {443} - ¦--expr: b [0/1] {447} - ¦ °--SYMBOL: b [0/0] {446} - ¦--PIPE: |> [0/2] {448} - ¦--expr: f() [1/1] {449} - ¦ ¦--expr: f [0/0] {451} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {450} - ¦ ¦--'(': ( [0/0] {452} - ¦ °--')': ) [0/0] {453} - ¦--PIPE: |> [0/1] {454} - ¦--COMMENT: # nev [0/2] {455} - ¦--expr: k() [1/1] {456} - ¦ ¦--expr: k [0/0] {458} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {457} - ¦ ¦--'(': ( [0/0] {459} - ¦ °--')': ) [0/0] {460} - ¦--PIPE: |> [0/2] {461} - °--expr: x() [1/0] {462} - ¦--expr: x [0/0] {464} - ¦ °--SYMBOL_FUNCTION_CALL: x [0/0] {463} - ¦--'(': ( [0/0] {465} - °--')': ) [0/0] {466} diff --git a/tests/testthat/line_breaks_and_other/braces-fun-calls1-in_tree b/tests/testthat/line_breaks_and_other/braces-fun-calls1-in_tree deleted file mode 100644 index a62afee1c..000000000 --- a/tests/testthat/line_breaks_and_other/braces-fun-calls1-in_tree +++ /dev/null @@ -1,132 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # the [0/0] {1} - ¦--expr: test_ [1/0] {2} - ¦ ¦--expr: test_ [0/0] {4} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {3} - ¦ ¦--'(': ( [0/0] {5} - ¦ ¦--expr: x [0/0] {7} - ¦ ¦ °--SYMBOL: x [0/0] {6} - ¦ ¦--',': , [0/1] {8} - ¦ ¦--expr: { - h [0/0] {9} - ¦ ¦ ¦--'{': { [0/2] {10} - ¦ ¦ ¦--expr: hh [1/0] {12} - ¦ ¦ ¦ °--SYMBOL: hh [0/0] {11} - ¦ ¦ °--'}': } [1/0] {13} - ¦ °--')': ) [0/0] {14} - ¦--expr: test_ [2/0] {15} - ¦ ¦--expr: test_ [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {16} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--expr: x [0/0] {20} - ¦ ¦ °--SYMBOL: x [0/0] {19} - ¦ ¦--',': , [0/2] {21} - ¦ ¦--expr: { - [1/0] {22} - ¦ ¦ ¦--'{': { [0/4] {23} - ¦ ¦ ¦--expr: hh [1/2] {25} - ¦ ¦ ¦ °--SYMBOL: hh [0/0] {24} - ¦ ¦ °--'}': } [1/0] {26} - ¦ °--')': ) [1/0] {27} - ¦--COMMENT: # the [3/0] {28} - ¦--COMMENT: # (cl [1/0] {29} - ¦--expr: tryCa [1/0] {30} - ¦ ¦--expr: tryCa [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tryCa [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: { - e [0/0] {34} - ¦ ¦ ¦--'{': { [0/2] {35} - ¦ ¦ ¦--expr: exp(x [1/0] {36} - ¦ ¦ ¦ ¦--expr: exp [0/0] {38} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: exp [0/0] {37} - ¦ ¦ ¦ ¦--'(': ( [0/0] {39} - ¦ ¦ ¦ ¦--expr: x [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {40} - ¦ ¦ ¦ °--')': ) [0/0] {42} - ¦ ¦ °--'}': } [1/0] {43} - ¦ ¦--',': , [0/1] {44} - ¦ ¦--SYMBOL_SUB: error [0/1] {45} - ¦ ¦--EQ_SUB: = [0/1] {46} - ¦ ¦--expr: funct [0/0] {47} - ¦ ¦ ¦--FUNCTION: funct [0/0] {48} - ¦ ¦ ¦--'(': ( [0/0] {49} - ¦ ¦ ¦--SYMBOL_FORMALS: x [0/0] {50} - ¦ ¦ ¦--')': ) [0/1] {51} - ¦ ¦ °--expr: x [0/0] {53} - ¦ ¦ °--SYMBOL: x [0/0] {52} - ¦ °--')': ) [0/0] {54} - ¦--expr: tryCa [2/0] {55} - ¦ ¦--expr: tryCa [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tryCa [0/0] {56} - ¦ ¦--'(': ( [0/2] {58} - ¦ ¦--expr: { - [1/0] {59} - ¦ ¦ ¦--'{': { [0/4] {60} - ¦ ¦ ¦--expr: exp(x [1/2] {61} - ¦ ¦ ¦ ¦--expr: exp [0/0] {63} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: exp [0/0] {62} - ¦ ¦ ¦ ¦--'(': ( [0/0] {64} - ¦ ¦ ¦ ¦--expr: x [0/0] {66} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {65} - ¦ ¦ ¦ °--')': ) [0/0] {67} - ¦ ¦ °--'}': } [1/0] {68} - ¦ ¦--',': , [0/2] {69} - ¦ ¦--SYMBOL_SUB: error [1/1] {70} - ¦ ¦--EQ_SUB: = [0/1] {71} - ¦ ¦--expr: funct [0/0] {72} - ¦ ¦ ¦--FUNCTION: funct [0/0] {73} - ¦ ¦ ¦--'(': ( [0/0] {74} - ¦ ¦ ¦--SYMBOL_FORMALS: x [0/0] {75} - ¦ ¦ ¦--')': ) [0/1] {76} - ¦ ¦ °--expr: x [0/0] {78} - ¦ ¦ °--SYMBOL: x [0/0] {77} - ¦ °--')': ) [1/0] {79} - ¦--expr: call( [2/0] {80} - ¦ ¦--expr: call [0/0] {82} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {81} - ¦ ¦--'(': ( [0/0] {83} - ¦ ¦--expr: { - b [0/0] {84} - ¦ ¦ ¦--'{': { [0/2] {85} - ¦ ¦ ¦--expr: blibl [1/0] {87} - ¦ ¦ ¦ °--SYMBOL: blibl [0/0] {86} - ¦ ¦ °--'}': } [1/0] {88} - ¦ ¦--',': , [0/1] {89} - ¦ ¦--expr: { - b [0/0] {90} - ¦ ¦ ¦--'{': { [0/2] {91} - ¦ ¦ ¦--expr: blubl [1/0] {93} - ¦ ¦ ¦ °--SYMBOL: blubl [0/0] {92} - ¦ ¦ °--'}': } [1/0] {94} - ¦ °--')': ) [0/0] {95} - ¦--COMMENT: # cur [2/0] {96} - ¦--expr: fio({ [1/0] {97} - ¦ ¦--expr: fio [0/0] {99} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fio [0/0] {98} - ¦ ¦--'(': ( [0/0] {100} - ¦ ¦--expr: {{x}} [0/0] {101} - ¦ ¦ ¦--'{': { [0/0] {102} - ¦ ¦ ¦--expr: {x} [0/0] {103} - ¦ ¦ ¦ ¦--'{': { [0/0] {104} - ¦ ¦ ¦ ¦--expr: x [0/0] {106} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {105} - ¦ ¦ ¦ °--'}': } [0/0] {107} - ¦ ¦ °--'}': } [0/0] {108} - ¦ °--')': ) [0/0] {109} - °--expr: test_ [2/0] {110} - ¦--expr: test_ [0/0] {112} - ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {111} - ¦--'(': ( [0/0] {113} - ¦--expr: "x" [0/0] {115} - ¦ °--STR_CONST: "x" [0/0] {114} - ¦--',': , [0/1] {116} - ¦--expr: {{ k [0/0] {117} - ¦ ¦--'{': { [0/0] {118} - ¦ ¦--expr: { k } [0/0] {119} - ¦ ¦ ¦--'{': { [0/1] {120} - ¦ ¦ ¦--expr: k [0/1] {122} - ¦ ¦ ¦ °--SYMBOL: k [0/0] {121} - ¦ ¦ °--'}': } [0/0] {123} - ¦ °--'}': } [0/0] {124} - °--')': ) [0/0] {125} diff --git a/tests/testthat/line_breaks_and_other/braces-fun-calls2-in_tree b/tests/testthat/line_breaks_and_other/braces-fun-calls2-in_tree deleted file mode 100644 index 2a73d4886..000000000 --- a/tests/testthat/line_breaks_and_other/braces-fun-calls2-in_tree +++ /dev/null @@ -1,342 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: test( [0/0] {1} - ¦ ¦--expr: test [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: "x" [1/0] {6} - ¦ ¦ °--STR_CONST: "x" [0/0] {5} - ¦ ¦--',': , [0/2] {7} - ¦ ¦--expr: { - - [1/0] {8} - ¦ ¦ ¦--'{': { [0/2] {9} - ¦ ¦ °--'}': } [2/0] {10} - ¦ ¦--',': , [0/1] {11} - ¦ ¦--expr: a + b [0/0] {12} - ¦ ¦ ¦--expr: a [0/1] {14} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {13} - ¦ ¦ ¦--'+': + [0/1] {15} - ¦ ¦ °--expr: b [0/0] {17} - ¦ ¦ °--SYMBOL: b [0/0] {16} - ¦ ¦--',': , [0/1] {18} - ¦ ¦--expr: { - [0/0] {19} - ¦ ¦ ¦--'{': { [0/4] {20} - ¦ ¦ ¦--expr: s(x = [1/2] {21} - ¦ ¦ ¦ ¦--expr: s [0/0] {23} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {22} - ¦ ¦ ¦ ¦--'(': ( [0/0] {24} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {25} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {26} - ¦ ¦ ¦ ¦--expr: sd [0/0] {28} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {27} - ¦ ¦ ¦ °--')': ) [0/0] {29} - ¦ ¦ °--'}': } [1/0] {30} - ¦ °--')': ) [1/0] {31} - ¦--expr: test( [2/0] {32} - ¦ ¦--expr: test [0/0] {34} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {33} - ¦ ¦--'(': ( [0/2] {35} - ¦ ¦--expr: "x" [1/0] {37} - ¦ ¦ °--STR_CONST: "x" [0/0] {36} - ¦ ¦--',': , [0/1] {38} - ¦ ¦--expr: { - - [0/0] {39} - ¦ ¦ ¦--'{': { [0/2] {40} - ¦ ¦ °--'}': } [2/0] {41} - ¦ ¦--',': , [0/1] {42} - ¦ ¦--expr: a + b [0/0] {43} - ¦ ¦ ¦--expr: a [0/1] {45} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {44} - ¦ ¦ ¦--'+': + [0/1] {46} - ¦ ¦ °--expr: b [0/0] {48} - ¦ ¦ °--SYMBOL: b [0/0] {47} - ¦ ¦--',': , [0/1] {49} - ¦ ¦--expr: { - [0/0] {50} - ¦ ¦ ¦--'{': { [0/4] {51} - ¦ ¦ ¦--expr: s(x = [1/2] {52} - ¦ ¦ ¦ ¦--expr: s [0/0] {54} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {53} - ¦ ¦ ¦ ¦--'(': ( [0/0] {55} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {56} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {57} - ¦ ¦ ¦ ¦--expr: sd [0/0] {59} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {58} - ¦ ¦ ¦ °--')': ) [0/0] {60} - ¦ ¦ °--'}': } [1/0] {61} - ¦ °--')': ) [1/0] {62} - ¦--expr: test( [2/0] {63} - ¦ ¦--expr: test [0/0] {65} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {64} - ¦ ¦--'(': ( [0/2] {66} - ¦ ¦--expr: "x" [1/0] {68} - ¦ ¦ °--STR_CONST: "x" [0/0] {67} - ¦ ¦--',': , [0/2] {69} - ¦ ¦--expr: { - - [1/0] {70} - ¦ ¦ ¦--'{': { [0/2] {71} - ¦ ¦ °--'}': } [2/0] {72} - ¦ ¦--',': , [0/2] {73} - ¦ ¦--expr: a + b [1/0] {74} - ¦ ¦ ¦--expr: a [0/1] {76} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {75} - ¦ ¦ ¦--'+': + [0/1] {77} - ¦ ¦ °--expr: b [0/0] {79} - ¦ ¦ °--SYMBOL: b [0/0] {78} - ¦ ¦--',': , [0/1] {80} - ¦ ¦--expr: { - [0/0] {81} - ¦ ¦ ¦--'{': { [0/4] {82} - ¦ ¦ ¦--expr: s(x = [1/2] {83} - ¦ ¦ ¦ ¦--expr: s [0/0] {85} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {84} - ¦ ¦ ¦ ¦--'(': ( [0/0] {86} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {87} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {88} - ¦ ¦ ¦ ¦--expr: sd [0/0] {90} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {89} - ¦ ¦ ¦ °--')': ) [0/0] {91} - ¦ ¦ °--'}': } [1/0] {92} - ¦ °--')': ) [1/0] {93} - ¦--expr: test( [3/0] {94} - ¦ ¦--expr: test [0/0] {96} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {95} - ¦ ¦--'(': ( [0/2] {97} - ¦ ¦--expr: "x" [1/0] {99} - ¦ ¦ °--STR_CONST: "x" [0/0] {98} - ¦ ¦--',': , [0/2] {100} - ¦ ¦--expr: { - - [1/0] {101} - ¦ ¦ ¦--'{': { [0/2] {102} - ¦ ¦ °--'}': } [2/0] {103} - ¦ ¦--',': , [0/2] {104} - ¦ ¦--expr: a + b [1/0] {105} - ¦ ¦ ¦--expr: a [0/1] {107} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {106} - ¦ ¦ ¦--'+': + [0/1] {108} - ¦ ¦ °--expr: b [0/0] {110} - ¦ ¦ °--SYMBOL: b [0/0] {109} - ¦ ¦--',': , [0/2] {111} - ¦ ¦--expr: { - [1/0] {112} - ¦ ¦ ¦--'{': { [0/4] {113} - ¦ ¦ ¦--expr: s(x = [1/2] {114} - ¦ ¦ ¦ ¦--expr: s [0/0] {116} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {115} - ¦ ¦ ¦ ¦--'(': ( [0/0] {117} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {118} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {119} - ¦ ¦ ¦ ¦--expr: sd [0/0] {121} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {120} - ¦ ¦ ¦ °--')': ) [0/0] {122} - ¦ ¦ °--'}': } [1/0] {123} - ¦ °--')': ) [1/0] {124} - ¦--expr: test( [2/0] {125} - ¦ ¦--expr: test [0/0] {127} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {126} - ¦ ¦--'(': ( [0/2] {128} - ¦ ¦--expr: "x" [1/0] {130} - ¦ ¦ °--STR_CONST: "x" [0/0] {129} - ¦ ¦--',': , [0/2] {131} - ¦ ¦--expr: { - - [1/0] {132} - ¦ ¦ ¦--'{': { [0/2] {133} - ¦ ¦ °--'}': } [2/0] {134} - ¦ ¦--',': , [0/1] {135} - ¦ ¦--COMMENT: # h [0/2] {136} - ¦ ¦--expr: a + b [1/0] {137} - ¦ ¦ ¦--expr: a [0/1] {139} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {138} - ¦ ¦ ¦--'+': + [0/1] {140} - ¦ ¦ °--expr: b [0/0] {142} - ¦ ¦ °--SYMBOL: b [0/0] {141} - ¦ ¦--',': , [0/1] {143} - ¦ ¦--expr: { - [0/0] {144} - ¦ ¦ ¦--'{': { [0/4] {145} - ¦ ¦ ¦--expr: s(x = [1/2] {146} - ¦ ¦ ¦ ¦--expr: s [0/0] {148} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {147} - ¦ ¦ ¦ ¦--'(': ( [0/0] {149} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {150} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {151} - ¦ ¦ ¦ ¦--expr: sd [0/0] {153} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {152} - ¦ ¦ ¦ °--')': ) [0/0] {154} - ¦ ¦ °--'}': } [1/0] {155} - ¦ °--')': ) [1/0] {156} - ¦--expr: test( [2/0] {157} - ¦ ¦--expr: test [0/0] {159} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {158} - ¦ ¦--'(': ( [0/2] {160} - ¦ ¦--expr: "x" [1/0] {162} - ¦ ¦ °--STR_CONST: "x" [0/0] {161} - ¦ ¦--',': , [0/2] {163} - ¦ ¦--expr: { - - [1/0] {164} - ¦ ¦ ¦--'{': { [0/2] {165} - ¦ ¦ °--'}': } [2/0] {166} - ¦ ¦--',': , [0/1] {167} - ¦ ¦--COMMENT: # h [0/2] {168} - ¦ ¦--expr: a + b [1/0] {169} - ¦ ¦ ¦--expr: a [0/1] {171} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {170} - ¦ ¦ ¦--'+': + [0/1] {172} - ¦ ¦ °--expr: b [0/0] {174} - ¦ ¦ °--SYMBOL: b [0/0] {173} - ¦ ¦--',': , [0/2] {175} - ¦ ¦--COMMENT: # k [1/2] {176} - ¦ ¦--expr: { - [1/0] {177} - ¦ ¦ ¦--'{': { [0/4] {178} - ¦ ¦ ¦--expr: s(x = [1/2] {179} - ¦ ¦ ¦ ¦--expr: s [0/0] {181} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {180} - ¦ ¦ ¦ ¦--'(': ( [0/0] {182} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {183} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {184} - ¦ ¦ ¦ ¦--expr: sd [0/0] {186} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {185} - ¦ ¦ ¦ °--')': ) [0/0] {187} - ¦ ¦ °--'}': } [1/0] {188} - ¦ °--')': ) [1/0] {189} - ¦--expr: test( [2/0] {190} - ¦ ¦--expr: test [0/0] {192} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test [0/0] {191} - ¦ ¦--'(': ( [0/2] {193} - ¦ ¦--expr: "x" [1/0] {195} - ¦ ¦ °--STR_CONST: "x" [0/0] {194} - ¦ ¦--',': , [0/2] {196} - ¦ ¦--expr: { - - [1/0] {197} - ¦ ¦ ¦--'{': { [0/2] {198} - ¦ ¦ °--'}': } [2/0] {199} - ¦ ¦--',': , [0/2] {200} - ¦ ¦--expr: a + b [1/0] {201} - ¦ ¦ ¦--expr: a [0/1] {203} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {202} - ¦ ¦ ¦--'+': + [0/1] {204} - ¦ ¦ °--expr: b [0/0] {206} - ¦ ¦ °--SYMBOL: b [0/0] {205} - ¦ ¦--',': , [0/2] {207} - ¦ ¦--COMMENT: # k [0/2] {208} - ¦ ¦--expr: { - [1/0] {209} - ¦ ¦ ¦--'{': { [0/4] {210} - ¦ ¦ ¦--expr: s(x = [1/2] {211} - ¦ ¦ ¦ ¦--expr: s [0/0] {213} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {212} - ¦ ¦ ¦ ¦--'(': ( [0/0] {214} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {215} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {216} - ¦ ¦ ¦ ¦--expr: sd [0/0] {218} - ¦ ¦ ¦ ¦ °--SYMBOL: sd [0/0] {217} - ¦ ¦ ¦ °--')': ) [0/0] {219} - ¦ ¦ °--'}': } [1/0] {220} - ¦ °--')': ) [1/0] {221} - ¦--expr: tetst [2/0] {222} - ¦ ¦--expr: tetst [0/0] {224} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tetst [0/0] {223} - ¦ ¦--'(': ( [0/2] {225} - ¦ ¦--expr: "x" [1/0] {227} - ¦ ¦ °--STR_CONST: "x" [0/0] {226} - ¦ ¦--',': , [0/2] {228} - ¦ ¦--expr: { - [1/0] {229} - ¦ ¦ ¦--'{': { [0/4] {230} - ¦ ¦ ¦--expr: x [1/2] {232} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {231} - ¦ ¦ °--'}': } [1/0] {233} - ¦ ¦--',': , [0/1] {234} - ¦ ¦--expr: 1 + + [0/0] {235} - ¦ ¦ ¦--expr: 1 [0/1] {237} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {236} - ¦ ¦ ¦--'+': + [0/1] {238} - ¦ ¦ °--expr: +1 [0/0] {239} - ¦ ¦ ¦--'+': + [0/0] {240} - ¦ ¦ °--expr: 1 [0/0] {242} - ¦ ¦ °--NUM_CONST: 1 [0/0] {241} - ¦ °--')': ) [1/0] {243} - ¦--expr: while [2/0] {244} - ¦ ¦--WHILE: while [0/1] {245} - ¦ ¦--'(': ( [0/0] {246} - ¦ ¦--expr: { - x [0/0] {247} - ¦ ¦ ¦--'{': { [0/2] {248} - ¦ ¦ ¦--expr: x [1/0] {250} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {249} - ¦ ¦ °--'}': } [1/0] {251} - ¦ ¦--')': ) [0/1] {252} - ¦ °--expr: { - f [0/0] {253} - ¦ ¦--'{': { [0/2] {254} - ¦ ¦--expr: f() [1/0] {255} - ¦ ¦ ¦--expr: f [0/0] {257} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {256} - ¦ ¦ ¦--'(': ( [0/0] {258} - ¦ ¦ °--')': ) [0/0] {259} - ¦ °--'}': } [1/0] {260} - ¦--expr: while [2/0] {261} - ¦ ¦--WHILE: while [0/1] {262} - ¦ ¦--'(': ( [0/0] {263} - ¦ ¦--expr: { - x [0/0] {264} - ¦ ¦ ¦--'{': { [0/2] {265} - ¦ ¦ ¦--expr: x [1/0] {267} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {266} - ¦ ¦ °--'}': } [1/0] {268} - ¦ ¦--')': ) [1/1] {269} - ¦ °--expr: { - f [0/0] {270} - ¦ ¦--'{': { [0/2] {271} - ¦ ¦--expr: f() [1/0] {272} - ¦ ¦ ¦--expr: f [0/0] {274} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {273} - ¦ ¦ ¦--'(': ( [0/0] {275} - ¦ ¦ °--')': ) [0/0] {276} - ¦ °--'}': } [1/0] {277} - ¦--expr: while [2/0] {278} - ¦ ¦--WHILE: while [0/1] {279} - ¦ ¦--'(': ( [0/2] {280} - ¦ ¦--expr: { - x [1/0] {281} - ¦ ¦ ¦--'{': { [0/2] {282} - ¦ ¦ ¦--expr: x [1/0] {284} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {283} - ¦ ¦ °--'}': } [1/0] {285} - ¦ ¦--')': ) [0/1] {286} - ¦ °--expr: { - f [0/0] {287} - ¦ ¦--'{': { [0/2] {288} - ¦ ¦--expr: f() [1/0] {289} - ¦ ¦ ¦--expr: f [0/0] {291} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {290} - ¦ ¦ ¦--'(': ( [0/0] {292} - ¦ ¦ °--')': ) [0/0] {293} - ¦ °--'}': } [1/0] {294} - °--expr: while [2/0] {295} - ¦--WHILE: while [0/1] {296} - ¦--'(': ( [0/2] {297} - ¦--expr: {x -} [1/0] {298} - ¦ ¦--'{': { [0/0] {299} - ¦ ¦--expr: x [0/0] {301} - ¦ ¦ °--SYMBOL: x [0/0] {300} - ¦ °--'}': } [1/0] {302} - ¦--')': ) [0/1] {303} - °--expr: { - f [0/0] {304} - ¦--'{': { [0/2] {305} - ¦--expr: f() [1/0] {306} - ¦ ¦--expr: f [0/0] {308} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {307} - ¦ ¦--'(': ( [0/0] {309} - ¦ °--')': ) [0/0] {310} - °--'}': } [1/0] {311} diff --git a/tests/testthat/line_breaks_and_other/comma-in_tree b/tests/testthat/line_breaks_and_other/comma-in_tree deleted file mode 100644 index 92771fe7c..000000000 --- a/tests/testthat/line_breaks_and_other/comma-in_tree +++ /dev/null @@ -1,97 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: a [0/0] {6} - ¦ ¦ °--SYMBOL: a [0/0] {5} - ¦ ¦--',': , [0/5] {7} - ¦ ¦--expr: b [1/5] {9} - ¦ ¦ °--SYMBOL: b [0/0] {8} - ¦ ¦--',': , [1/1] {10} - ¦ ¦--expr: c [0/0] {12} - ¦ ¦ °--SYMBOL: c [0/0] {11} - ¦ °--')': ) [0/0] {13} - ¦--expr: call( [2/0] {14} - ¦ ¦--expr: call [0/0] {16} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {15} - ¦ ¦--'(': ( [0/0] {17} - ¦ ¦--expr: a [0/0] {19} - ¦ ¦ °--SYMBOL: a [0/0] {18} - ¦ ¦--',': , [0/1] {20} - ¦ ¦--expr: b [0/5] {22} - ¦ ¦ °--SYMBOL: b [0/0] {21} - ¦ ¦--',': , [1/5] {23} - ¦ ¦--expr: c [1/0] {25} - ¦ ¦ °--SYMBOL: c [0/0] {24} - ¦ °--')': ) [0/0] {26} - ¦--expr: call( [2/0] {27} - ¦ ¦--expr: call [0/0] {29} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {28} - ¦ ¦--'(': ( [0/0] {30} - ¦ ¦--expr: a [0/0] {32} - ¦ ¦ °--SYMBOL: a [0/0] {31} - ¦ ¦--',': , [0/0] {33} - ¦ °--')': ) [0/0] {34} - ¦--expr: call( [1/0] {35} - ¦ ¦--expr: call [0/0] {37} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {36} - ¦ ¦--'(': ( [0/0] {38} - ¦ ¦--expr: a [0/0] {40} - ¦ ¦ °--SYMBOL: a [0/0] {39} - ¦ ¦--',': , [0/0] {41} - ¦ °--')': ) [1/0] {42} - ¦--expr: call( [2/0] {43} - ¦ ¦--expr: call [0/0] {45} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {44} - ¦ ¦--'(': ( [0/0] {46} - ¦ ¦--expr: a [0/5] {48} - ¦ ¦ °--SYMBOL: a [0/0] {47} - ¦ ¦--',': , [1/0] {49} - ¦ °--')': ) [0/0] {50} - °--expr: mpg % [2/0] {51} - ¦--expr: mpg [0/1] {53} - ¦ °--SYMBOL: mpg [0/0] {52} - ¦--SPECIAL-PIPE: %>% [0/4] {54} - °--expr: summa [1/0] {55} - ¦--expr: summa [0/0] {57} - ¦ °--SYMBOL_FUNCTION_CALL: summa [0/0] {56} - ¦--'(': ( [0/0] {58} - ¦--SYMBOL_SUB: avg_c [0/1] {59} - ¦--EQ_SUB: = [0/1] {60} - ¦--expr: mean( [0/0] {61} - ¦ ¦--expr: mean [0/0] {63} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {62} - ¦ ¦--'(': ( [0/0] {64} - ¦ ¦--expr: cty [0/0] {66} - ¦ ¦ °--SYMBOL: cty [0/0] {65} - ¦ °--')': ) [0/0] {67} - ¦--',': , [1/1] {68} - ¦--SYMBOL_SUB: avg_h [0/1] {69} - ¦--EQ_SUB: = [0/1] {70} - ¦--expr: mean( [0/0] {71} - ¦ ¦--expr: mean [0/0] {73} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {72} - ¦ ¦--'(': ( [0/0] {74} - ¦ ¦--expr: hwy [0/0] {76} - ¦ ¦ °--SYMBOL: hwy [0/0] {75} - ¦ °--')': ) [0/0] {77} - ¦--',': , [1/1] {78} - ¦--SYMBOL_SUB: n [0/1] {79} - ¦--EQ_SUB: = [0/1] {80} - ¦--expr: n() [0/0] {81} - ¦ ¦--expr: n [0/0] {83} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {82} - ¦ ¦--'(': ( [0/0] {84} - ¦ °--')': ) [0/0] {85} - ¦--',': , [1/1] {86} - ¦--SYMBOL_SUB: n_cla [0/1] {87} - ¦--EQ_SUB: = [0/1] {88} - ¦--expr: n_dis [0/0] {89} - ¦ ¦--expr: n_dis [0/0] {91} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: n_dis [0/0] {90} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--expr: class [0/0] {94} - ¦ ¦ °--SYMBOL: class [0/0] {93} - ¦ °--')': ) [0/0] {95} - °--')': ) [0/0] {96} diff --git a/tests/testthat/line_breaks_and_other/comment-around-curly-in_tree b/tests/testthat/line_breaks_and_other/comment-around-curly-in_tree deleted file mode 100644 index 7da00a24f..000000000 --- a/tests/testthat/line_breaks_and_other/comment-around-curly-in_tree +++ /dev/null @@ -1,13 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: X_and [0/0] {1} - ¦--expr: X_and [0/1] {3} - ¦ °--SYMBOL: X_and [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--')': ) [0/1] {8} - °--expr: { # n [0/0] {9} - ¦--'{': { [0/1] {10} - ¦--COMMENT: # nol [0/0] {11} - °--'}': } [1/0] {12} diff --git a/tests/testthat/line_breaks_and_other/curly-brace-edge-in_tree b/tests/testthat/line_breaks_and_other/curly-brace-edge-in_tree deleted file mode 100644 index a8086c1ab..000000000 --- a/tests/testthat/line_breaks_and_other/curly-brace-edge-in_tree +++ /dev/null @@ -1,92 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: funct [0/0] {1} - ¦ ¦--FUNCTION: funct [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--SYMBOL_FORMALS: y [0/1] {4} - ¦ ¦--EQ_FORMALS: = [0/1] {5} - ¦ ¦--expr: {} [0/0] {6} - ¦ ¦ ¦--'{': { [0/0] {7} - ¦ ¦ °--'}': } [0/0] {8} - ¦ ¦--')': ) [0/1] {9} - ¦ °--expr: NULL [0/0] {11} - ¦ °--NULL_CONST: NULL [0/0] {10} - ¦--expr: funct [2/0] {12} - ¦ ¦--FUNCTION: funct [0/0] {13} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--SYMBOL_FORMALS: y [0/1] {15} - ¦ ¦--EQ_FORMALS: = [0/11] {16} - ¦ ¦--expr: {} [1/0] {17} - ¦ ¦ ¦--'{': { [0/0] {18} - ¦ ¦ °--'}': } [0/0] {19} - ¦ ¦--')': ) [0/1] {20} - ¦ °--expr: NULL [0/0] {22} - ¦ °--NULL_CONST: NULL [0/0] {21} - ¦--expr: funct [2/0] {23} - ¦ ¦--FUNCTION: funct [0/0] {24} - ¦ ¦--'(': ( [0/0] {25} - ¦ ¦--SYMBOL_FORMALS: yyy [0/0] {26} - ¦ ¦--EQ_FORMALS: = [0/1] {27} - ¦ ¦--expr: {1} [0/0] {28} - ¦ ¦ ¦--'{': { [0/0] {29} - ¦ ¦ ¦--expr: 1 [0/0] {31} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {30} - ¦ ¦ °--'}': } [0/0] {32} - ¦ ¦--')': ) [0/1] {33} - ¦ °--expr: { - 1 [0/0] {34} - ¦ ¦--'{': { [0/2] {35} - ¦ ¦--expr: 1 [1/0] {37} - ¦ ¦ °--NUM_CONST: 1 [0/0] {36} - ¦ °--'}': } [1/0] {38} - ¦--expr: funct [2/0] {39} - ¦ ¦--FUNCTION: funct [0/0] {40} - ¦ ¦--'(': ( [0/0] {41} - ¦ ¦--SYMBOL_FORMALS: yyy [0/0] {42} - ¦ ¦--EQ_FORMALS: = [0/1] {43} - ¦ ¦--expr: {1 - [0/0] {44} - ¦ ¦ ¦--'{': { [0/0] {45} - ¦ ¦ ¦--expr: 1 [0/2] {47} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {46} - ¦ ¦ °--'}': } [1/0] {48} - ¦ ¦--')': ) [0/1] {49} - ¦ °--expr: { - 1 [0/0] {50} - ¦ ¦--'{': { [0/2] {51} - ¦ ¦--expr: 1 [1/0] {53} - ¦ ¦ °--NUM_CONST: 1 [0/0] {52} - ¦ °--'}': } [1/0] {54} - °--expr: f1 <- [2/0] {55} - ¦--expr: f1 [0/1] {57} - ¦ °--SYMBOL: f1 [0/0] {56} - ¦--LEFT_ASSIGN: <- [0/1] {58} - °--expr: funct [0/0] {59} - ¦--FUNCTION: funct [0/0] {60} - ¦--'(': ( [0/0] {61} - ¦--SYMBOL_FORMALS: x [0/1] {62} - ¦--EQ_FORMALS: = [0/1] {63} - ¦--expr: {1} [0/0] {64} - ¦ ¦--'{': { [0/0] {65} - ¦ ¦--expr: 1 [0/0] {67} - ¦ ¦ °--NUM_CONST: 1 [0/0] {66} - ¦ °--'}': } [0/0] {68} - ¦--',': , [0/1] {69} - ¦--SYMBOL_FORMALS: y [0/1] {70} - ¦--EQ_FORMALS: = [0/1] {71} - ¦--expr: 0 [0/0] {73} - ¦ °--NUM_CONST: 0 [0/0] {72} - ¦--')': ) [0/1] {74} - °--expr: { - [0/0] {75} - ¦--'{': { [0/4] {76} - ¦--expr: c(x, [1/3] {77} - ¦ ¦--expr: c [0/0] {79} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {78} - ¦ ¦--'(': ( [0/0] {80} - ¦ ¦--expr: x [0/0] {82} - ¦ ¦ °--SYMBOL: x [0/0] {81} - ¦ ¦--',': , [0/1] {83} - ¦ ¦--expr: y [0/0] {85} - ¦ ¦ °--SYMBOL: y [0/0] {84} - ¦ °--')': ) [0/0] {86} - °--'}': } [1/0] {87} diff --git a/tests/testthat/line_breaks_and_other/curly-in_tree b/tests/testthat/line_breaks_and_other/curly-in_tree deleted file mode 100644 index ca61fa15b..000000000 --- a/tests/testthat/line_breaks_and_other/curly-in_tree +++ /dev/null @@ -1,154 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # { n [0/0] {1} - ¦--expr: if (y [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: y == [0/0] {5} - ¦ ¦ ¦--expr: y [0/1] {7} - ¦ ¦ ¦ °--SYMBOL: y [0/0] {6} - ¦ ¦ ¦--EQ: == [0/1] {8} - ¦ ¦ °--expr: 0 [0/0] {10} - ¦ ¦ °--NUM_CONST: 0 [0/0] {9} - ¦ ¦--')': ) [0/0] {11} - ¦ ¦--expr: { - 1 [1/1] {12} - ¦ ¦ ¦--'{': { [0/2] {13} - ¦ ¦ ¦--expr: 1 [1/0] {15} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {14} - ¦ ¦ °--'}': } [1/0] {16} - ¦ ¦--ELSE: else [0/1] {17} - ¦ °--expr: { - 2 [0/0] {18} - ¦ ¦--'{': { [0/2] {19} - ¦ ¦--expr: 2 [1/0] {21} - ¦ ¦ °--NUM_CONST: 2 [0/0] {20} - ¦ °--'}': } [1/0] {22} - ¦--expr: test_ [2/0] {23} - ¦ ¦--expr: test_ [0/0] {25} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {24} - ¦ ¦--'(': ( [0/0] {26} - ¦ ¦--expr: "I am [0/0] {28} - ¦ ¦ °--STR_CONST: "I am [0/0] {27} - ¦ ¦--',': , [0/10] {29} - ¦ ¦--expr: { - [1/0] {30} - ¦ ¦ ¦--'{': { [0/12] {31} - ¦ ¦ ¦--expr: a_tes [1/10] {32} - ¦ ¦ ¦ ¦--expr: a_tes [0/0] {34} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a_tes [0/0] {33} - ¦ ¦ ¦ ¦--'(': ( [0/0] {35} - ¦ ¦ ¦ ¦--expr: x [0/0] {37} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {36} - ¦ ¦ ¦ °--')': ) [0/0] {38} - ¦ ¦ °--'}': } [1/0] {39} - ¦ °--')': ) [0/0] {40} - ¦--COMMENT: # A { [3/0] {41} - ¦--expr: if (x [1/0] {42} - ¦ ¦--IF: if [0/1] {43} - ¦ ¦--'(': ( [0/0] {44} - ¦ ¦--expr: x > 3 [0/0] {45} - ¦ ¦ ¦--expr: x [0/1] {47} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {46} - ¦ ¦ ¦--GT: > [0/1] {48} - ¦ ¦ °--expr: 3 [0/0] {50} - ¦ ¦ °--NUM_CONST: 3 [0/0] {49} - ¦ ¦--')': ) [0/1] {51} - ¦ °--expr: { "x" [0/0] {52} - ¦ ¦--'{': { [0/1] {53} - ¦ ¦--expr: "x" [0/0] {55} - ¦ ¦ °--STR_CONST: "x" [0/0] {54} - ¦ °--'}': } [1/0] {56} - ¦--COMMENT: # A } [2/0] {57} - ¦--expr: if (x [1/0] {58} - ¦ ¦--IF: if [0/1] {59} - ¦ ¦--'(': ( [0/0] {60} - ¦ ¦--expr: x > 3 [0/0] {61} - ¦ ¦ ¦--expr: x [0/1] {63} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {62} - ¦ ¦ ¦--GT: > [0/1] {64} - ¦ ¦ °--expr: 3 [0/0] {66} - ¦ ¦ °--NUM_CONST: 3 [0/0] {65} - ¦ ¦--')': ) [0/1] {67} - ¦ °--expr: { - " [0/0] {68} - ¦ ¦--'{': { [0/2] {69} - ¦ ¦--expr: "x" [1/0] {71} - ¦ ¦ °--STR_CONST: "x" [0/0] {70} - ¦ °--'}': } [0/0] {72} - ¦--COMMENT: # ELS [2/0] {73} - ¦--expr: if (1 [1/0] {74} - ¦ ¦--IF: if [0/1] {75} - ¦ ¦--'(': ( [0/0] {76} - ¦ ¦--expr: 1 > 3 [0/0] {77} - ¦ ¦ ¦--expr: 1 [0/1] {79} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {78} - ¦ ¦ ¦--GT: > [0/1] {80} - ¦ ¦ °--expr: 3 [0/0] {82} - ¦ ¦ °--NUM_CONST: 3 [0/0] {81} - ¦ ¦--')': ) [0/1] {83} - ¦ ¦--expr: { - " [0/1] {84} - ¦ ¦ ¦--'{': { [0/2] {85} - ¦ ¦ ¦--expr: "x" [1/0] {87} - ¦ ¦ ¦ °--STR_CONST: "x" [0/0] {86} - ¦ ¦ °--'}': } [1/0] {88} - ¦ ¦--ELSE: else [0/1] {89} - ¦ °--expr: { - " [0/0] {90} - ¦ ¦--'{': { [0/2] {91} - ¦ ¦--expr: "y" [1/0] {93} - ¦ ¦ °--STR_CONST: "y" [0/0] {92} - ¦ °--'}': } [1/0] {94} - ¦--expr: test_ [2/0] {95} - ¦ ¦--expr: test_ [0/0] {97} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {96} - ¦ ¦--'(': ( [0/0] {98} - ¦ ¦--expr: "I am [0/0] {100} - ¦ ¦ °--STR_CONST: "I am [0/0] {99} - ¦ ¦--',': , [0/1] {101} - ¦ ¦--expr: { - a [0/0] {102} - ¦ ¦ ¦--'{': { [0/2] {103} - ¦ ¦ ¦--expr: a_tes [1/0] {104} - ¦ ¦ ¦ ¦--expr: a_tes [0/0] {106} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a_tes [0/0] {105} - ¦ ¦ ¦ ¦--'(': ( [0/0] {107} - ¦ ¦ ¦ ¦--expr: x [0/0] {109} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {108} - ¦ ¦ ¦ °--')': ) [0/0] {110} - ¦ ¦ °--'}': } [1/0] {111} - ¦ °--')': ) [1/0] {112} - °--expr: test_ [2/0] {113} - ¦--expr: test_ [0/0] {115} - ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {114} - ¦--'(': ( [0/2] {116} - ¦--SYMBOL_SUB: desc [1/1] {117} - ¦--EQ_SUB: = [0/1] {118} - ¦--expr: "bla" [0/0] {120} - ¦ °--STR_CONST: "bla" [0/0] {119} - ¦--',': , [0/2] {121} - ¦--SYMBOL_SUB: code [1/1] {122} - ¦--EQ_SUB: = [0/1] {123} - ¦--expr: { - - - - [0/0] {124} - ¦ ¦--'{': { [0/4] {125} - ¦ ¦--COMMENT: # com [4/4] {126} - ¦ ¦--expr: expec [1/2] {127} - ¦ ¦ ¦--expr: expec [0/0] {129} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: expec [0/0] {128} - ¦ ¦ ¦--'(': ( [0/0] {130} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {131} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {133} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {132} - ¦ ¦ ¦ ¦--'+': + [0/1] {134} - ¦ ¦ ¦ °--expr: 1 [0/0] {136} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {135} - ¦ ¦ ¦--',': , [0/1] {137} - ¦ ¦ ¦--expr: 2 [0/0] {139} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {138} - ¦ ¦ °--')': ) [0/0] {140} - ¦ °--'}': } [1/0] {141} - °--')': ) [0/0] {142} diff --git a/tests/testthat/line_breaks_and_other/edge_comment_and_curly-in_tree b/tests/testthat/line_breaks_and_other/edge_comment_and_curly-in_tree deleted file mode 100644 index 46de8acd2..000000000 --- a/tests/testthat/line_breaks_and_other/edge_comment_and_curly-in_tree +++ /dev/null @@ -1,17 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦--')': ) [0/1] {9} - ¦--COMMENT: # thi [0/0] {10} - °--expr: { - x [1/0] {11} - ¦--'{': { [0/2] {12} - ¦--expr: x [1/0] {14} - ¦ °--SYMBOL: x [0/0] {13} - °--'}': } [1/0] {15} diff --git a/tests/testthat/line_breaks_and_other/ggplot2-in_tree b/tests/testthat/line_breaks_and_other/ggplot2-in_tree deleted file mode 100644 index dd9f48f8a..000000000 --- a/tests/testthat/line_breaks_and_other/ggplot2-in_tree +++ /dev/null @@ -1,416 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # don [0/0] {1} - ¦--expr: ggplo [1/0] {2} - ¦ ¦--expr: ggplo [0/1] {3} - ¦ ¦ ¦--expr: ggplo [0/0] {5} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {4} - ¦ ¦ ¦--'(': ( [0/0] {6} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {7} - ¦ ¦ ¦--EQ_SUB: = [0/1] {8} - ¦ ¦ ¦--expr: mtcar [0/0] {10} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {9} - ¦ ¦ ¦--',': , [0/1] {11} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {12} - ¦ ¦ ¦--EQ_SUB: = [0/1] {13} - ¦ ¦ ¦--expr: aes(x [0/0] {14} - ¦ ¦ ¦ ¦--expr: aes [0/0] {16} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {15} - ¦ ¦ ¦ ¦--'(': ( [0/0] {17} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {18} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {19} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {21} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {20} - ¦ ¦ ¦ ¦--',': , [0/1] {22} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {23} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {24} - ¦ ¦ ¦ ¦--expr: vs [0/0] {26} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {25} - ¦ ¦ ¦ °--')': ) [0/0] {27} - ¦ ¦ °--')': ) [0/0] {28} - ¦ ¦--'+': + [0/2] {29} - ¦ °--expr: geom_ [1/0] {30} - ¦ ¦--expr: geom_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ °--')': ) [0/0] {34} - ¦--COMMENT: # add [3/0] {35} - ¦--expr: ggplo [1/0] {36} - ¦ ¦--expr: ggplo [0/1] {37} - ¦ ¦ ¦--expr: ggplo [0/0] {39} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {38} - ¦ ¦ ¦--'(': ( [0/0] {40} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {41} - ¦ ¦ ¦--EQ_SUB: = [0/1] {42} - ¦ ¦ ¦--expr: mtcar [0/0] {44} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {43} - ¦ ¦ ¦--',': , [0/1] {45} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {46} - ¦ ¦ ¦--EQ_SUB: = [0/1] {47} - ¦ ¦ ¦--expr: aes(x [0/0] {48} - ¦ ¦ ¦ ¦--expr: aes [0/0] {50} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {49} - ¦ ¦ ¦ ¦--'(': ( [0/0] {51} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {52} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {53} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {55} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {54} - ¦ ¦ ¦ ¦--',': , [0/1] {56} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {57} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {58} - ¦ ¦ ¦ ¦--expr: vs [0/0] {60} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {59} - ¦ ¦ ¦ °--')': ) [0/0] {61} - ¦ ¦ °--')': ) [0/0] {62} - ¦ ¦--'+': + [0/1] {63} - ¦ °--expr: geom_ [0/0] {64} - ¦ ¦--expr: geom_ [0/0] {66} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {65} - ¦ ¦--'(': ( [0/0] {67} - ¦ °--')': ) [0/0] {68} - ¦--COMMENT: # add [3/0] {69} - ¦--expr: ggplo [1/0] {70} - ¦ ¦--expr: ggplo [0/1] {71} - ¦ ¦ ¦--expr: ggplo [0/0] {72} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: ggplo [0/0] {73} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {74} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {75} - ¦ ¦ ¦--'(': ( [0/0] {76} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {77} - ¦ ¦ ¦--EQ_SUB: = [0/1] {78} - ¦ ¦ ¦--expr: mtcar [0/0] {80} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {79} - ¦ ¦ ¦--',': , [0/1] {81} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {82} - ¦ ¦ ¦--EQ_SUB: = [0/1] {83} - ¦ ¦ ¦--expr: aes(x [0/0] {84} - ¦ ¦ ¦ ¦--expr: aes [0/0] {86} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {85} - ¦ ¦ ¦ ¦--'(': ( [0/0] {87} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {88} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {89} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {91} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {90} - ¦ ¦ ¦ ¦--',': , [0/1] {92} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {93} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {94} - ¦ ¦ ¦ ¦--expr: vs [0/0] {96} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {95} - ¦ ¦ ¦ °--')': ) [0/0] {97} - ¦ ¦ °--')': ) [0/0] {98} - ¦ ¦--'+': + [0/1] {99} - ¦ °--expr: geom_ [0/0] {100} - ¦ ¦--expr: geom_ [0/0] {102} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {101} - ¦ ¦--'(': ( [0/0] {103} - ¦ °--')': ) [0/0] {104} - ¦--COMMENT: # add [2/0] {105} - ¦--expr: ggplo [1/0] {106} - ¦ ¦--expr: ggplo [0/1] {107} - ¦ ¦ ¦--expr: ggplo [0/0] {109} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {108} - ¦ ¦ ¦--'(': ( [0/0] {110} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {111} - ¦ ¦ ¦--EQ_SUB: = [0/1] {112} - ¦ ¦ ¦--expr: mtcar [0/0] {114} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {113} - ¦ ¦ ¦--',': , [0/1] {115} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {116} - ¦ ¦ ¦--EQ_SUB: = [0/1] {117} - ¦ ¦ ¦--expr: aes(x [0/0] {118} - ¦ ¦ ¦ ¦--expr: aes [0/0] {120} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {119} - ¦ ¦ ¦ ¦--'(': ( [0/0] {121} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {122} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {123} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {125} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {124} - ¦ ¦ ¦ ¦--',': , [0/1] {126} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {127} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {128} - ¦ ¦ ¦ ¦--expr: vs [0/0] {130} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {129} - ¦ ¦ ¦ °--')': ) [0/0] {131} - ¦ ¦ °--')': ) [0/0] {132} - ¦ ¦--'+': + [0/1] {133} - ¦ °--expr: ggplo [0/0] {134} - ¦ ¦--expr: ggplo [0/0] {135} - ¦ ¦ ¦--SYMBOL_PACKAGE: ggplo [0/0] {136} - ¦ ¦ ¦--NS_GET: :: [0/0] {137} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {138} - ¦ ¦--'(': ( [0/0] {139} - ¦ °--')': ) [0/0] {140} - ¦--COMMENT: # add [2/0] {141} - ¦--expr: ggplo [1/0] {142} - ¦ ¦--expr: ggplo [0/1] {144} - ¦ ¦ ¦--expr: ggplo [0/0] {146} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {145} - ¦ ¦ ¦--'(': ( [0/0] {147} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {148} - ¦ ¦ ¦--EQ_SUB: = [0/1] {149} - ¦ ¦ ¦--expr: mtcar [0/0] {151} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {150} - ¦ ¦ ¦--',': , [0/1] {152} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {153} - ¦ ¦ ¦--EQ_SUB: = [0/1] {154} - ¦ ¦ ¦--expr: aes(x [0/0] {155} - ¦ ¦ ¦ ¦--expr: aes [0/0] {157} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {156} - ¦ ¦ ¦ ¦--'(': ( [0/0] {158} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {159} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {160} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {162} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {161} - ¦ ¦ ¦ ¦--',': , [0/1] {163} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {164} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {165} - ¦ ¦ ¦ ¦--expr: vs [0/0] {167} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {166} - ¦ ¦ ¦ °--')': ) [0/0] {168} - ¦ ¦ °--')': ) [0/0] {169} - ¦ ¦--'+': + [0/1] {170} - ¦ ¦--COMMENT: # com [0/2] {171} - ¦ ¦--expr: ggplo [1/1] {172} - ¦ ¦ ¦--expr: ggplo [0/0] {173} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: ggplo [0/0] {174} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {175} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {176} - ¦ ¦ ¦--'(': ( [0/0] {177} - ¦ ¦ °--')': ) [0/0] {178} - ¦ ¦--'+': + [0/1] {179} - ¦ °--expr: g() [0/0] {180} - ¦ ¦--expr: g [0/0] {182} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {181} - ¦ ¦--'(': ( [0/0] {183} - ¦ °--')': ) [0/0] {184} - ¦--COMMENT: # add [3/0] {185} - ¦--expr: ggplo [1/1] {186} - ¦ ¦--expr: ggplo [0/1] {188} - ¦ ¦ ¦--expr: ggplo [0/0] {190} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {189} - ¦ ¦ ¦--'(': ( [0/0] {191} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {192} - ¦ ¦ ¦--EQ_SUB: = [0/1] {193} - ¦ ¦ ¦--expr: mtcar [0/0] {195} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {194} - ¦ ¦ ¦--',': , [0/1] {196} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {197} - ¦ ¦ ¦--EQ_SUB: = [0/1] {198} - ¦ ¦ ¦--expr: aes(x [0/0] {199} - ¦ ¦ ¦ ¦--expr: aes [0/0] {201} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {200} - ¦ ¦ ¦ ¦--'(': ( [0/0] {202} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {203} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {204} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {206} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {205} - ¦ ¦ ¦ ¦--',': , [0/1] {207} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {208} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {209} - ¦ ¦ ¦ ¦--expr: vs [0/0] {211} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {210} - ¦ ¦ ¦ °--')': ) [0/0] {212} - ¦ ¦ °--')': ) [0/0] {213} - ¦ ¦--'+': + [0/2] {214} - ¦ ¦--expr: ggplo [1/1] {215} - ¦ ¦ ¦--expr: ggplo [0/0] {216} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: ggplo [0/0] {217} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {218} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {219} - ¦ ¦ ¦--'(': ( [0/0] {220} - ¦ ¦ °--')': ) [0/0] {221} - ¦ ¦--'+': + [0/1] {222} - ¦ °--expr: g() [0/0] {223} - ¦ ¦--expr: g [0/0] {225} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {224} - ¦ ¦--'(': ( [0/0] {226} - ¦ °--')': ) [0/0] {227} - ¦--COMMENT: # com [0/0] {228} - ¦--COMMENT: # add [2/0] {229} - ¦--expr: ggplo [1/1] {230} - ¦ ¦--expr: ggplo [0/1] {232} - ¦ ¦ ¦--expr: ggplo [0/0] {234} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {233} - ¦ ¦ ¦--'(': ( [0/0] {235} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {236} - ¦ ¦ ¦--EQ_SUB: = [0/1] {237} - ¦ ¦ ¦--expr: mtcar [0/0] {239} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {238} - ¦ ¦ ¦--',': , [0/1] {240} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {241} - ¦ ¦ ¦--EQ_SUB: = [0/1] {242} - ¦ ¦ ¦--expr: aes(x [0/0] {243} - ¦ ¦ ¦ ¦--expr: aes [0/0] {245} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {244} - ¦ ¦ ¦ ¦--'(': ( [0/0] {246} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {247} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {248} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {250} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {249} - ¦ ¦ ¦ ¦--',': , [0/1] {251} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {252} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {253} - ¦ ¦ ¦ ¦--expr: vs [0/0] {255} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {254} - ¦ ¦ ¦ °--')': ) [0/0] {256} - ¦ ¦ °--')': ) [0/0] {257} - ¦ ¦--'+': + [0/1] {258} - ¦ ¦--expr: ggplo [0/1] {259} - ¦ ¦ ¦--expr: ggplo [0/0] {260} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: ggplo [0/0] {261} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {262} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {263} - ¦ ¦ ¦--'(': ( [0/0] {264} - ¦ ¦ °--')': ) [0/0] {265} - ¦ ¦--'+': + [0/1] {266} - ¦ °--expr: g() [0/0] {267} - ¦ ¦--expr: g [0/0] {269} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {268} - ¦ ¦--'(': ( [0/0] {270} - ¦ °--')': ) [0/0] {271} - ¦--COMMENT: # com [0/0] {272} - ¦--COMMENT: # add [3/0] {273} - ¦--expr: ggplo [1/1] {274} - ¦ ¦--expr: ggplo [0/1] {277} - ¦ ¦ ¦--expr: ggplo [0/0] {279} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {278} - ¦ ¦ ¦--'(': ( [0/0] {280} - ¦ ¦ ¦--SYMBOL_SUB: data [0/1] {281} - ¦ ¦ ¦--EQ_SUB: = [0/1] {282} - ¦ ¦ ¦--expr: mtcar [0/0] {284} - ¦ ¦ ¦ °--SYMBOL: mtcar [0/0] {283} - ¦ ¦ ¦--',': , [0/1] {285} - ¦ ¦ ¦--SYMBOL_SUB: mappi [0/1] {286} - ¦ ¦ ¦--EQ_SUB: = [0/1] {287} - ¦ ¦ ¦--expr: aes(x [0/0] {288} - ¦ ¦ ¦ ¦--expr: aes [0/0] {290} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {289} - ¦ ¦ ¦ ¦--'(': ( [0/0] {291} - ¦ ¦ ¦ ¦--SYMBOL_SUB: x [0/1] {292} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {293} - ¦ ¦ ¦ ¦--expr: mpg [0/0] {295} - ¦ ¦ ¦ ¦ °--SYMBOL: mpg [0/0] {294} - ¦ ¦ ¦ ¦--',': , [0/1] {296} - ¦ ¦ ¦ ¦--SYMBOL_SUB: y [0/1] {297} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {298} - ¦ ¦ ¦ ¦--expr: vs [0/0] {300} - ¦ ¦ ¦ ¦ °--SYMBOL: vs [0/0] {299} - ¦ ¦ ¦ °--')': ) [0/0] {301} - ¦ ¦ °--')': ) [0/0] {302} - ¦ ¦--'+': + [0/2] {303} - ¦ ¦--expr: ggplo [1/1] {304} - ¦ ¦ ¦--expr: ggplo [0/0] {305} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: ggplo [0/0] {306} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {307} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {308} - ¦ ¦ ¦--'(': ( [0/0] {309} - ¦ ¦ °--')': ) [0/0] {310} - ¦ ¦--'+': + [0/1] {311} - ¦ ¦--expr: g() [0/2] {312} - ¦ ¦ ¦--expr: g [0/0] {314} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {313} - ¦ ¦ ¦--'(': ( [0/0] {315} - ¦ ¦ °--')': ) [0/0] {316} - ¦ ¦--'+': + [0/1] {317} - ¦ °--expr: geom_ [0/0] {318} - ¦ ¦--expr: geom_ [0/0] {320} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {319} - ¦ ¦--'(': ( [0/0] {321} - ¦ °--')': ) [0/0] {322} - ¦--COMMENT: # com [0/0] {323} - ¦--COMMENT: # whe [2/0] {324} - ¦--expr: x[1]+ [1/0] {325} - ¦ ¦--expr: x[1] [0/0] {326} - ¦ ¦ ¦--expr: x [0/0] {328} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {327} - ¦ ¦ ¦--'[': [ [0/0] {329} - ¦ ¦ ¦--expr: 1 [0/0] {331} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {330} - ¦ ¦ °--']': ] [0/0] {332} - ¦ ¦--'+': + [0/1] {333} - ¦ °--expr: c() [0/0] {334} - ¦ ¦--expr: c [0/0] {336} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {335} - ¦ ¦--'(': ( [0/0] {337} - ¦ °--')': ) [0/0] {338} - ¦--expr: g() + [2/0] {339} - ¦ ¦--expr: g() [0/1] {340} - ¦ ¦ ¦--expr: g [0/0] {342} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {341} - ¦ ¦ ¦--'(': ( [0/0] {343} - ¦ ¦ °--')': ) [0/0] {344} - ¦ ¦--'+': + [0/1] {345} - ¦ °--expr: x[1] [0/0] {346} - ¦ ¦--expr: x [0/0] {348} - ¦ ¦ °--SYMBOL: x [0/0] {347} - ¦ ¦--'[': [ [0/0] {349} - ¦ ¦--expr: 1 [0/0] {351} - ¦ ¦ °--NUM_CONST: 1 [0/0] {350} - ¦ °--']': ] [0/0] {352} - ¦--expr: g()[2 [2/0] {353} - ¦ ¦--expr: g()[2 [0/1] {354} - ¦ ¦ ¦--expr: g() [0/0] {355} - ¦ ¦ ¦ ¦--expr: g [0/0] {357} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {356} - ¦ ¦ ¦ ¦--'(': ( [0/0] {358} - ¦ ¦ ¦ °--')': ) [0/0] {359} - ¦ ¦ ¦--'[': [ [0/0] {360} - ¦ ¦ ¦--expr: 2 [0/0] {362} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {361} - ¦ ¦ °--']': ] [0/0] {363} - ¦ ¦--'+': + [0/1] {364} - ¦ °--expr: x[1] [0/0] {365} - ¦ ¦--expr: x [0/0] {367} - ¦ ¦ °--SYMBOL: x [0/0] {366} - ¦ ¦--'[': [ [0/0] {368} - ¦ ¦--expr: 1 [0/0] {370} - ¦ ¦ °--NUM_CONST: 1 [0/0] {369} - ¦ °--']': ] [0/0] {371} - ¦--COMMENT: # don [2/0] {372} - ¦--expr: +sin( [1/0] {373} - ¦ ¦--'+': + [0/0] {374} - ¦ °--expr: sin(x [0/0] {375} - ¦ ¦--expr: sin [0/0] {377} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {376} - ¦ ¦--'(': ( [0/0] {378} - ¦ ¦--expr: x [0/0] {380} - ¦ ¦ °--SYMBOL: x [0/0] {379} - ¦ °--')': ) [0/0] {381} - ¦--COMMENT: # wit [2/0] {382} - °--expr: qqjfl [1/0] {383} - ¦--expr: qqjfl [0/0] {385} - ¦ °--SYMBOL_FUNCTION_CALL: qqjfl [0/0] {384} - ¦--'(': ( [0/2] {386} - ¦--expr: log(y [1/0] {387} - ¦ ¦--expr: log(y [0/1] {390} - ¦ ¦ ¦--expr: log [0/0] {392} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: log [0/0] {391} - ¦ ¦ ¦--'(': ( [0/0] {393} - ¦ ¦ ¦--expr: y + 1 [0/0] {394} - ¦ ¦ ¦ ¦--expr: y [0/1] {396} - ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {395} - ¦ ¦ ¦ ¦--'+': + [0/1] {397} - ¦ ¦ ¦ °--expr: 1 [0/0] {399} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {398} - ¦ ¦ °--')': ) [0/0] {400} - ¦ ¦--'+': + [0/4] {401} - ¦ ¦--COMMENT: # sqr [1/4] {402} - ¦ ¦--expr: sqrt( [1/1] {403} - ¦ ¦ ¦--expr: sqrt [0/0] {405} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sqrt [0/0] {404} - ¦ ¦ ¦--'(': ( [0/0] {406} - ¦ ¦ ¦--expr: x2 [0/0] {408} - ¦ ¦ ¦ °--SYMBOL: x2 [0/0] {407} - ¦ ¦ °--')': ) [0/0] {409} - ¦ ¦--'+': + [0/4] {410} - ¦ ¦--COMMENT: # sqr [1/4] {411} - ¦ ¦--expr: x4 [1/1] {413} - ¦ ¦ °--SYMBOL: x4 [0/0] {412} - ¦ ¦--'+': + [0/4] {414} - ¦ °--expr: sqrt( [1/0] {415} - ¦ ¦--expr: sqrt [0/0] {417} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: sqrt [0/0] {416} - ¦ ¦--'(': ( [0/0] {418} - ¦ ¦--expr: x5 [0/0] {420} - ¦ ¦ °--SYMBOL: x5 [0/0] {419} - ¦ °--')': ) [0/0] {421} - °--')': ) [1/0] {422} diff --git a/tests/testthat/line_breaks_and_other/if_with_line_break_indention-in_tree b/tests/testthat/line_breaks_and_other/if_with_line_break_indention-in_tree deleted file mode 100644 index 939eee536..000000000 --- a/tests/testthat/line_breaks_and_other/if_with_line_break_indention-in_tree +++ /dev/null @@ -1,48 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1+1+ [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1+1++ [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/0] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/0] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/0] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - °--expr: test_ [1/0] {30} - ¦--expr: test_ [0/0] {32} - ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦--'(': ( [0/0] {33} - ¦--expr: "x" [0/0] {35} - ¦ °--STR_CONST: "x" [0/0] {34} - ¦--',': , [0/0] {36} - ¦--expr: { - m [1/0] {37} - ¦ ¦--'{': { [0/2] {38} - ¦ ¦--expr: my_te [1/0] {39} - ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ °--')': ) [0/0] {45} - ¦ °--'}': } [1/0] {46} - °--')': ) [0/0] {47} diff --git a/tests/testthat/line_breaks_and_other/non_strict-in_tree b/tests/testthat/line_breaks_and_other/non_strict-in_tree deleted file mode 100644 index eda50ae38..000000000 --- a/tests/testthat/line_breaks_and_other/non_strict-in_tree +++ /dev/null @@ -1,26 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {id}) - ¦--expr: a <- [0/0] {12} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {1} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {2} - ¦ °--expr: {3} [0/0] {10} - ¦ ¦--'{': { [0/0] {4} - ¦ ¦--expr: 3 [0/0] {6} - ¦ ¦ °--NUM_CONST: 3 [0/0] {5} - ¦ °--'}': } [0/0] {7} - °--expr: a <- [2/0] {45} - ¦--expr: a [0/1] {19} - ¦ °--SYMBOL: a [0/0] {17} - ¦--LEFT_ASSIGN: <- [0/1] {18} - °--expr: { - - - [0/0] {43} - ¦--'{': { [0/2] {20} - ¦--expr: 3+1 [3/0] {30} - ¦ ¦--expr: 3 [0/0] {25} - ¦ ¦ °--NUM_CONST: 3 [0/0] {24} - ¦ ¦--'+': + [0/0] {26} - ¦ °--expr: 1 [0/0] {28} - ¦ °--NUM_CONST: 1 [0/0] {27} - °--'}': } [5/0] {41} diff --git a/tests/testthat/line_breaks_and_other/pipe-line-breaks-in_tree b/tests/testthat/line_breaks_and_other/pipe-line-breaks-in_tree deleted file mode 100644 index 9ed90d2f0..000000000 --- a/tests/testthat/line_breaks_and_other/pipe-line-breaks-in_tree +++ /dev/null @@ -1,759 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: c(a % [0/0] {1} - ¦ ¦--expr: c [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: a %>% [0/0] {5} - ¦ ¦ ¦--expr: a [0/1] {7} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {6} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {8} - ¦ ¦ °--expr: b [0/0] {10} - ¦ ¦ °--SYMBOL: b [0/0] {9} - ¦ °--')': ) [0/0] {11} - ¦--expr: c(a % [2/0] {12} - ¦ ¦--expr: c [0/0] {14} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {13} - ¦ ¦--'(': ( [0/0] {15} - ¦ ¦--expr: a %>% [0/0] {16} - ¦ ¦ ¦--expr: a [0/1] {18} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {17} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {19} - ¦ ¦ °--expr: b() [0/0] {20} - ¦ ¦ ¦--expr: b [0/0] {22} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {21} - ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ °--')': ) [0/0] {24} - ¦ °--')': ) [0/0] {25} - ¦--expr: c(a + [2/0] {26} - ¦ ¦--expr: c [0/0] {28} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {27} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--expr: a + b [0/0] {30} - ¦ ¦ ¦--expr: a [0/1] {32} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {31} - ¦ ¦ ¦--'+': + [0/1] {33} - ¦ ¦ ¦--expr: b [0/1] {36} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {35} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {37} - ¦ ¦ °--expr: c [0/0] {39} - ¦ ¦ °--SYMBOL: c [0/0] {38} - ¦ °--')': ) [0/0] {40} - ¦--expr: c( - [2/0] {41} - ¦ ¦--expr: c [0/0] {43} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {42} - ¦ ¦--'(': ( [0/2] {44} - ¦ ¦--expr: a %>% [1/0] {45} - ¦ ¦ ¦--expr: a [0/1] {47} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {46} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {48} - ¦ ¦ °--expr: b [0/0] {50} - ¦ ¦ °--SYMBOL: b [0/0] {49} - ¦ °--')': ) [0/0] {51} - ¦--expr: c(a % [2/0] {52} - ¦ ¦--expr: c [0/0] {54} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {53} - ¦ ¦--'(': ( [0/0] {55} - ¦ ¦--expr: a %>% [0/0] {56} - ¦ ¦ ¦--expr: a [0/1] {58} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {57} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {59} - ¦ ¦ °--expr: b() [0/0] {60} - ¦ ¦ ¦--expr: b [0/0] {62} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {61} - ¦ ¦ ¦--'(': ( [0/0] {63} - ¦ ¦ °--')': ) [0/0] {64} - ¦ °--')': ) [1/0] {65} - ¦--expr: c(a % [2/0] {66} - ¦ ¦--expr: c [0/0] {68} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {67} - ¦ ¦--'(': ( [0/0] {69} - ¦ ¦--expr: a %>% [0/1] {70} - ¦ ¦ ¦--expr: a [0/1] {72} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {71} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {73} - ¦ ¦ °--expr: b() [0/0] {74} - ¦ ¦ ¦--expr: b [0/0] {76} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {75} - ¦ ¦ ¦--'(': ( [0/0] {77} - ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦--COMMENT: # 33 [0/0] {79} - ¦ °--')': ) [1/0] {80} - ¦--expr: c( - [2/0] {81} - ¦ ¦--expr: c [0/0] {83} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {82} - ¦ ¦--'(': ( [0/2] {84} - ¦ ¦--expr: a + b [1/2] {85} - ¦ ¦ ¦--expr: a [0/1] {87} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {86} - ¦ ¦ ¦--'+': + [0/1] {88} - ¦ ¦ ¦--expr: b [0/1] {91} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {90} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {92} - ¦ ¦ °--expr: c [0/0] {94} - ¦ ¦ °--SYMBOL: c [0/0] {93} - ¦ °--')': ) [1/0] {95} - ¦--expr: c( - [2/0] {96} - ¦ ¦--expr: c [0/0] {98} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {97} - ¦ ¦--'(': ( [0/2] {99} - ¦ ¦--expr: a + b [1/0] {100} - ¦ ¦ ¦--expr: a [0/1] {102} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {101} - ¦ ¦ ¦--'+': + [0/1] {103} - ¦ ¦ ¦--expr: b [0/1] {106} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {105} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {107} - ¦ ¦ °--expr: c [1/0] {109} - ¦ ¦ °--SYMBOL: c [0/0] {108} - ¦ °--')': ) [0/0] {110} - ¦--expr: c(a + [2/0] {111} - ¦ ¦--expr: c [0/0] {113} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {112} - ¦ ¦--'(': ( [0/0] {114} - ¦ ¦--expr: a + b [0/0] {115} - ¦ ¦ ¦--expr: a [0/1] {117} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {116} - ¦ ¦ ¦--'+': + [0/1] {118} - ¦ ¦ ¦--expr: b [0/1] {121} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {120} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {122} - ¦ ¦ °--expr: c [1/0] {124} - ¦ ¦ °--SYMBOL: c [0/0] {123} - ¦ °--')': ) [0/0] {125} - ¦--expr: c( - [2/0] {126} - ¦ ¦--expr: c [0/0] {128} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {127} - ¦ ¦--'(': ( [0/2] {129} - ¦ ¦--expr: a + b [1/0] {130} - ¦ ¦ ¦--expr: a [0/1] {132} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {131} - ¦ ¦ ¦--'+': + [0/1] {133} - ¦ ¦ ¦--expr: b [0/1] {136} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {135} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {137} - ¦ ¦ ¦--COMMENT: # 654 [0/4] {138} - ¦ ¦ °--expr: c [1/0] {140} - ¦ ¦ °--SYMBOL: c [0/0] {139} - ¦ °--')': ) [1/0] {141} - ¦--expr: c( # [2/0] {142} - ¦ ¦--expr: c [0/0] {144} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {143} - ¦ ¦--'(': ( [0/1] {145} - ¦ ¦--COMMENT: # rr [0/2] {146} - ¦ ¦--expr: a + b [1/0] {147} - ¦ ¦ ¦--expr: a [0/1] {149} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {148} - ¦ ¦ ¦--'+': + [0/1] {150} - ¦ ¦ ¦--expr: b [0/1] {153} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {152} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {154} - ¦ ¦ °--expr: c [1/0] {156} - ¦ ¦ °--SYMBOL: c [0/0] {155} - ¦ °--')': ) [1/0] {157} - ¦--expr: c( - [2/0] {158} - ¦ ¦--expr: c [0/0] {160} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {159} - ¦ ¦--'(': ( [0/2] {161} - ¦ ¦--expr: a + - [1/0] {162} - ¦ ¦ ¦--expr: a [0/1] {164} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {163} - ¦ ¦ ¦--'+': + [0/4] {165} - ¦ ¦ ¦--expr: b [1/1] {168} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {167} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {169} - ¦ ¦ °--expr: c [0/0] {171} - ¦ ¦ °--SYMBOL: c [0/0] {170} - ¦ °--')': ) [1/0] {172} - ¦--expr: c(a + [2/0] {173} - ¦ ¦--expr: c [0/0] {175} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {174} - ¦ ¦--'(': ( [0/0] {176} - ¦ ¦--expr: a + - [0/0] {177} - ¦ ¦ ¦--expr: a [0/1] {179} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {178} - ¦ ¦ ¦--'+': + [0/4] {180} - ¦ ¦ ¦--expr: b [1/1] {183} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {182} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {184} - ¦ ¦ °--expr: c [0/0] {186} - ¦ ¦ °--SYMBOL: c [0/0] {185} - ¦ °--')': ) [1/0] {187} - ¦--expr: a %>% [2/0] {188} - ¦ ¦--expr: a [0/1] {190} - ¦ ¦ °--SYMBOL: a [0/0] {189} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {191} - ¦ °--expr: b( -) [0/0] {192} - ¦ ¦--expr: b [0/0] {194} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {193} - ¦ ¦--'(': ( [0/0] {195} - ¦ °--')': ) [1/0] {196} - ¦--expr: a %>% [2/0] {197} - ¦ ¦--expr: a [0/1] {200} - ¦ ¦ °--SYMBOL: a [0/0] {199} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {201} - ¦ ¦--expr: b( -) [0/1] {202} - ¦ ¦ ¦--expr: b [0/0] {204} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {203} - ¦ ¦ ¦--'(': ( [0/0] {205} - ¦ ¦ °--')': ) [1/0] {206} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {207} - ¦ °--expr: q [0/0] {209} - ¦ °--SYMBOL: q [0/0] {208} - ¦--expr: a %>% [2/0] {210} - ¦ ¦--expr: a [0/1] {212} - ¦ ¦ °--SYMBOL: a [0/0] {211} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {213} - ¦ °--expr: b() [1/0] {214} - ¦ ¦--expr: b [0/0] {216} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {215} - ¦ ¦--'(': ( [0/0] {217} - ¦ °--')': ) [0/0] {218} - ¦--expr: a %>% [2/0] {219} - ¦ ¦--expr: a [0/1] {222} - ¦ ¦ °--SYMBOL: a [0/0] {221} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {223} - ¦ ¦--expr: b() [0/1] {224} - ¦ ¦ ¦--expr: b [0/0] {226} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {225} - ¦ ¦ ¦--'(': ( [0/0] {227} - ¦ ¦ °--')': ) [0/0] {228} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {229} - ¦ °--expr: c [0/0] {231} - ¦ °--SYMBOL: c [0/0] {230} - ¦--COMMENT: # sho [2/0] {232} - ¦--expr: a %>% [1/0] {233} - ¦ ¦--expr: a [0/1] {235} - ¦ ¦ °--SYMBOL: a [0/0] {234} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {236} - ¦ °--expr: b() [0/0] {237} - ¦ ¦--expr: b [0/0] {239} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {238} - ¦ ¦--'(': ( [0/0] {240} - ¦ °--')': ) [0/0] {241} - ¦--expr: fun(x [2/0] {242} - ¦ ¦--expr: fun [0/0] {244} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {243} - ¦ ¦--'(': ( [0/0] {245} - ¦ ¦--expr: x [0/0] {247} - ¦ ¦ °--SYMBOL: x [0/0] {246} - ¦ ¦--',': , [0/2] {248} - ¦ ¦--expr: a %>% [1/0] {249} - ¦ ¦ ¦--expr: a [0/1] {251} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {250} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {252} - ¦ ¦ °--expr: b [0/0] {254} - ¦ ¦ °--SYMBOL: b [0/0] {253} - ¦ °--')': ) [0/0] {255} - ¦--expr: fun(x [2/0] {256} - ¦ ¦--expr: fun [0/0] {258} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {257} - ¦ ¦--'(': ( [0/0] {259} - ¦ ¦--expr: x [0/0] {261} - ¦ ¦ °--SYMBOL: x [0/0] {260} - ¦ ¦--',': , [0/4] {262} - ¦ ¦--SYMBOL_SUB: gg [1/1] {263} - ¦ ¦--EQ_SUB: = [0/1] {264} - ¦ ¦--expr: a %>% [0/0] {265} - ¦ ¦ ¦--expr: a [0/1] {267} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {266} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {268} - ¦ ¦ °--expr: b [0/0] {270} - ¦ ¦ °--SYMBOL: b [0/0] {269} - ¦ ¦--',': , [0/4] {271} - ¦ ¦--expr: tt %> [1/0] {272} - ¦ ¦ ¦--expr: tt [0/1] {274} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {273} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {275} - ¦ ¦ °--expr: q [0/0] {277} - ¦ ¦ °--SYMBOL: q [0/0] {276} - ¦ °--')': ) [0/0] {278} - ¦--expr: fun(x [2/0] {279} - ¦ ¦--expr: fun [0/0] {281} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {280} - ¦ ¦--'(': ( [0/0] {282} - ¦ ¦--expr: x [0/0] {284} - ¦ ¦ °--SYMBOL: x [0/0] {283} - ¦ ¦--',': , [0/1] {285} - ¦ ¦--SYMBOL_SUB: gg [0/1] {286} - ¦ ¦--EQ_SUB: = [0/1] {287} - ¦ ¦--expr: a %>% [0/0] {288} - ¦ ¦ ¦--expr: a [0/1] {290} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {289} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {291} - ¦ ¦ °--expr: b [0/0] {293} - ¦ ¦ °--SYMBOL: b [0/0] {292} - ¦ ¦--',': , [0/1] {294} - ¦ ¦--expr: tt %> [0/0] {295} - ¦ ¦ ¦--expr: tt [0/1] {297} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {296} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {298} - ¦ ¦ °--expr: q [0/0] {300} - ¦ ¦ °--SYMBOL: q [0/0] {299} - ¦ °--')': ) [0/0] {301} - ¦--expr_or_assign_or_help: z = a [2/0] {302} - ¦ ¦--expr: z [0/1] {304} - ¦ ¦ °--SYMBOL: z [0/0] {303} - ¦ ¦--EQ_ASSIGN: = [0/1] {305} - ¦ ¦--expr: a [0/1] {308} - ¦ ¦ °--SYMBOL: a [0/0] {307} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {309} - ¦ °--expr: b() [0/0] {310} - ¦ ¦--expr: b [0/0] {312} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {311} - ¦ ¦--'(': ( [0/0] {313} - ¦ °--')': ) [0/0] {314} - ¦--expr: fun( [2/0] {315} - ¦ ¦--expr: fun [0/0] {317} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {316} - ¦ ¦--'(': ( [0/1] {318} - ¦ ¦--SYMBOL_SUB: s [0/1] {319} - ¦ ¦--EQ_SUB: = [0/1] {320} - ¦ ¦--expr: g(x) [0/0] {321} - ¦ ¦ ¦--expr: g [0/0] {323} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {322} - ¦ ¦ ¦--'(': ( [0/0] {324} - ¦ ¦ ¦--expr: x [0/0] {326} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {325} - ¦ ¦ °--')': ) [0/0] {327} - ¦ ¦--',': , [0/4] {328} - ¦ ¦--SYMBOL_SUB: gg [1/1] {329} - ¦ ¦--EQ_SUB: = [0/1] {330} - ¦ ¦--expr: a(n = [0/0] {331} - ¦ ¦ ¦--expr: a(n = [0/1] {332} - ¦ ¦ ¦ ¦--expr: a [0/0] {334} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {333} - ¦ ¦ ¦ ¦--'(': ( [0/0] {335} - ¦ ¦ ¦ ¦--expr: n == [0/0] {336} - ¦ ¦ ¦ ¦ ¦--expr: n [0/1] {338} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: n [0/0] {337} - ¦ ¦ ¦ ¦ ¦--EQ: == [0/1] {339} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {341} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {340} - ¦ ¦ ¦ °--')': ) [0/0] {342} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {343} - ¦ ¦ °--expr: b [0/0] {345} - ¦ ¦ °--SYMBOL: b [0/0] {344} - ¦ ¦--',': , [0/4] {346} - ¦ ¦--expr: tt %> [1/0] {347} - ¦ ¦ ¦--expr: tt [0/1] {349} - ¦ ¦ ¦ °--SYMBOL: tt [0/0] {348} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {350} - ¦ ¦ °--expr: q(r = [0/0] {351} - ¦ ¦ ¦--expr: q [0/0] {353} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {352} - ¦ ¦ ¦--'(': ( [0/0] {354} - ¦ ¦ ¦--SYMBOL_SUB: r [0/1] {355} - ¦ ¦ ¦--EQ_SUB: = [0/1] {356} - ¦ ¦ ¦--expr: 3 [0/0] {358} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {357} - ¦ ¦ °--')': ) [0/0] {359} - ¦ °--')': ) [0/0] {360} - ¦--COMMENT: # FIX [2/0] {361} - ¦--expr: blew( [1/0] {362} - ¦ ¦--expr: blew [0/0] {364} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {363} - ¦ ¦--'(': ( [0/0] {365} - ¦ ¦--expr: x %>% [0/0] {366} - ¦ ¦ ¦--expr: x [0/1] {368} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {367} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/7] {369} - ¦ ¦ °--expr: c() [2/0] {370} - ¦ ¦ ¦--expr: c [0/0] {372} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {371} - ¦ ¦ ¦--'(': ( [0/0] {373} - ¦ ¦ °--')': ) [0/0] {374} - ¦ ¦--',': , [0/1] {375} - ¦ ¦--SYMBOL_SUB: y [0/1] {376} - ¦ ¦--EQ_SUB: = [0/1] {377} - ¦ ¦--expr: 2 [0/0] {379} - ¦ ¦ °--NUM_CONST: 2 [0/0] {378} - ¦ °--')': ) [0/0] {380} - ¦--COMMENT: # FIX [2/0] {381} - ¦--expr: blew( [1/0] {382} - ¦ ¦--expr: blew [0/0] {384} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: blew [0/0] {383} - ¦ ¦--'(': ( [0/0] {385} - ¦ ¦--SYMBOL_SUB: y [0/1] {386} - ¦ ¦--EQ_SUB: = [0/1] {387} - ¦ ¦--expr: 2 [0/0] {389} - ¦ ¦ °--NUM_CONST: 2 [0/0] {388} - ¦ ¦--',': , [0/1] {390} - ¦ ¦--expr: x %>% [0/0] {391} - ¦ ¦ ¦--expr: x [0/1] {393} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {392} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/7] {394} - ¦ ¦ °--expr: c() [1/0] {395} - ¦ ¦ ¦--expr: c [0/0] {397} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {396} - ¦ ¦ ¦--'(': ( [0/0] {398} - ¦ ¦ °--')': ) [0/0] {399} - ¦ °--')': ) [0/0] {400} - ¦--expr: {a %> [3/0] {401} - ¦ ¦--'{': { [0/0] {402} - ¦ ¦--expr: a %>% [0/0] {403} - ¦ ¦ ¦--expr: a [0/1] {406} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {405} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {407} - ¦ ¦ ¦--expr: c [0/1] {409} - ¦ ¦ ¦ °--SYMBOL: c [0/0] {408} - ¦ ¦ ¦--'+': + [0/0] {410} - ¦ ¦ °--expr: 1 [0/0] {412} - ¦ ¦ °--NUM_CONST: 1 [0/0] {411} - ¦ °--'}': } [0/0] {413} - ¦--expr: b %>% [3/0] {414} - ¦ ¦--expr: b [0/1] {418} - ¦ ¦ °--SYMBOL: b [0/0] {417} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {419} - ¦ ¦--expr: f() [1/1] {420} - ¦ ¦ ¦--expr: f [0/0] {422} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {421} - ¦ ¦ ¦--'(': ( [0/0] {423} - ¦ ¦ °--')': ) [0/0] {424} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {425} - ¦ ¦--COMMENT: # nev [0/2] {426} - ¦ ¦--expr: k() [1/1] {427} - ¦ ¦ ¦--expr: k [0/0] {429} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {428} - ¦ ¦ ¦--'(': ( [0/0] {430} - ¦ ¦ °--')': ) [0/0] {431} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {432} - ¦ °--expr: x() [1/0] {433} - ¦ ¦--expr: x [0/0] {435} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: x [0/0] {434} - ¦ ¦--'(': ( [0/0] {436} - ¦ °--')': ) [0/0] {437} - ¦--COMMENT: # lin [3/0] {438} - ¦--expr: c( -da [1/0] {439} - ¦ ¦--expr: c [0/0] {441} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {440} - ¦ ¦--'(': ( [0/0] {442} - ¦ ¦--expr: data [1/0] {443} - ¦ ¦ ¦--expr: data [0/1] {446} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {445} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/2] {447} - ¦ ¦ ¦--expr: filte [1/1] {448} - ¦ ¦ ¦ ¦--expr: filte [0/0] {450} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {449} - ¦ ¦ ¦ ¦--'(': ( [0/0] {451} - ¦ ¦ ¦ ¦--expr: bar [0/0] {453} - ¦ ¦ ¦ ¦ °--SYMBOL: bar [0/0] {452} - ¦ ¦ ¦ °--')': ) [0/0] {454} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {455} - ¦ ¦ °--expr: { - [0/0] {456} - ¦ ¦ ¦--'{': { [0/4] {457} - ¦ ¦ ¦--expr: cor(. [1/2] {458} - ¦ ¦ ¦ ¦--expr: cor [0/0] {460} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {459} - ¦ ¦ ¦ ¦--'(': ( [0/0] {461} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {462} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {464} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {463} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {465} - ¦ ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {466} - ¦ ¦ ¦ ¦--',': , [0/1] {467} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {468} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {470} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {469} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {471} - ¦ ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {472} - ¦ ¦ ¦ ¦--',': , [0/1] {473} - ¦ ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {474} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {475} - ¦ ¦ ¦ ¦--expr: "comp [0/0] {477} - ¦ ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {476} - ¦ ¦ ¦ °--')': ) [0/0] {478} - ¦ ¦ °--'}': } [1/0] {479} - ¦ °--')': ) [1/0] {480} - ¦--expr: data [2/0] {481} - ¦ ¦--expr: data [0/1] {484} - ¦ ¦ °--SYMBOL: data [0/0] {483} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {485} - ¦ ¦--expr: filte [1/1] {486} - ¦ ¦ ¦--expr: filte [0/0] {488} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {487} - ¦ ¦ ¦--'(': ( [0/0] {489} - ¦ ¦ ¦--expr: bar [0/0] {491} - ¦ ¦ ¦ °--SYMBOL: bar [0/0] {490} - ¦ ¦ °--')': ) [0/0] {492} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {493} - ¦ °--expr: { - [0/0] {494} - ¦ ¦--'{': { [0/4] {495} - ¦ ¦--expr: cor(. [1/2] {496} - ¦ ¦ ¦--expr: cor [0/0] {498} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {497} - ¦ ¦ ¦--'(': ( [0/0] {499} - ¦ ¦ ¦--expr: .$col [0/0] {500} - ¦ ¦ ¦ ¦--expr: . [0/0] {502} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {501} - ¦ ¦ ¦ ¦--'$': $ [0/0] {503} - ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {504} - ¦ ¦ ¦--',': , [0/1] {505} - ¦ ¦ ¦--expr: .$col [0/0] {506} - ¦ ¦ ¦ ¦--expr: . [0/0] {508} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {507} - ¦ ¦ ¦ ¦--'$': $ [0/0] {509} - ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {510} - ¦ ¦ ¦--',': , [0/1] {511} - ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {512} - ¦ ¦ ¦--EQ_SUB: = [0/1] {513} - ¦ ¦ ¦--expr: "comp [0/0] {515} - ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {514} - ¦ ¦ °--')': ) [0/0] {516} - ¦ °--'}': } [1/0] {517} - ¦--COMMENT: # lin [2/0] {518} - ¦--expr: c( - [1/0] {519} - ¦ ¦--expr: c [0/0] {521} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {520} - ¦ ¦--'(': ( [0/2] {522} - ¦ ¦--expr: data [1/0] {523} - ¦ ¦ ¦--expr: data [0/1] {526} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {525} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {527} - ¦ ¦ ¦--expr: filte [1/1] {528} - ¦ ¦ ¦ ¦--expr: filte [0/0] {530} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {529} - ¦ ¦ ¦ ¦--'(': ( [0/0] {531} - ¦ ¦ ¦ ¦--expr: bar [0/0] {533} - ¦ ¦ ¦ ¦ °--SYMBOL: bar [0/0] {532} - ¦ ¦ ¦ °--')': ) [0/0] {534} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {535} - ¦ ¦ °--expr: { - [1/0] {536} - ¦ ¦ ¦--'{': { [0/6] {537} - ¦ ¦ ¦--expr: cor(. [1/4] {538} - ¦ ¦ ¦ ¦--expr: cor [0/0] {540} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {539} - ¦ ¦ ¦ ¦--'(': ( [0/0] {541} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {542} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {544} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {543} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {545} - ¦ ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {546} - ¦ ¦ ¦ ¦--',': , [0/1] {547} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {548} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {550} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {549} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {551} - ¦ ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {552} - ¦ ¦ ¦ ¦--',': , [0/1] {553} - ¦ ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {554} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {555} - ¦ ¦ ¦ ¦--expr: "comp [0/0] {557} - ¦ ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {556} - ¦ ¦ ¦ °--')': ) [0/0] {558} - ¦ ¦ °--'}': } [1/0] {559} - ¦ °--')': ) [1/0] {560} - ¦--expr: data [2/0] {561} - ¦ ¦--expr: data [0/1] {564} - ¦ ¦ °--SYMBOL: data [0/0] {563} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {565} - ¦ ¦--expr: filte [1/1] {566} - ¦ ¦ ¦--expr: filte [0/0] {568} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {567} - ¦ ¦ ¦--'(': ( [0/0] {569} - ¦ ¦ ¦--expr: bar [0/0] {571} - ¦ ¦ ¦ °--SYMBOL: bar [0/0] {570} - ¦ ¦ °--')': ) [0/0] {572} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {573} - ¦ °--expr: { - [1/0] {574} - ¦ ¦--'{': { [0/4] {575} - ¦ ¦--expr: cor(. [1/2] {576} - ¦ ¦ ¦--expr: cor [0/0] {578} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {577} - ¦ ¦ ¦--'(': ( [0/0] {579} - ¦ ¦ ¦--expr: .$col [0/0] {580} - ¦ ¦ ¦ ¦--expr: . [0/0] {582} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {581} - ¦ ¦ ¦ ¦--'$': $ [0/0] {583} - ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {584} - ¦ ¦ ¦--',': , [0/1] {585} - ¦ ¦ ¦--expr: .$col [0/0] {586} - ¦ ¦ ¦ ¦--expr: . [0/0] {588} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {587} - ¦ ¦ ¦ ¦--'$': $ [0/0] {589} - ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {590} - ¦ ¦ ¦--',': , [0/1] {591} - ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {592} - ¦ ¦ ¦--EQ_SUB: = [0/1] {593} - ¦ ¦ ¦--expr: "comp [0/0] {595} - ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {594} - ¦ ¦ °--')': ) [0/0] {596} - ¦ °--'}': } [1/0] {597} - ¦--COMMENT: # red [2/0] {598} - ¦--expr: c( - [1/0] {599} - ¦ ¦--expr: c [0/0] {601} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {600} - ¦ ¦--'(': ( [0/2] {602} - ¦ ¦--expr: data [1/0] {603} - ¦ ¦ ¦--expr: data [0/1] {606} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {605} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {607} - ¦ ¦ ¦--expr: filte [1/1] {608} - ¦ ¦ ¦ ¦--expr: filte [0/0] {610} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {609} - ¦ ¦ ¦ ¦--'(': ( [0/0] {611} - ¦ ¦ ¦ ¦--expr: bar [0/0] {613} - ¦ ¦ ¦ ¦ °--SYMBOL: bar [0/0] {612} - ¦ ¦ ¦ °--')': ) [0/0] {614} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {615} - ¦ ¦ °--expr: { - [2/0] {616} - ¦ ¦ ¦--'{': { [0/6] {617} - ¦ ¦ ¦--expr: cor(. [1/4] {618} - ¦ ¦ ¦ ¦--expr: cor [0/0] {620} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {619} - ¦ ¦ ¦ ¦--'(': ( [0/0] {621} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {622} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {624} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {623} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {625} - ¦ ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {626} - ¦ ¦ ¦ ¦--',': , [0/1] {627} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {628} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {630} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {629} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {631} - ¦ ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {632} - ¦ ¦ ¦ ¦--',': , [0/1] {633} - ¦ ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {634} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {635} - ¦ ¦ ¦ ¦--expr: "comp [0/0] {637} - ¦ ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {636} - ¦ ¦ ¦ °--')': ) [0/0] {638} - ¦ ¦ °--'}': } [1/0] {639} - ¦ °--')': ) [1/0] {640} - ¦--expr: data [2/0] {641} - ¦ ¦--expr: data [0/1] {644} - ¦ ¦ °--SYMBOL: data [0/0] {643} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {645} - ¦ ¦--expr: filte [1/1] {646} - ¦ ¦ ¦--expr: filte [0/0] {648} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {647} - ¦ ¦ ¦--'(': ( [0/0] {649} - ¦ ¦ ¦--expr: bar [0/0] {651} - ¦ ¦ ¦ °--SYMBOL: bar [0/0] {650} - ¦ ¦ °--')': ) [0/0] {652} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {653} - ¦ °--expr: { - [2/0] {654} - ¦ ¦--'{': { [0/4] {655} - ¦ ¦--expr: cor(. [1/2] {656} - ¦ ¦ ¦--expr: cor [0/0] {658} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {657} - ¦ ¦ ¦--'(': ( [0/0] {659} - ¦ ¦ ¦--expr: .$col [0/0] {660} - ¦ ¦ ¦ ¦--expr: . [0/0] {662} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {661} - ¦ ¦ ¦ ¦--'$': $ [0/0] {663} - ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {664} - ¦ ¦ ¦--',': , [0/1] {665} - ¦ ¦ ¦--expr: .$col [0/0] {666} - ¦ ¦ ¦ ¦--expr: . [0/0] {668} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {667} - ¦ ¦ ¦ ¦--'$': $ [0/0] {669} - ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {670} - ¦ ¦ ¦--',': , [0/1] {671} - ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {672} - ¦ ¦ ¦--EQ_SUB: = [0/1] {673} - ¦ ¦ ¦--expr: "comp [0/0] {675} - ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {674} - ¦ ¦ °--')': ) [0/0] {676} - ¦ °--'}': } [1/0] {677} - ¦--COMMENT: # bla [2/0] {678} - ¦--expr: c( - [1/0] {679} - ¦ ¦--expr: c [0/0] {681} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {680} - ¦ ¦--'(': ( [0/2] {682} - ¦ ¦--expr: data [1/0] {683} - ¦ ¦ ¦--expr: data [0/1] {686} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {685} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {687} - ¦ ¦ ¦--expr: filte [1/1] {688} - ¦ ¦ ¦ ¦--expr: filte [0/0] {690} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {689} - ¦ ¦ ¦ ¦--'(': ( [0/0] {691} - ¦ ¦ ¦ ¦--expr: bar [0/0] {693} - ¦ ¦ ¦ ¦ °--SYMBOL: bar [0/0] {692} - ¦ ¦ ¦ °--')': ) [0/0] {694} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {695} - ¦ ¦ ¦--COMMENT: # com [1/4] {696} - ¦ ¦ °--expr: { - [2/0] {697} - ¦ ¦ ¦--'{': { [0/6] {698} - ¦ ¦ ¦--expr: cor(. [1/4] {699} - ¦ ¦ ¦ ¦--expr: cor [0/0] {701} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {700} - ¦ ¦ ¦ ¦--'(': ( [0/0] {702} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {703} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {705} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {704} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {706} - ¦ ¦ ¦ ¦ °--SYMBOL: col1 [0/0] {707} - ¦ ¦ ¦ ¦--',': , [0/1] {708} - ¦ ¦ ¦ ¦--expr: .$col [0/0] {709} - ¦ ¦ ¦ ¦ ¦--expr: . [0/0] {711} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {710} - ¦ ¦ ¦ ¦ ¦--'$': $ [0/0] {712} - ¦ ¦ ¦ ¦ °--SYMBOL: col2 [0/0] {713} - ¦ ¦ ¦ ¦--',': , [0/1] {714} - ¦ ¦ ¦ ¦--SYMBOL_SUB: use [0/1] {715} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {716} - ¦ ¦ ¦ ¦--expr: "comp [0/0] {718} - ¦ ¦ ¦ ¦ °--STR_CONST: "comp [0/0] {717} - ¦ ¦ ¦ °--')': ) [0/0] {719} - ¦ ¦ °--'}': } [1/0] {720} - ¦ °--')': ) [1/0] {721} - °--expr: data [2/0] {722} - ¦--expr: data [0/1] {725} - ¦ °--SYMBOL: data [0/0] {724} - ¦--SPECIAL-PIPE: %>% [0/2] {726} - ¦--expr: filte [1/1] {727} - ¦ ¦--expr: filte [0/0] {729} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: filte [0/0] {728} - ¦ ¦--'(': ( [0/0] {730} - ¦ ¦--expr: bar [0/0] {732} - ¦ ¦ °--SYMBOL: bar [0/0] {731} - ¦ °--')': ) [0/0] {733} - ¦--SPECIAL-PIPE: %>% [0/2] {734} - ¦--COMMENT: # com [1/2] {735} - °--expr: { - [2/0] {736} - ¦--'{': { [0/4] {737} - ¦--expr: cor(. [1/2] {738} - ¦ ¦--expr: cor [0/0] {740} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: cor [0/0] {739} - ¦ ¦--'(': ( [0/0] {741} - ¦ ¦--expr: .$col [0/0] {742} - ¦ ¦ ¦--expr: . [0/0] {744} - ¦ ¦ ¦ °--SYMBOL: . [0/0] {743} - ¦ ¦ ¦--'$': $ [0/0] {745} - ¦ ¦ °--SYMBOL: col1 [0/0] {746} - ¦ ¦--',': , [0/1] {747} - ¦ ¦--expr: .$col [0/0] {748} - ¦ ¦ ¦--expr: . [0/0] {750} - ¦ ¦ ¦ °--SYMBOL: . [0/0] {749} - ¦ ¦ ¦--'$': $ [0/0] {751} - ¦ ¦ °--SYMBOL: col2 [0/0] {752} - ¦ ¦--',': , [0/1] {753} - ¦ ¦--SYMBOL_SUB: use [0/1] {754} - ¦ ¦--EQ_SUB: = [0/1] {755} - ¦ ¦--expr: "comp [0/0] {757} - ¦ ¦ °--STR_CONST: "comp [0/0] {756} - ¦ °--')': ) [0/0] {758} - °--'}': } [1/0] {759} diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-in_tree b/tests/testthat/line_breaks_and_other/pipe_and_comment-in_tree deleted file mode 100644 index f46b15c2a..000000000 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-in_tree +++ /dev/null @@ -1,15 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1:10 [0/0] {1} - ¦--expr: 1:10 [0/1] {2} - ¦ ¦--expr: 1 [0/0] {4} - ¦ ¦ °--NUM_CONST: 1 [0/0] {3} - ¦ ¦--':': : [0/0] {5} - ¦ °--expr: 10 [0/0] {7} - ¦ °--NUM_CONST: 10 [0/0] {6} - ¦--SPECIAL-PIPE: %>% [0/1] {8} - ¦--COMMENT: # sum [0/2] {9} - °--expr: sum() [1/0] {10} - ¦--expr: sum [0/0] {12} - ¦ °--SYMBOL_FUNCTION_CALL: sum [0/0] {11} - ¦--'(': ( [0/0] {13} - °--')': ) [0/0] {14} diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-in_tree b/tests/testthat/line_breaks_fun_call/blank-non-strict-in_tree deleted file mode 100644 index 9632f334c..000000000 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-in_tree +++ /dev/null @@ -1,31 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: 1 [3/0] {6} - ¦ ¦ °--NUM_CONST: 1 [0/0] {5} - ¦ °--')': ) [1/0] {7} - ¦--expr: call( [2/0] {8} - ¦ ¦--expr: call [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {9} - ¦ ¦--'(': ( [0/2] {11} - ¦ ¦--COMMENT: # com [1/2] {12} - ¦ ¦--expr: 1 [2/0] {14} - ¦ ¦ °--NUM_CONST: 1 [0/0] {13} - ¦ °--')': ) [1/0] {15} - °--expr: call( [2/0] {16} - ¦--expr: call [0/0] {18} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {17} - ¦--'(': ( [0/2] {19} - ¦--SYMBOL_SUB: x [1/1] {20} - ¦--EQ_SUB: = [0/1] {21} - ¦--expr: 2 [0/0] {23} - ¦ °--NUM_CONST: 2 [0/0] {22} - ¦--',': , [0/2] {24} - ¦--expr: 1 [1/0] {26} - ¦ °--NUM_CONST: 1 [0/0] {25} - ¦--',': , [0/2] {27} - ¦--expr: "w" [2/0] {29} - ¦ °--STR_CONST: "w" [0/0] {28} - °--')': ) [1/0] {30} diff --git a/tests/testthat/line_breaks_fun_call/blank-strict-in_tree b/tests/testthat/line_breaks_fun_call/blank-strict-in_tree deleted file mode 100644 index 9f5ef0916..000000000 --- a/tests/testthat/line_breaks_fun_call/blank-strict-in_tree +++ /dev/null @@ -1,51 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: 1 [3/0] {6} - ¦ ¦ °--NUM_CONST: 1 [0/0] {5} - ¦ °--')': ) [1/0] {7} - ¦--expr: call( [2/0] {8} - ¦ ¦--expr: call [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {9} - ¦ ¦--'(': ( [0/2] {11} - ¦ ¦--COMMENT: # com [1/2] {12} - ¦ ¦--expr: 1 [2/0] {14} - ¦ ¦ °--NUM_CONST: 1 [0/0] {13} - ¦ °--')': ) [1/0] {15} - ¦--expr: call( [2/0] {16} - ¦ ¦--expr: call [0/0] {18} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {17} - ¦ ¦--'(': ( [0/2] {19} - ¦ ¦--SYMBOL_SUB: x [1/1] {20} - ¦ ¦--EQ_SUB: = [0/1] {21} - ¦ ¦--expr: 2 [0/0] {23} - ¦ ¦ °--NUM_CONST: 2 [0/0] {22} - ¦ ¦--',': , [0/2] {24} - ¦ ¦--expr: 1 [1/0] {26} - ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ ¦--',': , [0/2] {27} - ¦ ¦--expr: "w" [2/0] {29} - ¦ ¦ °--STR_CONST: "w" [0/0] {28} - ¦ °--')': ) [1/0] {30} - °--expr: call( [2/0] {31} - ¦--expr: call [0/0] {33} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {32} - ¦--'(': ( [0/2] {34} - ¦--expr: 1 [1/0] {36} - ¦ °--NUM_CONST: 1 [0/0] {35} - ¦--',': , [0/2] {37} - ¦--expr: 2 [1/0] {39} - ¦ °--NUM_CONST: 2 [0/0] {38} - ¦--',': , [0/2] {40} - ¦--COMMENT: # com [4/2] {41} - ¦--expr: 1 [2/0] {43} - ¦ °--NUM_CONST: 1 [0/0] {42} - ¦--',': , [0/2] {44} - ¦--expr: 2 [1/0] {46} - ¦ °--NUM_CONST: 2 [0/0] {45} - ¦--',': , [0/2] {47} - ¦--expr: 3 [2/0] {49} - ¦ °--NUM_CONST: 3 [0/0] {48} - °--')': ) [1/0] {50} diff --git a/tests/testthat/line_breaks_fun_call/line_breaks_and_comments-in_tree b/tests/testthat/line_breaks_fun_call/line_breaks_and_comments-in_tree deleted file mode 100644 index 899d5d938..000000000 --- a/tests/testthat/line_breaks_fun_call/line_breaks_and_comments-in_tree +++ /dev/null @@ -1,80 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/1] {4} - ¦ ¦--COMMENT: # com [0/2] {5} - ¦ ¦--expr: am [1/0] {7} - ¦ ¦ °--SYMBOL: am [0/0] {6} - ¦ °--')': ) [1/0] {8} - ¦--expr: call( [2/0] {9} - ¦ ¦--expr: call [0/0] {11} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {10} - ¦ ¦--'(': ( [0/2] {12} - ¦ ¦--COMMENT: # com [1/2] {13} - ¦ ¦--expr: am [1/0] {15} - ¦ ¦ °--SYMBOL: am [0/0] {14} - ¦ °--')': ) [1/0] {16} - ¦--expr: call( [2/0] {17} - ¦ ¦--expr: call [0/0] {19} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {18} - ¦ ¦--'(': ( [0/0] {20} - ¦ ¦--expr: am [0/1] {22} - ¦ ¦ °--SYMBOL: am [0/0] {21} - ¦ ¦--COMMENT: # com [0/0] {23} - ¦ °--')': ) [1/0] {24} - ¦--expr: call( [2/0] {25} - ¦ ¦--expr: call [0/0] {27} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {26} - ¦ ¦--'(': ( [0/0] {28} - ¦ ¦--expr: am [0/0] {30} - ¦ ¦ °--SYMBOL: am [0/0] {29} - ¦ ¦--',': , [0/1] {31} - ¦ ¦--COMMENT: # com [0/2] {32} - ¦ ¦--expr: pm [1/0] {34} - ¦ ¦ °--SYMBOL: pm [0/0] {33} - ¦ °--')': ) [1/0] {35} - ¦--expr: call( [3/0] {36} - ¦ ¦--expr: call [0/0] {38} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {37} - ¦ ¦--'(': ( [0/0] {39} - ¦ ¦--expr: b [0/0] {41} - ¦ ¦ °--SYMBOL: b [0/0] {40} - ¦ °--')': ) [1/0] {42} - ¦--expr: call( [2/0] {43} - ¦ ¦--expr: call [0/0] {45} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {44} - ¦ ¦--'(': ( [0/2] {46} - ¦ ¦--expr: a [1/0] {48} - ¦ ¦ °--SYMBOL: a [0/0] {47} - ¦ °--')': ) [1/0] {49} - ¦--expr: call( [2/0] {50} - ¦ ¦--expr: call [0/0] {52} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {51} - ¦ ¦--'(': ( [0/2] {53} - ¦ ¦--expr: a [1/1] {55} - ¦ ¦ °--SYMBOL: a [0/0] {54} - ¦ ¦--COMMENT: # b [0/0] {56} - ¦ °--')': ) [1/0] {57} - ¦--expr: call( [2/0] {58} - ¦ ¦--expr: call [0/0] {60} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {59} - ¦ ¦--'(': ( [0/1] {61} - ¦ ¦--COMMENT: # [0/0] {62} - ¦ °--')': ) [1/0] {63} - ¦--expr: call( [2/0] {64} - ¦ ¦--expr: call [0/0] {66} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {65} - ¦ ¦--'(': ( [0/0] {67} - ¦ ¦--expr: a [0/1] {69} - ¦ ¦ °--SYMBOL: a [0/0] {68} - ¦ ¦--COMMENT: # b [0/0] {70} - ¦ °--')': ) [1/0] {71} - °--expr: call( [1/0] {72} - ¦--expr: call [0/0] {74} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {73} - ¦--'(': ( [0/0] {75} - ¦--COMMENT: # b [0/2] {76} - ¦--expr: a [1/0] {78} - ¦ °--SYMBOL: a [0/0] {77} - °--')': ) [0/0] {79} diff --git a/tests/testthat/line_breaks_fun_call/named_arguments-in_tree b/tests/testthat/line_breaks_fun_call/named_arguments-in_tree deleted file mode 100644 index 0d1a9212a..000000000 --- a/tests/testthat/line_breaks_fun_call/named_arguments-in_tree +++ /dev/null @@ -1,114 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: 3 [0/0] {6} - ¦ ¦ °--NUM_CONST: 3 [0/0] {5} - ¦ ¦--',': , [0/5] {7} - ¦ ¦--SYMBOL_SUB: b [1/1] {8} - ¦ ¦--EQ_SUB: = [0/1] {9} - ¦ ¦--expr: 2 [0/0] {11} - ¦ ¦ °--NUM_CONST: 2 [0/0] {10} - ¦ ¦--',': , [0/1] {12} - ¦ ¦--expr: c [0/0] {14} - ¦ ¦ °--SYMBOL: c [0/0] {13} - ¦ °--')': ) [1/0] {15} - ¦--expr: gs(3, [2/0] {16} - ¦ ¦--expr: gs [0/0] {18} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: gs [0/0] {17} - ¦ ¦--'(': ( [0/0] {19} - ¦ ¦--expr: 3 [0/0] {21} - ¦ ¦ °--NUM_CONST: 3 [0/0] {20} - ¦ ¦--',': , [0/1] {22} - ¦ ¦--SYMBOL_SUB: b [0/1] {23} - ¦ ¦--EQ_SUB: = [0/1] {24} - ¦ ¦--expr: 2 [0/0] {26} - ¦ ¦ °--NUM_CONST: 2 [0/0] {25} - ¦ ¦--',': , [0/3] {27} - ¦ ¦--expr: c [1/0] {29} - ¦ ¦ °--SYMBOL: c [0/0] {28} - ¦ °--')': ) [0/0] {30} - ¦--expr: call( [2/0] {31} - ¦ ¦--expr: call [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: 3 [0/0] {36} - ¦ ¦ °--NUM_CONST: 3 [0/0] {35} - ¦ ¦--',': , [0/1] {37} - ¦ ¦--SYMBOL_SUB: b [0/1] {38} - ¦ ¦--EQ_SUB: = [0/1] {39} - ¦ ¦--expr: 2 [0/0] {41} - ¦ ¦ °--NUM_CONST: 2 [0/0] {40} - ¦ ¦--',': , [0/1] {42} - ¦ ¦--expr: c [0/0] {44} - ¦ ¦ °--SYMBOL: c [0/0] {43} - ¦ °--')': ) [0/0] {45} - ¦--expr: map(d [2/0] {46} - ¦ ¦--expr: map [0/0] {48} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {47} - ¦ ¦--'(': ( [0/0] {49} - ¦ ¦--expr: data [0/0] {51} - ¦ ¦ °--SYMBOL: data [0/0] {50} - ¦ ¦--',': , [0/1] {52} - ¦ ¦--expr: fun [0/0] {54} - ¦ ¦ °--SYMBOL: fun [0/0] {53} - ¦ ¦--',': , [0/4] {55} - ¦ ¦--SYMBOL_SUB: x [1/1] {56} - ¦ ¦--EQ_SUB: = [0/1] {57} - ¦ ¦--expr: 3 [0/0] {59} - ¦ ¦ °--NUM_CONST: 3 [0/0] {58} - ¦ ¦--',': , [0/1] {60} - ¦ ¦--SYMBOL_SUB: z [0/1] {61} - ¦ ¦--EQ_SUB: = [0/1] {62} - ¦ ¦--expr: 33 [0/0] {64} - ¦ ¦ °--NUM_CONST: 33 [0/0] {63} - ¦ °--')': ) [0/0] {65} - ¦--expr: map2( [2/0] {66} - ¦ ¦--expr: map2 [0/0] {68} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: map2 [0/0] {67} - ¦ ¦--'(': ( [0/0] {69} - ¦ ¦--expr: dat1 [0/0] {71} - ¦ ¦ °--SYMBOL: dat1 [0/0] {70} - ¦ ¦--',': , [0/1] {72} - ¦ ¦--expr: data2 [0/0] {74} - ¦ ¦ °--SYMBOL: data2 [0/0] {73} - ¦ ¦--',': , [0/1] {75} - ¦ ¦--expr: fun [0/0] {77} - ¦ ¦ °--SYMBOL: fun [0/0] {76} - ¦ ¦--',': , [0/1] {78} - ¦ ¦--expr: x [0/0] {80} - ¦ ¦ °--SYMBOL: x [0/0] {79} - ¦ ¦--',': , [0/1] {81} - ¦ ¦--expr: y [0/0] {83} - ¦ ¦ °--SYMBOL: y [0/0] {82} - ¦ ¦--',': , [0/5] {84} - ¦ ¦--expr: z [1/0] {86} - ¦ ¦ °--SYMBOL: z [0/0] {85} - ¦ °--')': ) [0/0] {87} - °--expr: map2( [2/0] {88} - ¦--expr: map2 [0/0] {90} - ¦ °--SYMBOL_FUNCTION_CALL: map2 [0/0] {89} - ¦--'(': ( [0/0] {91} - ¦--expr: dat1 [0/0] {93} - ¦ °--SYMBOL: dat1 [0/0] {92} - ¦--',': , [0/1] {94} - ¦--expr: data2 [0/0] {96} - ¦ °--SYMBOL: data2 [0/0] {95} - ¦--',': , [0/1] {97} - ¦--expr: fun [0/0] {99} - ¦ °--SYMBOL: fun [0/0] {98} - ¦--',': , [0/1] {100} - ¦--SYMBOL_SUB: x [0/1] {101} - ¦--EQ_SUB: = [0/1] {102} - ¦--expr: 1 [0/0] {104} - ¦ °--NUM_CONST: 1 [0/0] {103} - ¦--',': , [0/1] {105} - ¦--SYMBOL_SUB: y [0/1] {106} - ¦--EQ_SUB: = [0/1] {107} - ¦--expr: 2 [0/0] {109} - ¦ °--NUM_CONST: 2 [0/0] {108} - ¦--',': , [0/2] {110} - ¦--expr: z [1/0] {112} - ¦ °--SYMBOL: z [0/0] {111} - °--')': ) [1/0] {113} diff --git a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in_tree b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in_tree deleted file mode 100644 index 995abb3c5..000000000 --- a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in_tree +++ /dev/null @@ -1,246 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: 2 [1/0] {6} - ¦ ¦ °--NUM_CONST: 2 [0/0] {5} - ¦ ¦--',': , [0/2] {7} - ¦ ¦--expr: 3 [1/0] {9} - ¦ ¦ °--NUM_CONST: 3 [0/0] {8} - ¦ °--')': ) [1/0] {10} - ¦--expr: switc [2/0] {11} - ¦ ¦--expr: switc [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {12} - ¦ ¦--'(': ( [0/2] {14} - ¦ ¦--expr: x [1/0] {16} - ¦ ¦ °--SYMBOL: x [0/0] {15} - ¦ ¦--',': , [0/2] {17} - ¦ ¦--SYMBOL_SUB: a [1/1] {18} - ¦ ¦--EQ_SUB: = [0/1] {19} - ¦ ¦--expr: 2 [0/0] {21} - ¦ ¦ °--NUM_CONST: 2 [0/0] {20} - ¦ ¦--',': , [0/2] {22} - ¦ ¦--SYMBOL_SUB: y [1/1] {23} - ¦ ¦--EQ_SUB: = [0/1] {24} - ¦ ¦--expr: 3 [0/0] {26} - ¦ ¦ °--NUM_CONST: 3 [0/0] {25} - ¦ °--')': ) [1/0] {27} - ¦--expr: switc [3/0] {28} - ¦ ¦--expr: switc [0/0] {30} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {29} - ¦ ¦--'(': ( [0/1] {31} - ¦ ¦--COMMENT: # [0/2] {32} - ¦ ¦--expr: x [1/0] {34} - ¦ ¦ °--SYMBOL: x [0/0] {33} - ¦ ¦--',': , [0/2] {35} - ¦ ¦--SYMBOL_SUB: a [1/1] {36} - ¦ ¦--EQ_SUB: = [0/1] {37} - ¦ ¦--expr: 2 [0/0] {39} - ¦ ¦ °--NUM_CONST: 2 [0/0] {38} - ¦ ¦--',': , [0/2] {40} - ¦ ¦--SYMBOL_SUB: y [1/1] {41} - ¦ ¦--EQ_SUB: = [0/1] {42} - ¦ ¦--expr: 3 [0/0] {44} - ¦ ¦ °--NUM_CONST: 3 [0/0] {43} - ¦ °--')': ) [1/0] {45} - ¦--expr: switc [4/0] {46} - ¦ ¦--expr: switc [0/0] {48} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {47} - ¦ ¦--'(': ( [0/2] {49} - ¦ ¦--expr: x [1/0] {51} - ¦ ¦ °--SYMBOL: x [0/0] {50} - ¦ ¦--',': , [0/2] {52} - ¦ ¦--SYMBOL_SUB: a [1/1] {53} - ¦ ¦--EQ_SUB: = [0/1] {54} - ¦ ¦--expr: 2 [0/0] {56} - ¦ ¦ °--NUM_CONST: 2 [0/0] {55} - ¦ ¦--',': , [0/1] {57} - ¦ ¦--COMMENT: # [0/2] {58} - ¦ ¦--SYMBOL_SUB: y [3/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [1/0] {63} - ¦--expr: switc [3/0] {64} - ¦ ¦--expr: switc [0/0] {66} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {65} - ¦ ¦--'(': ( [0/7] {67} - ¦ ¦--expr: x [1/0] {69} - ¦ ¦ °--SYMBOL: x [0/0] {68} - ¦ ¦--',': , [0/0] {70} - ¦ ¦--SYMBOL_SUB: a [0/1] {71} - ¦ ¦--EQ_SUB: = [0/1] {72} - ¦ ¦--expr: 2 [0/0] {74} - ¦ ¦ °--NUM_CONST: 2 [0/0] {73} - ¦ ¦--',': , [0/7] {75} - ¦ ¦--SYMBOL_SUB: y [1/1] {76} - ¦ ¦--EQ_SUB: = [0/1] {77} - ¦ ¦--expr: 3 [0/0] {79} - ¦ ¦ °--NUM_CONST: 3 [0/0] {78} - ¦ °--')': ) [1/0] {80} - ¦--expr: switc [2/0] {81} - ¦ ¦--expr: switc [0/0] {83} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {82} - ¦ ¦--'(': ( [0/0] {84} - ¦ ¦--expr: x [0/0] {86} - ¦ ¦ °--SYMBOL: x [0/0] {85} - ¦ ¦--',': , [0/0] {87} - ¦ ¦--SYMBOL_SUB: a [0/1] {88} - ¦ ¦--EQ_SUB: = [0/1] {89} - ¦ ¦--expr: 2 [0/0] {91} - ¦ ¦ °--NUM_CONST: 2 [0/0] {90} - ¦ ¦--',': , [0/2] {92} - ¦ ¦--SYMBOL_SUB: y [1/1] {93} - ¦ ¦--EQ_SUB: = [0/1] {94} - ¦ ¦--expr: 3 [0/0] {96} - ¦ ¦ °--NUM_CONST: 3 [0/0] {95} - ¦ °--')': ) [1/0] {97} - ¦--expr: switc [2/0] {98} - ¦ ¦--expr: switc [0/0] {100} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {99} - ¦ ¦--'(': ( [0/0] {101} - ¦ ¦--expr: x [0/0] {103} - ¦ ¦ °--SYMBOL: x [0/0] {102} - ¦ ¦--',': , [0/0] {104} - ¦ ¦--SYMBOL_SUB: a [0/1] {105} - ¦ ¦--EQ_SUB: = [0/1] {106} - ¦ ¦--expr: 2 [0/0] {108} - ¦ ¦ °--NUM_CONST: 2 [0/0] {107} - ¦ ¦--',': , [0/1] {109} - ¦ ¦--SYMBOL_SUB: y [0/1] {110} - ¦ ¦--EQ_SUB: = [0/1] {111} - ¦ ¦--expr: 3 [0/0] {113} - ¦ ¦ °--NUM_CONST: 3 [0/0] {112} - ¦ °--')': ) [0/0] {114} - ¦--expr: switc [2/1] {115} - ¦ ¦--expr: switc [0/0] {117} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {116} - ¦ ¦--'(': ( [0/0] {118} - ¦ ¦--expr: x [0/0] {120} - ¦ ¦ °--SYMBOL: x [0/0] {119} - ¦ ¦--',': , [0/0] {121} - ¦ ¦--SYMBOL_SUB: a [0/1] {122} - ¦ ¦--EQ_SUB: = [0/1] {123} - ¦ ¦--expr: 2 [0/0] {125} - ¦ ¦ °--NUM_CONST: 2 [0/0] {124} - ¦ ¦--',': , [0/1] {126} - ¦ ¦--SYMBOL_SUB: y [0/1] {127} - ¦ ¦--EQ_SUB: = [0/1] {128} - ¦ ¦--expr: 3 [0/0] {130} - ¦ ¦ °--NUM_CONST: 3 [0/0] {129} - ¦ °--')': ) [1/0] {131} - ¦--COMMENT: # [0/0] {132} - ¦--expr: switc [2/0] {133} - ¦ ¦--expr: switc [0/0] {135} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {134} - ¦ ¦--'(': ( [0/0] {136} - ¦ ¦--expr: x [0/0] {138} - ¦ ¦ °--SYMBOL: x [0/0] {137} - ¦ ¦--',': , [0/0] {139} - ¦ ¦--SYMBOL_SUB: a [0/1] {140} - ¦ ¦--EQ_SUB: = [0/1] {141} - ¦ ¦--expr: 2 [0/0] {143} - ¦ ¦ °--NUM_CONST: 2 [0/0] {142} - ¦ ¦--',': , [0/1] {144} - ¦ ¦--SYMBOL_SUB: y [0/1] {145} - ¦ ¦--EQ_SUB: = [0/1] {146} - ¦ ¦--expr: 3 [0/1] {148} - ¦ ¦ °--NUM_CONST: 3 [0/0] {147} - ¦ ¦--COMMENT: # [0/0] {149} - ¦ °--')': ) [1/0] {150} - ¦--expr: if_el [2/0] {151} - ¦ ¦--expr: if_el [0/0] {153} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: if_el [0/0] {152} - ¦ ¦--'(': ( [0/0] {154} - ¦ ¦--expr: a [0/0] {156} - ¦ ¦ °--SYMBOL: a [0/0] {155} - ¦ ¦--',': , [0/2] {157} - ¦ ¦--expr: c [1/0] {159} - ¦ ¦ °--SYMBOL: c [0/0] {158} - ¦ ¦--',': , [0/1] {160} - ¦ ¦--expr: v [0/0] {162} - ¦ ¦ °--SYMBOL: v [0/0] {161} - ¦ °--')': ) [1/0] {163} - ¦--expr: ifels [2/0] {164} - ¦ ¦--expr: ifels [0/0] {166} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ifels [0/0] {165} - ¦ ¦--'(': ( [0/0] {167} - ¦ ¦--expr: x [0/0] {169} - ¦ ¦ °--SYMBOL: x [0/0] {168} - ¦ ¦--',': , [0/2] {170} - ¦ ¦--expr: y [1/0] {172} - ¦ ¦ °--SYMBOL: y [0/0] {171} - ¦ ¦--',': , [0/1] {173} - ¦ ¦--expr: z [0/0] {175} - ¦ ¦ °--SYMBOL: z [0/0] {174} - ¦ °--')': ) [1/0] {176} - ¦--COMMENT: # nam [3/0] {177} - ¦--expr: base: [1/0] {178} - ¦ ¦--expr: base: [0/0] {179} - ¦ ¦ ¦--SYMBOL_PACKAGE: base [0/0] {180} - ¦ ¦ ¦--NS_GET: :: [0/0] {181} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {182} - ¦ ¦--'(': ( [0/0] {183} - ¦ ¦--expr: f [0/0] {185} - ¦ ¦ °--SYMBOL: f [0/0] {184} - ¦ ¦--',': , [0/13] {186} - ¦ ¦--SYMBOL_SUB: x [1/1] {187} - ¦ ¦--EQ_SUB: = [0/1] {188} - ¦ ¦--expr: 2 [0/0] {190} - ¦ ¦ °--NUM_CONST: 2 [0/0] {189} - ¦ ¦--',': , [0/13] {191} - ¦ ¦--SYMBOL_SUB: y [1/1] {192} - ¦ ¦--EQ_SUB: = [0/1] {193} - ¦ ¦--expr: 3 [0/0] {195} - ¦ ¦ °--NUM_CONST: 3 [0/0] {194} - ¦ °--')': ) [1/0] {196} - ¦--expr: base: [2/0] {197} - ¦ ¦--expr: base: [0/0] {198} - ¦ ¦ ¦--SYMBOL_PACKAGE: base [0/0] {199} - ¦ ¦ ¦--NS_GET: :: [0/0] {200} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: switc [0/0] {201} - ¦ ¦--'(': ( [0/2] {202} - ¦ ¦--expr: f [1/0] {204} - ¦ ¦ °--SYMBOL: f [0/0] {203} - ¦ ¦--',': , [0/13] {205} - ¦ ¦--SYMBOL_SUB: x [1/1] {206} - ¦ ¦--EQ_SUB: = [0/1] {207} - ¦ ¦--expr: 2 [0/0] {209} - ¦ ¦ °--NUM_CONST: 2 [0/0] {208} - ¦ ¦--',': , [0/13] {210} - ¦ ¦--SYMBOL_SUB: y [1/1] {211} - ¦ ¦--EQ_SUB: = [0/1] {212} - ¦ ¦--expr: 3 [0/0] {214} - ¦ ¦ °--NUM_CONST: 3 [0/0] {213} - ¦ °--')': ) [1/0] {215} - ¦--expr: dplyr [2/0] {216} - ¦ ¦--expr: dplyr [0/0] {217} - ¦ ¦ ¦--SYMBOL_PACKAGE: dplyr [0/0] {218} - ¦ ¦ ¦--NS_GET: :: [0/0] {219} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ifels [0/0] {220} - ¦ ¦--'(': ( [0/0] {221} - ¦ ¦--expr: x [0/0] {223} - ¦ ¦ °--SYMBOL: x [0/0] {222} - ¦ ¦--',': , [0/14] {224} - ¦ ¦--expr: 1 [1/0] {226} - ¦ ¦ °--NUM_CONST: 1 [0/0] {225} - ¦ ¦--',': , [0/1] {227} - ¦ ¦--expr: 32 [0/0] {229} - ¦ ¦ °--NUM_CONST: 32 [0/0] {228} - ¦ °--')': ) [1/0] {230} - °--expr: dplyr [2/0] {231} - ¦--expr: dplyr [0/0] {232} - ¦ ¦--SYMBOL_PACKAGE: dplyr [0/0] {233} - ¦ ¦--NS_GET: :: [0/0] {234} - ¦ °--SYMBOL_FUNCTION_CALL: ifels [0/0] {235} - ¦--'(': ( [0/2] {236} - ¦--expr: x [1/0] {238} - ¦ °--SYMBOL: x [0/0] {237} - ¦--',': , [0/14] {239} - ¦--expr: 1 [1/0] {241} - ¦ °--NUM_CONST: 1 [0/0] {240} - ¦--',': , [0/1] {242} - ¦--expr: 32 [0/0] {244} - ¦ °--NUM_CONST: 32 [0/0] {243} - °--')': ) [1/0] {245} diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_comments-in_tree b/tests/testthat/line_breaks_fun_call/token_dependent_comments-in_tree deleted file mode 100644 index 519525676..000000000 --- a/tests/testthat/line_breaks_fun_call/token_dependent_comments-in_tree +++ /dev/null @@ -1,33 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: call( [0/0] {5} - ¦ ¦ ¦--expr: call [0/0] {7} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {6} - ¦ ¦ ¦--'(': ( [0/6] {8} - ¦ ¦ ¦--COMMENT: # com [0/0] {9} - ¦ ¦ ¦--expr: 3 [1/3] {11} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {10} - ¦ ¦ ¦--',': , [0/1] {12} - ¦ ¦ ¦--expr: 4 [0/2] {14} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {13} - ¦ ¦ °--')': ) [1/0] {15} - ¦ °--')': ) [0/0] {16} - °--expr: call( [2/0] {17} - ¦--expr: call [0/0] {19} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {18} - ¦--'(': ( [0/3] {20} - ¦--expr: call( [0/0] {21} - ¦ ¦--expr: call [0/0] {23} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {22} - ¦ ¦--'(': ( [0/0] {24} - ¦ ¦--expr: 1 [0/0] {26} - ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ ¦--',': , [0/1] {27} - ¦ ¦--COMMENT: # com [0/4] {28} - ¦ ¦--expr: 3 [1/0] {30} - ¦ ¦ °--NUM_CONST: 3 [0/0] {29} - ¦ °--')': ) [1/0] {31} - °--')': ) [0/0] {32} diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-in_tree b/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-in_tree deleted file mode 100644 index 40de220ba..000000000 --- a/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-in_tree +++ /dev/null @@ -1,169 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: call( [0/0] {5} - ¦ ¦ ¦--expr: call [0/0] {7} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {6} - ¦ ¦ ¦--'(': ( [0/2] {8} - ¦ ¦ ¦--expr: 2 [1/0] {10} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {9} - ¦ ¦ °--')': ) [1/0] {11} - ¦ °--')': ) [0/0] {12} - ¦--expr: call( [2/0] {13} - ¦ ¦--expr: call [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {14} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--expr: call( [0/0] {17} - ¦ ¦ ¦--expr: call [0/0] {19} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {18} - ¦ ¦ ¦--'(': ( [0/0] {20} - ¦ ¦ ¦--expr: 1 [0/0] {22} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {21} - ¦ ¦ ¦--',': , [0/10] {23} - ¦ ¦ ¦--expr: 2 [1/0] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ °--')': ) [0/0] {26} - ¦ °--')': ) [0/0] {27} - ¦--COMMENT: # mul [1/0] {28} - ¦--expr: call( [1/0] {29} - ¦ ¦--expr: call [0/0] {31} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {30} - ¦ ¦--'(': ( [0/0] {32} - ¦ ¦--expr: a(b(c [0/0] {33} - ¦ ¦ ¦--expr: a [0/0] {35} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {34} - ¦ ¦ ¦--'(': ( [0/0] {36} - ¦ ¦ ¦--expr: b(c({ [0/0] {37} - ¦ ¦ ¦ ¦--expr: b [0/0] {39} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {38} - ¦ ¦ ¦ ¦--'(': ( [0/0] {40} - ¦ ¦ ¦ ¦--expr: c({ -} [0/0] {41} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {43} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {42} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {44} - ¦ ¦ ¦ ¦ ¦--expr: { -} [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/0] {46} - ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {47} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {48} - ¦ ¦ ¦ °--')': ) [0/0] {49} - ¦ ¦ °--')': ) [0/0] {50} - ¦ °--')': ) [0/0] {51} - ¦--expr: call( [2/0] {52} - ¦ ¦--expr: call [0/0] {54} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {53} - ¦ ¦--'(': ( [0/0] {55} - ¦ ¦--expr: call( [0/1] {56} - ¦ ¦ ¦--expr: call [0/0] {58} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {57} - ¦ ¦ ¦--'(': ( [0/2] {59} - ¦ ¦ ¦--expr: 2 [1/1] {61} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {60} - ¦ ¦ °--')': ) [0/0] {62} - ¦ ¦--',': , [0/2] {63} - ¦ ¦--expr: 5 [1/1] {65} - ¦ ¦ °--NUM_CONST: 5 [0/0] {64} - ¦ °--')': ) [0/0] {66} - ¦--expr: call( [3/0] {67} - ¦ ¦--expr: call [0/0] {69} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {68} - ¦ ¦--'(': ( [0/0] {70} - ¦ ¦--expr: call( [0/0] {71} - ¦ ¦ ¦--expr: call [0/0] {73} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {72} - ¦ ¦ ¦--'(': ( [0/0] {74} - ¦ ¦ ¦--expr: 1 [0/0] {76} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {75} - ¦ ¦ ¦--',': , [0/10] {77} - ¦ ¦ ¦--expr: 2 [1/0] {79} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {78} - ¦ ¦ ¦--',': , [0/1] {80} - ¦ ¦ ¦--expr: c( - [0/0] {81} - ¦ ¦ ¦ ¦--expr: c [0/0] {83} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {82} - ¦ ¦ ¦ ¦--'(': ( [0/12] {84} - ¦ ¦ ¦ ¦--expr: 3 [1/10] {86} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {85} - ¦ ¦ ¦ °--')': ) [1/0] {87} - ¦ ¦ °--')': ) [0/0] {88} - ¦ °--')': ) [0/0] {89} - ¦--expr: call( [2/0] {90} - ¦ ¦--expr: call [0/0] {92} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {91} - ¦ ¦--'(': ( [0/0] {93} - ¦ ¦--expr: 1 [0/0] {95} - ¦ ¦ °--NUM_CONST: 1 [0/0] {94} - ¦ ¦--',': , [0/5] {96} - ¦ ¦--expr: call2 [1/0] {97} - ¦ ¦ ¦--expr: call2 [0/0] {99} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {98} - ¦ ¦ ¦--'(': ( [0/0] {100} - ¦ ¦ ¦--expr: 3 [0/0] {102} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {101} - ¦ ¦ ¦--',': , [0/1] {103} - ¦ ¦ ¦--expr: 4 [0/0] {105} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {104} - ¦ ¦ ¦--',': , [0/1] {106} - ¦ ¦ ¦--expr: call( [0/5] {107} - ¦ ¦ ¦ ¦--expr: call [0/0] {109} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {108} - ¦ ¦ ¦ ¦--'(': ( [0/0] {110} - ¦ ¦ ¦ ¦--expr: 3 [0/0] {112} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {111} - ¦ ¦ ¦ ¦--',': , [0/22] {113} - ¦ ¦ ¦ ¦--expr: 4 [1/0] {115} - ¦ ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {114} - ¦ ¦ ¦ ¦--',': , [0/1] {116} - ¦ ¦ ¦ ¦--expr: call( [0/5] {117} - ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {119} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {118} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {120} - ¦ ¦ ¦ ¦ ¦--expr: 5 [0/0] {122} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {121} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {123} - ¦ ¦ ¦ ¦ ¦--expr: 6 [0/0] {125} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 6 [0/0] {124} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {126} - ¦ ¦ ¦ ¦ ¦--expr: call( [0/22] {127} - ¦ ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {129} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {128} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/24] {130} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 2 [1/22] {132} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {131} - ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {133} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {134} - ¦ ¦ ¦ °--')': ) [1/0] {135} - ¦ ¦ °--')': ) [1/0] {136} - ¦ °--')': ) [1/0] {137} - ¦--COMMENT: # com [2/0] {138} - ¦--expr: call( [2/0] {139} - ¦ ¦--expr: call [0/0] {141} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {140} - ¦ ¦--'(': ( [0/0] {142} - ¦ ¦--expr: call( [0/0] {143} - ¦ ¦ ¦--expr: call [0/0] {145} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {144} - ¦ ¦ ¦--'(': ( [0/2] {146} - ¦ ¦ ¦--expr: 2 [1/0] {148} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {147} - ¦ ¦ °--')': ) [1/0] {149} - ¦ °--')': ) [0/0] {150} - °--expr: call( [2/0] {151} - ¦--expr: call [0/0] {153} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {152} - ¦--'(': ( [0/0] {154} - ¦--expr: 1 [0/0] {156} - ¦ °--NUM_CONST: 1 [0/0] {155} - ¦--',': , [0/1] {157} - ¦--expr: call( [0/0] {158} - ¦ ¦--expr: call [0/0] {160} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {159} - ¦ ¦--'(': ( [0/2] {161} - ¦ ¦--expr: 23 [1/0] {163} - ¦ ¦ °--NUM_CONST: 23 [0/0] {162} - ¦ °--')': ) [1/0] {164} - °--')': ) [0/0] {165} diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-in_tree b/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-in_tree deleted file mode 100644 index 427acba96..000000000 --- a/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-in_tree +++ /dev/null @@ -1,169 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: call( [0/0] {5} - ¦ ¦ ¦--expr: call [0/0] {7} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {6} - ¦ ¦ ¦--'(': ( [0/0] {8} - ¦ ¦ ¦--expr: 2 [1/2] {10} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {9} - ¦ ¦ °--')': ) [1/0] {11} - ¦ °--')': ) [0/0] {12} - ¦--expr: call( [2/0] {13} - ¦ ¦--expr: call [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {14} - ¦ ¦--'(': ( [0/2] {16} - ¦ ¦--expr: call( [0/2] {17} - ¦ ¦ ¦--expr: call [0/0] {19} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {18} - ¦ ¦ ¦--'(': ( [0/0] {20} - ¦ ¦ ¦--expr: 1 [0/0] {22} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {21} - ¦ ¦ ¦--',': , [0/6] {23} - ¦ ¦ ¦--expr: 2 [1/0] {25} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {24} - ¦ ¦ °--')': ) [0/0] {26} - ¦ °--')': ) [0/0] {27} - ¦--COMMENT: # mul [1/0] {28} - ¦--expr: call( [1/3] {29} - ¦ ¦--expr: call [0/0] {31} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {30} - ¦ ¦--'(': ( [0/0] {32} - ¦ ¦--expr: a(b( [0/0] {33} - ¦ ¦ ¦--expr: a [0/0] {35} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {34} - ¦ ¦ ¦--'(': ( [0/0] {36} - ¦ ¦ ¦--expr: b( c [0/0] {37} - ¦ ¦ ¦ ¦--expr: b [0/0] {39} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {38} - ¦ ¦ ¦ ¦--'(': ( [0/2] {40} - ¦ ¦ ¦ ¦--expr: c({ - [0/0] {41} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {43} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {42} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {44} - ¦ ¦ ¦ ¦ ¦--expr: { - [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/3] {46} - ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {47} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {48} - ¦ ¦ ¦ °--')': ) [0/0] {49} - ¦ ¦ °--')': ) [0/0] {50} - ¦ °--')': ) [0/0] {51} - ¦--expr: call( [2/2] {52} - ¦ ¦--expr: call [0/0] {54} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {53} - ¦ ¦--'(': ( [0/0] {55} - ¦ ¦--expr: call( [0/1] {56} - ¦ ¦ ¦--expr: call [0/0] {58} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {57} - ¦ ¦ ¦--'(': ( [0/5] {59} - ¦ ¦ ¦--expr: 2 [1/1] {61} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {60} - ¦ ¦ °--')': ) [0/0] {62} - ¦ ¦--',': , [0/0] {63} - ¦ ¦--expr: 5 [1/1] {65} - ¦ ¦ °--NUM_CONST: 5 [0/0] {64} - ¦ °--')': ) [0/0] {66} - ¦--expr: call( [3/0] {67} - ¦ ¦--expr: call [0/0] {69} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {68} - ¦ ¦--'(': ( [0/0] {70} - ¦ ¦--expr: call( [0/0] {71} - ¦ ¦ ¦--expr: call [0/0] {73} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {72} - ¦ ¦ ¦--'(': ( [0/0] {74} - ¦ ¦ ¦--expr: 1 [0/0] {76} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {75} - ¦ ¦ ¦--',': , [0/14] {77} - ¦ ¦ ¦--expr: 2 [1/0] {79} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {78} - ¦ ¦ ¦--',': , [0/1] {80} - ¦ ¦ ¦--expr: c( - [0/0] {81} - ¦ ¦ ¦ ¦--expr: c [0/0] {83} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {82} - ¦ ¦ ¦ ¦--'(': ( [0/15] {84} - ¦ ¦ ¦ ¦--expr: 3 [1/11] {86} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {85} - ¦ ¦ ¦ °--')': ) [1/0] {87} - ¦ ¦ °--')': ) [0/0] {88} - ¦ °--')': ) [0/0] {89} - ¦--expr: call( [2/0] {90} - ¦ ¦--expr: call [0/0] {92} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {91} - ¦ ¦--'(': ( [0/0] {93} - ¦ ¦--expr: 1 [0/0] {95} - ¦ ¦ °--NUM_CONST: 1 [0/0] {94} - ¦ ¦--',': , [0/3] {96} - ¦ ¦--expr: call2 [1/0] {97} - ¦ ¦ ¦--expr: call2 [0/0] {99} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {98} - ¦ ¦ ¦--'(': ( [0/0] {100} - ¦ ¦ ¦--expr: 3 [0/0] {102} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {101} - ¦ ¦ ¦--',': , [0/1] {103} - ¦ ¦ ¦--expr: 4 [0/0] {105} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {104} - ¦ ¦ ¦--',': , [0/1] {106} - ¦ ¦ ¦--expr: call( [0/0] {107} - ¦ ¦ ¦ ¦--expr: call [0/0] {109} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {108} - ¦ ¦ ¦ ¦--'(': ( [0/0] {110} - ¦ ¦ ¦ ¦--expr: 3 [0/0] {112} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {111} - ¦ ¦ ¦ ¦--',': , [0/0] {113} - ¦ ¦ ¦ ¦--expr: 4 [1/0] {115} - ¦ ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {114} - ¦ ¦ ¦ ¦--',': , [0/1] {116} - ¦ ¦ ¦ ¦--expr: call( [0/0] {117} - ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {119} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {118} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {120} - ¦ ¦ ¦ ¦ ¦--expr: 5 [0/0] {122} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {121} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {123} - ¦ ¦ ¦ ¦ ¦--expr: 6 [0/0] {125} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 6 [0/0] {124} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {126} - ¦ ¦ ¦ ¦ ¦--expr: call( [0/0] {127} - ¦ ¦ ¦ ¦ ¦ ¦--expr: call [0/0] {129} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {128} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {130} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 2 [1/0] {132} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {131} - ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {133} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {134} - ¦ ¦ ¦ °--')': ) [1/0] {135} - ¦ ¦ °--')': ) [1/0] {136} - ¦ °--')': ) [1/0] {137} - ¦--COMMENT: # com [2/0] {138} - ¦--expr: call( [2/2] {139} - ¦ ¦--expr: call [0/0] {141} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {140} - ¦ ¦--'(': ( [0/0] {142} - ¦ ¦--expr: call( [0/0] {143} - ¦ ¦ ¦--expr: call [0/0] {145} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {144} - ¦ ¦ ¦--'(': ( [0/0] {146} - ¦ ¦ ¦--expr: 2 [1/0] {148} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {147} - ¦ ¦ °--')': ) [1/0] {149} - ¦ °--')': ) [0/0] {150} - °--expr: call( [2/0] {151} - ¦--expr: call [0/0] {153} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {152} - ¦--'(': ( [0/0] {154} - ¦--expr: 1 [0/0] {156} - ¦ °--NUM_CONST: 1 [0/0] {155} - ¦--',': , [0/1] {157} - ¦--expr: call( [0/0] {158} - ¦ ¦--expr: call [0/0] {160} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {159} - ¦ ¦--'(': ( [0/2] {161} - ¦ ¦--expr: 23 [1/0] {163} - ¦ ¦ °--NUM_CONST: 23 [0/0] {162} - ¦ °--')': ) [1/0] {164} - °--')': ) [0/0] {165} diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_mixed-in_tree b/tests/testthat/line_breaks_fun_call/token_dependent_mixed-in_tree deleted file mode 100644 index c9c77f628..000000000 --- a/tests/testthat/line_breaks_fun_call/token_dependent_mixed-in_tree +++ /dev/null @@ -1,238 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: call( [0/0] {5} - ¦ ¦ ¦--expr: call [0/0] {7} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {6} - ¦ ¦ ¦--'(': ( [0/0] {8} - ¦ ¦ ¦--expr: call3 [0/0] {9} - ¦ ¦ ¦ ¦--expr: call3 [0/0] {11} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {10} - ¦ ¦ ¦ ¦--'(': ( [0/0] {12} - ¦ ¦ ¦ °--')': ) [0/0] {13} - ¦ ¦ ¦--',': , [0/1] {14} - ¦ ¦ ¦--expr: call [0/0] {16} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {15} - ¦ ¦ ¦--',': , [0/6] {17} - ¦ ¦ ¦--expr: 4433 [1/0] {19} - ¦ ¦ ¦ °--NUM_CONST: 4433 [0/0] {18} - ¦ ¦ ¦--',': , [0/8] {20} - ¦ ¦ ¦--expr: 55 [1/0] {22} - ¦ ¦ ¦ °--NUM_CONST: 55 [0/0] {21} - ¦ ¦ °--')': ) [0/0] {23} - ¦ °--')': ) [0/0] {24} - ¦--expr: call( [2/0] {25} - ¦ ¦--expr: call [0/0] {27} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {26} - ¦ ¦--'(': ( [0/0] {28} - ¦ ¦--expr: call( [0/0] {29} - ¦ ¦ ¦--expr: call [0/0] {31} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {30} - ¦ ¦ ¦--'(': ( [0/0] {32} - ¦ ¦ ¦--expr: call3 [0/0] {33} - ¦ ¦ ¦ ¦--expr: call3 [0/0] {35} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {34} - ¦ ¦ ¦ ¦--'(': ( [0/0] {36} - ¦ ¦ ¦ °--')': ) [0/0] {37} - ¦ ¦ ¦--',': , [0/1] {38} - ¦ ¦ ¦--expr: call [0/0] {40} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {39} - ¦ ¦ ¦--',': , [0/4] {41} - ¦ ¦ ¦--expr: 4433 [1/0] {43} - ¦ ¦ ¦ °--NUM_CONST: 4433 [0/0] {42} - ¦ ¦ ¦--',': , [0/10] {44} - ¦ ¦ ¦--expr: 55 [1/0] {46} - ¦ ¦ ¦ °--NUM_CONST: 55 [0/0] {45} - ¦ ¦ °--')': ) [1/0] {47} - ¦ °--')': ) [0/0] {48} - ¦--expr: call( [1/0] {49} - ¦ ¦--expr: call [0/0] {51} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {50} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--expr: call( [0/0] {53} - ¦ ¦ ¦--expr: call [0/0] {55} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {54} - ¦ ¦ ¦--'(': ( [0/0] {56} - ¦ ¦ ¦--expr: call3 [0/0] {57} - ¦ ¦ ¦ ¦--expr: call3 [0/0] {59} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {58} - ¦ ¦ ¦ ¦--'(': ( [0/0] {60} - ¦ ¦ ¦ °--')': ) [0/0] {61} - ¦ ¦ ¦--',': , [0/1] {62} - ¦ ¦ ¦--expr: call [0/0] {64} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {63} - ¦ ¦ ¦--',': , [0/13] {65} - ¦ ¦ ¦--expr: 4433 [1/0] {67} - ¦ ¦ ¦ °--NUM_CONST: 4433 [0/0] {66} - ¦ ¦ ¦--',': , [0/10] {68} - ¦ ¦ ¦--expr: 55 [1/0] {70} - ¦ ¦ ¦ °--NUM_CONST: 55 [0/0] {69} - ¦ ¦ °--')': ) [0/0] {71} - ¦ °--')': ) [1/0] {72} - ¦--COMMENT: # no [4/0] {73} - ¦--expr: call( [1/0] {74} - ¦ ¦--expr: call [0/0] {76} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {75} - ¦ ¦--'(': ( [0/0] {77} - ¦ ¦--expr: call( [0/0] {78} - ¦ ¦ ¦--expr: call [0/0] {80} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {79} - ¦ ¦ ¦--'(': ( [0/2] {81} - ¦ ¦ ¦--expr: 3 [1/0] {83} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {82} - ¦ ¦ ¦--',': , [0/1] {84} - ¦ ¦ ¦--expr: 4 [0/0] {86} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {85} - ¦ ¦ °--')': ) [1/0] {87} - ¦ °--')': ) [0/0] {88} - ¦--expr: call( [3/0] {89} - ¦ ¦--expr: call [0/0] {91} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {90} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--expr: 3 [0/4] {94} - ¦ ¦ °--NUM_CONST: 3 [0/0] {93} - ¦ ¦--',': , [0/5] {95} - ¦ ¦--expr: 3 [1/0] {97} - ¦ ¦ °--NUM_CONST: 3 [0/0] {96} - ¦ °--')': ) [1/0] {98} - ¦--expr: call( [3/0] {99} - ¦ ¦--expr: call [0/0] {101} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {100} - ¦ ¦--'(': ( [0/0] {102} - ¦ ¦--expr: call( [0/0] {103} - ¦ ¦ ¦--expr: call [0/0] {105} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {104} - ¦ ¦ ¦--'(': ( [0/0] {106} - ¦ ¦ ¦--expr: call3 [0/0] {107} - ¦ ¦ ¦ ¦--expr: call3 [0/0] {109} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {108} - ¦ ¦ ¦ ¦--'(': ( [0/0] {110} - ¦ ¦ ¦ °--')': ) [0/0] {111} - ¦ ¦ ¦--',': , [0/1] {112} - ¦ ¦ ¦--expr: call [0/0] {114} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {113} - ¦ ¦ ¦--',': , [0/4] {115} - ¦ ¦ ¦--expr: 44 [1/0] {117} - ¦ ¦ ¦ °--NUM_CONST: 44 [0/0] {116} - ¦ ¦ ¦--',': , [0/4] {118} - ¦ ¦ ¦--expr: 55 [1/0] {120} - ¦ ¦ ¦ °--NUM_CONST: 55 [0/0] {119} - ¦ ¦ °--')': ) [1/0] {121} - ¦ °--')': ) [0/0] {122} - ¦--COMMENT: # [2/0] {123} - ¦--expr: call( [2/0] {124} - ¦ ¦--expr: call [0/0] {126} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {125} - ¦ ¦--'(': ( [0/0] {127} - ¦ ¦--expr: call [0/0] {129} - ¦ ¦ °--SYMBOL: call [0/0] {128} - ¦ ¦--',': , [0/0] {130} - ¦ ¦--expr: call( [0/0] {131} - ¦ ¦ ¦--expr: call [0/0] {133} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {132} - ¦ ¦ ¦--'(': ( [0/0] {134} - ¦ ¦ °--')': ) [0/0] {135} - ¦ ¦--',': , [0/5] {136} - ¦ ¦--expr: 3 [1/0] {138} - ¦ ¦ °--NUM_CONST: 3 [0/0] {137} - ¦ ¦--',': , [0/5] {139} - ¦ ¦--expr: 4 [1/0] {141} - ¦ ¦ °--NUM_CONST: 4 [0/0] {140} - ¦ °--')': ) [1/0] {142} - ¦--expr: call( [2/0] {143} - ¦ ¦--expr: call [0/0] {145} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {144} - ¦ ¦--'(': ( [0/0] {146} - ¦ ¦--expr: call( [0/0] {147} - ¦ ¦ ¦--expr: call [0/0] {149} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {148} - ¦ ¦ ¦--'(': ( [0/3] {150} - ¦ ¦ ¦--expr: 3 [1/3] {152} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {151} - ¦ ¦ ¦--',': , [0/1] {153} - ¦ ¦ ¦--expr: 4 [0/0] {155} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {154} - ¦ ¦ °--')': ) [1/0] {156} - ¦ °--')': ) [0/0] {157} - ¦--expr: call( [2/0] {158} - ¦ ¦--expr: call [0/0] {160} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {159} - ¦ ¦--'(': ( [0/0] {161} - ¦ ¦--expr: call( [0/0] {162} - ¦ ¦ ¦--expr: call [0/0] {164} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {163} - ¦ ¦ ¦--'(': ( [0/0] {165} - ¦ ¦ ¦--expr: 1 [0/0] {167} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {166} - ¦ ¦ ¦--',': , [0/6] {168} - ¦ ¦ ¦--expr: 3 [1/0] {170} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {169} - ¦ ¦ °--')': ) [1/0] {171} - ¦ °--')': ) [0/0] {172} - ¦--COMMENT: # if [2/2] {173} - ¦--expr: call( [3/0] {174} - ¦ ¦--expr: call [0/0] {176} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {175} - ¦ ¦--'(': ( [0/0] {177} - ¦ ¦--expr: 2 [1/2] {179} - ¦ ¦ °--NUM_CONST: 2 [0/0] {178} - ¦ °--')': ) [1/0] {180} - ¦--expr: cjald [1/0] {181} - ¦ ¦--expr: cjald [0/0] {183} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: cjald [0/0] {182} - ¦ ¦--'(': ( [0/0] {184} - ¦ ¦--expr: 1 [0/0] {186} - ¦ ¦ °--NUM_CONST: 1 [0/0] {185} - ¦ ¦--',': , [0/11] {187} - ¦ ¦--expr: 3 [1/0] {189} - ¦ ¦ °--NUM_CONST: 3 [0/0] {188} - ¦ °--')': ) [0/0] {190} - ¦--expr: jclak [2/2] {191} - ¦ ¦--expr: jclak [0/0] {193} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: jclak [0/0] {192} - ¦ ¦--'(': ( [0/2] {194} - ¦ ¦--expr: call( [0/0] {195} - ¦ ¦ ¦--expr: call [0/0] {197} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {196} - ¦ ¦ ¦--'(': ( [0/0] {198} - ¦ ¦ ¦--expr: call( [0/0] {199} - ¦ ¦ ¦ ¦--expr: call [0/0] {201} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {200} - ¦ ¦ ¦ ¦--'(': ( [0/0] {202} - ¦ ¦ ¦ ¦--expr: 2 [0/2] {204} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {203} - ¦ ¦ ¦ ¦--',': , [0/15] {205} - ¦ ¦ ¦ ¦--expr: 4 [1/0] {207} - ¦ ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {206} - ¦ ¦ ¦ °--')': ) [0/0] {208} - ¦ ¦ °--')': ) [0/0] {209} - ¦ °--')': ) [0/0] {210} - ¦--expr: fjadl [1/0] {211} - ¦ ¦--expr: fjadl [0/0] {213} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: fjadl [0/0] {212} - ¦ ¦--'(': ( [0/0] {214} - ¦ ¦--expr: casl( [0/0] {215} - ¦ ¦ ¦--expr: casl [0/0] {217} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: casl [0/0] {216} - ¦ ¦ ¦--'(': ( [0/0] {218} - ¦ ¦ °--')': ) [0/0] {219} - ¦ ¦--',': , [0/6] {220} - ¦ ¦--expr: 1 [1/0] {222} - ¦ ¦ °--NUM_CONST: 1 [0/0] {221} - ¦ °--')': ) [0/0] {223} - °--expr: test_ [3/0] {224} - ¦--expr: test_ [0/0] {226} - ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {225} - ¦--'(': ( [0/0] {227} - ¦--expr: "hi" [0/0] {229} - ¦ °--STR_CONST: "hi" [0/0] {228} - ¦--',': , [0/1] {230} - ¦--expr: { -"th [0/0] {231} - ¦ ¦--'{': { [0/0] {232} - ¦ ¦--expr: "ther [1/2] {234} - ¦ ¦ °--STR_CONST: "ther [0/0] {233} - ¦ °--'}': } [1/0] {235} - °--')': ) [0/0] {236} diff --git a/tests/testthat/line_breaks_fun_call/unindent-in_tree b/tests/testthat/line_breaks_fun_call/unindent-in_tree deleted file mode 100644 index 70fd2a441..000000000 --- a/tests/testthat/line_breaks_fun_call/unindent-in_tree +++ /dev/null @@ -1,72 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: test_ [0/0] {1} - ¦ ¦--expr: test_ [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: key( - [0/0] {5} - ¦ ¦ ¦--expr: key [0/0] {7} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: key [0/0] {6} - ¦ ¦ ¦--'(': ( [0/2] {8} - ¦ ¦ ¦--expr: s [1/0] {10} - ¦ ¦ ¦ °--SYMBOL: s [0/0] {9} - ¦ ¦ °--')': ) [0/0] {11} - ¦ ¦--',': , [0/0] {12} - ¦ ¦--SYMBOL_SUB: x [0/1] {13} - ¦ ¦--EQ_SUB: = [0/1] {14} - ¦ ¦--expr: 1 [0/0] {16} - ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ °--')': ) [0/0] {17} - ¦--expr: test_ [2/0] {18} - ¦ ¦--expr: test_ [0/0] {20} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {19} - ¦ ¦--'(': ( [0/0] {21} - ¦ ¦--expr: key( - [0/0] {22} - ¦ ¦ ¦--expr: key [0/0] {24} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: key [0/0] {23} - ¦ ¦ ¦--'(': ( [0/2] {25} - ¦ ¦ ¦--expr: s [1/0] {27} - ¦ ¦ ¦ °--SYMBOL: s [0/0] {26} - ¦ ¦ °--')': ) [0/0] {28} - ¦ ¦--',': , [0/2] {29} - ¦ ¦--SYMBOL_SUB: x [1/1] {30} - ¦ ¦--EQ_SUB: = [0/1] {31} - ¦ ¦--expr: 1 [0/0] {33} - ¦ ¦ °--NUM_CONST: 1 [0/0] {32} - ¦ °--')': ) [1/0] {34} - ¦--expr: test_ [3/0] {35} - ¦ ¦--expr: test_ [0/0] {37} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {36} - ¦ ¦--'(': ( [0/0] {38} - ¦ ¦--expr: key( - [0/0] {39} - ¦ ¦ ¦--expr: key [0/0] {41} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: key [0/0] {40} - ¦ ¦ ¦--'(': ( [0/2] {42} - ¦ ¦ ¦--expr: s [1/0] {44} - ¦ ¦ ¦ °--SYMBOL: s [0/0] {43} - ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦--',': , [0/0] {46} - ¦ ¦--SYMBOL_SUB: x [0/1] {47} - ¦ ¦--EQ_SUB: = [0/1] {48} - ¦ ¦--expr: 1 [0/0] {50} - ¦ ¦ °--NUM_CONST: 1 [0/0] {49} - ¦ °--')': ) [1/0] {51} - °--expr: test_ [3/0] {52} - ¦--expr: test_ [0/0] {54} - ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {53} - ¦--'(': ( [0/2] {55} - ¦--expr: key(s [1/0] {56} - ¦ ¦--expr: key [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: key [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--expr: s [0/0] {61} - ¦ ¦ °--SYMBOL: s [0/0] {60} - ¦ °--')': ) [0/0] {62} - ¦--',': , [0/0] {63} - ¦--SYMBOL_SUB: x [0/1] {64} - ¦--EQ_SUB: = [0/1] {65} - ¦--expr: 1 [0/0] {67} - ¦ °--NUM_CONST: 1 [0/0] {66} - °--')': ) [0/0] {68} diff --git a/tests/testthat/math_token_spacing/non_strict_math_spacing_all-in_tree b/tests/testthat/math_token_spacing/non_strict_math_spacing_all-in_tree deleted file mode 100644 index 306fef807..000000000 --- a/tests/testthat/math_token_spacing/non_strict_math_spacing_all-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1++1 [0/0] {1} - ¦--expr: 1 [0/0] {4} - ¦ °--NUM_CONST: 1 [0/0] {3} - ¦--'+': + [0/0] {5} - ¦--expr: +1 [0/3] {6} - ¦ ¦--'+': + [0/0] {7} - ¦ °--expr: 1 [0/0] {9} - ¦ °--NUM_CONST: 1 [0/0] {8} - ¦--'-': - [0/7] {10} - °--expr: 3 / 2 [0/0] {11} - ¦--expr: 3 [0/1] {14} - ¦ °--NUM_CONST: 3 [0/0] {13} - ¦--'/': / [0/1] {15} - ¦--expr: 23 [0/1] {17} - ¦ °--NUM_CONST: 23 [0/0] {16} - ¦--'*': * [0/1] {18} - °--expr: 3 ^4 [0/0] {19} - ¦--expr: 3 [0/1] {21} - ¦ °--NUM_CONST: 3 [0/0] {20} - ¦--'^': ^ [0/0] {22} - °--expr: 4 [0/0] {24} - °--NUM_CONST: 4 [0/0] {23} diff --git a/tests/testthat/math_token_spacing/strict_math_spacing_all-in_tree b/tests/testthat/math_token_spacing/strict_math_spacing_all-in_tree deleted file mode 100644 index 1925476a7..000000000 --- a/tests/testthat/math_token_spacing/strict_math_spacing_all-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1 ++ [0/0] {1} - ¦--expr: 1 [0/1] {4} - ¦ °--NUM_CONST: 1 [0/0] {3} - ¦--'+': + [0/0] {5} - ¦--expr: + 1 [0/1] {6} - ¦ ¦--'+': + [0/1] {7} - ¦ °--expr: 1 [0/0] {9} - ¦ °--NUM_CONST: 1 [0/0] {8} - ¦--'-': - [0/1] {10} - °--expr: 3 / [0/0] {11} - ¦--expr: 3 [0/1] {14} - ¦ °--NUM_CONST: 3 [0/0] {13} - ¦--'/': / [0/7] {15} - ¦--expr: 23 [0/0] {17} - ¦ °--NUM_CONST: 23 [0/0] {16} - ¦--'*': * [0/1] {18} - °--expr: 3^ 4 [0/0] {19} - ¦--expr: 3 [0/0] {21} - ¦ °--NUM_CONST: 3 [0/0] {20} - ¦--'^': ^ [0/1] {22} - °--expr: 4 [0/0] {24} - °--NUM_CONST: 4 [0/0] {23} diff --git a/tests/testthat/math_token_spacing/strict_math_spacing_zero_all_but_power-in_tree b/tests/testthat/math_token_spacing/strict_math_spacing_zero_all_but_power-in_tree deleted file mode 100644 index d82f157ca..000000000 --- a/tests/testthat/math_token_spacing/strict_math_spacing_zero_all_but_power-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1++1- [0/0] {1} - ¦--expr: 1 [0/0] {4} - ¦ °--NUM_CONST: 1 [0/0] {3} - ¦--'+': + [0/0] {5} - ¦--expr: +1 [0/0] {6} - ¦ ¦--'+': + [0/0] {7} - ¦ °--expr: 1 [0/0] {9} - ¦ °--NUM_CONST: 1 [0/0] {8} - ¦--'-': - [0/0] {10} - °--expr: 3/23* [0/0] {11} - ¦--expr: 3 [0/0] {14} - ¦ °--NUM_CONST: 3 [0/0] {13} - ¦--'/': / [0/0] {15} - ¦--expr: 23 [0/0] {17} - ¦ °--NUM_CONST: 23 [0/0] {16} - ¦--'*': * [0/0] {18} - °--expr: 3^4 [0/0] {19} - ¦--expr: 3 [0/0] {21} - ¦ °--NUM_CONST: 3 [0/0] {20} - ¦--'^': ^ [0/0] {22} - °--expr: 4 [0/0] {24} - °--NUM_CONST: 4 [0/0] {23} diff --git a/tests/testthat/math_token_spacing/strict_math_spacing_zero_plus-in_tree b/tests/testthat/math_token_spacing/strict_math_spacing_zero_plus-in_tree deleted file mode 100644 index c9e38aa79..000000000 --- a/tests/testthat/math_token_spacing/strict_math_spacing_zero_plus-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1+ + [0/0] {1} - ¦--expr: 1 [0/0] {4} - ¦ °--NUM_CONST: 1 [0/0] {3} - ¦--'+': + [0/2] {5} - ¦--expr: +1 [0/0] {6} - ¦ ¦--'+': + [0/0] {7} - ¦ °--expr: 1 [0/0] {9} - ¦ °--NUM_CONST: 1 [0/0] {8} - ¦--'-': - [0/1] {10} - °--expr: 3 / [0/0] {11} - ¦--expr: 3 [0/3] {14} - ¦ °--NUM_CONST: 3 [0/0] {13} - ¦--'/': / [0/0] {15} - ¦--expr: 23 [0/0] {17} - ¦ °--NUM_CONST: 23 [0/0] {16} - ¦--'*': * [0/1] {18} - °--expr: 3^ 4 [0/0] {19} - ¦--expr: 3 [0/0] {21} - ¦ °--NUM_CONST: 3 [0/0] {20} - ¦--'^': ^ [0/1] {22} - °--expr: 4 [0/0] {24} - °--NUM_CONST: 4 [0/0] {23} diff --git a/tests/testthat/multiple_expressions/three_complex_expr-in_tree b/tests/testthat/multiple_expressions/three_complex_expr-in_tree deleted file mode 100644 index 4f556c36b..000000000 --- a/tests/testthat/multiple_expressions/three_complex_expr-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: x [0/0] {2} - ¦ °--SYMBOL: x [0/0] {1} - ¦--expr: 1+1 [1/0] {3} - ¦ ¦--expr: 1 [0/0] {5} - ¦ ¦ °--NUM_CONST: 1 [0/0] {4} - ¦ ¦--'+': + [0/0] {6} - ¦ °--expr: 1 [0/0] {8} - ¦ °--NUM_CONST: 1 [0/0] {7} - °--expr: y + ( [1/0] {9} - ¦--expr: y [0/1] {11} - ¦ °--SYMBOL: y [0/0] {10} - ¦--'+': + [0/1] {12} - °--expr: ( -2* [0/0] {13} - ¦--'(': ( [0/0] {14} - ¦--expr: 2* z [1/0] {15} - ¦ ¦--expr: 2 [0/0] {17} - ¦ ¦ °--NUM_CONST: 2 [0/0] {16} - ¦ ¦--'*': * [0/1] {18} - ¦ °--expr: z [0/0] {20} - ¦ °--SYMBOL: z [0/0] {19} - °--')': ) [1/0] {21} diff --git a/tests/testthat/multiple_expressions/two_simple_expr-in_tree b/tests/testthat/multiple_expressions/two_simple_expr-in_tree deleted file mode 100644 index 57159da53..000000000 --- a/tests/testthat/multiple_expressions/two_simple_expr-in_tree +++ /dev/null @@ -1,5 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a [0/0] {2} - ¦ °--SYMBOL: a [0/0] {1} - °--expr: b [1/0] {4} - °--SYMBOL: b [0/0] {3} diff --git a/tests/testthat/parse_comments/eol_eof_spaces-in_tree b/tests/testthat/parse_comments/eol_eof_spaces-in_tree deleted file mode 100644 index 4e6dc6302..000000000 --- a/tests/testthat/parse_comments/eol_eof_spaces-in_tree +++ /dev/null @@ -1,5 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # com [0/0] {1} - ¦--COMMENT: #' sp [1/0] {2} - °--expr: a [1/0] {4} - °--SYMBOL: a [0/0] {3} diff --git a/tests/testthat/parse_comments/just_comments-in_tree b/tests/testthat/parse_comments/just_comments-in_tree deleted file mode 100644 index f33f18c62..000000000 --- a/tests/testthat/parse_comments/just_comments-in_tree +++ /dev/null @@ -1,5 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # A c [0/0] {1} - ¦--COMMENT: #' A [1/0] {2} - ¦--COMMENT: #' [1/0] {3} - °--COMMENT: # som [3/0] {4} diff --git a/tests/testthat/parse_comments/mixed-in_tree b/tests/testthat/parse_comments/mixed-in_tree deleted file mode 100644 index 5168b8f66..000000000 --- a/tests/testthat/parse_comments/mixed-in_tree +++ /dev/null @@ -1,35 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # A f [0/0] {1} - °--expr: a <- [1/0] {2} - ¦--expr: a [0/1] {4} - ¦ °--SYMBOL: a [0/0] {3} - ¦--LEFT_ASSIGN: <- [0/1] {5} - °--expr: funct [0/0] {6} - ¦--FUNCTION: funct [0/0] {7} - ¦--'(': ( [0/0] {8} - ¦--SYMBOL_FORMALS: x [0/0] {9} - ¦--',': , [0/1] {10} - ¦--SYMBOL_FORMALS: y [0/0] {11} - ¦--',': , [0/1] {12} - ¦--SYMBOL_FORMALS: z [0/0] {13} - ¦--')': ) [0/1] {14} - °--expr: { -if [0/0] {15} - ¦--'{': { [0/0] {16} - ¦--expr: if (1 [1/0] {17} - ¦ ¦--IF: if [0/1] {18} - ¦ ¦--'(': ( [0/0] {19} - ¦ ¦--expr: 1>10 [0/0] {20} - ¦ ¦ ¦--expr: 1 [0/0] {22} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {21} - ¦ ¦ ¦--GT: > [0/0] {23} - ¦ ¦ °--expr: 10 [0/0] {25} - ¦ ¦ °--NUM_CONST: 10 [0/0] {24} - ¦ ¦--')': ) [0/1] {26} - ¦ °--expr: { -# t [0/0] {27} - ¦ ¦--'{': { [0/0] {28} - ¦ ¦--COMMENT: # thi [1/0] {29} - ¦ °--'}': } [1/0] {30} - ¦--COMMENT: #' an [1/0] {31} - °--'}': } [1/0] {32} diff --git a/tests/testthat/parse_comments/output-prefix-in_tree b/tests/testthat/parse_comments/output-prefix-in_tree deleted file mode 100644 index a6c124e96..000000000 --- a/tests/testthat/parse_comments/output-prefix-in_tree +++ /dev/null @@ -1,19 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: this( [0/0] {1} - ¦ ¦--expr: this [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: this [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ °--')': ) [0/0] {5} - ¦--COMMENT: #> is [1/0] {6} - ¦--expr: this( [3/1] {7} - ¦ ¦--expr: this [0/0] {9} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: this [0/0] {8} - ¦ ¦--'(': ( [0/0] {10} - ¦ °--')': ) [0/0] {11} - ¦--COMMENT: #> is [0/0] {12} - ¦--expr: this( [2/0] {13} - ¦ ¦--expr: this [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: this [0/0] {14} - ¦ ¦--'(': ( [0/0] {16} - ¦ °--')': ) [0/0] {17} - °--COMMENT: # > n [1/0] {18} diff --git a/tests/testthat/parse_comments/rplumber-in_tree b/tests/testthat/parse_comments/rplumber-in_tree deleted file mode 100644 index 8faf0b7a9..000000000 --- a/tests/testthat/parse_comments/rplumber-in_tree +++ /dev/null @@ -1,69 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # myf [0/0] {1} - ¦--COMMENT: #* @g [2/0] {2} - ¦--expr: norma [1/0] {3} - ¦ ¦--expr: norma [0/1] {5} - ¦ ¦ °--SYMBOL: norma [0/0] {4} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {6} - ¦ °--expr: funct [0/0] {7} - ¦ ¦--FUNCTION: funct [0/0] {8} - ¦ ¦--'(': ( [0/0] {9} - ¦ ¦--SYMBOL_FORMALS: sampl [0/0] {10} - ¦ ¦--EQ_FORMALS: = [0/0] {11} - ¦ ¦--expr: 10 [0/0] {13} - ¦ ¦ °--NUM_CONST: 10 [0/0] {12} - ¦ ¦--')': ) [0/1] {14} - ¦ °--expr: { - d [0/0] {15} - ¦ ¦--'{': { [0/2] {16} - ¦ ¦--expr: data [1/2] {17} - ¦ ¦ ¦--expr: data [0/1] {19} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {18} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {20} - ¦ ¦ °--expr: rnorm [0/0] {21} - ¦ ¦ ¦--expr: rnorm [0/0] {23} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: rnorm [0/0] {22} - ¦ ¦ ¦--'(': ( [0/0] {24} - ¦ ¦ ¦--expr: sampl [0/0] {26} - ¦ ¦ ¦ °--SYMBOL: sampl [0/0] {25} - ¦ ¦ °--')': ) [0/0] {27} - ¦ ¦--expr: mean( [1/0] {28} - ¦ ¦ ¦--expr: mean [0/0] {30} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {29} - ¦ ¦ ¦--'(': ( [0/0] {31} - ¦ ¦ ¦--expr: data [0/0] {33} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {32} - ¦ ¦ °--')': ) [0/0] {34} - ¦ °--'}': } [1/0] {35} - ¦--COMMENT: #* @p [2/0] {36} - °--expr: addTw [1/0] {37} - ¦--expr: addTw [0/1] {39} - ¦ °--SYMBOL: addTw [0/0] {38} - ¦--LEFT_ASSIGN: <- [0/1] {40} - °--expr: funct [0/0] {41} - ¦--FUNCTION: funct [0/0] {42} - ¦--'(': ( [0/0] {43} - ¦--SYMBOL_FORMALS: a [0/0] {44} - ¦--',': , [0/1] {45} - ¦--SYMBOL_FORMALS: b [0/0] {46} - ¦--')': ) [0/1] {47} - °--expr: { - a [0/0] {48} - ¦--'{': { [0/2] {49} - ¦--expr: as.nu [1/0] {50} - ¦ ¦--expr: as.nu [0/1] {51} - ¦ ¦ ¦--expr: as.nu [0/0] {53} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: as.nu [0/0] {52} - ¦ ¦ ¦--'(': ( [0/0] {54} - ¦ ¦ ¦--expr: a [0/0] {56} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {55} - ¦ ¦ °--')': ) [0/0] {57} - ¦ ¦--'+': + [0/1] {58} - ¦ °--expr: as.nu [0/0] {59} - ¦ ¦--expr: as.nu [0/0] {61} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: as.nu [0/0] {60} - ¦ ¦--'(': ( [0/0] {62} - ¦ ¦--expr: b [0/0] {64} - ¦ ¦ °--SYMBOL: b [0/0] {63} - ¦ °--')': ) [0/0] {65} - °--'}': } [1/0] {66} diff --git a/tests/testthat/parse_comments/shebang_1-in_tree b/tests/testthat/parse_comments/shebang_1-in_tree deleted file mode 100644 index 39bb6c0ca..000000000 --- a/tests/testthat/parse_comments/shebang_1-in_tree +++ /dev/null @@ -1,24 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #A co [0/0] {1} - ¦--COMMENT: #!/us [1/0] {2} - ¦--COMMENT: #!/us [1/0] {3} - ¦--expr: a <- [1/0] {4} - ¦ ¦--expr: a [0/1] {6} - ¦ ¦ °--SYMBOL: a [0/0] {5} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {7} - ¦ °--expr: 3 [0/0] {9} - ¦ °--NUM_CONST: 3 [0/0] {8} - ¦--COMMENT: #!/us [2/0] {10} - ¦--expr: dd <- [1/0] {11} - ¦ ¦--expr: dd [0/1] {13} - ¦ ¦ °--SYMBOL: dd [0/0] {12} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {14} - ¦ °--expr: 33 [0/0] {16} - ¦ °--NUM_CONST: 33 [0/0] {15} - ¦--COMMENT: #!/us [1/0] {17} - ¦--expr: c() [1/0] {18} - ¦ ¦--expr: c [0/0] {20} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {19} - ¦ ¦--'(': ( [0/0] {21} - ¦ °--')': ) [0/0] {22} - °--COMMENT: #!NEE [1/0] {23} diff --git a/tests/testthat/parse_comments/shebang_2-in_tree b/tests/testthat/parse_comments/shebang_2-in_tree deleted file mode 100644 index dafbcf6ac..000000000 --- a/tests/testthat/parse_comments/shebang_2-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #!/us [0/0] {1} - ¦--COMMENT: #!/us [1/0] {2} - ¦--expr: a <- [1/0] {3} - ¦ ¦--expr: a [0/1] {5} - ¦ ¦ °--SYMBOL: a [0/0] {4} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {6} - ¦ °--expr: 3 [0/0] {8} - ¦ °--NUM_CONST: 3 [0/0] {7} - ¦--COMMENT: #!/us [2/0] {9} - ¦--expr: dd <- [1/0] {10} - ¦ ¦--expr: dd [0/1] {12} - ¦ ¦ °--SYMBOL: dd [0/0] {11} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {13} - ¦ °--expr: 33 [0/0] {15} - ¦ °--NUM_CONST: 33 [0/0] {14} - ¦--COMMENT: #!/us [1/0] {16} - ¦--expr: c() [1/0] {17} - ¦ ¦--expr: c [0/0] {19} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {18} - ¦ ¦--'(': ( [0/0] {20} - ¦ °--')': ) [0/0] {21} - °--COMMENT: #!NEE [1/0] {22} diff --git a/tests/testthat/parse_comments/spinning_code_chunk_headers-in_tree b/tests/testthat/parse_comments/spinning_code_chunk_headers-in_tree deleted file mode 100644 index 82e47c6a4..000000000 --- a/tests/testthat/parse_comments/spinning_code_chunk_headers-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #A co [0/0] {1} - ¦--expr: a <- [1/0] {2} - ¦ ¦--expr: a [0/1] {4} - ¦ ¦ °--SYMBOL: a [0/0] {3} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {5} - ¦ °--expr: funct [0/0] {6} - ¦ ¦--FUNCTION: funct [0/0] {7} - ¦ ¦--'(': ( [0/0] {8} - ¦ ¦--')': ) [0/1] {9} - ¦ °--expr: { - -} [0/0] {10} - ¦ ¦--'{': { [0/0] {11} - ¦ °--'}': } [2/0] {12} - ¦--COMMENT: #+ ch [2/0] {13} - ¦--expr: "chun [1/0] {15} - ¦ °--STR_CONST: "chun [0/0] {14} - ¦--COMMENT: #- ch [2/0] {16} - ¦--expr: call( [1/0] {17} - ¦ ¦--expr: call [0/0] {19} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {18} - ¦ ¦--'(': ( [0/0] {20} - ¦ ¦--expr: 2 [0/0] {22} - ¦ ¦ °--NUM_CONST: 2 [0/0] {21} - ¦ ¦--',': , [0/1] {23} - ¦ ¦--expr: 3 [0/0] {25} - ¦ ¦ °--NUM_CONST: 3 [0/0] {24} - ¦ °--')': ) [0/0] {26} - °--COMMENT: #21 [1/0] {27} diff --git a/tests/testthat/parse_comments/with_indention-in_tree b/tests/testthat/parse_comments/with_indention-in_tree deleted file mode 100644 index ee1218f53..000000000 --- a/tests/testthat/parse_comments/with_indention-in_tree +++ /dev/null @@ -1,71 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # a c [0/0] {1} - ¦--expr: call( [1/0] {2} - ¦ ¦--expr: call [0/0] {4} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {3} - ¦ ¦--'(': ( [0/0] {5} - ¦ ¦--expr: 1 [1/0] {7} - ¦ ¦ °--NUM_CONST: 1 [0/0] {6} - ¦ ¦--',': , [0/0] {8} - ¦ ¦--expr: call2 [1/0] {9} - ¦ ¦ ¦--expr: call2 [0/0] {11} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {10} - ¦ ¦ ¦--'(': ( [0/0] {12} - ¦ ¦ ¦--expr: 2 [1/0] {14} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {13} - ¦ ¦ ¦--',': , [0/1] {15} - ¦ ¦ ¦--expr: 3 [0/0] {17} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {16} - ¦ ¦ ¦--',': , [0/0] {18} - ¦ ¦ ¦--expr: call3 [1/0] {19} - ¦ ¦ ¦ ¦--expr: call3 [0/0] {21} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call3 [0/0] {20} - ¦ ¦ ¦ ¦--'(': ( [0/0] {22} - ¦ ¦ ¦ ¦--COMMENT: # zer [0/0] {23} - ¦ ¦ ¦ ¦--COMMENT: # one [1/19] {24} - ¦ ¦ ¦ ¦--COMMENT: # two [1/6] {25} - ¦ ¦ ¦ ¦--expr: 1 [1/0] {27} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {26} - ¦ ¦ ¦ ¦--',': , [0/1] {28} - ¦ ¦ ¦ ¦--expr: 2 [0/1] {30} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {29} - ¦ ¦ ¦ ¦--COMMENT: # two [0/6] {31} - ¦ ¦ ¦ ¦--',': , [1/1] {32} - ¦ ¦ ¦ ¦--expr: 22 [0/1] {34} - ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {33} - ¦ ¦ ¦ ¦--COMMENT: # com [0/6] {35} - ¦ ¦ ¦ °--')': ) [1/0] {36} - ¦ ¦ ¦--',': , [0/4] {37} - ¦ ¦ ¦--expr: 5 [1/2] {39} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {38} - ¦ ¦ °--')': ) [1/0] {40} - ¦ ¦--',': , [0/1] {41} - ¦ ¦--COMMENT: #' A [0/17] {42} - ¦ ¦--expr: 144 [1/18] {44} - ¦ ¦ °--NUM_CONST: 144 [0/0] {43} - ¦ ¦--COMMENT: # ano [1/0] {45} - ¦ °--')': ) [1/0] {46} - ¦--COMMENT: # new [2/0] {47} - ¦--expr: a() [5/0] {48} - ¦ ¦--expr: a [0/0] {50} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {49} - ¦ ¦--'(': ( [0/0] {51} - ¦ °--')': ) [0/0] {52} - ¦--COMMENT: # I t [1/0] {53} - ¦--COMMENT: # new [1/0] {54} - ¦--expr: b(x, [1/2] {55} - ¦ ¦--expr: b [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: b [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--expr: x [0/0] {60} - ¦ ¦ °--SYMBOL: x [0/0] {59} - ¦ ¦--',': , [0/1] {61} - ¦ ¦--expr: y [0/0] {63} - ¦ ¦ °--SYMBOL: y [0/0] {62} - ¦ ¦--',': , [0/1] {64} - ¦ ¦--expr: 7 [0/0] {66} - ¦ ¦ °--NUM_CONST: 7 [0/0] {65} - ¦ °--')': ) [0/0] {67} - ¦--COMMENT: # hid [0/0] {68} - ¦--COMMENT: # com [1/0] {69} - °--COMMENT: # las [3/0] {70} diff --git a/tests/testthat/parse_comments/within_spacing_with_force-in_tree b/tests/testthat/parse_comments/within_spacing_with_force-in_tree deleted file mode 100644 index 559601eed..000000000 --- a/tests/testthat/parse_comments/within_spacing_with_force-in_tree +++ /dev/null @@ -1,5 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: ##### [0/0] {1} - ¦--COMMENT: #'rox [1/0] {2} - ¦--COMMENT: #rox [2/0] {3} - °--COMMENT: # a # [2/0] {4} diff --git a/tests/testthat/parse_comments/within_spacing_without_force-in_tree b/tests/testthat/parse_comments/within_spacing_without_force-in_tree deleted file mode 100644 index 559601eed..000000000 --- a/tests/testthat/parse_comments/within_spacing_without_force-in_tree +++ /dev/null @@ -1,5 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: ##### [0/0] {1} - ¦--COMMENT: #'rox [1/0] {2} - ¦--COMMENT: #rox [2/0] {3} - °--COMMENT: # a # [2/0] {4} diff --git a/tests/testthat/parse_comments/xaringan-in_tree b/tests/testthat/parse_comments/xaringan-in_tree deleted file mode 100644 index 65e144b39..000000000 --- a/tests/testthat/parse_comments/xaringan-in_tree +++ /dev/null @@ -1,62 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: foo( - [0/0] {1} - ¦ ¦--expr: foo [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: foo [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--SYMBOL_SUB: data [1/1] {5} - ¦ ¦--EQ_SUB: = [0/1] {6} - ¦ ¦--expr: mtcar [0/0] {8} - ¦ ¦ °--SYMBOL: mtcar [0/0] {7} - ¦ ¦--',': , [0/2] {9} - ¦ ¦--SYMBOL_SUB: x [1/1] {10} - ¦ ¦--EQ_SUB: = [0/1] {11} - ¦ ¦--expr: cyl [0/0] {13} - ¦ ¦ °--SYMBOL: cyl [0/0] {12} - ¦ ¦--',': , [0/2] {14} - ¦ ¦--SYMBOL_SUB: y [1/1] {15} - ¦ ¦--EQ_SUB: = [0/1] {16} - ¦ ¦--expr: wt [0/1] {18} - ¦ ¦ °--SYMBOL: wt [0/0] {17} - ¦ ¦--COMMENT: #<< [0/0] {19} - ¦ °--')': ) [1/0] {20} - ¦--expr: libra [3/0] {21} - ¦ ¦--expr: libra [0/0] {23} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: libra [0/0] {22} - ¦ ¦--'(': ( [0/0] {24} - ¦ ¦--expr: ggplo [0/0] {26} - ¦ ¦ °--SYMBOL: ggplo [0/0] {25} - ¦ °--')': ) [0/0] {27} - ¦--expr: ggplo [2/1] {28} - ¦ ¦--expr: ggplo [0/1] {30} - ¦ ¦ ¦--expr: ggplo [0/0] {32} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: ggplo [0/0] {31} - ¦ ¦ ¦--'(': ( [0/0] {33} - ¦ ¦ ¦--expr: aes(x [0/0] {34} - ¦ ¦ ¦ ¦--expr: aes [0/0] {36} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: aes [0/0] {35} - ¦ ¦ ¦ ¦--'(': ( [0/0] {37} - ¦ ¦ ¦ ¦--expr: x [0/0] {39} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {38} - ¦ ¦ ¦ ¦--',': , [0/1] {40} - ¦ ¦ ¦ ¦--expr: y [0/0] {42} - ¦ ¦ ¦ ¦ °--SYMBOL: y [0/0] {41} - ¦ ¦ ¦ °--')': ) [0/0] {43} - ¦ ¦ ¦--',': , [0/1] {44} - ¦ ¦ ¦--expr: data [0/0] {46} - ¦ ¦ ¦ °--SYMBOL: data [0/0] {45} - ¦ ¦ °--')': ) [0/0] {47} - ¦ ¦--'+': + [0/2] {48} - ¦ ¦--expr: geom_ [1/1] {49} - ¦ ¦ ¦--expr: geom_ [0/0] {51} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: geom_ [0/0] {50} - ¦ ¦ ¦--'(': ( [0/0] {52} - ¦ ¦ °--')': ) [0/0] {53} - ¦ ¦--'+': + [0/1] {54} - ¦ ¦--COMMENT: #<< [0/2] {55} - ¦ °--expr: scale [1/0] {56} - ¦ ¦--expr: scale [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: scale [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ °--')': ) [0/0] {60} - °--COMMENT: #<< [0/0] {61} diff --git a/tests/testthat/parsing/long_strings-in_tree b/tests/testthat/parsing/long_strings-in_tree deleted file mode 100644 index a8a743040..000000000 --- a/tests/testthat/parsing/long_strings-in_tree +++ /dev/null @@ -1,39 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: b <- - [0/0] {1} - ¦ ¦--expr: b [0/1] {3} - ¦ ¦ °--SYMBOL: b [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: 3 [1/0] {6} - ¦ °--NUM_CONST: 3 [0/0] {5} - ¦--expr: g <- - [1/0] {7} - ¦ ¦--expr: g [0/1] {9} - ¦ ¦ °--SYMBOL: g [0/0] {8} - ¦ ¦--LEFT_ASSIGN: <- [0/0] {10} - ¦ °--expr: "v x [1/0] {12} - ¦ °--STR_CONST: "v x [0/0] {11} - ¦--expr: "'tes [2/0] {14} - ¦ °--STR_CONST: "'tes [0/0] {13} - ¦--expr: 99 + [1/0] {15} - ¦ ¦--expr: 99 [0/1] {17} - ¦ ¦ °--NUM_CONST: 99 [0/0] {16} - ¦ ¦--'+': + [0/1] {18} - ¦ °--expr: 1 [0/0] {20} - ¦ °--NUM_CONST: 1 [0/0] {19} - ¦--expr: 'test [1/0] {22} - ¦ °--STR_CONST: 'test [0/0] {21} - ¦--expr: 'test [1/1] {24} - ¦ °--STR_CONST: 'test [0/0] {23} - ¦--COMMENT: # com [0/0] {25} - ¦--expr: 1 [1/0] {27} - ¦ °--NUM_CONST: 1 [0/0] {26} - °--expr: call( [2/0] {28} - ¦--expr: call [0/0] {30} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {29} - ¦--'(': ( [0/0] {31} - ¦--STR_CONST: "a_is [0/1] {32} - ¦--EQ_SUB: = [0/1] {33} - ¦--expr: 2 [0/0] {35} - ¦ °--NUM_CONST: 2 [0/0] {34} - °--')': ) [0/0] {36} diff --git a/tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_line_breaks-in_tree b/tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_line_breaks-in_tree deleted file mode 100644 index 82ec3ce94..000000000 --- a/tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_line_breaks-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr_or_assign_or_help: x = 5 [0/0] {1} - ¦ ¦--expr: x [0/1] {3} - ¦ ¦ °--SYMBOL: x [0/0] {2} - ¦ ¦--EQ_ASSIGN: = [0/1] {4} - ¦ °--expr: 5 [0/0] {6} - ¦ °--NUM_CONST: 5 [0/0] {5} - °--expr: if(x [2/0] {7} - ¦--IF: if [0/0] {8} - ¦--'(': ( [0/0] {9} - ¦--expr: x >= [0/0] {10} - ¦ ¦--expr: x [0/1] {12} - ¦ ¦ °--SYMBOL: x [0/0] {11} - ¦ ¦--GE: >= [0/1] {13} - ¦ °--expr: 5 [0/0] {15} - ¦ °--NUM_CONST: 5 [0/0] {14} - ¦--')': ) [0/2] {16} - ¦--expr_or_assign_or_help: y = T [1/1] {17} - ¦ ¦--expr: y [0/1] {19} - ¦ ¦ °--SYMBOL: y [0/0] {18} - ¦ ¦--EQ_ASSIGN: = [0/1] {20} - ¦ °--expr: TRUE [0/0] {22} - ¦ °--NUM_CONST: TRUE [0/0] {21} - ¦--ELSE: else [0/4] {23} - °--expr_or_assign_or_help: y = F [1/0] {24} - ¦--expr: y [0/1] {26} - ¦ °--SYMBOL: y [0/0] {25} - ¦--EQ_ASSIGN: = [0/1] {27} - °--expr: FALSE [0/0] {29} - °--NUM_CONST: FALSE [0/0] {28} diff --git a/tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_tokens-in_tree b/tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_tokens-in_tree deleted file mode 100644 index 82ec3ce94..000000000 --- a/tests/testthat/relocate_eq_assign/eq_assign_ifelse_scope_tokens-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr_or_assign_or_help: x = 5 [0/0] {1} - ¦ ¦--expr: x [0/1] {3} - ¦ ¦ °--SYMBOL: x [0/0] {2} - ¦ ¦--EQ_ASSIGN: = [0/1] {4} - ¦ °--expr: 5 [0/0] {6} - ¦ °--NUM_CONST: 5 [0/0] {5} - °--expr: if(x [2/0] {7} - ¦--IF: if [0/0] {8} - ¦--'(': ( [0/0] {9} - ¦--expr: x >= [0/0] {10} - ¦ ¦--expr: x [0/1] {12} - ¦ ¦ °--SYMBOL: x [0/0] {11} - ¦ ¦--GE: >= [0/1] {13} - ¦ °--expr: 5 [0/0] {15} - ¦ °--NUM_CONST: 5 [0/0] {14} - ¦--')': ) [0/2] {16} - ¦--expr_or_assign_or_help: y = T [1/1] {17} - ¦ ¦--expr: y [0/1] {19} - ¦ ¦ °--SYMBOL: y [0/0] {18} - ¦ ¦--EQ_ASSIGN: = [0/1] {20} - ¦ °--expr: TRUE [0/0] {22} - ¦ °--NUM_CONST: TRUE [0/0] {21} - ¦--ELSE: else [0/4] {23} - °--expr_or_assign_or_help: y = F [1/0] {24} - ¦--expr: y [0/1] {26} - ¦ °--SYMBOL: y [0/0] {25} - ¦--EQ_ASSIGN: = [0/1] {27} - °--expr: FALSE [0/0] {29} - °--NUM_CONST: FALSE [0/0] {28} diff --git a/tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_eq_only-in_tree b/tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_eq_only-in_tree deleted file mode 100644 index 636622233..000000000 --- a/tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_eq_only-in_tree +++ /dev/null @@ -1,103 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr_or_assign_or_help: a = b [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--EQ_ASSIGN: = [0/1] {4} - ¦ ¦--expr: b [0/1] {7} - ¦ ¦ °--SYMBOL: b [0/0] {6} - ¦ ¦--EQ_ASSIGN: = [0/1] {8} - ¦ ¦--expr: c [0/1] {11} - ¦ ¦ °--SYMBOL: c [0/0] {10} - ¦ ¦--EQ_ASSIGN: = [0/1] {12} - ¦ ¦--expr: d [0/1] {15} - ¦ ¦ °--SYMBOL: d [0/0] {14} - ¦ ¦--EQ_ASSIGN: = [0/1] {16} - ¦ ¦--expr: e [0/1] {19} - ¦ ¦ °--SYMBOL: e [0/0] {18} - ¦ ¦--EQ_ASSIGN: = [0/1] {20} - ¦ ¦--expr: f [0/7] {23} - ¦ ¦ °--SYMBOL: f [0/0] {22} - ¦ ¦--EQ_ASSIGN: = [0/1] {24} - ¦ ¦--expr: g [0/1] {27} - ¦ ¦ °--SYMBOL: g [0/0] {26} - ¦ ¦--EQ_ASSIGN: = [0/1] {28} - ¦ °--expr: 4 [0/0] {30} - ¦ °--NUM_CONST: 4 [0/0] {29} - ¦--expr: a <- [1/0] {31} - ¦ ¦--expr: a [0/1] {33} - ¦ ¦ °--SYMBOL: a [0/0] {32} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {34} - ¦ °--expr: 3 [0/0] {36} - ¦ °--NUM_CONST: 3 [0/0] {35} - ¦--';': ; [0/1] {37} - ¦--expr_or_assign_or_help: b = c [0/0] {38} - ¦ ¦--expr: b [0/1] {40} - ¦ ¦ °--SYMBOL: b [0/0] {39} - ¦ ¦--EQ_ASSIGN: = [0/1] {41} - ¦ ¦--expr: c [0/1] {44} - ¦ ¦ °--SYMBOL: c [0/0] {43} - ¦ ¦--EQ_ASSIGN: = [0/1] {45} - ¦ ¦--expr: d [0/1] {48} - ¦ ¦ °--SYMBOL: d [0/0] {47} - ¦ ¦--EQ_ASSIGN: = [0/1] {49} - ¦ ¦--expr: ey [0/1] {52} - ¦ ¦ °--SYMBOL: ey [0/0] {51} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {53} - ¦ °--expr: 4 [0/0] {55} - ¦ °--NUM_CONST: 4 [0/0] {54} - ¦--expr: a <- [1/0] {56} - ¦ ¦--expr: a [0/1] {58} - ¦ ¦ °--SYMBOL: a [0/0] {57} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {59} - ¦ °--expr: 3 [0/0] {61} - ¦ °--NUM_CONST: 3 [0/0] {60} - ¦--';': ; [0/1] {62} - ¦--expr_or_assign_or_help: b = c [0/0] {63} - ¦ ¦--expr: b [0/1] {65} - ¦ ¦ °--SYMBOL: b [0/0] {64} - ¦ ¦--EQ_ASSIGN: = [0/1] {66} - ¦ ¦--expr: c [0/1] {69} - ¦ ¦ °--SYMBOL: c [0/0] {68} - ¦ ¦--EQ_ASSIGN: = [0/1] {70} - ¦ ¦--expr: d <- [0/1] {72} - ¦ ¦ ¦--expr: d [0/1] {74} - ¦ ¦ ¦ °--SYMBOL: d [0/0] {73} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {75} - ¦ ¦ °--expr: ey [0/0] {77} - ¦ ¦ °--SYMBOL: ey [0/0] {76} - ¦ ¦--EQ_ASSIGN: = [0/1] {78} - ¦ °--expr: 4 [0/0] {80} - ¦ °--NUM_CONST: 4 [0/0] {79} - ¦--expr_or_assign_or_help: ff = [1/0] {81} - ¦ ¦--expr: ff [0/1] {83} - ¦ ¦ °--SYMBOL: ff [0/0] {82} - ¦ ¦--EQ_ASSIGN: = [0/1] {84} - ¦ °--expr: 3 [0/0] {86} - ¦ °--NUM_CONST: 3 [0/0] {85} - ¦--';': ; [0/1] {87} - ¦--expr_or_assign_or_help: b = c [0/1] {88} - ¦ ¦--expr: b [0/1] {90} - ¦ ¦ °--SYMBOL: b [0/0] {89} - ¦ ¦--EQ_ASSIGN: = [0/1] {91} - ¦ ¦--expr: c [0/1] {94} - ¦ ¦ °--SYMBOL: c [0/0] {93} - ¦ ¦--EQ_ASSIGN: = [0/1] {95} - ¦ ¦--expr: d [0/1] {98} - ¦ ¦ °--SYMBOL: d [0/0] {97} - ¦ ¦--EQ_ASSIGN: = [0/1] {99} - ¦ °--expr: 3 [0/0] {101} - ¦ °--NUM_CONST: 3 [0/0] {100} - ¦--';': ; [0/1] {102} - ¦--expr_or_assign_or_help: g = 4 [0/0] {103} - ¦ ¦--expr: g [0/1] {105} - ¦ ¦ °--SYMBOL: g [0/0] {104} - ¦ ¦--EQ_ASSIGN: = [0/1] {106} - ¦ °--expr: 4 [0/0] {108} - ¦ °--NUM_CONST: 4 [0/0] {107} - ¦--';': ; [0/1] {109} - °--expr_or_assign_or_help: ge = [0/0] {110} - ¦--expr: ge [0/1] {112} - ¦ °--SYMBOL: ge [0/0] {111} - ¦--EQ_ASSIGN: = [0/1] {113} - °--expr: 5 [0/0] {115} - °--NUM_CONST: 5 [0/0] {114} diff --git a/tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_mixed-in_tree b/tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_mixed-in_tree deleted file mode 100644 index 12616957c..000000000 --- a/tests/testthat/relocate_eq_assign/eq_assign_multiple_tokens_mixed-in_tree +++ /dev/null @@ -1,25 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr_or_assign_or_help: a = b [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--EQ_ASSIGN: = [0/1] {4} - ¦--expr: b [0/1] {7} - ¦ °--SYMBOL: b [0/0] {6} - ¦--EQ_ASSIGN: = [0/1] {8} - ¦--expr: c [0/1] {11} - ¦ °--SYMBOL: c [0/0] {10} - ¦--EQ_ASSIGN: = [0/1] {12} - ¦--expr: d [0/1] {15} - ¦ °--SYMBOL: d [0/0] {14} - ¦--EQ_ASSIGN: = [0/1] {16} - ¦--expr: e [0/1] {19} - ¦ °--SYMBOL: e [0/0] {18} - ¦--EQ_ASSIGN: = [0/1] {20} - ¦--expr: f [0/7] {23} - ¦ °--SYMBOL: f [0/0] {22} - ¦--EQ_ASSIGN: = [0/1] {24} - ¦--expr: g [0/1] {27} - ¦ °--SYMBOL: g [0/0] {26} - ¦--LEFT_ASSIGN: <- [0/1] {28} - °--expr: 4 [0/0] {30} - °--NUM_CONST: 4 [0/0] {29} diff --git a/tests/testthat/roxygen-examples-complete/01-one-function-example-last-proper-run-in_tree b/tests/testthat/roxygen-examples-complete/01-one-function-example-last-proper-run-in_tree deleted file mode 100644 index 2cb3e2b3d..000000000 --- a/tests/testthat/roxygen-examples-complete/01-one-function-example-last-proper-run-in_tree +++ /dev/null @@ -1,13 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Pr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' Pe [1/0] {3} - ¦--COMMENT: #' (c [1/0] {4} - ¦--COMMENT: #' Ca [1/0] {5} - ¦--COMMENT: #'@ex [1/0] {6} - °--expr: a <- [1/0] {7} - ¦--expr: a [0/1] {9} - ¦ °--SYMBOL: a [0/0] {8} - ¦--LEFT_ASSIGN: <- [0/1] {10} - °--expr: 2 [0/0] {12} - °--NUM_CONST: 2 [0/0] {11} diff --git a/tests/testthat/roxygen-examples-complete/02-one-function-examples-last-proper-run-in_tree b/tests/testthat/roxygen-examples-complete/02-one-function-examples-last-proper-run-in_tree deleted file mode 100644 index 93f13fecb..000000000 --- a/tests/testthat/roxygen-examples-complete/02-one-function-examples-last-proper-run-in_tree +++ /dev/null @@ -1,18 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Pr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' Pe [1/0] {3} - ¦--COMMENT: #' (c [1/0] {4} - ¦--COMMENT: #' Ca [1/0] {5} - ¦--COMMENT: #' @e [1/0] {6} - ¦--COMMENT: #' st [1/0] {7} - ¦--COMMENT: #' st [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' [1/0] {10} - ¦--COMMENT: #' ) [1/0] {11} - °--expr_or_assign_or_help: a = c [1/0] {12} - ¦--expr: a [0/1] {14} - ¦ °--SYMBOL: a [0/0] {13} - ¦--EQ_ASSIGN: = [0/1] {15} - °--expr: call [0/0] {17} - °--SYMBOL: call [0/0] {16} diff --git a/tests/testthat/roxygen-examples-complete/03-one-function-example-not-last-proper-run-in_tree b/tests/testthat/roxygen-examples-complete/03-one-function-example-not-last-proper-run-in_tree deleted file mode 100644 index c7da21279..000000000 --- a/tests/testthat/roxygen-examples-complete/03-one-function-example-not-last-proper-run-in_tree +++ /dev/null @@ -1,13 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Pr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' Pe [1/0] {3} - ¦--COMMENT: #' Ca [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' @n [1/0] {6} - °--expr: a<- 2 [1/0] {7} - ¦--expr: a [0/0] {9} - ¦ °--SYMBOL: a [0/0] {8} - ¦--LEFT_ASSIGN: <- [0/1] {10} - °--expr: 2 [0/0] {12} - °--NUM_CONST: 2 [0/0] {11} diff --git a/tests/testthat/roxygen-examples-complete/04-one-function-examples-not-last-proper-run-in_tree b/tests/testthat/roxygen-examples-complete/04-one-function-examples-not-last-proper-run-in_tree deleted file mode 100644 index d33a983ff..000000000 --- a/tests/testthat/roxygen-examples-complete/04-one-function-examples-not-last-proper-run-in_tree +++ /dev/null @@ -1,18 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' st [1/0] {6} - ¦--COMMENT: #' st [1/0] {7} - ¦--COMMENT: #' st [1/0] {8} - ¦--COMMENT: #' st [1/0] {9} - ¦--COMMENT: #' @i [1/0] {10} - ¦--COMMENT: #' @e [1/0] {11} - °--expr: a<-ca [1/0] {12} - ¦--expr: a [0/0] {14} - ¦ °--SYMBOL: a [0/0] {13} - ¦--LEFT_ASSIGN: <- [0/0] {15} - °--expr: call [0/0] {17} - °--SYMBOL: call [0/0] {16} diff --git a/tests/testthat/roxygen-examples-complete/05-multiple-function-examples-last-proper-run-in_tree b/tests/testthat/roxygen-examples-complete/05-multiple-function-examples-last-proper-run-in_tree deleted file mode 100644 index a7eacdfce..000000000 --- a/tests/testthat/roxygen-examples-complete/05-multiple-function-examples-last-proper-run-in_tree +++ /dev/null @@ -1,28 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' st [1/0] {6} - ¦--COMMENT: #' st [1/0] {7} - ¦--COMMENT: #' st [1/0] {8} - ¦--COMMENT: #' st [1/0] {9} - ¦--expr: a <- [1/0] {10} - ¦ ¦--expr: a [0/1] {12} - ¦ ¦ °--SYMBOL: a [0/0] {11} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {13} - ¦ °--expr: call [0/0] {15} - ¦ °--SYMBOL: call [0/0] {14} - ¦--COMMENT: #' Pr [2/0] {16} - ¦--COMMENT: #' [1/0] {17} - ¦--COMMENT: #' Pe [1/0] {18} - ¦--COMMENT: #' (c [1/0] {19} - ¦--COMMENT: #' Ca [1/0] {20} - ¦--COMMENT: #' @e [1/0] {21} - °--expr: a <- [1/0] {22} - ¦--expr: a [0/1] {24} - ¦ °--SYMBOL: a [0/0] {23} - ¦--LEFT_ASSIGN: <- [0/3] {25} - °--expr: 2 [0/0] {27} - °--NUM_CONST: 2 [0/0] {26} diff --git a/tests/testthat/roxygen-examples-complete/06-multiple-function-examples-no-last-run-in_tree b/tests/testthat/roxygen-examples-complete/06-multiple-function-examples-no-last-run-in_tree deleted file mode 100644 index a7dcea705..000000000 --- a/tests/testthat/roxygen-examples-complete/06-multiple-function-examples-no-last-run-in_tree +++ /dev/null @@ -1,33 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Pr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' Pe [1/0] {3} - ¦--COMMENT: #' Ca [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' ti [1/0] {6} - ¦--COMMENT: #' @n [1/0] {7} - ¦--expr: a <- [1/0] {8} - ¦ ¦--expr: a [0/1] {10} - ¦ ¦ °--SYMBOL: a [0/0] {9} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {11} - ¦ °--expr: 2 [0/0] {13} - ¦ °--NUM_CONST: 2 [0/0] {12} - ¦--COMMENT: #' Th [2/0] {14} - ¦--COMMENT: #' [1/0] {15} - ¦--COMMENT: #' St [1/0] {16} - ¦--COMMENT: #' @f [1/0] {17} - ¦--COMMENT: #' @e [1/0] {18} - ¦--COMMENT: #' st [1/0] {19} - ¦--COMMENT: #' st [1/0] {20} - ¦--COMMENT: #' st [1/0] {21} - ¦--COMMENT: #' c( [1/0] {22} - ¦--COMMENT: #' st [1/0] {23} - ¦--COMMENT: #' @i [1/0] {24} - ¦--COMMENT: #' @e [1/0] {25} - ¦--expr: a [1/0] {26} - ¦ ¦--expr: a [0/5] {28} - ¦ ¦ °--SYMBOL: a [0/0] {27} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {29} - ¦ °--expr: call [0/0] {31} - ¦ °--SYMBOL: call [0/0] {30} - °--';': ; [0/0] {32} diff --git a/tests/testthat/roxygen-examples-complete/07-roxygen-no-dontrun-in_tree b/tests/testthat/roxygen-examples-complete/07-roxygen-no-dontrun-in_tree deleted file mode 100644 index 399feb009..000000000 --- a/tests/testthat/roxygen-examples-complete/07-roxygen-no-dontrun-in_tree +++ /dev/null @@ -1,98 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' St [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' Pe [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--COMMENT: #' @p [1/0] {5} - ¦--COMMENT: #' @i [1/0] {6} - ¦--COMMENT: #' @i [1/0] {7} - ¦--COMMENT: #' @i [1/0] {8} - ¦--COMMENT: #' @i [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - ¦--COMMENT: #' # [1/0] {11} - ¦--COMMENT: #' fi [1/0] {12} - ¦--COMMENT: #' fi [1/0] {13} - ¦--COMMENT: #' xf [1/0] {14} - ¦--COMMENT: #' st [1/0] {15} - ¦--COMMENT: #' fi [1/0] {16} - ¦--COMMENT: #' st [1/0] {17} - ¦--COMMENT: #' xf [1/0] {18} - ¦--COMMENT: #' un [1/0] {19} - ¦--COMMENT: #' @f [1/0] {20} - ¦--COMMENT: #' @e [1/0] {21} - °--expr: style [1/0] {22} - ¦--expr: style [0/1] {24} - ¦ °--SYMBOL: style [0/0] {23} - ¦--LEFT_ASSIGN: <- [0/1] {25} - °--expr: funct [0/0] {26} - ¦--FUNCTION: funct [0/0] {27} - ¦--'(': ( [0/0] {28} - ¦--SYMBOL_FORMALS: path [0/0] {29} - ¦--',': , [0/23] {30} - ¦--SYMBOL_FORMALS: ... [1/1] {31} - ¦--',': , [0/23] {32} - ¦--SYMBOL_FORMALS: style [1/1] {33} - ¦--EQ_FORMALS: = [0/1] {34} - ¦--expr: tidyv [0/0] {36} - ¦ °--SYMBOL: tidyv [0/0] {35} - ¦--',': , [0/23] {37} - ¦--SYMBOL_FORMALS: trans [1/1] {38} - ¦--EQ_FORMALS: = [0/1] {39} - ¦--expr: style [0/0] {40} - ¦ ¦--expr: style [0/0] {42} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {41} - ¦ ¦--'(': ( [0/0] {43} - ¦ ¦--expr: ... [0/0] {45} - ¦ ¦ °--SYMBOL: ... [0/0] {44} - ¦ °--')': ) [0/0] {46} - ¦--',': , [0/23] {47} - ¦--SYMBOL_FORMALS: inclu [1/1] {48} - ¦--EQ_FORMALS: = [0/1] {49} - ¦--expr: TRUE [0/0] {51} - ¦ °--NUM_CONST: TRUE [0/0] {50} - ¦--')': ) [0/1] {52} - °--expr: { - c [0/0] {53} - ¦--'{': { [0/2] {54} - ¦--expr: chang [1/2] {55} - ¦ ¦--expr: chang [0/0] {57} - ¦ ¦ °--SYMBOL: chang [0/0] {56} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {58} - ¦ °--expr: withr [0/0] {59} - ¦ ¦--expr: withr [0/0] {60} - ¦ ¦ ¦--SYMBOL_PACKAGE: withr [0/0] {61} - ¦ ¦ ¦--NS_GET: :: [0/0] {62} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: with_ [0/0] {63} - ¦ ¦--'(': ( [0/4] {64} - ¦ ¦--expr: dirna [1/0] {65} - ¦ ¦ ¦--expr: dirna [0/0] {67} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dirna [0/0] {66} - ¦ ¦ ¦--'(': ( [0/0] {68} - ¦ ¦ ¦--expr: path [0/12] {70} - ¦ ¦ ¦ °--SYMBOL: path [0/0] {69} - ¦ ¦ °--')': ) [1/0] {71} - ¦ ¦--',': , [0/4] {72} - ¦ ¦--expr: trans [1/2] {73} - ¦ ¦ ¦--expr: trans [0/0] {75} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {74} - ¦ ¦ ¦--'(': ( [0/0] {76} - ¦ ¦ ¦--expr: basen [0/0] {77} - ¦ ¦ ¦ ¦--expr: basen [0/0] {79} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: basen [0/0] {78} - ¦ ¦ ¦ ¦--'(': ( [0/0] {80} - ¦ ¦ ¦ ¦--expr: path [0/0] {82} - ¦ ¦ ¦ ¦ °--SYMBOL: path [0/0] {81} - ¦ ¦ ¦ °--')': ) [0/0] {83} - ¦ ¦ ¦--',': , [0/1] {84} - ¦ ¦ ¦--expr: trans [0/0] {86} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {85} - ¦ ¦ °--')': ) [0/0] {87} - ¦ °--')': ) [1/0] {88} - ¦--expr: invis [1/0] {89} - ¦ ¦--expr: invis [0/0] {91} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {90} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--expr: chang [0/0] {94} - ¦ ¦ °--SYMBOL: chang [0/0] {93} - ¦ °--')': ) [0/0] {95} - °--'}': } [1/0] {96} diff --git a/tests/testthat/roxygen-examples-complete/08-roxygen-dontrun-in_tree b/tests/testthat/roxygen-examples-complete/08-roxygen-dontrun-in_tree deleted file mode 100644 index 710728774..000000000 --- a/tests/testthat/roxygen-examples-complete/08-roxygen-dontrun-in_tree +++ /dev/null @@ -1,103 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' St [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' Pe [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--COMMENT: #' @p [1/0] {5} - ¦--COMMENT: #' @i [1/0] {6} - ¦--COMMENT: #' @i [1/0] {7} - ¦--COMMENT: #' @i [1/0] {8} - ¦--COMMENT: #' @i [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - ¦--COMMENT: #' # [1/0] {11} - ¦--COMMENT: #' fi [1/0] {12} - ¦--COMMENT: #' fi [1/0] {13} - ¦--COMMENT: #' \d [1/0] {14} - ¦--COMMENT: #' st [1/0] {15} - ¦--COMMENT: #' fi [1/0] {16} - ¦--COMMENT: #' st [1/0] {17} - ¦--COMMENT: #' xf [1/0] {18} - ¦--COMMENT: #' \d [1/0] {19} - ¦--COMMENT: #' \d [1/0] {20} - ¦--COMMENT: #' { [1/0] {21} - ¦--COMMENT: #' } [1/0] {22} - ¦--COMMENT: #' un [1/0] {23} - ¦--COMMENT: #' } [1/0] {24} - ¦--COMMENT: #' @f [1/0] {25} - ¦--COMMENT: #' @e [1/0] {26} - °--expr: style [1/0] {27} - ¦--expr: style [0/1] {29} - ¦ °--SYMBOL: style [0/0] {28} - ¦--LEFT_ASSIGN: <- [0/1] {30} - °--expr: funct [0/0] {31} - ¦--FUNCTION: funct [0/0] {32} - ¦--'(': ( [0/0] {33} - ¦--SYMBOL_FORMALS: path [0/0] {34} - ¦--',': , [0/23] {35} - ¦--SYMBOL_FORMALS: ... [1/1] {36} - ¦--',': , [0/23] {37} - ¦--SYMBOL_FORMALS: style [1/1] {38} - ¦--EQ_FORMALS: = [0/1] {39} - ¦--expr: tidyv [0/0] {41} - ¦ °--SYMBOL: tidyv [0/0] {40} - ¦--',': , [0/23] {42} - ¦--SYMBOL_FORMALS: trans [1/1] {43} - ¦--EQ_FORMALS: = [0/1] {44} - ¦--expr: style [0/0] {45} - ¦ ¦--expr: style [0/0] {47} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {46} - ¦ ¦--'(': ( [0/0] {48} - ¦ ¦--expr: ... [0/0] {50} - ¦ ¦ °--SYMBOL: ... [0/0] {49} - ¦ °--')': ) [0/0] {51} - ¦--',': , [0/23] {52} - ¦--SYMBOL_FORMALS: inclu [1/1] {53} - ¦--EQ_FORMALS: = [0/1] {54} - ¦--expr: TRUE [0/0] {56} - ¦ °--NUM_CONST: TRUE [0/0] {55} - ¦--')': ) [0/1] {57} - °--expr: { - c [0/0] {58} - ¦--'{': { [0/2] {59} - ¦--expr: chang [1/2] {60} - ¦ ¦--expr: chang [0/0] {62} - ¦ ¦ °--SYMBOL: chang [0/0] {61} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {63} - ¦ °--expr: withr [0/0] {64} - ¦ ¦--expr: withr [0/0] {65} - ¦ ¦ ¦--SYMBOL_PACKAGE: withr [0/0] {66} - ¦ ¦ ¦--NS_GET: :: [0/0] {67} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: with_ [0/0] {68} - ¦ ¦--'(': ( [0/4] {69} - ¦ ¦--expr: dirna [1/0] {70} - ¦ ¦ ¦--expr: dirna [0/0] {72} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dirna [0/0] {71} - ¦ ¦ ¦--'(': ( [0/0] {73} - ¦ ¦ ¦--expr: path [0/12] {75} - ¦ ¦ ¦ °--SYMBOL: path [0/0] {74} - ¦ ¦ °--')': ) [1/0] {76} - ¦ ¦--',': , [0/4] {77} - ¦ ¦--expr: trans [1/2] {78} - ¦ ¦ ¦--expr: trans [0/0] {80} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {79} - ¦ ¦ ¦--'(': ( [0/0] {81} - ¦ ¦ ¦--expr: basen [0/0] {82} - ¦ ¦ ¦ ¦--expr: basen [0/0] {84} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: basen [0/0] {83} - ¦ ¦ ¦ ¦--'(': ( [0/0] {85} - ¦ ¦ ¦ ¦--expr: path [0/0] {87} - ¦ ¦ ¦ ¦ °--SYMBOL: path [0/0] {86} - ¦ ¦ ¦ °--')': ) [0/0] {88} - ¦ ¦ ¦--',': , [0/1] {89} - ¦ ¦ ¦--expr: trans [0/0] {91} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {90} - ¦ ¦ °--')': ) [0/0] {92} - ¦ °--')': ) [1/0] {93} - ¦--expr: invis [1/0] {94} - ¦ ¦--expr: invis [0/0] {96} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {95} - ¦ ¦--'(': ( [0/0] {97} - ¦ ¦--expr: chang [0/0] {99} - ¦ ¦ °--SYMBOL: chang [0/0] {98} - ¦ °--')': ) [0/0] {100} - °--'}': } [1/0] {101} diff --git a/tests/testthat/roxygen-examples-complete/09-styler-r-ui-style-string-multiple-in_tree b/tests/testthat/roxygen-examples-complete/09-styler-r-ui-style-string-multiple-in_tree deleted file mode 100644 index 51af44dc6..000000000 --- a/tests/testthat/roxygen-examples-complete/09-styler-r-ui-style-string-multiple-in_tree +++ /dev/null @@ -1,86 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' St [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' to [1/0] {4} - ¦--COMMENT: #' @p [1/0] {5} - ¦--COMMENT: #' @i [1/0] {6} - ¦--COMMENT: #' @f [1/0] {7} - ¦--COMMENT: #' @e [1/0] {8} - ¦--COMMENT: #' st [1/0] {9} - ¦--COMMENT: #' st [1/0] {10} - ¦--COMMENT: #' st [1/0] {11} - ¦--COMMENT: #' st [1/0] {12} - ¦--COMMENT: #' st [1/0] {13} - ¦--COMMENT: #' # [1/0] {14} - ¦--COMMENT: #' st [1/0] {15} - ¦--COMMENT: #' @e [1/0] {16} - ¦--COMMENT: #' \d [1/0] {17} - ¦--COMMENT: #' @e [1/0] {18} - °--expr: style [1/0] {19} - ¦--expr: style [0/1] {21} - ¦ °--SYMBOL: style [0/0] {20} - ¦--LEFT_ASSIGN: <- [0/1] {22} - °--expr: funct [0/0] {23} - ¦--FUNCTION: funct [0/0] {24} - ¦--'(': ( [0/0] {25} - ¦--SYMBOL_FORMALS: text [0/0] {26} - ¦--',': , [0/23] {27} - ¦--SYMBOL_FORMALS: ... [1/0] {28} - ¦--',': , [0/23] {29} - ¦--SYMBOL_FORMALS: style [1/1] {30} - ¦--EQ_FORMALS: = [0/1] {31} - ¦--expr: tidyv [0/0] {33} - ¦ °--SYMBOL: tidyv [0/0] {32} - ¦--',': , [0/23] {34} - ¦--SYMBOL_FORMALS: trans [1/1] {35} - ¦--EQ_FORMALS: = [0/1] {36} - ¦--expr: style [0/0] {37} - ¦ ¦--expr: style [0/0] {39} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {38} - ¦ ¦--'(': ( [0/0] {40} - ¦ ¦--expr: ... [0/0] {42} - ¦ ¦ °--SYMBOL: ... [0/0] {41} - ¦ °--')': ) [0/0] {43} - ¦--',': , [0/23] {44} - ¦--SYMBOL_FORMALS: inclu [1/1] {45} - ¦--EQ_FORMALS: = [0/1] {46} - ¦--expr: TRUE [0/0] {48} - ¦ °--NUM_CONST: TRUE [0/0] {47} - ¦--')': ) [0/1] {49} - °--expr: { - t [0/0] {50} - ¦--'{': { [0/2] {51} - ¦--expr: trans [1/2] {52} - ¦ ¦--expr: trans [0/1] {54} - ¦ ¦ °--SYMBOL: trans [0/0] {53} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {55} - ¦ °--expr: make_ [0/0] {56} - ¦ ¦--expr: make_ [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: make_ [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--expr: trans [0/0] {61} - ¦ ¦ °--SYMBOL: trans [0/0] {60} - ¦ ¦--',': , [0/1] {62} - ¦ ¦--expr: inclu [0/0] {64} - ¦ ¦ °--SYMBOL: inclu [0/0] {63} - ¦ °--')': ) [0/0] {65} - ¦--expr: style [1/2] {66} - ¦ ¦--expr: style [0/1] {68} - ¦ ¦ °--SYMBOL: style [0/0] {67} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {69} - ¦ °--expr: trans [0/0] {70} - ¦ ¦--expr: trans [0/0] {72} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {71} - ¦ ¦--'(': ( [0/0] {73} - ¦ ¦--expr: text [0/0] {75} - ¦ ¦ °--SYMBOL: text [0/0] {74} - ¦ °--')': ) [0/0] {76} - ¦--expr: const [1/0] {77} - ¦ ¦--expr: const [0/0] {79} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: const [0/0] {78} - ¦ ¦--'(': ( [0/0] {80} - ¦ ¦--expr: style [0/0] {82} - ¦ ¦ °--SYMBOL: style [0/0] {81} - ¦ °--')': ) [0/0] {83} - °--'}': } [1/0] {84} diff --git a/tests/testthat/roxygen-examples-complete/10-styler-r-ui-in_tree b/tests/testthat/roxygen-examples-complete/10-styler-r-ui-in_tree deleted file mode 100644 index 070451e6e..000000000 --- a/tests/testthat/roxygen-examples-complete/10-styler-r-ui-in_tree +++ /dev/null @@ -1,756 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' @a [0/0] {1} - ¦--COMMENT: #' @i [1/0] {2} - ¦--COMMENT: #' @i [1/0] {3} - ¦--expr: NULL [1/0] {5} - ¦ °--NULL_CONST: NULL [0/0] {4} - ¦--COMMENT: #' Pr [2/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' Pe [1/0] {8} - ¦--COMMENT: #' (c [1/0] {9} - ¦--COMMENT: #' Ca [1/0] {10} - ¦--COMMENT: #' [1/0] {11} - ¦--COMMENT: #' @p [1/0] {12} - ¦--COMMENT: #' @p [1/0] {13} - ¦--COMMENT: #' @p [1/0] {14} - ¦--COMMENT: #' [1/0] {15} - ¦--COMMENT: #' [1/0] {16} - ¦--COMMENT: #' [1/0] {17} - ¦--COMMENT: #' @p [1/0] {18} - ¦--COMMENT: #' [1/0] {19} - ¦--COMMENT: #' [1/0] {20} - ¦--COMMENT: #' @p [1/0] {21} - ¦--COMMENT: #' [1/0] {22} - ¦--COMMENT: #' [1/0] {23} - ¦--COMMENT: #' @p [1/0] {24} - ¦--COMMENT: #' [1/0] {25} - ¦--COMMENT: #' @p [1/0] {26} - ¦--COMMENT: #' [1/0] {27} - ¦--COMMENT: #' @s [1/0] {28} - ¦--COMMENT: #' Th [1/0] {29} - ¦--COMMENT: #' co [1/0] {30} - ¦--COMMENT: #' th [1/0] {31} - ¦--COMMENT: #' [1/0] {32} - ¦--COMMENT: #' We [1/0] {33} - ¦--COMMENT: #' ch [1/0] {34} - ¦--COMMENT: #' tr [1/0] {35} - ¦--COMMENT: #' [1/0] {36} - ¦--COMMENT: #' Th [1/0] {37} - ¦--COMMENT: #' in [1/0] {38} - ¦--COMMENT: #' th [1/0] {39} - ¦--COMMENT: #' @s [1/0] {40} - ¦--COMMENT: #' Th [1/0] {41} - ¦--COMMENT: #' yi [1/0] {42} - ¦--COMMENT: #' [1/0] {43} - ¦--COMMENT: #' If [1/0] {44} - ¦--COMMENT: #' ab [1/0] {45} - ¦--COMMENT: #' He [1/0] {46} - ¦--COMMENT: #' ex [1/0] {47} - ¦--COMMENT: #' Th [1/0] {48} - ¦--COMMENT: #' er [1/0] {49} - ¦--COMMENT: #' [1/0] {50} - ¦--COMMENT: #' No [1/0] {51} - ¦--COMMENT: #' th [1/0] {52} - ¦--COMMENT: #' st [1/0] {53} - ¦--COMMENT: #' in [1/0] {54} - ¦--COMMENT: #' [1/0] {55} - ¦--COMMENT: #' Se [1/0] {56} - ¦--COMMENT: #' @i [1/0] {57} - ¦--COMMENT: #' @f [1/0] {58} - ¦--COMMENT: #' @e [1/0] {59} - ¦--COMMENT: #' \d [1/0] {60} - ¦--COMMENT: #' st [1/0] {61} - ¦--COMMENT: #' st [1/0] {62} - ¦--COMMENT: #' [1/0] {63} - ¦--COMMENT: #' [1/0] {64} - ¦--COMMENT: #' ) [1/0] {65} - ¦--COMMENT: #' } [1/0] {66} - ¦--COMMENT: #' @e [1/0] {67} - ¦--expr: style [1/0] {68} - ¦ ¦--expr: style [0/1] {70} - ¦ ¦ °--SYMBOL: style [0/0] {69} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {71} - ¦ °--expr: funct [0/0] {72} - ¦ ¦--FUNCTION: funct [0/0] {73} - ¦ ¦--'(': ( [0/0] {74} - ¦ ¦--SYMBOL_FORMALS: pkg [0/1] {75} - ¦ ¦--EQ_FORMALS: = [0/1] {76} - ¦ ¦--expr: "." [0/0] {78} - ¦ ¦ °--STR_CONST: "." [0/0] {77} - ¦ ¦--',': , [0/22] {79} - ¦ ¦--SYMBOL_FORMALS: ... [1/0] {80} - ¦ ¦--',': , [0/22] {81} - ¦ ¦--SYMBOL_FORMALS: style [1/1] {82} - ¦ ¦--EQ_FORMALS: = [0/1] {83} - ¦ ¦--expr: tidyv [0/0] {85} - ¦ ¦ °--SYMBOL: tidyv [0/0] {84} - ¦ ¦--',': , [0/22] {86} - ¦ ¦--SYMBOL_FORMALS: trans [1/1] {87} - ¦ ¦--EQ_FORMALS: = [0/1] {88} - ¦ ¦--expr: style [0/0] {89} - ¦ ¦ ¦--expr: style [0/0] {91} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {90} - ¦ ¦ ¦--'(': ( [0/0] {92} - ¦ ¦ ¦--expr: ... [0/0] {94} - ¦ ¦ ¦ °--SYMBOL: ... [0/0] {93} - ¦ ¦ °--')': ) [0/0] {95} - ¦ ¦--',': , [0/22] {96} - ¦ ¦--SYMBOL_FORMALS: filet [1/1] {97} - ¦ ¦--EQ_FORMALS: = [0/1] {98} - ¦ ¦--expr: "R" [0/0] {100} - ¦ ¦ °--STR_CONST: "R" [0/0] {99} - ¦ ¦--',': , [0/22] {101} - ¦ ¦--SYMBOL_FORMALS: exclu [1/1] {102} - ¦ ¦--EQ_FORMALS: = [0/1] {103} - ¦ ¦--expr: "R/Rc [0/0] {105} - ¦ ¦ °--STR_CONST: "R/Rc [0/0] {104} - ¦ ¦--',': , [0/22] {106} - ¦ ¦--SYMBOL_FORMALS: inclu [1/1] {107} - ¦ ¦--EQ_FORMALS: = [0/1] {108} - ¦ ¦--expr: TRUE [0/0] {110} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {109} - ¦ ¦--')': ) [0/1] {111} - ¦ °--expr: { - p [0/0] {112} - ¦ ¦--'{': { [0/2] {113} - ¦ ¦--expr: pkg_r [1/2] {114} - ¦ ¦ ¦--expr: pkg_r [0/1] {116} - ¦ ¦ ¦ °--SYMBOL: pkg_r [0/0] {115} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {117} - ¦ ¦ °--expr: rproj [0/0] {118} - ¦ ¦ ¦--expr: rproj [0/0] {119} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: rproj [0/0] {120} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {121} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: find_ [0/0] {122} - ¦ ¦ ¦--'(': ( [0/0] {123} - ¦ ¦ ¦--SYMBOL_SUB: path [0/1] {124} - ¦ ¦ ¦--EQ_SUB: = [0/1] {125} - ¦ ¦ ¦--expr: pkg [0/0] {127} - ¦ ¦ ¦ °--SYMBOL: pkg [0/0] {126} - ¦ ¦ °--')': ) [0/0] {128} - ¦ ¦--expr: chang [1/2] {129} - ¦ ¦ ¦--expr: chang [0/1] {131} - ¦ ¦ ¦ °--SYMBOL: chang [0/0] {130} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {132} - ¦ ¦ °--expr: withr [0/0] {133} - ¦ ¦ ¦--expr: withr [0/0] {134} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: withr [0/0] {135} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {136} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: with_ [0/0] {137} - ¦ ¦ ¦--'(': ( [0/0] {138} - ¦ ¦ ¦--expr: pkg_r [0/0] {140} - ¦ ¦ ¦ °--SYMBOL: pkg_r [0/0] {139} - ¦ ¦ ¦--',': , [0/1] {141} - ¦ ¦ ¦--expr: prett [0/0] {142} - ¦ ¦ ¦ ¦--expr: prett [0/0] {144} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: prett [0/0] {143} - ¦ ¦ ¦ ¦--'(': ( [0/4] {145} - ¦ ¦ ¦ ¦--expr: trans [1/0] {147} - ¦ ¦ ¦ ¦ °--SYMBOL: trans [0/0] {146} - ¦ ¦ ¦ ¦--',': , [0/1] {148} - ¦ ¦ ¦ ¦--expr: filet [0/0] {150} - ¦ ¦ ¦ ¦ °--SYMBOL: filet [0/0] {149} - ¦ ¦ ¦ ¦--',': , [0/1] {151} - ¦ ¦ ¦ ¦--expr: exclu [0/0] {153} - ¦ ¦ ¦ ¦ °--SYMBOL: exclu [0/0] {152} - ¦ ¦ ¦ ¦--',': , [0/1] {154} - ¦ ¦ ¦ ¦--expr: inclu [0/2] {156} - ¦ ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {155} - ¦ ¦ ¦ °--')': ) [1/0] {157} - ¦ ¦ °--')': ) [0/0] {158} - ¦ ¦--expr: invis [1/0] {159} - ¦ ¦ ¦--expr: invis [0/0] {161} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {160} - ¦ ¦ ¦--'(': ( [0/0] {162} - ¦ ¦ ¦--expr: chang [0/0] {164} - ¦ ¦ ¦ °--SYMBOL: chang [0/0] {163} - ¦ ¦ °--')': ) [0/0] {165} - ¦ °--'}': } [1/0] {166} - ¦--expr: prett [2/0] {167} - ¦ ¦--expr: prett [0/1] {169} - ¦ ¦ °--SYMBOL: prett [0/0] {168} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {170} - ¦ °--expr: funct [0/0] {171} - ¦ ¦--FUNCTION: funct [0/0] {172} - ¦ ¦--'(': ( [0/0] {173} - ¦ ¦--SYMBOL_FORMALS: trans [0/0] {174} - ¦ ¦--',': , [0/25] {175} - ¦ ¦--SYMBOL_FORMALS: filet [1/0] {176} - ¦ ¦--',': , [0/25] {177} - ¦ ¦--SYMBOL_FORMALS: exclu [1/0] {178} - ¦ ¦--',': , [0/25] {179} - ¦ ¦--SYMBOL_FORMALS: inclu [1/0] {180} - ¦ ¦--')': ) [0/1] {181} - ¦ °--expr: { - f [0/0] {182} - ¦ ¦--'{': { [0/2] {183} - ¦ ¦--expr: filet [1/2] {184} - ¦ ¦ ¦--expr: filet [0/1] {186} - ¦ ¦ ¦ °--SYMBOL: filet [0/0] {185} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {187} - ¦ ¦ °--expr: set_a [0/0] {188} - ¦ ¦ ¦--expr: set_a [0/0] {190} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: set_a [0/0] {189} - ¦ ¦ ¦--'(': ( [0/0] {191} - ¦ ¦ ¦--expr: filet [0/0] {193} - ¦ ¦ ¦ °--SYMBOL: filet [0/0] {192} - ¦ ¦ °--')': ) [0/0] {194} - ¦ ¦--expr: r_fil [1/2] {195} - ¦ ¦ ¦--expr: r_fil [0/1] {197} - ¦ ¦ ¦ °--SYMBOL: r_fil [0/0] {196} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {198} - ¦ ¦ ¦--expr: vigne [0/1] {201} - ¦ ¦ ¦ °--SYMBOL: vigne [0/0] {200} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {202} - ¦ ¦ ¦--expr: readm [0/1] {205} - ¦ ¦ ¦ °--SYMBOL: readm [0/0] {204} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {206} - ¦ ¦ °--expr: NULL [0/0] {208} - ¦ ¦ °--NULL_CONST: NULL [0/0] {207} - ¦ ¦--expr: if (" [2/2] {209} - ¦ ¦ ¦--IF: if [0/1] {210} - ¦ ¦ ¦--'(': ( [0/0] {211} - ¦ ¦ ¦--expr: "\\.r [0/0] {212} - ¦ ¦ ¦ ¦--expr: "\\.r [0/1] {214} - ¦ ¦ ¦ ¦ °--STR_CONST: "\\.r [0/0] {213} - ¦ ¦ ¦ ¦--SPECIAL-IN: %in% [0/1] {215} - ¦ ¦ ¦ °--expr: filet [0/0] {217} - ¦ ¦ ¦ °--SYMBOL: filet [0/0] {216} - ¦ ¦ ¦--')': ) [0/1] {218} - ¦ ¦ °--expr: { - [0/0] {219} - ¦ ¦ ¦--'{': { [0/4] {220} - ¦ ¦ ¦--expr: r_fil [1/2] {221} - ¦ ¦ ¦ ¦--expr: r_fil [0/1] {223} - ¦ ¦ ¦ ¦ °--SYMBOL: r_fil [0/0] {222} - ¦ ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {224} - ¦ ¦ ¦ °--expr: dir( - [0/0] {225} - ¦ ¦ ¦ ¦--expr: dir [0/0] {227} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dir [0/0] {226} - ¦ ¦ ¦ ¦--'(': ( [0/6] {228} - ¦ ¦ ¦ ¦--SYMBOL_SUB: path [1/1] {229} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {230} - ¦ ¦ ¦ ¦--expr: c("R" [0/0] {231} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {233} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {232} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {234} - ¦ ¦ ¦ ¦ ¦--expr: "R" [0/0] {236} - ¦ ¦ ¦ ¦ ¦ °--STR_CONST: "R" [0/0] {235} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {237} - ¦ ¦ ¦ ¦ ¦--expr: "test [0/0] {239} - ¦ ¦ ¦ ¦ ¦ °--STR_CONST: "test [0/0] {238} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {240} - ¦ ¦ ¦ ¦ ¦--expr: "data [0/0] {242} - ¦ ¦ ¦ ¦ ¦ °--STR_CONST: "data [0/0] {241} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {243} - ¦ ¦ ¦ ¦--',': , [0/1] {244} - ¦ ¦ ¦ ¦--SYMBOL_SUB: patte [0/1] {245} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {246} - ¦ ¦ ¦ ¦--expr: "\\.r [0/0] {248} - ¦ ¦ ¦ ¦ °--STR_CONST: "\\.r [0/0] {247} - ¦ ¦ ¦ ¦--',': , [0/6] {249} - ¦ ¦ ¦ ¦--SYMBOL_SUB: ignor [1/1] {250} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {251} - ¦ ¦ ¦ ¦--expr: TRUE [0/0] {253} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {252} - ¦ ¦ ¦ ¦--',': , [0/1] {254} - ¦ ¦ ¦ ¦--SYMBOL_SUB: recur [0/1] {255} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {256} - ¦ ¦ ¦ ¦--expr: TRUE [0/0] {258} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {257} - ¦ ¦ ¦ ¦--',': , [0/1] {259} - ¦ ¦ ¦ ¦--SYMBOL_SUB: full. [0/1] {260} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {261} - ¦ ¦ ¦ ¦--expr: TRUE [0/4] {263} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {262} - ¦ ¦ ¦ °--')': ) [1/0] {264} - ¦ ¦ °--'}': } [1/0] {265} - ¦ ¦--expr: if (" [2/2] {266} - ¦ ¦ ¦--IF: if [0/1] {267} - ¦ ¦ ¦--'(': ( [0/0] {268} - ¦ ¦ ¦--expr: "\\.r [0/0] {269} - ¦ ¦ ¦ ¦--expr: "\\.r [0/1] {271} - ¦ ¦ ¦ ¦ °--STR_CONST: "\\.r [0/0] {270} - ¦ ¦ ¦ ¦--SPECIAL-IN: %in% [0/1] {272} - ¦ ¦ ¦ °--expr: filet [0/0] {274} - ¦ ¦ ¦ °--SYMBOL: filet [0/0] {273} - ¦ ¦ ¦--')': ) [0/1] {275} - ¦ ¦ °--expr: { - [0/0] {276} - ¦ ¦ ¦--'{': { [0/4] {277} - ¦ ¦ ¦--expr: vigne [1/4] {278} - ¦ ¦ ¦ ¦--expr: vigne [0/1] {280} - ¦ ¦ ¦ ¦ °--SYMBOL: vigne [0/0] {279} - ¦ ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {281} - ¦ ¦ ¦ °--expr: dir( - [0/0] {282} - ¦ ¦ ¦ ¦--expr: dir [0/0] {284} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dir [0/0] {283} - ¦ ¦ ¦ ¦--'(': ( [0/6] {285} - ¦ ¦ ¦ ¦--SYMBOL_SUB: path [1/1] {286} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {287} - ¦ ¦ ¦ ¦--expr: "vign [0/0] {289} - ¦ ¦ ¦ ¦ °--STR_CONST: "vign [0/0] {288} - ¦ ¦ ¦ ¦--',': , [0/1] {290} - ¦ ¦ ¦ ¦--SYMBOL_SUB: patte [0/1] {291} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {292} - ¦ ¦ ¦ ¦--expr: "\\.r [0/0] {294} - ¦ ¦ ¦ ¦ °--STR_CONST: "\\.r [0/0] {293} - ¦ ¦ ¦ ¦--',': , [0/6] {295} - ¦ ¦ ¦ ¦--SYMBOL_SUB: ignor [1/1] {296} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {297} - ¦ ¦ ¦ ¦--expr: TRUE [0/0] {299} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {298} - ¦ ¦ ¦ ¦--',': , [0/1] {300} - ¦ ¦ ¦ ¦--SYMBOL_SUB: recur [0/1] {301} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {302} - ¦ ¦ ¦ ¦--expr: TRUE [0/0] {304} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {303} - ¦ ¦ ¦ ¦--',': , [0/1] {305} - ¦ ¦ ¦ ¦--SYMBOL_SUB: full. [0/1] {306} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {307} - ¦ ¦ ¦ ¦--expr: TRUE [0/4] {309} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {308} - ¦ ¦ ¦ °--')': ) [1/0] {310} - ¦ ¦ ¦--expr: readm [1/2] {311} - ¦ ¦ ¦ ¦--expr: readm [0/1] {313} - ¦ ¦ ¦ ¦ °--SYMBOL: readm [0/0] {312} - ¦ ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {314} - ¦ ¦ ¦ °--expr: dir(p [0/0] {315} - ¦ ¦ ¦ ¦--expr: dir [0/0] {317} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dir [0/0] {316} - ¦ ¦ ¦ ¦--'(': ( [0/0] {318} - ¦ ¦ ¦ ¦--SYMBOL_SUB: patte [0/1] {319} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {320} - ¦ ¦ ¦ ¦--expr: "^rea [0/0] {322} - ¦ ¦ ¦ ¦ °--STR_CONST: "^rea [0/0] {321} - ¦ ¦ ¦ ¦--',': , [0/1] {323} - ¦ ¦ ¦ ¦--SYMBOL_SUB: ignor [0/1] {324} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {325} - ¦ ¦ ¦ ¦--expr: TRUE [0/0] {327} - ¦ ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {326} - ¦ ¦ ¦ °--')': ) [0/0] {328} - ¦ ¦ °--'}': } [1/0] {329} - ¦ ¦--expr: files [2/2] {330} - ¦ ¦ ¦--expr: files [0/1] {332} - ¦ ¦ ¦ °--SYMBOL: files [0/0] {331} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {333} - ¦ ¦ °--expr: setdi [0/0] {334} - ¦ ¦ ¦--expr: setdi [0/0] {336} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: setdi [0/0] {335} - ¦ ¦ ¦--'(': ( [0/0] {337} - ¦ ¦ ¦--expr: c(r_f [0/0] {338} - ¦ ¦ ¦ ¦--expr: c [0/0] {340} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {339} - ¦ ¦ ¦ ¦--'(': ( [0/0] {341} - ¦ ¦ ¦ ¦--expr: r_fil [0/0] {343} - ¦ ¦ ¦ ¦ °--SYMBOL: r_fil [0/0] {342} - ¦ ¦ ¦ ¦--',': , [0/1] {344} - ¦ ¦ ¦ ¦--expr: vigne [0/0] {346} - ¦ ¦ ¦ ¦ °--SYMBOL: vigne [0/0] {345} - ¦ ¦ ¦ ¦--',': , [0/1] {347} - ¦ ¦ ¦ ¦--expr: readm [0/0] {349} - ¦ ¦ ¦ ¦ °--SYMBOL: readm [0/0] {348} - ¦ ¦ ¦ °--')': ) [0/0] {350} - ¦ ¦ ¦--',': , [0/1] {351} - ¦ ¦ ¦--expr: exclu [0/0] {353} - ¦ ¦ ¦ °--SYMBOL: exclu [0/0] {352} - ¦ ¦ °--')': ) [0/0] {354} - ¦ ¦--expr: trans [1/0] {355} - ¦ ¦ ¦--expr: trans [0/0] {357} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {356} - ¦ ¦ ¦--'(': ( [0/0] {358} - ¦ ¦ ¦--expr: files [0/0] {360} - ¦ ¦ ¦ °--SYMBOL: files [0/0] {359} - ¦ ¦ ¦--',': , [0/1] {361} - ¦ ¦ ¦--expr: trans [0/0] {363} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {362} - ¦ ¦ ¦--',': , [0/1] {364} - ¦ ¦ ¦--expr: inclu [0/0] {366} - ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {365} - ¦ ¦ °--')': ) [0/0] {367} - ¦ °--'}': } [1/0] {368} - ¦--COMMENT: #' St [3/0] {369} - ¦--COMMENT: #' [1/0] {370} - ¦--COMMENT: #' St [1/0] {371} - ¦--COMMENT: #' to [1/0] {372} - ¦--COMMENT: #' @p [1/0] {373} - ¦--COMMENT: #' @i [1/0] {374} - ¦--COMMENT: #' @f [1/0] {375} - ¦--COMMENT: #' @e [1/0] {376} - ¦--COMMENT: #' st [1/0] {377} - ¦--COMMENT: #' st [1/0] {378} - ¦--COMMENT: #' st [1/0] {379} - ¦--COMMENT: #' st [1/0] {380} - ¦--COMMENT: #' st [1/0] {381} - ¦--COMMENT: #' # [1/0] {382} - ¦--COMMENT: #' st [1/0] {383} - ¦--COMMENT: #' st [1/0] {384} - ¦--COMMENT: #' @e [1/0] {385} - ¦--expr: style [1/0] {386} - ¦ ¦--expr: style [0/1] {388} - ¦ ¦ °--SYMBOL: style [0/0] {387} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {389} - ¦ °--expr: funct [0/0] {390} - ¦ ¦--FUNCTION: funct [0/0] {391} - ¦ ¦--'(': ( [0/0] {392} - ¦ ¦--SYMBOL_FORMALS: text [0/0] {393} - ¦ ¦--',': , [0/23] {394} - ¦ ¦--SYMBOL_FORMALS: ... [1/0] {395} - ¦ ¦--',': , [0/23] {396} - ¦ ¦--SYMBOL_FORMALS: style [1/1] {397} - ¦ ¦--EQ_FORMALS: = [0/1] {398} - ¦ ¦--expr: tidyv [0/0] {400} - ¦ ¦ °--SYMBOL: tidyv [0/0] {399} - ¦ ¦--',': , [0/23] {401} - ¦ ¦--SYMBOL_FORMALS: trans [1/1] {402} - ¦ ¦--EQ_FORMALS: = [0/1] {403} - ¦ ¦--expr: style [0/0] {404} - ¦ ¦ ¦--expr: style [0/0] {406} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {405} - ¦ ¦ ¦--'(': ( [0/0] {407} - ¦ ¦ ¦--expr: ... [0/0] {409} - ¦ ¦ ¦ °--SYMBOL: ... [0/0] {408} - ¦ ¦ °--')': ) [0/0] {410} - ¦ ¦--',': , [0/23] {411} - ¦ ¦--SYMBOL_FORMALS: inclu [1/1] {412} - ¦ ¦--EQ_FORMALS: = [0/1] {413} - ¦ ¦--expr: TRUE [0/0] {415} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {414} - ¦ ¦--')': ) [0/1] {416} - ¦ °--expr: { - t [0/0] {417} - ¦ ¦--'{': { [0/2] {418} - ¦ ¦--expr: trans [1/2] {419} - ¦ ¦ ¦--expr: trans [0/1] {421} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {420} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {422} - ¦ ¦ °--expr: make_ [0/0] {423} - ¦ ¦ ¦--expr: make_ [0/0] {425} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: make_ [0/0] {424} - ¦ ¦ ¦--'(': ( [0/0] {426} - ¦ ¦ ¦--expr: trans [0/0] {428} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {427} - ¦ ¦ ¦--',': , [0/1] {429} - ¦ ¦ ¦--expr: inclu [0/0] {431} - ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {430} - ¦ ¦ °--')': ) [0/0] {432} - ¦ ¦--expr: style [1/2] {433} - ¦ ¦ ¦--expr: style [0/1] {435} - ¦ ¦ ¦ °--SYMBOL: style [0/0] {434} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {436} - ¦ ¦ °--expr: trans [0/0] {437} - ¦ ¦ ¦--expr: trans [0/0] {439} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {438} - ¦ ¦ ¦--'(': ( [0/0] {440} - ¦ ¦ ¦--expr: text [0/0] {442} - ¦ ¦ ¦ °--SYMBOL: text [0/0] {441} - ¦ ¦ °--')': ) [0/0] {443} - ¦ ¦--expr: const [1/0] {444} - ¦ ¦ ¦--expr: const [0/0] {446} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: const [0/0] {445} - ¦ ¦ ¦--'(': ( [0/0] {447} - ¦ ¦ ¦--expr: style [0/0] {449} - ¦ ¦ ¦ °--SYMBOL: style [0/0] {448} - ¦ ¦ °--')': ) [0/0] {450} - ¦ °--'}': } [1/0] {451} - ¦--COMMENT: #' Pr [2/0] {452} - ¦--COMMENT: #' [1/0] {453} - ¦--COMMENT: #' Pe [1/0] {454} - ¦--COMMENT: #' Ca [1/0] {455} - ¦--COMMENT: #' @p [1/0] {456} - ¦--COMMENT: #' @p [1/0] {457} - ¦--COMMENT: #' [1/0] {458} - ¦--COMMENT: #' @i [1/0] {459} - ¦--COMMENT: #' @i [1/0] {460} - ¦--COMMENT: #' @i [1/0] {461} - ¦--COMMENT: #' @i [1/0] {462} - ¦--COMMENT: #' @f [1/0] {463} - ¦--COMMENT: #' @e [1/0] {464} - ¦--COMMENT: #' \d [1/0] {465} - ¦--COMMENT: #' st [1/0] {466} - ¦--COMMENT: #' } [1/0] {467} - ¦--COMMENT: #' @e [1/0] {468} - ¦--expr: style [1/0] {469} - ¦ ¦--expr: style [0/1] {471} - ¦ ¦ °--SYMBOL: style [0/0] {470} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {472} - ¦ °--expr: funct [0/0] {473} - ¦ ¦--FUNCTION: funct [0/0] {474} - ¦ ¦--'(': ( [0/0] {475} - ¦ ¦--SYMBOL_FORMALS: path [0/1] {476} - ¦ ¦--EQ_FORMALS: = [0/1] {477} - ¦ ¦--expr: "." [0/0] {479} - ¦ ¦ °--STR_CONST: "." [0/0] {478} - ¦ ¦--',': , [0/22] {480} - ¦ ¦--SYMBOL_FORMALS: ... [1/0] {481} - ¦ ¦--',': , [0/22] {482} - ¦ ¦--SYMBOL_FORMALS: style [1/1] {483} - ¦ ¦--EQ_FORMALS: = [0/1] {484} - ¦ ¦--expr: tidyv [0/0] {486} - ¦ ¦ °--SYMBOL: tidyv [0/0] {485} - ¦ ¦--',': , [0/22] {487} - ¦ ¦--SYMBOL_FORMALS: trans [1/1] {488} - ¦ ¦--EQ_FORMALS: = [0/1] {489} - ¦ ¦--expr: style [0/0] {490} - ¦ ¦ ¦--expr: style [0/0] {492} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {491} - ¦ ¦ ¦--'(': ( [0/0] {493} - ¦ ¦ ¦--expr: ... [0/0] {495} - ¦ ¦ ¦ °--SYMBOL: ... [0/0] {494} - ¦ ¦ °--')': ) [0/0] {496} - ¦ ¦--',': , [0/22] {497} - ¦ ¦--SYMBOL_FORMALS: filet [1/1] {498} - ¦ ¦--EQ_FORMALS: = [0/1] {499} - ¦ ¦--expr: "R" [0/0] {501} - ¦ ¦ °--STR_CONST: "R" [0/0] {500} - ¦ ¦--',': , [0/22] {502} - ¦ ¦--SYMBOL_FORMALS: recur [1/1] {503} - ¦ ¦--EQ_FORMALS: = [0/1] {504} - ¦ ¦--expr: TRUE [0/0] {506} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {505} - ¦ ¦--',': , [0/22] {507} - ¦ ¦--SYMBOL_FORMALS: exclu [1/1] {508} - ¦ ¦--EQ_FORMALS: = [0/1] {509} - ¦ ¦--expr: NULL [0/0] {511} - ¦ ¦ °--NULL_CONST: NULL [0/0] {510} - ¦ ¦--',': , [0/22] {512} - ¦ ¦--SYMBOL_FORMALS: inclu [1/1] {513} - ¦ ¦--EQ_FORMALS: = [0/1] {514} - ¦ ¦--expr: TRUE [0/0] {516} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {515} - ¦ ¦--')': ) [0/1] {517} - ¦ °--expr: { - c [0/0] {518} - ¦ ¦--'{': { [0/2] {519} - ¦ ¦--expr: chang [1/2] {520} - ¦ ¦ ¦--expr: chang [0/1] {522} - ¦ ¦ ¦ °--SYMBOL: chang [0/0] {521} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {523} - ¦ ¦ °--expr: withr [0/0] {524} - ¦ ¦ ¦--expr: withr [0/0] {525} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: withr [0/0] {526} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {527} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: with_ [0/0] {528} - ¦ ¦ ¦--'(': ( [0/4] {529} - ¦ ¦ ¦--expr: path [1/0] {531} - ¦ ¦ ¦ °--SYMBOL: path [0/0] {530} - ¦ ¦ ¦--',': , [0/1] {532} - ¦ ¦ ¦--expr: prett [0/2] {533} - ¦ ¦ ¦ ¦--expr: prett [0/0] {535} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: prett [0/0] {534} - ¦ ¦ ¦ ¦--'(': ( [0/6] {536} - ¦ ¦ ¦ ¦--expr: trans [1/0] {538} - ¦ ¦ ¦ ¦ °--SYMBOL: trans [0/0] {537} - ¦ ¦ ¦ ¦--',': , [0/1] {539} - ¦ ¦ ¦ ¦--expr: filet [0/0] {541} - ¦ ¦ ¦ ¦ °--SYMBOL: filet [0/0] {540} - ¦ ¦ ¦ ¦--',': , [0/1] {542} - ¦ ¦ ¦ ¦--expr: recur [0/0] {544} - ¦ ¦ ¦ ¦ °--SYMBOL: recur [0/0] {543} - ¦ ¦ ¦ ¦--',': , [0/1] {545} - ¦ ¦ ¦ ¦--expr: exclu [0/0] {547} - ¦ ¦ ¦ ¦ °--SYMBOL: exclu [0/0] {546} - ¦ ¦ ¦ ¦--',': , [0/1] {548} - ¦ ¦ ¦ ¦--expr: inclu [0/4] {550} - ¦ ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {549} - ¦ ¦ ¦ °--')': ) [1/0] {551} - ¦ ¦ °--')': ) [1/0] {552} - ¦ ¦--expr: invis [1/0] {553} - ¦ ¦ ¦--expr: invis [0/0] {555} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {554} - ¦ ¦ ¦--'(': ( [0/0] {556} - ¦ ¦ ¦--expr: chang [0/0] {558} - ¦ ¦ ¦ °--SYMBOL: chang [0/0] {557} - ¦ ¦ °--')': ) [0/0] {559} - ¦ °--'}': } [1/0] {560} - ¦--COMMENT: #' Pr [2/0] {561} - ¦--COMMENT: #' [1/0] {562} - ¦--COMMENT: #' Th [1/0] {563} - ¦--COMMENT: #' @i [1/0] {564} - ¦--COMMENT: #' @p [1/0] {565} - ¦--COMMENT: #' [1/0] {566} - ¦--COMMENT: #' @k [1/0] {567} - ¦--expr: prett [1/0] {568} - ¦ ¦--expr: prett [0/1] {570} - ¦ ¦ °--SYMBOL: prett [0/0] {569} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {571} - ¦ °--expr: funct [0/0] {572} - ¦ ¦--FUNCTION: funct [0/0] {573} - ¦ ¦--'(': ( [0/0] {574} - ¦ ¦--SYMBOL_FORMALS: trans [0/0] {575} - ¦ ¦--',': , [0/25] {576} - ¦ ¦--SYMBOL_FORMALS: filet [1/0] {577} - ¦ ¦--',': , [0/25] {578} - ¦ ¦--SYMBOL_FORMALS: recur [1/0] {579} - ¦ ¦--',': , [0/25] {580} - ¦ ¦--SYMBOL_FORMALS: exclu [1/0] {581} - ¦ ¦--',': , [0/25] {582} - ¦ ¦--SYMBOL_FORMALS: inclu [1/0] {583} - ¦ ¦--')': ) [0/1] {584} - ¦ °--expr: { - f [0/0] {585} - ¦ ¦--'{': { [0/2] {586} - ¦ ¦--expr: files [1/2] {587} - ¦ ¦ ¦--expr: files [0/1] {589} - ¦ ¦ ¦ °--SYMBOL: files [0/0] {588} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {590} - ¦ ¦ °--expr: dir( - [0/0] {591} - ¦ ¦ ¦--expr: dir [0/0] {593} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dir [0/0] {592} - ¦ ¦ ¦--'(': ( [0/4] {594} - ¦ ¦ ¦--SYMBOL_SUB: path [1/1] {595} - ¦ ¦ ¦--EQ_SUB: = [0/1] {596} - ¦ ¦ ¦--expr: "." [0/0] {598} - ¦ ¦ ¦ °--STR_CONST: "." [0/0] {597} - ¦ ¦ ¦--',': , [0/1] {599} - ¦ ¦ ¦--SYMBOL_SUB: patte [0/1] {600} - ¦ ¦ ¦--EQ_SUB: = [0/1] {601} - ¦ ¦ ¦--expr: map_f [0/0] {602} - ¦ ¦ ¦ ¦--expr: map_f [0/0] {604} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: map_f [0/0] {603} - ¦ ¦ ¦ ¦--'(': ( [0/0] {605} - ¦ ¦ ¦ ¦--expr: filet [0/0] {607} - ¦ ¦ ¦ ¦ °--SYMBOL: filet [0/0] {606} - ¦ ¦ ¦ °--')': ) [0/0] {608} - ¦ ¦ ¦--',': , [0/4] {609} - ¦ ¦ ¦--SYMBOL_SUB: ignor [1/1] {610} - ¦ ¦ ¦--EQ_SUB: = [0/1] {611} - ¦ ¦ ¦--expr: TRUE [0/0] {613} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {612} - ¦ ¦ ¦--',': , [0/1] {614} - ¦ ¦ ¦--SYMBOL_SUB: recur [0/1] {615} - ¦ ¦ ¦--EQ_SUB: = [0/1] {616} - ¦ ¦ ¦--expr: recur [0/0] {618} - ¦ ¦ ¦ °--SYMBOL: recur [0/0] {617} - ¦ ¦ ¦--',': , [0/1] {619} - ¦ ¦ ¦--SYMBOL_SUB: full. [0/1] {620} - ¦ ¦ ¦--EQ_SUB: = [0/1] {621} - ¦ ¦ ¦--expr: TRUE [0/2] {623} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {622} - ¦ ¦ °--')': ) [1/0] {624} - ¦ ¦--expr: trans [1/0] {625} - ¦ ¦ ¦--expr: trans [0/0] {627} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {626} - ¦ ¦ ¦--'(': ( [0/4] {628} - ¦ ¦ ¦--expr: setdi [1/0] {629} - ¦ ¦ ¦ ¦--expr: setdi [0/0] {631} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: setdi [0/0] {630} - ¦ ¦ ¦ ¦--'(': ( [0/0] {632} - ¦ ¦ ¦ ¦--expr: files [0/0] {634} - ¦ ¦ ¦ ¦ °--SYMBOL: files [0/0] {633} - ¦ ¦ ¦ ¦--',': , [0/1] {635} - ¦ ¦ ¦ ¦--expr: exclu [0/0] {637} - ¦ ¦ ¦ ¦ °--SYMBOL: exclu [0/0] {636} - ¦ ¦ ¦ °--')': ) [0/0] {638} - ¦ ¦ ¦--',': , [0/1] {639} - ¦ ¦ ¦--expr: trans [0/0] {641} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {640} - ¦ ¦ ¦--',': , [0/1] {642} - ¦ ¦ ¦--expr: inclu [0/2] {644} - ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {643} - ¦ ¦ °--')': ) [1/0] {645} - ¦ °--'}': } [1/0] {646} - ¦--COMMENT: #' St [2/0] {647} - ¦--COMMENT: #' [1/0] {648} - ¦--COMMENT: #' Pe [1/0] {649} - ¦--COMMENT: #' Ca [1/0] {650} - ¦--COMMENT: #' @s [1/0] {651} - ¦--COMMENT: #' UT [1/0] {652} - ¦--COMMENT: #' be [1/0] {653} - ¦--COMMENT: #' @p [1/0] {654} - ¦--COMMENT: #' @i [1/0] {655} - ¦--COMMENT: #' @i [1/0] {656} - ¦--COMMENT: #' @i [1/0] {657} - ¦--COMMENT: #' @i [1/0] {658} - ¦--COMMENT: #' @e [1/0] {659} - ¦--COMMENT: #' # [1/0] {660} - ¦--COMMENT: #' fi [1/0] {661} - ¦--COMMENT: #' xf [1/0] {662} - ¦--COMMENT: #' st [1/0] {663} - ¦--COMMENT: #' st [1/0] {664} - ¦--COMMENT: #' xf [1/0] {665} - ¦--COMMENT: #' un [1/0] {666} - ¦--COMMENT: #' @f [1/0] {667} - ¦--COMMENT: #' @e [1/0] {668} - °--expr: style [1/0] {669} - ¦--expr: style [0/1] {671} - ¦ °--SYMBOL: style [0/0] {670} - ¦--LEFT_ASSIGN: <- [0/1] {672} - °--expr: funct [0/0] {673} - ¦--FUNCTION: funct [0/0] {674} - ¦--'(': ( [0/0] {675} - ¦--SYMBOL_FORMALS: path [0/0] {676} - ¦--',': , [0/23] {677} - ¦--SYMBOL_FORMALS: ... [1/0] {678} - ¦--',': , [0/23] {679} - ¦--SYMBOL_FORMALS: style [1/1] {680} - ¦--EQ_FORMALS: = [0/1] {681} - ¦--expr: tidyv [0/0] {683} - ¦ °--SYMBOL: tidyv [0/0] {682} - ¦--',': , [0/23] {684} - ¦--SYMBOL_FORMALS: trans [1/1] {685} - ¦--EQ_FORMALS: = [0/1] {686} - ¦--expr: style [0/0] {687} - ¦ ¦--expr: style [0/0] {689} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {688} - ¦ ¦--'(': ( [0/0] {690} - ¦ ¦--expr: ... [0/0] {692} - ¦ ¦ °--SYMBOL: ... [0/0] {691} - ¦ °--')': ) [0/0] {693} - ¦--',': , [0/23] {694} - ¦--SYMBOL_FORMALS: inclu [1/1] {695} - ¦--EQ_FORMALS: = [0/1] {696} - ¦--expr: TRUE [0/0] {698} - ¦ °--NUM_CONST: TRUE [0/0] {697} - ¦--')': ) [0/1] {699} - °--expr: { - c [0/0] {700} - ¦--'{': { [0/2] {701} - ¦--expr: chang [1/2] {702} - ¦ ¦--expr: chang [0/1] {704} - ¦ ¦ °--SYMBOL: chang [0/0] {703} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {705} - ¦ °--expr: withr [0/0] {706} - ¦ ¦--expr: withr [0/0] {707} - ¦ ¦ ¦--SYMBOL_PACKAGE: withr [0/0] {708} - ¦ ¦ ¦--NS_GET: :: [0/0] {709} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: with_ [0/0] {710} - ¦ ¦--'(': ( [0/4] {711} - ¦ ¦--expr: dirna [1/0] {712} - ¦ ¦ ¦--expr: dirna [0/0] {714} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: dirna [0/0] {713} - ¦ ¦ ¦--'(': ( [0/0] {715} - ¦ ¦ ¦--expr: path [0/0] {717} - ¦ ¦ ¦ °--SYMBOL: path [0/0] {716} - ¦ ¦ °--')': ) [0/0] {718} - ¦ ¦--',': , [0/4] {719} - ¦ ¦--expr: trans [1/2] {720} - ¦ ¦ ¦--expr: trans [0/0] {722} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: trans [0/0] {721} - ¦ ¦ ¦--'(': ( [0/0] {723} - ¦ ¦ ¦--expr: basen [0/0] {724} - ¦ ¦ ¦ ¦--expr: basen [0/0] {726} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: basen [0/0] {725} - ¦ ¦ ¦ ¦--'(': ( [0/0] {727} - ¦ ¦ ¦ ¦--expr: path [0/0] {729} - ¦ ¦ ¦ ¦ °--SYMBOL: path [0/0] {728} - ¦ ¦ ¦ °--')': ) [0/0] {730} - ¦ ¦ ¦--',': , [0/1] {731} - ¦ ¦ ¦--expr: trans [0/0] {733} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {732} - ¦ ¦ ¦--',': , [0/1] {734} - ¦ ¦ ¦--expr: inclu [0/0] {736} - ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {735} - ¦ ¦ °--')': ) [0/0] {737} - ¦ °--')': ) [1/0] {738} - ¦--expr: invis [1/0] {739} - ¦ ¦--expr: invis [0/0] {741} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {740} - ¦ ¦--'(': ( [0/0] {742} - ¦ ¦--expr: chang [0/0] {744} - ¦ ¦ °--SYMBOL: chang [0/0] {743} - ¦ °--')': ) [0/0] {745} - °--'}': } [1/0] {746} diff --git a/tests/testthat/roxygen-examples-complete/11-start-with-dontrun-in_tree b/tests/testthat/roxygen-examples-complete/11-start-with-dontrun-in_tree deleted file mode 100644 index 9da283113..000000000 --- a/tests/testthat/roxygen-examples-complete/11-start-with-dontrun-in_tree +++ /dev/null @@ -1,113 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Hi [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' x [1/0] {3} - ¦--COMMENT: #' @e [1/0] {4} - ¦--COMMENT: #' \d [1/0] {5} - ¦--COMMENT: #' st [1/0] {6} - ¦--COMMENT: #' st [1/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' ) [1/0] {10} - ¦--COMMENT: #' } [1/0] {11} - ¦--COMMENT: #' @e [1/0] {12} - °--expr: style [1/0] {13} - ¦--expr: style [0/1] {15} - ¦ °--SYMBOL: style [0/0] {14} - ¦--LEFT_ASSIGN: <- [0/1] {16} - °--expr: funct [0/0] {17} - ¦--FUNCTION: funct [0/0] {18} - ¦--'(': ( [0/0] {19} - ¦--SYMBOL_FORMALS: pkg [0/1] {20} - ¦--EQ_FORMALS: = [0/1] {21} - ¦--expr: "." [0/0] {23} - ¦ °--STR_CONST: "." [0/0] {22} - ¦--',': , [0/22] {24} - ¦--SYMBOL_FORMALS: ... [1/0] {25} - ¦--',': , [0/22] {26} - ¦--SYMBOL_FORMALS: style [1/1] {27} - ¦--EQ_FORMALS: = [0/1] {28} - ¦--expr: tidyv [0/0] {30} - ¦ °--SYMBOL: tidyv [0/0] {29} - ¦--',': , [0/22] {31} - ¦--SYMBOL_FORMALS: trans [1/1] {32} - ¦--EQ_FORMALS: = [0/1] {33} - ¦--expr: style [0/0] {34} - ¦ ¦--expr: style [0/0] {36} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: style [0/0] {35} - ¦ ¦--'(': ( [0/0] {37} - ¦ ¦--expr: ... [0/0] {39} - ¦ ¦ °--SYMBOL: ... [0/0] {38} - ¦ °--')': ) [0/0] {40} - ¦--',': , [0/22] {41} - ¦--SYMBOL_FORMALS: filet [1/1] {42} - ¦--EQ_FORMALS: = [0/1] {43} - ¦--expr: "R" [0/0] {45} - ¦ °--STR_CONST: "R" [0/0] {44} - ¦--',': , [0/22] {46} - ¦--SYMBOL_FORMALS: exclu [1/1] {47} - ¦--EQ_FORMALS: = [0/1] {48} - ¦--expr: "R/Rc [0/0] {50} - ¦ °--STR_CONST: "R/Rc [0/0] {49} - ¦--',': , [0/22] {51} - ¦--SYMBOL_FORMALS: inclu [1/1] {52} - ¦--EQ_FORMALS: = [0/1] {53} - ¦--expr: TRUE [0/0] {55} - ¦ °--NUM_CONST: TRUE [0/0] {54} - ¦--')': ) [0/1] {56} - °--expr: { - p [0/0] {57} - ¦--'{': { [0/2] {58} - ¦--expr: pkg_r [1/2] {59} - ¦ ¦--expr: pkg_r [0/1] {61} - ¦ ¦ °--SYMBOL: pkg_r [0/0] {60} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {62} - ¦ °--expr: rproj [0/0] {63} - ¦ ¦--expr: rproj [0/0] {64} - ¦ ¦ ¦--SYMBOL_PACKAGE: rproj [0/0] {65} - ¦ ¦ ¦--NS_GET: :: [0/0] {66} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: find_ [0/0] {67} - ¦ ¦--'(': ( [0/0] {68} - ¦ ¦--SYMBOL_SUB: path [0/1] {69} - ¦ ¦--EQ_SUB: = [0/1] {70} - ¦ ¦--expr: pkg [0/0] {72} - ¦ ¦ °--SYMBOL: pkg [0/0] {71} - ¦ °--')': ) [0/0] {73} - ¦--expr: chang [1/2] {74} - ¦ ¦--expr: chang [0/1] {76} - ¦ ¦ °--SYMBOL: chang [0/0] {75} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {77} - ¦ °--expr: withr [0/0] {78} - ¦ ¦--expr: withr [0/0] {79} - ¦ ¦ ¦--SYMBOL_PACKAGE: withr [0/0] {80} - ¦ ¦ ¦--NS_GET: :: [0/0] {81} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: with_ [0/0] {82} - ¦ ¦--'(': ( [0/0] {83} - ¦ ¦--expr: pkg_r [0/0] {85} - ¦ ¦ °--SYMBOL: pkg_r [0/0] {84} - ¦ ¦--',': , [0/1] {86} - ¦ ¦--expr: prett [0/0] {87} - ¦ ¦ ¦--expr: prett [0/0] {89} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: prett [0/0] {88} - ¦ ¦ ¦--'(': ( [0/4] {90} - ¦ ¦ ¦--expr: trans [1/0] {92} - ¦ ¦ ¦ °--SYMBOL: trans [0/0] {91} - ¦ ¦ ¦--',': , [0/1] {93} - ¦ ¦ ¦--expr: filet [0/0] {95} - ¦ ¦ ¦ °--SYMBOL: filet [0/0] {94} - ¦ ¦ ¦--',': , [0/1] {96} - ¦ ¦ ¦--expr: exclu [0/0] {98} - ¦ ¦ ¦ °--SYMBOL: exclu [0/0] {97} - ¦ ¦ ¦--',': , [0/1] {99} - ¦ ¦ ¦--expr: inclu [0/2] {101} - ¦ ¦ ¦ °--SYMBOL: inclu [0/0] {100} - ¦ ¦ °--')': ) [1/0] {102} - ¦ °--')': ) [0/0] {103} - ¦--expr: invis [1/0] {104} - ¦ ¦--expr: invis [0/0] {106} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: invis [0/0] {105} - ¦ ¦--'(': ( [0/0] {107} - ¦ ¦--expr: chang [0/0] {109} - ¦ ¦ °--SYMBOL: chang [0/0] {108} - ¦ °--')': ) [0/0] {110} - °--'}': } [1/0] {111} diff --git a/tests/testthat/roxygen-examples-complete/12-dontshow-dontrun-donttest-in_tree b/tests/testthat/roxygen-examples-complete/12-dontshow-dontrun-donttest-in_tree deleted file mode 100644 index 2abe159d9..000000000 --- a/tests/testthat/roxygen-examples-complete/12-dontshow-dontrun-donttest-in_tree +++ /dev/null @@ -1,235 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Cr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @p [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' se [1/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' } [1/0] {10} - ¦--COMMENT: #' @e [1/0] {11} - ¦--COMMENT: #' \d [1/0] {12} - ¦--COMMENT: #' { [1/0] {13} - ¦--COMMENT: #' [1/0] {14} - ¦--COMMENT: #' } [1/0] {15} - ¦--COMMENT: #' } [1/0] {16} - ¦--COMMENT: #' se [1/0] {17} - ¦--COMMENT: #' [1/0] {18} - ¦--COMMENT: #' } [1/0] {19} - ¦--COMMENT: #' @e [1/0] {20} - ¦--COMMENT: #' \d [1/0] {21} - ¦--COMMENT: #' st [1/0] {22} - ¦--COMMENT: #' ", [1/0] {23} - ¦--COMMENT: #' } [1/0] {24} - ¦--COMMENT: #' @i [1/0] {25} - ¦--COMMENT: #' @e [1/0] {26} - ¦--expr: creat [1/0] {27} - ¦ ¦--expr: creat [0/1] {29} - ¦ ¦ °--SYMBOL: creat [0/0] {28} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {30} - ¦ °--expr: funct [0/0] {31} - ¦ ¦--FUNCTION: funct [0/0] {32} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--SYMBOL_FORMALS: initi [0/1] {34} - ¦ ¦--EQ_FORMALS: = [0/1] {35} - ¦ ¦--expr: defau [0/0] {37} - ¦ ¦ °--SYMBOL: defau [0/0] {36} - ¦ ¦--',': , [0/31] {38} - ¦ ¦--SYMBOL_FORMALS: line_ [1/1] {39} - ¦ ¦--EQ_FORMALS: = [0/1] {40} - ¦ ¦--expr: NULL [0/0] {42} - ¦ ¦ °--NULL_CONST: NULL [0/0] {41} - ¦ ¦--',': , [0/31] {43} - ¦ ¦--SYMBOL_FORMALS: space [1/1] {44} - ¦ ¦--EQ_FORMALS: = [0/1] {45} - ¦ ¦--expr: NULL [0/0] {47} - ¦ ¦ °--NULL_CONST: NULL [0/0] {46} - ¦ ¦--',': , [0/31] {48} - ¦ ¦--SYMBOL_FORMALS: token [1/1] {49} - ¦ ¦--EQ_FORMALS: = [0/1] {50} - ¦ ¦--expr: NULL [0/0] {52} - ¦ ¦ °--NULL_CONST: NULL [0/0] {51} - ¦ ¦--',': , [0/31] {53} - ¦ ¦--SYMBOL_FORMALS: inden [1/1] {54} - ¦ ¦--EQ_FORMALS: = [0/1] {55} - ¦ ¦--expr: NULL [0/0] {57} - ¦ ¦ °--NULL_CONST: NULL [0/0] {56} - ¦ ¦--',': , [0/31] {58} - ¦ ¦--SYMBOL_FORMALS: use_r [1/1] {59} - ¦ ¦--EQ_FORMALS: = [0/1] {60} - ¦ ¦--expr: FALSE [0/0] {62} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {61} - ¦ ¦--',': , [0/31] {63} - ¦ ¦--SYMBOL_FORMALS: reind [1/1] {64} - ¦ ¦--EQ_FORMALS: = [0/1] {65} - ¦ ¦--expr: tidyv [0/0] {66} - ¦ ¦ ¦--expr: tidyv [0/0] {68} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tidyv [0/0] {67} - ¦ ¦ ¦--'(': ( [0/0] {69} - ¦ ¦ °--')': ) [0/0] {70} - ¦ ¦--')': ) [0/1] {71} - ¦ °--expr: { - l [0/0] {72} - ¦ ¦--'{': { [0/2] {73} - ¦ ¦--expr: list( [1/0] {74} - ¦ ¦ ¦--expr: list( [0/1] {75} - ¦ ¦ ¦ ¦--expr: list [0/0] {77} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {76} - ¦ ¦ ¦ ¦--'(': ( [0/4] {78} - ¦ ¦ ¦ ¦--COMMENT: # tra [1/4] {79} - ¦ ¦ ¦ ¦--SYMBOL_SUB: initi [1/1] {80} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {81} - ¦ ¦ ¦ ¦--expr: list( [0/0] {82} - ¦ ¦ ¦ ¦ ¦--expr: list [0/0] {84} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {83} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {85} - ¦ ¦ ¦ ¦ ¦--expr: initi [0/0] {87} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: initi [0/0] {86} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {88} - ¦ ¦ ¦ ¦--',': , [0/4] {89} - ¦ ¦ ¦ ¦--expr: line_ [1/0] {91} - ¦ ¦ ¦ ¦ °--SYMBOL: line_ [0/0] {90} - ¦ ¦ ¦ ¦--',': , [0/4] {92} - ¦ ¦ ¦ ¦--expr: space [1/0] {94} - ¦ ¦ ¦ ¦ °--SYMBOL: space [0/0] {93} - ¦ ¦ ¦ ¦--',': , [0/4] {95} - ¦ ¦ ¦ ¦--expr: token [1/0] {97} - ¦ ¦ ¦ ¦ °--SYMBOL: token [0/0] {96} - ¦ ¦ ¦ ¦--',': , [0/4] {98} - ¦ ¦ ¦ ¦--expr: inden [1/0] {100} - ¦ ¦ ¦ ¦ °--SYMBOL: inden [0/0] {99} - ¦ ¦ ¦ ¦--',': , [0/4] {101} - ¦ ¦ ¦ ¦--COMMENT: # tra [1/4] {102} - ¦ ¦ ¦ ¦--expr: use_r [1/0] {104} - ¦ ¦ ¦ ¦ °--SYMBOL: use_r [0/0] {103} - ¦ ¦ ¦ ¦--',': , [0/4] {105} - ¦ ¦ ¦ ¦--expr: reind [1/2] {107} - ¦ ¦ ¦ ¦ °--SYMBOL: reind [0/0] {106} - ¦ ¦ ¦ °--')': ) [1/0] {108} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {109} - ¦ ¦ °--expr: map(c [1/0] {110} - ¦ ¦ ¦--expr: map [0/0] {112} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {111} - ¦ ¦ ¦--'(': ( [0/0] {113} - ¦ ¦ ¦--expr: compa [0/0] {115} - ¦ ¦ ¦ °--SYMBOL: compa [0/0] {114} - ¦ ¦ °--')': ) [0/0] {116} - ¦ °--'}': } [1/0] {117} - ¦--COMMENT: #' Cr [3/0] {118} - ¦--COMMENT: #' [1/0] {119} - ¦--COMMENT: #' @p [1/0] {120} - ¦--COMMENT: #' [1/0] {121} - ¦--COMMENT: #' @e [1/0] {122} - ¦--COMMENT: #' se [1/0] {123} - ¦--COMMENT: #' [1/0] {124} - ¦--COMMENT: #' [1/0] {125} - ¦--COMMENT: #' [1/0] {126} - ¦--COMMENT: #' } [1/0] {127} - ¦--COMMENT: #' @e [1/0] {128} - ¦--COMMENT: #' \d [1/0] {129} - ¦--COMMENT: #' {x [1/0] {130} - ¦--COMMENT: #' } [1/0] {131} - ¦--COMMENT: #' } [1/0] {132} - ¦--COMMENT: #' se [1/0] {133} - ¦--COMMENT: #' cr [1/0] {134} - ¦--COMMENT: #' } [1/0] {135} - ¦--COMMENT: #' @e [1/0] {136} - ¦--COMMENT: #' \d [1/0] {137} - ¦--COMMENT: #' ", [1/0] {138} - ¦--COMMENT: #' } [1/0] {139} - ¦--COMMENT: #' @i [1/0] {140} - ¦--COMMENT: #' @e [1/0] {141} - °--expr: creat [1/0] {142} - ¦--expr: creat [0/1] {144} - ¦ °--SYMBOL: creat [0/0] {143} - ¦--LEFT_ASSIGN: <- [0/1] {145} - °--expr: funct [0/0] {146} - ¦--FUNCTION: funct [0/0] {147} - ¦--'(': ( [0/0] {148} - ¦--SYMBOL_FORMALS: initi [0/1] {149} - ¦--EQ_FORMALS: = [0/1] {150} - ¦--expr: defau [0/0] {152} - ¦ °--SYMBOL: defau [0/0] {151} - ¦--',': , [0/31] {153} - ¦--SYMBOL_FORMALS: line_ [1/1] {154} - ¦--EQ_FORMALS: = [0/1] {155} - ¦--expr: NULL [0/0] {157} - ¦ °--NULL_CONST: NULL [0/0] {156} - ¦--',': , [0/31] {158} - ¦--SYMBOL_FORMALS: space [1/1] {159} - ¦--EQ_FORMALS: = [0/1] {160} - ¦--expr: NULL [0/0] {162} - ¦ °--NULL_CONST: NULL [0/0] {161} - ¦--',': , [0/31] {163} - ¦--SYMBOL_FORMALS: token [1/1] {164} - ¦--EQ_FORMALS: = [0/1] {165} - ¦--expr: NULL [0/0] {167} - ¦ °--NULL_CONST: NULL [0/0] {166} - ¦--',': , [0/31] {168} - ¦--SYMBOL_FORMALS: inden [1/1] {169} - ¦--EQ_FORMALS: = [0/1] {170} - ¦--expr: NULL [0/0] {172} - ¦ °--NULL_CONST: NULL [0/0] {171} - ¦--',': , [0/31] {173} - ¦--SYMBOL_FORMALS: use_r [1/1] {174} - ¦--EQ_FORMALS: = [0/1] {175} - ¦--expr: FALSE [0/0] {177} - ¦ °--NUM_CONST: FALSE [0/0] {176} - ¦--',': , [0/31] {178} - ¦--SYMBOL_FORMALS: reind [1/1] {179} - ¦--EQ_FORMALS: = [0/1] {180} - ¦--expr: tidyv [0/0] {181} - ¦ ¦--expr: tidyv [0/0] {183} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tidyv [0/0] {182} - ¦ ¦--'(': ( [0/0] {184} - ¦ °--')': ) [0/0] {185} - ¦--')': ) [0/1] {186} - °--expr: { - l [0/0] {187} - ¦--'{': { [0/2] {188} - ¦--expr: list( [1/0] {189} - ¦ ¦--expr: list( [0/0] {190} - ¦ ¦ ¦--expr: list [0/0] {192} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {191} - ¦ ¦ ¦--'(': ( [0/4] {193} - ¦ ¦ ¦--COMMENT: #tran [1/4] {194} - ¦ ¦ ¦--SYMBOL_SUB: initi [1/1] {195} - ¦ ¦ ¦--EQ_SUB: = [0/1] {196} - ¦ ¦ ¦--expr: list( [0/0] {197} - ¦ ¦ ¦ ¦--expr: list [0/0] {199} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {198} - ¦ ¦ ¦ ¦--'(': ( [0/0] {200} - ¦ ¦ ¦ ¦--expr: initi [0/0] {202} - ¦ ¦ ¦ ¦ °--SYMBOL: initi [0/0] {201} - ¦ ¦ ¦ °--')': ) [0/0] {203} - ¦ ¦ ¦--',': , [0/4] {204} - ¦ ¦ ¦--expr: line_ [1/0] {206} - ¦ ¦ ¦ °--SYMBOL: line_ [0/0] {205} - ¦ ¦ ¦--',': , [0/4] {207} - ¦ ¦ ¦--expr: space [1/0] {209} - ¦ ¦ ¦ °--SYMBOL: space [0/0] {208} - ¦ ¦ ¦--',': , [0/4] {210} - ¦ ¦ ¦--expr: token [1/0] {212} - ¦ ¦ ¦ °--SYMBOL: token [0/0] {211} - ¦ ¦ ¦--',': , [0/4] {213} - ¦ ¦ ¦--expr: inden [1/0] {215} - ¦ ¦ ¦ °--SYMBOL: inden [0/0] {214} - ¦ ¦ ¦--',': , [0/4] {216} - ¦ ¦ ¦--COMMENT: # tra [1/4] {217} - ¦ ¦ ¦--expr: use_r [1/0] {219} - ¦ ¦ ¦ °--SYMBOL: use_r [0/0] {218} - ¦ ¦ ¦--',': , [0/4] {220} - ¦ ¦ ¦--expr: reind [1/2] {222} - ¦ ¦ ¦ °--SYMBOL: reind [0/0] {221} - ¦ ¦ °--')': ) [1/0] {223} - ¦ ¦--SPECIAL-PIPE: %>% [0/4] {224} - ¦ °--expr: map(c [1/0] {225} - ¦ ¦--expr: map [0/0] {227} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {226} - ¦ ¦--'(': ( [0/0] {228} - ¦ ¦--expr: compa [0/0] {230} - ¦ ¦ °--SYMBOL: compa [0/0] {229} - ¦ °--')': ) [0/0] {231} - °--'}': } [1/0] {232} diff --git a/tests/testthat/roxygen-examples-complete/12-fun-decs-in-examples-in_tree b/tests/testthat/roxygen-examples-complete/12-fun-decs-in-examples-in_tree deleted file mode 100644 index bd1f31905..000000000 --- a/tests/testthat/roxygen-examples-complete/12-fun-decs-in-examples-in_tree +++ /dev/null @@ -1,149 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Cr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @p [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' se [1/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' } [1/0] {10} - ¦--COMMENT: #' se [1/0] {11} - ¦--COMMENT: #' [1/0] {12} - ¦--COMMENT: #' } [1/0] {13} - ¦--COMMENT: #' st [1/0] {14} - ¦--COMMENT: #' ", [1/0] {15} - ¦--COMMENT: #' \d [1/0] {16} - ¦--COMMENT: #' se [1/0] {17} - ¦--COMMENT: #' [1/0] {18} - ¦--COMMENT: #' [1/0] {19} - ¦--COMMENT: #' [1/0] {20} - ¦--COMMENT: #' } [1/0] {21} - ¦--COMMENT: #' } [1/0] {22} - ¦--COMMENT: #' @i [1/0] {23} - ¦--COMMENT: #' @e [1/0] {24} - ¦--expr: creat [1/0] {25} - ¦ ¦--expr: creat [0/1] {27} - ¦ ¦ °--SYMBOL: creat [0/0] {26} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {28} - ¦ °--expr: funct [0/0] {29} - ¦ ¦--FUNCTION: funct [0/0] {30} - ¦ ¦--'(': ( [0/0] {31} - ¦ ¦--SYMBOL_FORMALS: initi [0/1] {32} - ¦ ¦--EQ_FORMALS: = [0/1] {33} - ¦ ¦--expr: defau [0/0] {35} - ¦ ¦ °--SYMBOL: defau [0/0] {34} - ¦ ¦--',': , [0/31] {36} - ¦ ¦--SYMBOL_FORMALS: line_ [1/1] {37} - ¦ ¦--EQ_FORMALS: = [0/1] {38} - ¦ ¦--expr: NULL [0/0] {40} - ¦ ¦ °--NULL_CONST: NULL [0/0] {39} - ¦ ¦--',': , [0/31] {41} - ¦ ¦--SYMBOL_FORMALS: space [1/1] {42} - ¦ ¦--EQ_FORMALS: = [0/1] {43} - ¦ ¦--expr: NULL [0/0] {45} - ¦ ¦ °--NULL_CONST: NULL [0/0] {44} - ¦ ¦--',': , [0/31] {46} - ¦ ¦--SYMBOL_FORMALS: token [1/1] {47} - ¦ ¦--EQ_FORMALS: = [0/1] {48} - ¦ ¦--expr: NULL [0/0] {50} - ¦ ¦ °--NULL_CONST: NULL [0/0] {49} - ¦ ¦--',': , [0/31] {51} - ¦ ¦--SYMBOL_FORMALS: inden [1/1] {52} - ¦ ¦--EQ_FORMALS: = [0/1] {53} - ¦ ¦--expr: NULL [0/0] {55} - ¦ ¦ °--NULL_CONST: NULL [0/0] {54} - ¦ ¦--',': , [0/31] {56} - ¦ ¦--SYMBOL_FORMALS: use_r [1/1] {57} - ¦ ¦--EQ_FORMALS: = [0/1] {58} - ¦ ¦--expr: FALSE [0/0] {60} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {59} - ¦ ¦--',': , [0/31] {61} - ¦ ¦--SYMBOL_FORMALS: reind [1/1] {62} - ¦ ¦--EQ_FORMALS: = [0/1] {63} - ¦ ¦--expr: tidyv [0/0] {64} - ¦ ¦ ¦--expr: tidyv [0/0] {66} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tidyv [0/0] {65} - ¦ ¦ ¦--'(': ( [0/0] {67} - ¦ ¦ °--')': ) [0/0] {68} - ¦ ¦--')': ) [0/1] {69} - ¦ °--expr: { - l [0/0] {70} - ¦ ¦--'{': { [0/2] {71} - ¦ ¦--expr: list( [1/0] {72} - ¦ ¦ ¦--expr: list( [0/1] {73} - ¦ ¦ ¦ ¦--expr: list [0/0] {75} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {74} - ¦ ¦ ¦ ¦--'(': ( [0/4] {76} - ¦ ¦ ¦ ¦--COMMENT: # tra [1/4] {77} - ¦ ¦ ¦ ¦--SYMBOL_SUB: initi [1/1] {78} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {79} - ¦ ¦ ¦ ¦--expr: list( [0/0] {80} - ¦ ¦ ¦ ¦ ¦--expr: list [0/0] {82} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {81} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {83} - ¦ ¦ ¦ ¦ ¦--expr: initi [0/0] {85} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: initi [0/0] {84} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {86} - ¦ ¦ ¦ ¦--',': , [0/4] {87} - ¦ ¦ ¦ ¦--expr: line_ [1/0] {89} - ¦ ¦ ¦ ¦ °--SYMBOL: line_ [0/0] {88} - ¦ ¦ ¦ ¦--',': , [0/4] {90} - ¦ ¦ ¦ ¦--expr: space [1/0] {92} - ¦ ¦ ¦ ¦ °--SYMBOL: space [0/0] {91} - ¦ ¦ ¦ ¦--',': , [0/4] {93} - ¦ ¦ ¦ ¦--expr: token [1/0] {95} - ¦ ¦ ¦ ¦ °--SYMBOL: token [0/0] {94} - ¦ ¦ ¦ ¦--',': , [0/4] {96} - ¦ ¦ ¦ ¦--expr: inden [1/0] {98} - ¦ ¦ ¦ ¦ °--SYMBOL: inden [0/0] {97} - ¦ ¦ ¦ ¦--',': , [0/4] {99} - ¦ ¦ ¦ ¦--COMMENT: # tra [1/4] {100} - ¦ ¦ ¦ ¦--expr: use_r [1/0] {102} - ¦ ¦ ¦ ¦ °--SYMBOL: use_r [0/0] {101} - ¦ ¦ ¦ ¦--',': , [0/4] {103} - ¦ ¦ ¦ ¦--expr: reind [1/2] {105} - ¦ ¦ ¦ ¦ °--SYMBOL: reind [0/0] {104} - ¦ ¦ ¦ °--')': ) [1/0] {106} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {107} - ¦ ¦ °--expr: map(c [1/0] {108} - ¦ ¦ ¦--expr: map [0/0] {110} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {109} - ¦ ¦ ¦--'(': ( [0/0] {111} - ¦ ¦ ¦--expr: compa [0/0] {113} - ¦ ¦ ¦ °--SYMBOL: compa [0/0] {112} - ¦ ¦ °--')': ) [0/0] {114} - ¦ °--'}': } [1/0] {115} - ¦--COMMENT: #' An [2/0] {116} - ¦--COMMENT: #' @e [1/0] {117} - ¦--COMMENT: #' \d [1/0] {118} - ¦--COMMENT: #' op [1/0] {119} - ¦--COMMENT: #' } [1/0] {120} - ¦--COMMENT: #' \d [1/0] {121} - ¦--COMMENT: #' op [1/0] {122} - ¦--COMMENT: #' } [1/0] {123} - ¦--COMMENT: #' \d [1/0] {124} - ¦--COMMENT: #' op [1/0] {125} - ¦--COMMENT: #' } [1/0] {126} - ¦--COMMENT: #' \d [1/0] {127} - ¦--COMMENT: #' op [1/0] {128} - ¦--COMMENT: #' } [1/0] {129} - ¦--COMMENT: #' \d [1/0] {130} - ¦--COMMENT: #' op [1/0] {131} - ¦--COMMENT: #' } [1/0] {132} - ¦--COMMENT: #' \d [1/0] {133} - ¦--COMMENT: #' op [1/0] {134} - ¦--COMMENT: #' } [1/0] {135} - ¦--COMMENT: #' op [1/0] {136} - ¦--COMMENT: #' \d [1/0] {137} - ¦--COMMENT: #' op [1/0] {138} - ¦--COMMENT: #' } [1/0] {139} - ¦--COMMENT: #' \d [1/0] {140} - ¦--COMMENT: #' op [1/0] {141} - ¦--COMMENT: #' } [1/0] {142} - ¦--COMMENT: #' \d [1/0] {143} - ¦--COMMENT: #' op [1/0] {144} - ¦--COMMENT: #' } [1/0] {145} - °--expr: NULL [1/0] {147} - °--NULL_CONST: NULL [0/0] {146} diff --git a/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree b/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree deleted file mode 100644 index b511569eb..000000000 --- a/tests/testthat/roxygen-examples-complete/13-empty-lines-in_tree +++ /dev/null @@ -1,120 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Cr [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @p [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' # [1/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' # [1/0] {9} - ¦--COMMENT: #' [1/0] {10} - ¦--COMMENT: #' [1/0] {11} - ¦--COMMENT: #' [1/0] {12} - ¦--COMMENT: #' [1/0] {13} - ¦--COMMENT: #' # [1/0] {14} - ¦--COMMENT: #' a [1/0] {15} - ¦--COMMENT: #' # [1/0] {16} - ¦--COMMENT: #' \d [1/0] {17} - ¦--COMMENT: #' x [1/0] {18} - ¦--COMMENT: #' [1/0] {19} - ¦--COMMENT: #' y [1/0] {20} - ¦--COMMENT: #' [1/0] {21} - ¦--COMMENT: #' # [1/0] {22} - ¦--COMMENT: #' [1/0] {23} - ¦--COMMENT: #' a [1/0] {24} - ¦--COMMENT: #' } [1/0] {25} - ¦--COMMENT: #' @i [1/0] {26} - ¦--COMMENT: #' @e [1/0] {27} - °--expr: creat [1/0] {28} - ¦--expr: creat [0/1] {30} - ¦ °--SYMBOL: creat [0/0] {29} - ¦--LEFT_ASSIGN: <- [0/1] {31} - °--expr: funct [0/0] {32} - ¦--FUNCTION: funct [0/0] {33} - ¦--'(': ( [0/0] {34} - ¦--SYMBOL_FORMALS: initi [0/1] {35} - ¦--EQ_FORMALS: = [0/1] {36} - ¦--expr: defau [0/0] {38} - ¦ °--SYMBOL: defau [0/0] {37} - ¦--',': , [0/31] {39} - ¦--SYMBOL_FORMALS: line_ [1/1] {40} - ¦--EQ_FORMALS: = [0/1] {41} - ¦--expr: NULL [0/0] {43} - ¦ °--NULL_CONST: NULL [0/0] {42} - ¦--',': , [0/31] {44} - ¦--SYMBOL_FORMALS: space [1/1] {45} - ¦--EQ_FORMALS: = [0/1] {46} - ¦--expr: NULL [0/0] {48} - ¦ °--NULL_CONST: NULL [0/0] {47} - ¦--',': , [0/31] {49} - ¦--SYMBOL_FORMALS: token [1/1] {50} - ¦--EQ_FORMALS: = [0/1] {51} - ¦--expr: NULL [0/0] {53} - ¦ °--NULL_CONST: NULL [0/0] {52} - ¦--',': , [0/31] {54} - ¦--SYMBOL_FORMALS: inden [1/1] {55} - ¦--EQ_FORMALS: = [0/1] {56} - ¦--expr: NULL [0/0] {58} - ¦ °--NULL_CONST: NULL [0/0] {57} - ¦--',': , [0/31] {59} - ¦--SYMBOL_FORMALS: use_r [1/1] {60} - ¦--EQ_FORMALS: = [0/1] {61} - ¦--expr: FALSE [0/0] {63} - ¦ °--NUM_CONST: FALSE [0/0] {62} - ¦--',': , [0/31] {64} - ¦--SYMBOL_FORMALS: reind [1/1] {65} - ¦--EQ_FORMALS: = [0/1] {66} - ¦--expr: tidyv [0/0] {67} - ¦ ¦--expr: tidyv [0/0] {69} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: tidyv [0/0] {68} - ¦ ¦--'(': ( [0/0] {70} - ¦ °--')': ) [0/0] {71} - ¦--')': ) [0/1] {72} - °--expr: { - l [0/0] {73} - ¦--'{': { [0/2] {74} - ¦--expr: list( [1/0] {75} - ¦ ¦--expr: list( [0/1] {76} - ¦ ¦ ¦--expr: list [0/0] {78} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {77} - ¦ ¦ ¦--'(': ( [0/4] {79} - ¦ ¦ ¦--COMMENT: # tra [1/4] {80} - ¦ ¦ ¦--SYMBOL_SUB: initi [1/1] {81} - ¦ ¦ ¦--EQ_SUB: = [0/1] {82} - ¦ ¦ ¦--expr: list( [0/0] {83} - ¦ ¦ ¦ ¦--expr: list [0/0] {85} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {84} - ¦ ¦ ¦ ¦--'(': ( [0/0] {86} - ¦ ¦ ¦ ¦--expr: initi [0/0] {88} - ¦ ¦ ¦ ¦ °--SYMBOL: initi [0/0] {87} - ¦ ¦ ¦ °--')': ) [0/0] {89} - ¦ ¦ ¦--',': , [0/4] {90} - ¦ ¦ ¦--expr: line_ [1/0] {92} - ¦ ¦ ¦ °--SYMBOL: line_ [0/0] {91} - ¦ ¦ ¦--',': , [0/4] {93} - ¦ ¦ ¦--expr: space [1/0] {95} - ¦ ¦ ¦ °--SYMBOL: space [0/0] {94} - ¦ ¦ ¦--',': , [0/4] {96} - ¦ ¦ ¦--expr: token [1/0] {98} - ¦ ¦ ¦ °--SYMBOL: token [0/0] {97} - ¦ ¦ ¦--',': , [0/4] {99} - ¦ ¦ ¦--expr: inden [1/0] {101} - ¦ ¦ ¦ °--SYMBOL: inden [0/0] {100} - ¦ ¦ ¦--',': , [0/4] {102} - ¦ ¦ ¦--COMMENT: # tra [1/4] {103} - ¦ ¦ ¦--expr: use_r [1/0] {105} - ¦ ¦ ¦ °--SYMBOL: use_r [0/0] {104} - ¦ ¦ ¦--',': , [0/4] {106} - ¦ ¦ ¦--expr: reind [1/2] {108} - ¦ ¦ ¦ °--SYMBOL: reind [0/0] {107} - ¦ ¦ °--')': ) [1/0] {109} - ¦ ¦--SPECIAL-PIPE: %>% [0/4] {110} - ¦ °--expr: map(c [1/0] {111} - ¦ ¦--expr: map [0/0] {113} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: map [0/0] {112} - ¦ ¦--'(': ( [0/0] {114} - ¦ ¦--expr: compa [0/0] {116} - ¦ ¦ °--SYMBOL: compa [0/0] {115} - ¦ °--')': ) [0/0] {117} - °--'}': } [1/0] {118} diff --git a/tests/testthat/roxygen-examples-complete/14-pipe-dontrun-in_tree b/tests/testthat/roxygen-examples-complete/14-pipe-dontrun-in_tree deleted file mode 100644 index 6d03f57f6..000000000 --- a/tests/testthat/roxygen-examples-complete/14-pipe-dontrun-in_tree +++ /dev/null @@ -1,19 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Hi [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' x [1/0] {3} - ¦--COMMENT: #' @e [1/0] {4} - ¦--COMMENT: #' a [1/0] {5} - ¦--COMMENT: #' [1/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' \d [1/0] {8} - ¦--COMMENT: #' st [1/0] {9} - ¦--COMMENT: #' [1/0] {10} - ¦--COMMENT: #' [1/0] {11} - ¦--COMMENT: #' )% [1/0] {12} - ¦--COMMENT: #' [1/0] {13} - ¦--COMMENT: #' } [1/0] {14} - ¦--COMMENT: #' ca [1/0] {15} - ¦--COMMENT: #' @e [1/0] {16} - °--expr: NULL [1/0] {18} - °--NULL_CONST: NULL [0/0] {17} diff --git a/tests/testthat/roxygen-examples-complete/15-roxygen-dontrun-indention-in_tree b/tests/testthat/roxygen-examples-complete/15-roxygen-dontrun-indention-in_tree deleted file mode 100644 index 974a1e333..000000000 --- a/tests/testthat/roxygen-examples-complete/15-roxygen-dontrun-indention-in_tree +++ /dev/null @@ -1,27 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Bl [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' \d [1/0] {4} - ¦--COMMENT: #' st [1/0] {5} - ¦--COMMENT: #' [1/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' \d [1/0] {9} - ¦--COMMENT: #' [1/0] {10} - ¦--COMMENT: #' [1/0] {11} - ¦--COMMENT: #' [1/0] {12} - ¦--COMMENT: #' } [1/0] {13} - ¦--COMMENT: #' if [1/0] {14} - ¦--COMMENT: #' [1/0] {15} - ¦--COMMENT: #' [1/0] {16} - ¦--COMMENT: #' if [1/0] {17} - ¦--COMMENT: #' re [1/0] {18} - ¦--COMMENT: #'if [1/0] {19} - ¦--COMMENT: #'ret [1/0] {20} - °--expr: x <- [1/0] {21} - ¦--expr: x [0/1] {23} - ¦ °--SYMBOL: x [0/0] {22} - ¦--LEFT_ASSIGN: <- [0/1] {24} - °--expr: y [0/0] {26} - °--SYMBOL: y [0/0] {25} diff --git a/tests/testthat/roxygen-examples-complete/16-dont-warn-empty-in_tree b/tests/testthat/roxygen-examples-complete/16-dont-warn-empty-in_tree deleted file mode 100644 index 22b238b62..000000000 --- a/tests/testthat/roxygen-examples-complete/16-dont-warn-empty-in_tree +++ /dev/null @@ -1,16 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Do [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' So [1/0] {3} - ¦--COMMENT: #' @e [1/0] {4} - ¦--COMMENT: #' g( [1/0] {5} - ¦--COMMENT: #' \d [1/0] {6} - ¦--COMMENT: #' f( [1/0] {7} - ¦--COMMENT: #' } [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - °--expr: g() [1/0] {11} - ¦--expr: g [0/0] {13} - ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {12} - ¦--'(': ( [0/0] {14} - °--')': ) [0/0] {15} diff --git a/tests/testthat/roxygen-examples-complete/17-two-no-non-comment-in_tree b/tests/testthat/roxygen-examples-complete/17-two-no-non-comment-in_tree deleted file mode 100644 index 34ab1e4de..000000000 --- a/tests/testthat/roxygen-examples-complete/17-two-no-non-comment-in_tree +++ /dev/null @@ -1,13 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' @e [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' [1/0] {3} - ¦--COMMENT: #' } [1/0] {4} - ¦--COMMENT: #' # [1/0] {5} - ¦--COMMENT: #' an [1/0] {6} - ¦--COMMENT: #' @e [4/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' } [1/0] {10} - ¦--COMMENT: #' # [1/0] {11} - °--COMMENT: #' an [1/0] {12} diff --git a/tests/testthat/roxygen-examples-complete/18-no-non-comment-in_tree b/tests/testthat/roxygen-examples-complete/18-no-non-comment-in_tree deleted file mode 100644 index 86f0c3de2..000000000 --- a/tests/testthat/roxygen-examples-complete/18-no-non-comment-in_tree +++ /dev/null @@ -1,7 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' @e [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' [1/0] {3} - ¦--COMMENT: #' } [1/0] {4} - ¦--COMMENT: #' # [1/0] {5} - °--COMMENT: #' an [1/0] {6} diff --git a/tests/testthat/roxygen-examples-complete/19-escaped-slash-in_tree b/tests/testthat/roxygen-examples-complete/19-escaped-slash-in_tree deleted file mode 100644 index fcf4e4a39..000000000 --- a/tests/testthat/roxygen-examples-complete/19-escaped-slash-in_tree +++ /dev/null @@ -1,79 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Da [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--COMMENT: #' [1/0] {5} - ¦--COMMENT: #' \d [1/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' [1/0] {8} - ¦--COMMENT: #' } [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - ¦--expr: NULL [1/0] {12} - ¦ °--NULL_CONST: NULL [0/0] {11} - ¦--expr: one [3/0] {13} - ¦ ¦--expr: one [0/2] {15} - ¦ ¦ °--SYMBOL: one [0/0] {14} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {16} - ¦ °--expr: "\t" [0/0] {18} - ¦ °--STR_CONST: "\t" [0/0] {17} - ¦--expr_or_assign_or_help: two [1/0] {19} - ¦ ¦--expr: two [0/3] {21} - ¦ ¦ °--SYMBOL: two [0/0] {20} - ¦ ¦--EQ_ASSIGN: = [0/1] {22} - ¦ °--expr: "\\t" [0/0] {24} - ¦ °--STR_CONST: "\\t" [0/0] {23} - ¦--expr_or_assign_or_help: three [1/0] {25} - ¦ ¦--expr: three [0/1] {27} - ¦ ¦ °--SYMBOL: three [0/0] {26} - ¦ ¦--EQ_ASSIGN: = [0/1] {28} - ¦ °--expr: "\\\t [0/0] {30} - ¦ °--STR_CONST: "\\\t [0/0] {29} - ¦--expr_or_assign_or_help: four [1/0] {31} - ¦ ¦--expr: four [0/2] {33} - ¦ ¦ °--SYMBOL: four [0/0] {32} - ¦ ¦--EQ_ASSIGN: = [0/1] {34} - ¦ °--expr: "\\\\ [0/0] {36} - ¦ °--STR_CONST: "\\\\ [0/0] {35} - ¦--expr_or_assign_or_help: five [1/0] {37} - ¦ ¦--expr: five [0/2] {39} - ¦ ¦ °--SYMBOL: five [0/0] {38} - ¦ ¦--EQ_ASSIGN: = [0/1] {40} - ¦ °--expr: "\\\\ [0/0] {42} - ¦ °--STR_CONST: "\\\\ [0/0] {41} - ¦--expr_or_assign_or_help: six [1/0] {43} - ¦ ¦--expr: six [0/3] {45} - ¦ ¦ °--SYMBOL: six [0/0] {44} - ¦ ¦--EQ_ASSIGN: = [0/1] {46} - ¦ °--expr: "\\\\ [0/0] {48} - ¦ °--STR_CONST: "\\\\ [0/0] {47} - ¦--expr_or_assign_or_help: two [2/0] {49} - ¦ ¦--expr: two [0/3] {51} - ¦ ¦ °--SYMBOL: two [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: "\\" [0/0] {54} - ¦ °--STR_CONST: "\\" [0/0] {53} - ¦--expr_or_assign_or_help: four [1/0] {55} - ¦ ¦--expr: four [0/2] {57} - ¦ ¦ °--SYMBOL: four [0/0] {56} - ¦ ¦--EQ_ASSIGN: = [0/1] {58} - ¦ °--expr: "\\\\ [0/0] {60} - ¦ °--STR_CONST: "\\\\ [0/0] {59} - ¦--expr_or_assign_or_help: five [1/0] {61} - ¦ ¦--expr: five [0/2] {63} - ¦ ¦ °--SYMBOL: five [0/0] {62} - ¦ ¦--EQ_ASSIGN: = [0/1] {64} - ¦ °--expr: "\\\\ [0/0] {66} - ¦ °--STR_CONST: "\\\\ [0/0] {65} - ¦--expr_or_assign_or_help: six [1/0] {67} - ¦ ¦--expr: six [0/3] {69} - ¦ ¦ °--SYMBOL: six [0/0] {68} - ¦ ¦--EQ_ASSIGN: = [0/1] {70} - ¦ °--expr: "\\\\ [0/0] {72} - ¦ °--STR_CONST: "\\\\ [0/0] {71} - °--expr_or_assign_or_help: six [1/0] {73} - ¦--expr: six [0/3] {75} - ¦ °--SYMBOL: six [0/0] {74} - ¦--EQ_ASSIGN: = [0/1] {76} - °--expr: "\\\\ [0/0] {78} - °--STR_CONST: "\\\\ [0/0] {77} diff --git a/tests/testthat/roxygen-examples-complete/20-exampleIf-simple-in_tree b/tests/testthat/roxygen-examples-complete/20-exampleIf-simple-in_tree deleted file mode 100644 index cb8c82e20..000000000 --- a/tests/testthat/roxygen-examples-complete/20-exampleIf-simple-in_tree +++ /dev/null @@ -1,16 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' c( [1/0] {6} - ¦--COMMENT: #' @i [1/0] {7} - ¦--COMMENT: #' @e [1/0] {8} - ¦--expr: a [1/0] {9} - ¦ ¦--expr: a [0/5] {11} - ¦ ¦ °--SYMBOL: a [0/0] {10} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {12} - ¦ °--expr: call [0/0] {14} - ¦ °--SYMBOL: call [0/0] {13} - °--';': ; [0/0] {15} diff --git a/tests/testthat/roxygen-examples-complete/21-exampleIf-multiple-in_tree b/tests/testthat/roxygen-examples-complete/21-exampleIf-multiple-in_tree deleted file mode 100644 index 9138e38d9..000000000 --- a/tests/testthat/roxygen-examples-complete/21-exampleIf-multiple-in_tree +++ /dev/null @@ -1,18 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' c( [1/0] {6} - ¦--COMMENT: #' @e [1/0] {7} - ¦--COMMENT: #' x= [1/0] {8} - ¦--COMMENT: #' @i [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - ¦--expr: a [1/0] {11} - ¦ ¦--expr: a [0/5] {13} - ¦ ¦ °--SYMBOL: a [0/0] {12} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {14} - ¦ °--expr: call [0/0] {16} - ¦ °--SYMBOL: call [0/0] {15} - °--';': ; [0/0] {17} diff --git a/tests/testthat/roxygen-examples-complete/22-exampleIf-example-mixed-in_tree b/tests/testthat/roxygen-examples-complete/22-exampleIf-example-mixed-in_tree deleted file mode 100644 index d283302bd..000000000 --- a/tests/testthat/roxygen-examples-complete/22-exampleIf-example-mixed-in_tree +++ /dev/null @@ -1,32 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' c( [1/0] {6} - ¦--COMMENT: #' @e [1/0] {7} - ¦--COMMENT: #' x= [1/0] {8} - ¦--COMMENT: #' @i [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - ¦--expr: x <- [1/0] {11} - ¦ ¦--expr: x [0/1] {13} - ¦ ¦ °--SYMBOL: x [0/0] {12} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {14} - ¦ °--expr: 3 [0/0] {16} - ¦ °--NUM_CONST: 3 [0/0] {15} - ¦--COMMENT: #' So [2/0] {17} - ¦--COMMENT: #' [1/0] {18} - ¦--COMMENT: #' St [1/0] {19} - ¦--COMMENT: #' @f [1/0] {20} - ¦--COMMENT: #' @e [1/0] {21} - ¦--COMMENT: #' x= [1/0] {22} - ¦--COMMENT: #' @e [1/0] {23} - ¦--COMMENT: #' c( [1/0] {24} - ¦--COMMENT: #' @e [1/0] {25} - °--expr: funct [1/0] {26} - ¦--FUNCTION: funct [0/0] {27} - ¦--'(': ( [0/0] {28} - ¦--')': ) [0/2] {29} - °--expr: NULL [1/0] {31} - °--NULL_CONST: NULL [0/0] {30} diff --git a/tests/testthat/roxygen-examples-complete/23-exampleIf-multiline-cond-in_tree b/tests/testthat/roxygen-examples-complete/23-exampleIf-multiline-cond-in_tree deleted file mode 100644 index 27ed71c9d..000000000 --- a/tests/testthat/roxygen-examples-complete/23-exampleIf-multiline-cond-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' df [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' fj [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' 't [1/0] {6} - ¦--COMMENT: #' } [1/0] {7} - ¦--COMMENT: #' c( [1/0] {8} - ¦--COMMENT: #' @i [1/0] {9} - ¦--COMMENT: #' @e [1/0] {10} - ¦--expr: x <- [1/0] {11} - ¦ ¦--expr: x [0/1] {13} - ¦ ¦ °--SYMBOL: x [0/0] {12} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {14} - ¦ °--expr: 3 [0/0] {16} - ¦ °--NUM_CONST: 3 [0/0] {15} - ¦--COMMENT: #' df [3/0] {17} - ¦--COMMENT: #' [1/0] {18} - ¦--COMMENT: #' fj [1/0] {19} - ¦--COMMENT: #' @e [1/0] {20} - ¦--COMMENT: #' 't [1/0] {21} - ¦--COMMENT: #' } [1/0] {22} - ¦--COMMENT: #' c( [1/0] {23} - °--expr: x <- [1/0] {24} - ¦--expr: x [0/1] {26} - ¦ °--SYMBOL: x [0/0] {25} - ¦--LEFT_ASSIGN: <- [0/1] {27} - °--expr: 3 [0/0] {29} - °--NUM_CONST: 3 [0/0] {28} diff --git a/tests/testthat/roxygen-examples-complete/24-exampleIf-spacing-in_tree b/tests/testthat/roxygen-examples-complete/24-exampleIf-spacing-in_tree deleted file mode 100644 index 3e2391645..000000000 --- a/tests/testthat/roxygen-examples-complete/24-exampleIf-spacing-in_tree +++ /dev/null @@ -1,37 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' St [1/0] {3} - ¦--COMMENT: #' @f [1/0] {4} - ¦--COMMENT: #' @e [1/0] {5} - ¦--COMMENT: #' c( [1/0] {6} - ¦--COMMENT: #' @e [1/0] {7} - ¦--COMMENT: #' c( [1/0] {8} - ¦--COMMENT: #' [1/0] {9} - ¦--COMMENT: #' c( [1/0] {10} - ¦--COMMENT: #' @i [1/0] {11} - ¦--COMMENT: #' @e [1/0] {12} - ¦--expr: x <- [1/0] {13} - ¦ ¦--expr: x [0/1] {15} - ¦ ¦ °--SYMBOL: x [0/0] {14} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {16} - ¦ °--expr: 3 [0/0] {18} - ¦ °--NUM_CONST: 3 [0/0] {17} - ¦--COMMENT: #' No [3/0] {19} - ¦--COMMENT: #' [1/0] {20} - ¦--COMMENT: #' St [1/0] {21} - ¦--COMMENT: #' @f [1/0] {22} - ¦--COMMENT: #' @e [1/0] {23} - ¦--COMMENT: #' a [1/0] {24} - ¦--COMMENT: #' @e [1/0] {25} - ¦--COMMENT: #' a [1/0] {26} - ¦--COMMENT: #' [1/0] {27} - ¦--COMMENT: #' a [1/0] {28} - ¦--COMMENT: #' @i [1/0] {29} - ¦--COMMENT: #' @e [1/0] {30} - °--expr: x <- [1/0] {31} - ¦--expr: x [0/1] {33} - ¦ °--SYMBOL: x [0/0] {32} - ¦--LEFT_ASSIGN: <- [0/1] {34} - °--expr: 33 [0/0] {36} - °--NUM_CONST: 33 [0/0] {35} diff --git a/tests/testthat/roxygen-examples-complete/25-ordinary-comment-in-example-in_tree b/tests/testthat/roxygen-examples-complete/25-ordinary-comment-in-example-in_tree deleted file mode 100644 index edac0463e..000000000 --- a/tests/testthat/roxygen-examples-complete/25-ordinary-comment-in-example-in_tree +++ /dev/null @@ -1,141 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Ex [0/0] {1} - ¦--COMMENT: # Ran [1/0] {2} - ¦--COMMENT: #' Ro [1/0] {3} - ¦--COMMENT: #' @e [1/0] {4} - ¦--COMMENT: #' 1 [1/0] {5} - ¦--expr: NULL [1/0] {7} - ¦ °--NULL_CONST: NULL [0/0] {6} - ¦--COMMENT: #' Ex [3/0] {8} - ¦--COMMENT: # Ran [1/0] {9} - ¦--COMMENT: #' Ro [1/0] {10} - ¦--COMMENT: #' @e [1/0] {11} - ¦--COMMENT: #' 1 [1/0] {12} - ¦--expr: NULL [1/0] {14} - ¦ °--NULL_CONST: NULL [0/0] {13} - ¦--COMMENT: #' Ex [2/0] {15} - ¦--COMMENT: # Ran [1/0] {16} - ¦--COMMENT: #' Ro [1/0] {17} - ¦--COMMENT: #' @e [1/0] {18} - ¦--COMMENT: #' 1 [1/0] {19} - ¦--COMMENT: # com [1/0] {20} - ¦--COMMENT: # mor [1/0] {21} - ¦--expr: NULL [1/0] {23} - ¦ °--NULL_CONST: NULL [0/0] {22} - ¦--COMMENT: #' Ex [2/0] {24} - ¦--COMMENT: # Ran [1/0] {25} - ¦--COMMENT: #' Ro [1/0] {26} - ¦--COMMENT: #' @e [1/0] {27} - ¦--COMMENT: # The [1/0] {28} - ¦--COMMENT: #' 1 [1/0] {29} - ¦--COMMENT: # com [1/0] {30} - ¦--COMMENT: # mor [1/0] {31} - ¦--expr: NULL [1/0] {33} - ¦ °--NULL_CONST: NULL [0/0] {32} - ¦--COMMENT: #' Ex [2/0] {34} - ¦--COMMENT: #' Ra [1/0] {35} - ¦--COMMENT: #' Ro [1/0] {36} - ¦--COMMENT: #' @e [1/0] {37} - ¦--COMMENT: # The [1/0] {38} - ¦--COMMENT: #' 1 [1/0] {39} - ¦--COMMENT: # com [1/0] {40} - ¦--COMMENT: # mor [1/0] {41} - ¦--expr: NULL [1/0] {43} - ¦ °--NULL_CONST: NULL [0/0] {42} - ¦--COMMENT: #' Ex [2/0] {44} - ¦--COMMENT: # Ran [1/0] {45} - ¦--COMMENT: #' Ro [1/0] {46} - ¦--COMMENT: #' @e [1/0] {47} - ¦--COMMENT: # The [1/0] {48} - ¦--COMMENT: #' \d [1/0] {49} - ¦--COMMENT: #' 1 [1/0] {50} - ¦--COMMENT: #' } [1/0] {51} - ¦--COMMENT: # com [1/0] {52} - ¦--COMMENT: # mor [1/0] {53} - ¦--expr: NULL [1/0] {55} - ¦ °--NULL_CONST: NULL [0/0] {54} - ¦--COMMENT: #' Ex [2/0] {56} - ¦--COMMENT: # Ran [1/0] {57} - ¦--COMMENT: #' Ro [1/0] {58} - ¦--COMMENT: #' @e [1/0] {59} - ¦--COMMENT: # The [1/0] {60} - ¦--COMMENT: #' \d [1/0] {61} - ¦--COMMENT: #' 1 [1/0] {62} - ¦--COMMENT: #' } [1/0] {63} - ¦--COMMENT: # mor [1/0] {64} - ¦--expr: NULL [1/0] {66} - ¦ °--NULL_CONST: NULL [0/0] {65} - ¦--COMMENT: #' Ex [2/0] {67} - ¦--COMMENT: # Ran [1/0] {68} - ¦--COMMENT: #' Ro [1/0] {69} - ¦--COMMENT: #' @e [1/0] {70} - ¦--COMMENT: # 'Th [1/0] {71} - ¦--COMMENT: #' \d [1/0] {72} - ¦--COMMENT: #' 1 [1/0] {73} - ¦--COMMENT: #' } [1/0] {74} - ¦--COMMENT: # com [1/0] {75} - ¦--COMMENT: # mor [1/0] {76} - ¦--expr: NULL [1/0] {78} - ¦ °--NULL_CONST: NULL [0/0] {77} - ¦--COMMENT: #' Ex [2/0] {79} - ¦--COMMENT: # Ran [1/0] {80} - ¦--COMMENT: #' Ro [1/0] {81} - ¦--COMMENT: #' @e [1/0] {82} - ¦--COMMENT: # The [1/0] {83} - ¦--COMMENT: #' \d [1/0] {84} - ¦--COMMENT: # com [1/0] {85} - ¦--COMMENT: #' 1 [1/0] {86} - ¦--COMMENT: #' } [1/0] {87} - ¦--COMMENT: # mor [1/0] {88} - ¦--expr: NULL [1/0] {90} - ¦ °--NULL_CONST: NULL [0/0] {89} - ¦--COMMENT: #' Ex [2/0] {91} - ¦--COMMENT: # Ran [1/0] {92} - ¦--COMMENT: #' Ro [1/0] {93} - ¦--COMMENT: #' @e [1/0] {94} - ¦--COMMENT: # The [1/0] {95} - ¦--COMMENT: #' \d [1/0] {96} - ¦--COMMENT: #' ca [1/0] {97} - ¦--COMMENT: # com [1/0] {98} - ¦--COMMENT: #' 1 [1/0] {99} - ¦--COMMENT: #' ) [1/0] {100} - ¦--COMMENT: #' } [1/0] {101} - ¦--COMMENT: # mor [1/0] {102} - ¦--expr: NULL [1/0] {104} - ¦ °--NULL_CONST: NULL [0/0] {103} - ¦--COMMENT: # nol [2/0] {105} - ¦--COMMENT: #' @e [1/0] {106} - ¦--COMMENT: # nol [1/0] {107} - ¦--COMMENT: #' df [1/0] {108} - ¦--expr: func [1/0] {109} - ¦ ¦--expr: func [0/1] {111} - ¦ ¦ °--SYMBOL: func [0/0] {110} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {112} - ¦ °--expr: funct [0/0] {113} - ¦ ¦--FUNCTION: funct [0/0] {114} - ¦ ¦--'(': ( [0/0] {115} - ¦ ¦--')': ) [0/1] {116} - ¦ °--expr: NULL [0/0] {118} - ¦ °--NULL_CONST: NULL [0/0] {117} - ¦--COMMENT: #' Hi [3/0] {119} - ¦--COMMENT: # Com [1/0] {120} - ¦--COMMENT: #' @e [1/0] {121} - ¦--COMMENT: #' 1 [1/0] {122} - ¦--COMMENT: # thi [1/0] {123} - ¦--COMMENT: # thi [1/0] {124} - ¦--COMMENT: #this [1/0] {125} - ¦--COMMENT: # thi [1/0] {126} - ¦--COMMENT: #' c( [1/0] {127} - ¦--expr: NULL [1/0] {129} - ¦ °--NULL_CONST: NULL [0/0] {128} - ¦--COMMENT: #' Hi [2/0] {130} - ¦--COMMENT: # Com [1/0] {131} - ¦--COMMENT: #' @e [1/0] {132} - ¦--COMMENT: #' 1 [1/0] {133} - ¦--COMMENT: # thi [1/0] {134} - ¦--COMMENT: # thi [1/0] {135} - ¦--COMMENT: #this [1/0] {136} - ¦--COMMENT: # thi [1/0] {137} - ¦--COMMENT: #' c( [1/0] {138} - °--expr: NULL [1/0] {140} - °--NULL_CONST: NULL [0/0] {139} diff --git a/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-in_tree b/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-in_tree deleted file mode 100644 index 8f9a397dc..000000000 --- a/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-in_tree +++ /dev/null @@ -1,37 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' me [1/0] {3} - ¦--COMMENT: #' @e [1/0] {4} - ¦--COMMENT: #' 2 [1/0] {5} - ¦--COMMENT: #' [1/0] {6} - ¦--expr: NULL [1/0] {8} - ¦ °--NULL_CONST: NULL [0/0] {7} - ¦--COMMENT: #' th [3/0] {9} - ¦--COMMENT: #' [1/0] {10} - ¦--COMMENT: #' me [1/0] {11} - ¦--COMMENT: #' @e [1/0] {12} - ¦--COMMENT: #' 2 [1/0] {13} - ¦--COMMENT: #' [1/0] {14} - ¦--COMMENT: #' [1/0] {15} - ¦--COMMENT: #' [1/0] {16} - ¦--COMMENT: #' [1/0] {17} - ¦--COMMENT: #' [1/0] {18} - ¦--COMMENT: #' [1/0] {19} - ¦--COMMENT: #' [1/0] {20} - ¦--expr: NULL [1/0] {22} - ¦ °--NULL_CONST: NULL [0/0] {21} - ¦--COMMENT: #' th [3/0] {23} - ¦--COMMENT: #' [1/0] {24} - ¦--COMMENT: #' me [1/0] {25} - ¦--COMMENT: #' @e [1/0] {26} - ¦--COMMENT: #' 2 [1/0] {27} - ¦--expr: NULL [1/0] {29} - ¦ °--NULL_CONST: NULL [0/0] {28} - ¦--COMMENT: #' th [4/0] {30} - ¦--COMMENT: #' [1/0] {31} - ¦--COMMENT: #' em [1/0] {32} - ¦--COMMENT: #' @e [1/0] {33} - ¦--COMMENT: #' 2 [1/0] {34} - °--expr: NULL [2/0] {36} - °--NULL_CONST: NULL [0/0] {35} diff --git a/tests/testthat/roxygen-examples-complete/27-no-code-block-after-example-in_tree b/tests/testthat/roxygen-examples-complete/27-no-code-block-after-example-in_tree deleted file mode 100644 index 3eac5d60e..000000000 --- a/tests/testthat/roxygen-examples-complete/27-no-code-block-after-example-in_tree +++ /dev/null @@ -1,12 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Th [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' [1/0] {3} - ¦--COMMENT: #' is [1/0] {4} - ¦--COMMENT: #' [1/0] {5} - ¦--COMMENT: #' @e [1/0] {6} - ¦--COMMENT: #' 1+ [1/0] {7} - ¦--COMMENT: # nol [3/0] {8} - ¦--COMMENT: #' @e [1/0] {9} - ¦--COMMENT: #' 32 [1/0] {10} - °--COMMENT: # nol [1/0] {11} diff --git a/tests/testthat/roxygen-examples-complete/28-end-not-blank-in_tree b/tests/testthat/roxygen-examples-complete/28-end-not-blank-in_tree deleted file mode 100644 index 9cd091e60..000000000 --- a/tests/testthat/roxygen-examples-complete/28-end-not-blank-in_tree +++ /dev/null @@ -1,4 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' @e [0/0] {1} - ¦--COMMENT: #' @e [1/0] {2} - °--COMMENT: #' x= [1/0] {3} diff --git a/tests/testthat/roxygen-examples-complete/29-multiple-empty-lines-in-example-in_tree b/tests/testthat/roxygen-examples-complete/29-multiple-empty-lines-in-example-in_tree deleted file mode 100644 index 37a30f03f..000000000 --- a/tests/testthat/roxygen-examples-complete/29-multiple-empty-lines-in-example-in_tree +++ /dev/null @@ -1,13 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #' Em [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @e [1/0] {3} - ¦--expr: 1 [1/0] {5} - ¦ °--NUM_CONST: 1 [0/0] {4} - ¦--COMMENT: #' Em [2/0] {6} - ¦--COMMENT: #' [1/0] {7} - ¦--COMMENT: #' @e [1/0] {8} - ¦--COMMENT: #' \d [1/0] {9} - ¦--COMMENT: #' } [1/0] {10} - °--expr: 2 [1/0] {12} - °--NUM_CONST: 2 [0/0] {11} diff --git a/tests/testthat/scope-AsIs/scope_indention-in_tree b/tests/testthat/scope-AsIs/scope_indention-in_tree deleted file mode 100644 index 10fda6ca9..000000000 --- a/tests/testthat/scope-AsIs/scope_indention-in_tree +++ /dev/null @@ -1,97 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # not [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1+1+ [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1+1++ [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/0] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/0] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/0] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # not [2/0] {29} - ¦--COMMENT: # FIX [1/0] {30} - ¦--expr: test_ [1/0] {31} - ¦ ¦--expr: test_ [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: "x" [0/0] {36} - ¦ ¦ °--STR_CONST: "x" [0/0] {35} - ¦ ¦--',': , [0/2] {37} - ¦ ¦--expr: { - [1/0] {38} - ¦ ¦ ¦--'{': { [0/12] {39} - ¦ ¦ ¦--expr: my_te [1/0] {40} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {42} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {41} - ¦ ¦ ¦ ¦--'(': ( [0/0] {43} - ¦ ¦ ¦ ¦--expr: call [0/0] {45} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {44} - ¦ ¦ ¦ °--')': ) [0/0] {46} - ¦ ¦ °--'}': } [1/0] {47} - ¦ °--')': ) [0/0] {48} - ¦--COMMENT: # do [2/0] {49} - ¦--expr_or_assign_or_help: a = 3 [1/0] {50} - ¦ ¦--expr: a [0/1] {52} - ¦ ¦ °--SYMBOL: a [0/0] {51} - ¦ ¦--EQ_ASSIGN: = [0/1] {53} - ¦ °--expr: 3 [0/0] {55} - ¦ °--NUM_CONST: 3 [0/0] {54} - ¦--expr: data_ [1/0] {56} - ¦ ¦--expr: data_ [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--SYMBOL_SUB: a [0/1] {60} - ¦ ¦--EQ_SUB: = [0/1] {61} - ¦ ¦--expr: 3 [0/0] {63} - ¦ ¦ °--NUM_CONST: 3 [0/0] {62} - ¦ °--')': ) [0/0] {64} - ¦--COMMENT: # do [2/0] {65} - ¦--expr: a <- [1/0] {66} - ¦ ¦--expr: a [0/1] {68} - ¦ ¦ °--SYMBOL: a [0/0] {67} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {69} - ¦ °--expr: funct [0/0] {70} - ¦ ¦--FUNCTION: funct [0/0] {71} - ¦ ¦--'(': ( [0/0] {72} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {73} - ¦ ¦--')': ) [0/1] {74} - ¦ °--expr: x + 1 [0/0] {75} - ¦ ¦--expr: x [0/1] {77} - ¦ ¦ °--SYMBOL: x [0/0] {76} - ¦ ¦--'+': + [0/1] {78} - ¦ °--expr: 1 [0/0] {80} - ¦ °--NUM_CONST: 1 [0/0] {79} - ¦--';': ; [0/0] {81} - ¦--expr: b [0/0] {83} - ¦ °--SYMBOL: b [0/0] {82} - ¦--';': ; [0/0] {84} - ¦--expr: c [0/0] {86} - ¦ °--SYMBOL: c [0/0] {85} - ¦--COMMENT: # don [2/0] {87} - °--expr: a %>% [1/0] {88} - ¦--expr: a [0/1] {91} - ¦ °--SYMBOL: a [0/0] {90} - ¦--SPECIAL-PIPE: %>% [0/2] {92} - ¦--expr: b [1/1] {94} - ¦ °--SYMBOL: b [0/0] {93} - ¦--SPECIAL-PIPE: %>% [0/2] {95} - °--expr: c [1/0] {97} - °--SYMBOL: c [0/0] {96} diff --git a/tests/testthat/scope-AsIs/scope_indention_tokens-in_tree b/tests/testthat/scope-AsIs/scope_indention_tokens-in_tree deleted file mode 100644 index c589fac39..000000000 --- a/tests/testthat/scope-AsIs/scope_indention_tokens-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 + [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/1] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a =3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/0] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/scope-AsIs/scope_line_breaks-in_tree b/tests/testthat/scope-AsIs/scope_line_breaks-in_tree deleted file mode 100644 index 2b1d97fb2..000000000 --- a/tests/testthat/scope-AsIs/scope_line_breaks-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 + [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/1] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a = 3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/scope-AsIs/scope_none-in_tree b/tests/testthat/scope-AsIs/scope_none-in_tree deleted file mode 100644 index 3c65a9c14..000000000 --- a/tests/testthat/scope-AsIs/scope_none-in_tree +++ /dev/null @@ -1,159 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #'thi [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @p [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--expr: a<- f [1/0] {5} - ¦ ¦--expr: a [0/0] {7} - ¦ ¦ °--SYMBOL: a [0/0] {6} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {8} - ¦ °--expr: funct [0/0] {9} - ¦ ¦--FUNCTION: funct [0/0] {10} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {12} - ¦ ¦--')': ) [0/0] {13} - ¦ °--expr: { - t [0/0] {14} - ¦ ¦--'{': { [0/2] {15} - ¦ ¦--expr: test_ [1/2] {16} - ¦ ¦ ¦--expr: test_ [0/0] {18} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {17} - ¦ ¦ ¦--'(': ( [0/0] {19} - ¦ ¦ ¦--expr: "I wa [0/0] {21} - ¦ ¦ ¦ °--STR_CONST: "I wa [0/0] {20} - ¦ ¦ ¦--',': , [0/0] {22} - ¦ ¦ ¦--expr: { - [0/5] {23} - ¦ ¦ ¦ ¦--'{': { [0/4] {24} - ¦ ¦ ¦ ¦--expr: out < [1/4] {25} - ¦ ¦ ¦ ¦ ¦--expr: out [0/1] {27} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: out [0/0] {26} - ¦ ¦ ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {28} - ¦ ¦ ¦ ¦ °--expr: c(1,c [0/0] {29} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {31} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {30} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {32} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {34} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {33} - ¦ ¦ ¦ ¦ ¦--',': , [0/0] {35} - ¦ ¦ ¦ ¦ ¦--expr: c( - [0/0] {36} - ¦ ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {38} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {37} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/6] {39} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 +1 [1/4] {40} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/1] {42} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {41} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {43} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {44} - ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {46} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {47} - ¦ ¦ ¦ ¦--expr: if (x [1/2] {48} - ¦ ¦ ¦ ¦ ¦--IF: if [0/1] {49} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {50} - ¦ ¦ ¦ ¦ ¦--expr: x > 1 [0/0] {51} - ¦ ¦ ¦ ¦ ¦ ¦--expr: x [0/1] {53} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {52} - ¦ ¦ ¦ ¦ ¦ ¦--GT: > [0/1] {54} - ¦ ¦ ¦ ¦ ¦ °--expr: 10 [0/0] {56} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 10 [0/0] {55} - ¦ ¦ ¦ ¦ ¦--')': ) [0/1] {57} - ¦ ¦ ¦ ¦ °--expr: { - [0/0] {58} - ¦ ¦ ¦ ¦ ¦--'{': { [0/6] {59} - ¦ ¦ ¦ ¦ ¦--expr: for ( [1/4] {60} - ¦ ¦ ¦ ¦ ¦ ¦--FOR: for [0/1] {61} - ¦ ¦ ¦ ¦ ¦ ¦--forcond: (x in [0/1] {62} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {63} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--SYMBOL: x [0/1] {64} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--IN: in [0/1] {65} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/0] {67} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {66} - ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {68} - ¦ ¦ ¦ ¦ ¦ °--expr: { # F [0/0] {69} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/1] {70} - ¦ ¦ ¦ ¦ ¦ ¦--COMMENT: # FIX [0/8] {71} - ¦ ¦ ¦ ¦ ¦ ¦--expr: prin( [1/6] {72} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: prin [0/0] {74} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: prin [0/0] {73} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {75} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: x [0/0] {77} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {76} - ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {79} - ¦ ¦ ¦ ¦ °--'}': } [1/0] {80} - ¦ ¦ ¦ °--'}': } [1/0] {81} - ¦ ¦ °--')': ) [0/0] {82} - ¦ ¦--COMMENT: #we l [1/2] {83} - ¦ ¦--expr: c(lis [1/2] {84} - ¦ ¦ ¦--expr: c [0/0] {86} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {85} - ¦ ¦ ¦--'(': ( [0/0] {87} - ¦ ¦ ¦--expr: list( [0/0] {88} - ¦ ¦ ¦ ¦--expr: list [0/0] {90} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {89} - ¦ ¦ ¦ ¦--'(': ( [0/0] {91} - ¦ ¦ ¦ ¦--expr: x + 2 [0/0] {92} - ¦ ¦ ¦ ¦ ¦--expr: x [0/1] {94} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {93} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {95} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {97} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {96} - ¦ ¦ ¦ °--')': ) [0/0] {98} - ¦ ¦ ¦--',': , [0/4] {99} - ¦ ¦ ¦--expr: c( [1/1] {100} - ¦ ¦ ¦ ¦--expr: c [0/0] {102} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {101} - ¦ ¦ ¦ ¦--'(': ( [0/4] {103} - ¦ ¦ ¦ ¦--expr: c( - [0/3] {104} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {106} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {105} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/6] {107} - ¦ ¦ ¦ ¦ ¦--expr: 26 ^ [1/0] {108} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 26 [0/1] {110} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] {109} - ¦ ¦ ¦ ¦ ¦ ¦--'^': ^ [0/1] {111} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {113} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {112} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {114} - ¦ ¦ ¦ ¦ ¦--COMMENT: # FIX [0/6] {115} - ¦ ¦ ¦ ¦ ¦--expr: 8 [1/0] {117} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 8 [0/0] {116} - ¦ ¦ ¦ ¦ ¦--',': , [0/6] {118} - ¦ ¦ ¦ ¦ ¦--expr: 7 [1/4] {120} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 7 [0/0] {119} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {121} - ¦ ¦ ¦ °--')': ) [0/0] {122} - ¦ ¦ °--')': ) [0/0] {123} - ¦ ¦--expr: call( [2/0] {124} - ¦ ¦ ¦--expr: call [0/0] {126} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {125} - ¦ ¦ ¦--'(': ( [0/4] {127} - ¦ ¦ ¦--expr: 1 [1/0] {129} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {128} - ¦ ¦ ¦--',': , [0/1] {130} - ¦ ¦ ¦--expr: 2 [0/0] {132} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {131} - ¦ ¦ ¦--',': , [0/4] {133} - ¦ ¦ ¦--expr: 23+In [1/0] {134} - ¦ ¦ ¦ ¦--expr: 23 [0/0] {137} - ¦ ¦ ¦ ¦ °--NUM_CONST: 23 [0/0] {136} - ¦ ¦ ¦ ¦--'+': + [0/0] {138} - ¦ ¦ ¦ ¦--expr: Inf [0/1] {140} - ¦ ¦ ¦ ¦ °--NUM_CONST: Inf [0/0] {139} - ¦ ¦ ¦ ¦--'-': - [0/1] {141} - ¦ ¦ ¦ °--expr: 99 [0/0] {143} - ¦ ¦ ¦ °--NUM_CONST: 99 [0/0] {142} - ¦ ¦ ¦--',': , [0/1] {144} - ¦ ¦ ¦--expr: call( [0/0] {145} - ¦ ¦ ¦ ¦--expr: call [0/0] {147} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {146} - ¦ ¦ ¦ ¦--'(': ( [0/6] {148} - ¦ ¦ ¦ ¦--expr: 16 [1/4] {150} - ¦ ¦ ¦ ¦ °--NUM_CONST: 16 [0/0] {149} - ¦ ¦ ¦ °--')': ) [1/0] {151} - ¦ ¦ °--')': ) [0/0] {152} - ¦ °--'}': } [1/0] {153} - °--COMMENT: # com [1/0] {154} diff --git a/tests/testthat/scope-AsIs/scope_spaces-in_tree b/tests/testthat/scope-AsIs/scope_spaces-in_tree deleted file mode 100644 index 81781740b..000000000 --- a/tests/testthat/scope-AsIs/scope_spaces-in_tree +++ /dev/null @@ -1,25 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a<-fu [0/0] {1} - ¦--expr: a [0/0] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/0] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--')': ) [0/0] {8} - °--expr: { - [0/0] {9} - ¦--'{': { [0/20] {10} - ¦--expr: 1+1 [1/0] {11} - ¦ ¦--expr: 1 [0/0] {13} - ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦--'+': + [0/0] {14} - ¦ °--expr: 1 [0/0] {16} - ¦ °--NUM_CONST: 1 [0/0] {15} - ¦--expr_or_assign_or_help: d=3 [1/4] {17} - ¦ ¦--expr: d [0/0] {19} - ¦ ¦ °--SYMBOL: d [0/0] {18} - ¦ ¦--EQ_ASSIGN: = [0/0] {20} - ¦ °--expr: 3 [0/0] {22} - ¦ °--NUM_CONST: 3 [0/0] {21} - °--'}': } [1/0] {23} diff --git a/tests/testthat/scope-AsIs/scope_spaces_indention-in_tree b/tests/testthat/scope-AsIs/scope_spaces_indention-in_tree deleted file mode 100644 index 10fda6ca9..000000000 --- a/tests/testthat/scope-AsIs/scope_spaces_indention-in_tree +++ /dev/null @@ -1,97 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # not [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1+1+ [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1+1++ [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/0] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/0] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/0] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # not [2/0] {29} - ¦--COMMENT: # FIX [1/0] {30} - ¦--expr: test_ [1/0] {31} - ¦ ¦--expr: test_ [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: "x" [0/0] {36} - ¦ ¦ °--STR_CONST: "x" [0/0] {35} - ¦ ¦--',': , [0/2] {37} - ¦ ¦--expr: { - [1/0] {38} - ¦ ¦ ¦--'{': { [0/12] {39} - ¦ ¦ ¦--expr: my_te [1/0] {40} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {42} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {41} - ¦ ¦ ¦ ¦--'(': ( [0/0] {43} - ¦ ¦ ¦ ¦--expr: call [0/0] {45} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {44} - ¦ ¦ ¦ °--')': ) [0/0] {46} - ¦ ¦ °--'}': } [1/0] {47} - ¦ °--')': ) [0/0] {48} - ¦--COMMENT: # do [2/0] {49} - ¦--expr_or_assign_or_help: a = 3 [1/0] {50} - ¦ ¦--expr: a [0/1] {52} - ¦ ¦ °--SYMBOL: a [0/0] {51} - ¦ ¦--EQ_ASSIGN: = [0/1] {53} - ¦ °--expr: 3 [0/0] {55} - ¦ °--NUM_CONST: 3 [0/0] {54} - ¦--expr: data_ [1/0] {56} - ¦ ¦--expr: data_ [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--SYMBOL_SUB: a [0/1] {60} - ¦ ¦--EQ_SUB: = [0/1] {61} - ¦ ¦--expr: 3 [0/0] {63} - ¦ ¦ °--NUM_CONST: 3 [0/0] {62} - ¦ °--')': ) [0/0] {64} - ¦--COMMENT: # do [2/0] {65} - ¦--expr: a <- [1/0] {66} - ¦ ¦--expr: a [0/1] {68} - ¦ ¦ °--SYMBOL: a [0/0] {67} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {69} - ¦ °--expr: funct [0/0] {70} - ¦ ¦--FUNCTION: funct [0/0] {71} - ¦ ¦--'(': ( [0/0] {72} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {73} - ¦ ¦--')': ) [0/1] {74} - ¦ °--expr: x + 1 [0/0] {75} - ¦ ¦--expr: x [0/1] {77} - ¦ ¦ °--SYMBOL: x [0/0] {76} - ¦ ¦--'+': + [0/1] {78} - ¦ °--expr: 1 [0/0] {80} - ¦ °--NUM_CONST: 1 [0/0] {79} - ¦--';': ; [0/0] {81} - ¦--expr: b [0/0] {83} - ¦ °--SYMBOL: b [0/0] {82} - ¦--';': ; [0/0] {84} - ¦--expr: c [0/0] {86} - ¦ °--SYMBOL: c [0/0] {85} - ¦--COMMENT: # don [2/0] {87} - °--expr: a %>% [1/0] {88} - ¦--expr: a [0/1] {91} - ¦ °--SYMBOL: a [0/0] {90} - ¦--SPECIAL-PIPE: %>% [0/2] {92} - ¦--expr: b [1/1] {94} - ¦ °--SYMBOL: b [0/0] {93} - ¦--SPECIAL-PIPE: %>% [0/2] {95} - °--expr: c [1/0] {97} - °--SYMBOL: c [0/0] {96} diff --git a/tests/testthat/scope-AsIs/scope_spaces_line_breaks-in_tree b/tests/testthat/scope-AsIs/scope_spaces_line_breaks-in_tree deleted file mode 100644 index 95f85f205..000000000 --- a/tests/testthat/scope-AsIs/scope_spaces_line_breaks-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 + [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/1] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/1] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a = 3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/scope-AsIs/scope_spaces_tokens-in_tree b/tests/testthat/scope-AsIs/scope_spaces_tokens-in_tree deleted file mode 100644 index c738d5f48..000000000 --- a/tests/testthat/scope-AsIs/scope_spaces_tokens-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 +1 [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 +1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/0] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a = 3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/scope-AsIs/scope_tokens-in_tree b/tests/testthat/scope-AsIs/scope_tokens-in_tree deleted file mode 100644 index 2b1d97fb2..000000000 --- a/tests/testthat/scope-AsIs/scope_tokens-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 + [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/1] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a = 3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/scope-character/scope_indention-in_tree b/tests/testthat/scope-character/scope_indention-in_tree deleted file mode 100644 index 10fda6ca9..000000000 --- a/tests/testthat/scope-character/scope_indention-in_tree +++ /dev/null @@ -1,97 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # not [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1+1+ [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1+1++ [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/0] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/0] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/0] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # not [2/0] {29} - ¦--COMMENT: # FIX [1/0] {30} - ¦--expr: test_ [1/0] {31} - ¦ ¦--expr: test_ [0/0] {33} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {32} - ¦ ¦--'(': ( [0/0] {34} - ¦ ¦--expr: "x" [0/0] {36} - ¦ ¦ °--STR_CONST: "x" [0/0] {35} - ¦ ¦--',': , [0/2] {37} - ¦ ¦--expr: { - [1/0] {38} - ¦ ¦ ¦--'{': { [0/12] {39} - ¦ ¦ ¦--expr: my_te [1/0] {40} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {42} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {41} - ¦ ¦ ¦ ¦--'(': ( [0/0] {43} - ¦ ¦ ¦ ¦--expr: call [0/0] {45} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {44} - ¦ ¦ ¦ °--')': ) [0/0] {46} - ¦ ¦ °--'}': } [1/0] {47} - ¦ °--')': ) [0/0] {48} - ¦--COMMENT: # do [2/0] {49} - ¦--expr_or_assign_or_help: a = 3 [1/0] {50} - ¦ ¦--expr: a [0/1] {52} - ¦ ¦ °--SYMBOL: a [0/0] {51} - ¦ ¦--EQ_ASSIGN: = [0/1] {53} - ¦ °--expr: 3 [0/0] {55} - ¦ °--NUM_CONST: 3 [0/0] {54} - ¦--expr: data_ [1/0] {56} - ¦ ¦--expr: data_ [0/0] {58} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {57} - ¦ ¦--'(': ( [0/0] {59} - ¦ ¦--SYMBOL_SUB: a [0/1] {60} - ¦ ¦--EQ_SUB: = [0/1] {61} - ¦ ¦--expr: 3 [0/0] {63} - ¦ ¦ °--NUM_CONST: 3 [0/0] {62} - ¦ °--')': ) [0/0] {64} - ¦--COMMENT: # do [2/0] {65} - ¦--expr: a <- [1/0] {66} - ¦ ¦--expr: a [0/1] {68} - ¦ ¦ °--SYMBOL: a [0/0] {67} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {69} - ¦ °--expr: funct [0/0] {70} - ¦ ¦--FUNCTION: funct [0/0] {71} - ¦ ¦--'(': ( [0/0] {72} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {73} - ¦ ¦--')': ) [0/1] {74} - ¦ °--expr: x + 1 [0/0] {75} - ¦ ¦--expr: x [0/1] {77} - ¦ ¦ °--SYMBOL: x [0/0] {76} - ¦ ¦--'+': + [0/1] {78} - ¦ °--expr: 1 [0/0] {80} - ¦ °--NUM_CONST: 1 [0/0] {79} - ¦--';': ; [0/0] {81} - ¦--expr: b [0/0] {83} - ¦ °--SYMBOL: b [0/0] {82} - ¦--';': ; [0/0] {84} - ¦--expr: c [0/0] {86} - ¦ °--SYMBOL: c [0/0] {85} - ¦--COMMENT: # don [2/0] {87} - °--expr: a %>% [1/0] {88} - ¦--expr: a [0/1] {91} - ¦ °--SYMBOL: a [0/0] {90} - ¦--SPECIAL-PIPE: %>% [0/2] {92} - ¦--expr: b [1/1] {94} - ¦ °--SYMBOL: b [0/0] {93} - ¦--SPECIAL-PIPE: %>% [0/2] {95} - °--expr: c [1/0] {97} - °--SYMBOL: c [0/0] {96} diff --git a/tests/testthat/scope-character/scope_line_breaks-in_tree b/tests/testthat/scope-character/scope_line_breaks-in_tree deleted file mode 100644 index 2b1d97fb2..000000000 --- a/tests/testthat/scope-character/scope_line_breaks-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 + [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/1] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a = 3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/scope-character/scope_none-in_tree b/tests/testthat/scope-character/scope_none-in_tree deleted file mode 100644 index 3c65a9c14..000000000 --- a/tests/testthat/scope-character/scope_none-in_tree +++ /dev/null @@ -1,159 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: #'thi [0/0] {1} - ¦--COMMENT: #' [1/0] {2} - ¦--COMMENT: #' @p [1/0] {3} - ¦--COMMENT: #' [1/0] {4} - ¦--expr: a<- f [1/0] {5} - ¦ ¦--expr: a [0/0] {7} - ¦ ¦ °--SYMBOL: a [0/0] {6} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {8} - ¦ °--expr: funct [0/0] {9} - ¦ ¦--FUNCTION: funct [0/0] {10} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {12} - ¦ ¦--')': ) [0/0] {13} - ¦ °--expr: { - t [0/0] {14} - ¦ ¦--'{': { [0/2] {15} - ¦ ¦--expr: test_ [1/2] {16} - ¦ ¦ ¦--expr: test_ [0/0] {18} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {17} - ¦ ¦ ¦--'(': ( [0/0] {19} - ¦ ¦ ¦--expr: "I wa [0/0] {21} - ¦ ¦ ¦ °--STR_CONST: "I wa [0/0] {20} - ¦ ¦ ¦--',': , [0/0] {22} - ¦ ¦ ¦--expr: { - [0/5] {23} - ¦ ¦ ¦ ¦--'{': { [0/4] {24} - ¦ ¦ ¦ ¦--expr: out < [1/4] {25} - ¦ ¦ ¦ ¦ ¦--expr: out [0/1] {27} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: out [0/0] {26} - ¦ ¦ ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {28} - ¦ ¦ ¦ ¦ °--expr: c(1,c [0/0] {29} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {31} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {30} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {32} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {34} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {33} - ¦ ¦ ¦ ¦ ¦--',': , [0/0] {35} - ¦ ¦ ¦ ¦ ¦--expr: c( - [0/0] {36} - ¦ ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {38} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {37} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/6] {39} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 +1 [1/4] {40} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/1] {42} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {41} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {43} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {44} - ¦ ¦ ¦ ¦ ¦ °--')': ) [1/0] {46} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {47} - ¦ ¦ ¦ ¦--expr: if (x [1/2] {48} - ¦ ¦ ¦ ¦ ¦--IF: if [0/1] {49} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {50} - ¦ ¦ ¦ ¦ ¦--expr: x > 1 [0/0] {51} - ¦ ¦ ¦ ¦ ¦ ¦--expr: x [0/1] {53} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {52} - ¦ ¦ ¦ ¦ ¦ ¦--GT: > [0/1] {54} - ¦ ¦ ¦ ¦ ¦ °--expr: 10 [0/0] {56} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 10 [0/0] {55} - ¦ ¦ ¦ ¦ ¦--')': ) [0/1] {57} - ¦ ¦ ¦ ¦ °--expr: { - [0/0] {58} - ¦ ¦ ¦ ¦ ¦--'{': { [0/6] {59} - ¦ ¦ ¦ ¦ ¦--expr: for ( [1/4] {60} - ¦ ¦ ¦ ¦ ¦ ¦--FOR: for [0/1] {61} - ¦ ¦ ¦ ¦ ¦ ¦--forcond: (x in [0/1] {62} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {63} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--SYMBOL: x [0/1] {64} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--IN: in [0/1] {65} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 22 [0/0] {67} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 22 [0/0] {66} - ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {68} - ¦ ¦ ¦ ¦ ¦ °--expr: { # F [0/0] {69} - ¦ ¦ ¦ ¦ ¦ ¦--'{': { [0/1] {70} - ¦ ¦ ¦ ¦ ¦ ¦--COMMENT: # FIX [0/8] {71} - ¦ ¦ ¦ ¦ ¦ ¦--expr: prin( [1/6] {72} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: prin [0/0] {74} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: prin [0/0] {73} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {75} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: x [0/0] {77} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {76} - ¦ ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦ ¦ ¦ ¦ °--'}': } [1/0] {79} - ¦ ¦ ¦ ¦ °--'}': } [1/0] {80} - ¦ ¦ ¦ °--'}': } [1/0] {81} - ¦ ¦ °--')': ) [0/0] {82} - ¦ ¦--COMMENT: #we l [1/2] {83} - ¦ ¦--expr: c(lis [1/2] {84} - ¦ ¦ ¦--expr: c [0/0] {86} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {85} - ¦ ¦ ¦--'(': ( [0/0] {87} - ¦ ¦ ¦--expr: list( [0/0] {88} - ¦ ¦ ¦ ¦--expr: list [0/0] {90} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {89} - ¦ ¦ ¦ ¦--'(': ( [0/0] {91} - ¦ ¦ ¦ ¦--expr: x + 2 [0/0] {92} - ¦ ¦ ¦ ¦ ¦--expr: x [0/1] {94} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {93} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {95} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {97} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {96} - ¦ ¦ ¦ °--')': ) [0/0] {98} - ¦ ¦ ¦--',': , [0/4] {99} - ¦ ¦ ¦--expr: c( [1/1] {100} - ¦ ¦ ¦ ¦--expr: c [0/0] {102} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {101} - ¦ ¦ ¦ ¦--'(': ( [0/4] {103} - ¦ ¦ ¦ ¦--expr: c( - [0/3] {104} - ¦ ¦ ¦ ¦ ¦--expr: c [0/0] {106} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {105} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/6] {107} - ¦ ¦ ¦ ¦ ¦--expr: 26 ^ [1/0] {108} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 26 [0/1] {110} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 26 [0/0] {109} - ¦ ¦ ¦ ¦ ¦ ¦--'^': ^ [0/1] {111} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {113} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {112} - ¦ ¦ ¦ ¦ ¦--',': , [0/1] {114} - ¦ ¦ ¦ ¦ ¦--COMMENT: # FIX [0/6] {115} - ¦ ¦ ¦ ¦ ¦--expr: 8 [1/0] {117} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 8 [0/0] {116} - ¦ ¦ ¦ ¦ ¦--',': , [0/6] {118} - ¦ ¦ ¦ ¦ ¦--expr: 7 [1/4] {120} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 7 [0/0] {119} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {121} - ¦ ¦ ¦ °--')': ) [0/0] {122} - ¦ ¦ °--')': ) [0/0] {123} - ¦ ¦--expr: call( [2/0] {124} - ¦ ¦ ¦--expr: call [0/0] {126} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {125} - ¦ ¦ ¦--'(': ( [0/4] {127} - ¦ ¦ ¦--expr: 1 [1/0] {129} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {128} - ¦ ¦ ¦--',': , [0/1] {130} - ¦ ¦ ¦--expr: 2 [0/0] {132} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {131} - ¦ ¦ ¦--',': , [0/4] {133} - ¦ ¦ ¦--expr: 23+In [1/0] {134} - ¦ ¦ ¦ ¦--expr: 23 [0/0] {137} - ¦ ¦ ¦ ¦ °--NUM_CONST: 23 [0/0] {136} - ¦ ¦ ¦ ¦--'+': + [0/0] {138} - ¦ ¦ ¦ ¦--expr: Inf [0/1] {140} - ¦ ¦ ¦ ¦ °--NUM_CONST: Inf [0/0] {139} - ¦ ¦ ¦ ¦--'-': - [0/1] {141} - ¦ ¦ ¦ °--expr: 99 [0/0] {143} - ¦ ¦ ¦ °--NUM_CONST: 99 [0/0] {142} - ¦ ¦ ¦--',': , [0/1] {144} - ¦ ¦ ¦--expr: call( [0/0] {145} - ¦ ¦ ¦ ¦--expr: call [0/0] {147} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {146} - ¦ ¦ ¦ ¦--'(': ( [0/6] {148} - ¦ ¦ ¦ ¦--expr: 16 [1/4] {150} - ¦ ¦ ¦ ¦ °--NUM_CONST: 16 [0/0] {149} - ¦ ¦ ¦ °--')': ) [1/0] {151} - ¦ ¦ °--')': ) [0/0] {152} - ¦ °--'}': } [1/0] {153} - °--COMMENT: # com [1/0] {154} diff --git a/tests/testthat/scope-character/scope_spaces-in_tree b/tests/testthat/scope-character/scope_spaces-in_tree deleted file mode 100644 index 81781740b..000000000 --- a/tests/testthat/scope-character/scope_spaces-in_tree +++ /dev/null @@ -1,25 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a<-fu [0/0] {1} - ¦--expr: a [0/0] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/0] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--')': ) [0/0] {8} - °--expr: { - [0/0] {9} - ¦--'{': { [0/20] {10} - ¦--expr: 1+1 [1/0] {11} - ¦ ¦--expr: 1 [0/0] {13} - ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦--'+': + [0/0] {14} - ¦ °--expr: 1 [0/0] {16} - ¦ °--NUM_CONST: 1 [0/0] {15} - ¦--expr_or_assign_or_help: d=3 [1/4] {17} - ¦ ¦--expr: d [0/0] {19} - ¦ ¦ °--SYMBOL: d [0/0] {18} - ¦ ¦--EQ_ASSIGN: = [0/0] {20} - ¦ °--expr: 3 [0/0] {22} - ¦ °--NUM_CONST: 3 [0/0] {21} - °--'}': } [1/0] {23} diff --git a/tests/testthat/scope-character/scope_tokens-in_tree b/tests/testthat/scope-character/scope_tokens-in_tree deleted file mode 100644 index 2b1d97fb2..000000000 --- a/tests/testthat/scope-character/scope_tokens-in_tree +++ /dev/null @@ -1,96 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # add [0/0] {1} - ¦--expr: if (x [1/0] {2} - ¦ ¦--IF: if [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: x [0/0] {6} - ¦ ¦ °--SYMBOL: x [0/0] {5} - ¦ ¦--')': ) [0/1] {7} - ¦ ¦--expr: {1 + [0/1] {8} - ¦ ¦ ¦--'{': { [0/0] {9} - ¦ ¦ ¦--expr: 1 + 1 [0/0] {10} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {13} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ ¦ ¦--'+': + [0/1] {14} - ¦ ¦ ¦ ¦--expr: 1 [0/1] {16} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {15} - ¦ ¦ ¦ ¦--'+': + [0/1] {17} - ¦ ¦ ¦ °--expr: +1 [0/0] {18} - ¦ ¦ ¦ ¦--'+': + [0/0] {19} - ¦ ¦ ¦ °--expr: 1 [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦ °--'}': } [0/0] {22} - ¦ ¦--ELSE: else [0/1] {23} - ¦ °--expr: {3} [0/0] {24} - ¦ ¦--'{': { [0/0] {25} - ¦ ¦--expr: 3 [0/0] {27} - ¦ ¦ °--NUM_CONST: 3 [0/0] {26} - ¦ °--'}': } [0/0] {28} - ¦--COMMENT: # rem [2/0] {29} - ¦--expr: test_ [1/0] {30} - ¦ ¦--expr: test_ [0/0] {32} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {31} - ¦ ¦--'(': ( [0/0] {33} - ¦ ¦--expr: "x" [0/0] {35} - ¦ ¦ °--STR_CONST: "x" [0/0] {34} - ¦ ¦--',': , [0/10] {36} - ¦ ¦--expr: { - [1/0] {37} - ¦ ¦ ¦--'{': { [0/12] {38} - ¦ ¦ ¦--expr: my_te [1/10] {39} - ¦ ¦ ¦ ¦--expr: my_te [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: my_te [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/0] {42} - ¦ ¦ ¦ ¦--expr: call [0/0] {44} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {43} - ¦ ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦ °--'}': } [1/0] {46} - ¦ °--')': ) [0/0] {47} - ¦--COMMENT: # do [3/0] {48} - ¦--expr_or_assign_or_help: a = 3 [1/0] {49} - ¦ ¦--expr: a [0/1] {51} - ¦ ¦ °--SYMBOL: a [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/1] {52} - ¦ °--expr: 3 [0/0] {54} - ¦ °--NUM_CONST: 3 [0/0] {53} - ¦--expr: data_ [1/0] {55} - ¦ ¦--expr: data_ [0/0] {57} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {56} - ¦ ¦--'(': ( [0/0] {58} - ¦ ¦--SYMBOL_SUB: a [0/1] {59} - ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ °--')': ) [0/0] {63} - ¦--COMMENT: # do [2/0] {64} - ¦--expr: a <- [1/0] {65} - ¦ ¦--expr: a [0/1] {67} - ¦ ¦ °--SYMBOL: a [0/0] {66} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {68} - ¦ °--expr: funct [0/0] {69} - ¦ ¦--FUNCTION: funct [0/0] {70} - ¦ ¦--'(': ( [0/0] {71} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ °--expr: x + 1 [0/0] {74} - ¦ ¦--expr: x [0/1] {76} - ¦ ¦ °--SYMBOL: x [0/0] {75} - ¦ ¦--'+': + [0/1] {77} - ¦ °--expr: 1 [0/0] {79} - ¦ °--NUM_CONST: 1 [0/0] {78} - ¦--';': ; [0/0] {80} - ¦--expr: b [0/0] {82} - ¦ °--SYMBOL: b [0/0] {81} - ¦--';': ; [0/0] {83} - ¦--expr: c [0/0] {85} - ¦ °--SYMBOL: c [0/0] {84} - ¦--COMMENT: # don [2/0] {86} - °--expr: a %>% [1/0] {87} - ¦--expr: a [0/1] {90} - ¦ °--SYMBOL: a [0/0] {89} - ¦--SPECIAL-PIPE: %>% [0/2] {91} - ¦--expr: b [1/1] {93} - ¦ °--SYMBOL: b [0/0] {92} - ¦--SPECIAL-PIPE: %>% [0/2] {94} - °--expr: c [1/0] {96} - °--SYMBOL: c [0/0] {95} diff --git a/tests/testthat/serialize_tests/correct-in_tree b/tests/testthat/serialize_tests/correct-in_tree deleted file mode 100644 index be3886955..000000000 --- a/tests/testthat/serialize_tests/correct-in_tree +++ /dev/null @@ -1,7 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1 [0/0] {2} - ¦ °--NUM_CONST: 1 [0/0] {1} - ¦--expr: 2 [1/0] {4} - ¦ °--NUM_CONST: 2 [0/0] {3} - °--expr: 3 [1/0] {6} - °--NUM_CONST: 3 [0/0] {5} diff --git a/tests/testthat/serialize_tests/k2-another-in_file-in_tree b/tests/testthat/serialize_tests/k2-another-in_file-in_tree deleted file mode 100644 index 0e6aa6847..000000000 --- a/tests/testthat/serialize_tests/k2-another-in_file-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: [0/0] {1} - ¦--expr: [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: [0/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--',': , [0/5] {7} - ¦--expr: [1/0] {8} - ¦ ¦--expr: [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {9} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--expr: [0/0] {12} - ¦ ¦ ¦--expr: [0/0] {14} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {13} - ¦ ¦ ¦--'(': ( [0/0] {15} - ¦ ¦ ¦--expr: [0/0] {17} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {16} - ¦ ¦ ¦--',': , [0/1] {18} - ¦ ¦ ¦--expr: [0/0] {20} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {19} - ¦ ¦ ¦--',': , [0/8] {21} - ¦ ¦ ¦--expr: [0/0] {23} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {22} - ¦ ¦ °--')': ) [0/0] {24} - ¦ ¦--',': , [0/11] {25} - ¦ ¦--expr: [1/0] {27} - ¦ ¦ °--NUM_CONST: 4 [0/0] {26} - ¦ °--')': ) [0/0] {28} - °--')': ) [0/0] {29} diff --git a/tests/testthat/serialize_tests/k2-in_tree b/tests/testthat/serialize_tests/k2-in_tree deleted file mode 100644 index aa6b6df0c..000000000 --- a/tests/testthat/serialize_tests/k2-in_tree +++ /dev/null @@ -1,30 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: [0/0] {1} - ¦--expr: [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--expr: [0/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--',': , [0/0] {7} - ¦--expr: [1/0] {8} - ¦ ¦--expr: [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call2 [0/0] {9} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--expr: [0/0] {12} - ¦ ¦ ¦--expr: [0/0] {14} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {13} - ¦ ¦ ¦--'(': ( [0/0] {15} - ¦ ¦ ¦--expr: [0/0] {17} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {16} - ¦ ¦ ¦--',': , [0/12] {18} - ¦ ¦ ¦--expr: [0/0] {20} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {19} - ¦ ¦ ¦--',': , [0/1] {21} - ¦ ¦ ¦--expr: [0/0] {23} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {22} - ¦ ¦ °--')': ) [0/0] {24} - ¦ ¦--',': , [0/2] {25} - ¦ ¦--expr: [1/0] {27} - ¦ ¦ °--NUM_CONST: 4 [0/0] {26} - ¦ °--')': ) [0/0] {28} - °--')': ) [0/0] {29} diff --git a/tests/testthat/serialize_tests/k3-in_tree b/tests/testthat/serialize_tests/k3-in_tree deleted file mode 100644 index 5f6cd8cf6..000000000 --- a/tests/testthat/serialize_tests/k3-in_tree +++ /dev/null @@ -1,6 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: call( [0/0] {1} - ¦--expr: call [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦--'(': ( [0/0] {4} - °--')': ) [0/0] {5} diff --git a/tests/testthat/spacing/bang_bang_spacing-in_tree b/tests/testthat/spacing/bang_bang_spacing-in_tree deleted file mode 100644 index d7f85e501..000000000 --- a/tests/testthat/spacing/bang_bang_spacing-in_tree +++ /dev/null @@ -1,60 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a(! ! [0/0] {1} - ¦ ¦--expr: a [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: ! !!x [0/0] {5} - ¦ ¦ ¦--'!': ! [0/1] {6} - ¦ ¦ °--expr: !!x [0/0] {7} - ¦ ¦ ¦--'!': ! [0/0] {8} - ¦ ¦ °--expr: !x [0/0] {9} - ¦ ¦ ¦--'!': ! [0/0] {10} - ¦ ¦ °--expr: x [0/0] {12} - ¦ ¦ °--SYMBOL: x [0/0] {11} - ¦ °--')': ) [0/0] {13} - ¦--expr: k(!!g [1/0] {14} - ¦ ¦--expr: k [0/0] {16} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: k [0/0] {15} - ¦ ¦--'(': ( [0/0] {17} - ¦ ¦--expr: !!g [0/0] {18} - ¦ ¦ ¦--'!': ! [0/0] {19} - ¦ ¦ °--expr: !g [0/0] {20} - ¦ ¦ ¦--'!': ! [0/0] {21} - ¦ ¦ °--expr: g [0/0] {23} - ¦ ¦ °--SYMBOL: g [0/0] {22} - ¦ °--')': ) [0/0] {24} - ¦--expr: a(!!! [1/0] {25} - ¦ ¦--expr: a [0/0] {27} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {26} - ¦ ¦--'(': ( [0/0] {28} - ¦ ¦--expr: !!!x [0/0] {29} - ¦ ¦ ¦--'!': ! [0/0] {30} - ¦ ¦ °--expr: !!x [0/0] {31} - ¦ ¦ ¦--'!': ! [0/0] {32} - ¦ ¦ °--expr: !x [0/0] {33} - ¦ ¦ ¦--'!': ! [0/0] {34} - ¦ ¦ °--expr: x [0/0] {36} - ¦ ¦ °--SYMBOL: x [0/0] {35} - ¦ °--')': ) [0/0] {37} - ¦--expr: a(!! [1/0] {38} - ¦ ¦--expr: a [0/0] {40} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {39} - ¦ ¦--'(': ( [0/0] {41} - ¦ ¦--expr: !! !x [0/0] {42} - ¦ ¦ ¦--'!': ! [0/0] {43} - ¦ ¦ °--expr: ! !x [0/0] {44} - ¦ ¦ ¦--'!': ! [0/1] {45} - ¦ ¦ °--expr: !x [0/0] {46} - ¦ ¦ ¦--'!': ! [0/0] {47} - ¦ ¦ °--expr: x [0/0] {49} - ¦ ¦ °--SYMBOL: x [0/0] {48} - ¦ °--')': ) [0/0] {50} - °--expr: a(!b) [1/0] {51} - ¦--expr: a [0/0] {53} - ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {52} - ¦--'(': ( [0/0] {54} - ¦--expr: !b [0/0] {55} - ¦ ¦--'!': ! [0/0] {56} - ¦ °--expr: b [0/0] {58} - ¦ °--SYMBOL: b [0/0] {57} - °--')': ) [0/0] {59} diff --git a/tests/testthat/spacing/colons-in_tree b/tests/testthat/spacing/colons-in_tree deleted file mode 100644 index 74758f9da..000000000 --- a/tests/testthat/spacing/colons-in_tree +++ /dev/null @@ -1,45 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1 : [0/0] {1} - ¦ ¦--expr: 1 [0/1] {3} - ¦ ¦ °--NUM_CONST: 1 [0/0] {2} - ¦ ¦--':': : [0/2] {4} - ¦ °--expr: 4 [0/0] {6} - ¦ °--NUM_CONST: 4 [0/0] {5} - ¦--expr: 1:4 [2/0] {7} - ¦ ¦--expr: 1 [0/0] {9} - ¦ ¦ °--NUM_CONST: 1 [0/0] {8} - ¦ ¦--':': : [0/0] {10} - ¦ °--expr: 4 [0/0] {12} - ¦ °--NUM_CONST: 4 [0/0] {11} - ¦--expr: base [2/0] {13} - ¦ ¦--expr: base [0/0] {14} - ¦ ¦ ¦--SYMBOL_PACKAGE: base [0/1] {15} - ¦ ¦ ¦--NS_GET: :: [0/1] {16} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ °--')': ) [0/0] {19} - ¦--expr: base: [2/0] {20} - ¦ ¦--expr: base: [0/0] {21} - ¦ ¦ ¦--SYMBOL_PACKAGE: base [0/0] {22} - ¦ ¦ ¦--NS_GET: :: [0/0] {23} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {24} - ¦ ¦--'(': ( [0/0] {25} - ¦ °--')': ) [0/0] {26} - ¦--expr: xyz:: [2/0] {27} - ¦ ¦--expr: xyz:: [0/0] {28} - ¦ ¦ ¦--SYMBOL_PACKAGE: xyz [0/0] {29} - ¦ ¦ ¦--NS_GET_INT: ::: [0/1] {30} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: xy [0/0] {31} - ¦ ¦--'(': ( [0/0] {32} - ¦ ¦--expr: 3 [0/0] {34} - ¦ ¦ °--NUM_CONST: 3 [0/0] {33} - ¦ °--')': ) [0/0] {35} - °--expr: xyz:: [2/0] {36} - ¦--expr: xyz:: [0/0] {37} - ¦ ¦--SYMBOL_PACKAGE: xyz [0/0] {38} - ¦ ¦--NS_GET_INT: ::: [0/0] {39} - ¦ °--SYMBOL_FUNCTION_CALL: xy [0/0] {40} - ¦--'(': ( [0/0] {41} - ¦--expr: 3 [0/0] {43} - ¦ °--NUM_CONST: 3 [0/0] {42} - °--')': ) [0/0] {44} diff --git a/tests/testthat/spacing/comments-in_tree b/tests/testthat/spacing/comments-in_tree deleted file mode 100644 index 78c967bae..000000000 --- a/tests/testthat/spacing/comments-in_tree +++ /dev/null @@ -1,13 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a [0/1] {2} - ¦ °--SYMBOL: a [0/0] {1} - ¦--COMMENT: # com [0/0] {3} - ¦--expr: b [1/1] {5} - ¦ °--SYMBOL: b [0/0] {4} - ¦--COMMENT: #comm [0/0] {6} - ¦--expr: c [1/4] {8} - ¦ °--SYMBOL: c [0/0] {7} - ¦--COMMENT: # com [0/0] {9} - ¦--expr: dejk [1/1] {11} - ¦ °--SYMBOL: dejk [0/0] {10} - °--COMMENT: #comm [0/0] {12} diff --git a/tests/testthat/spacing/round_curly-in_tree b/tests/testthat/spacing/round_curly-in_tree deleted file mode 100644 index a54f8736a..000000000 --- a/tests/testthat/spacing/round_curly-in_tree +++ /dev/null @@ -1,71 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a <- [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦ ¦--')': ) [0/0] {9} - ¦ °--expr: { -} [0/0] {10} - ¦ ¦--'{': { [0/0] {11} - ¦ °--'}': } [1/0] {12} - ¦--expr: if(a) [2/0] {13} - ¦ ¦--IF: if [0/0] {14} - ¦ ¦--'(': ( [0/0] {15} - ¦ ¦--expr: a [0/0] {17} - ¦ ¦ °--SYMBOL: a [0/0] {16} - ¦ ¦--')': ) [0/0] {18} - ¦ °--expr: { - 3 [0/0] {19} - ¦ ¦--'{': { [0/2] {20} - ¦ ¦--expr: 3 [1/0] {22} - ¦ ¦ °--NUM_CONST: 3 [0/0] {21} - ¦ °--'}': } [1/0] {23} - ¦--expr: for(i [2/0] {24} - ¦ ¦--FOR: for [0/0] {25} - ¦ ¦--forcond: (i in [0/0] {26} - ¦ ¦ ¦--'(': ( [0/0] {27} - ¦ ¦ ¦--SYMBOL: i [0/1] {28} - ¦ ¦ ¦--IN: in [0/1] {29} - ¦ ¦ ¦--expr: 10 [0/0] {31} - ¦ ¦ ¦ °--NUM_CONST: 10 [0/0] {30} - ¦ ¦ °--')': ) [0/0] {32} - ¦ °--expr: { - i [0/0] {33} - ¦ ¦--'{': { [0/2] {34} - ¦ ¦--expr: i [1/0] {36} - ¦ ¦ °--SYMBOL: i [0/0] {35} - ¦ °--'}': } [1/0] {37} - °--expr: if(x) [2/0] {38} - ¦--IF: if [0/0] {39} - ¦--'(': ( [0/0] {40} - ¦--expr: x [0/0] {42} - ¦ °--SYMBOL: x [0/0] {41} - ¦--')': ) [0/0] {43} - ¦--expr: { - y [0/0] {44} - ¦ ¦--'{': { [0/2] {45} - ¦ ¦--expr: y [1/0] {47} - ¦ ¦ °--SYMBOL: y [0/0] {46} - ¦ °--'}': } [1/0] {48} - ¦--ELSE: else [0/1] {49} - °--expr: if(x) [0/0] {50} - ¦--IF: if [0/0] {51} - ¦--'(': ( [0/0] {52} - ¦--expr: x [0/0] {54} - ¦ °--SYMBOL: x [0/0] {53} - ¦--')': ) [0/0] {55} - ¦--expr: { - x [0/1] {56} - ¦ ¦--'{': { [0/2] {57} - ¦ ¦--expr: x [1/0] {59} - ¦ ¦ °--SYMBOL: x [0/0] {58} - ¦ °--'}': } [1/0] {60} - ¦--ELSE: else [0/0] {61} - °--expr: { -} [0/0] {62} - ¦--'{': { [0/0] {63} - °--'}': } [1/0] {64} diff --git a/tests/testthat/spacing/spacing-square-in_tree b/tests/testthat/spacing/spacing-square-in_tree deleted file mode 100644 index c712ee813..000000000 --- a/tests/testthat/spacing/spacing-square-in_tree +++ /dev/null @@ -1,76 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a[[2] [0/0] {1} - ¦ ¦--expr: a [0/0] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--LBB: [[ [0/0] {4} - ¦ ¦--expr: 2 [0/0] {6} - ¦ ¦ °--NUM_CONST: 2 [0/0] {5} - ¦ ¦--']': ] [0/0] {7} - ¦ °--']': ] [0/0] {8} - ¦--expr: a[[2 [1/0] {9} - ¦ ¦--expr: a [0/0] {11} - ¦ ¦ °--SYMBOL: a [0/0] {10} - ¦ ¦--LBB: [[ [0/0] {12} - ¦ ¦--expr: 2 [0/1] {14} - ¦ ¦ °--NUM_CONST: 2 [0/0] {13} - ¦ ¦--']': ] [0/0] {15} - ¦ °--']': ] [0/0] {16} - ¦--expr: a[[ 2 [2/0] {17} - ¦ ¦--expr: a [0/0] {19} - ¦ ¦ °--SYMBOL: a [0/0] {18} - ¦ ¦--LBB: [[ [0/1] {20} - ¦ ¦--expr: 2 [0/0] {22} - ¦ ¦ °--NUM_CONST: 2 [0/0] {21} - ¦ ¦--']': ] [0/0] {23} - ¦ °--']': ] [0/0] {24} - ¦--expr: a[[ 2 [2/0] {25} - ¦ ¦--expr: a [0/0] {27} - ¦ ¦ °--SYMBOL: a [0/0] {26} - ¦ ¦--LBB: [[ [0/1] {28} - ¦ ¦--expr: 2 [0/1] {30} - ¦ ¦ °--NUM_CONST: 2 [0/0] {29} - ¦ ¦--']': ] [0/0] {31} - ¦ °--']': ] [0/0] {32} - ¦--expr: a[2] [3/0] {33} - ¦ ¦--expr: a [0/0] {35} - ¦ ¦ °--SYMBOL: a [0/0] {34} - ¦ ¦--'[': [ [0/0] {36} - ¦ ¦--expr: 2 [0/0] {38} - ¦ ¦ °--NUM_CONST: 2 [0/0] {37} - ¦ °--']': ] [0/0] {39} - ¦--expr: a[2 ] [1/0] {40} - ¦ ¦--expr: a [0/0] {42} - ¦ ¦ °--SYMBOL: a [0/0] {41} - ¦ ¦--'[': [ [0/0] {43} - ¦ ¦--expr: 2 [0/1] {45} - ¦ ¦ °--NUM_CONST: 2 [0/0] {44} - ¦ °--']': ] [0/0] {46} - ¦--expr: a[ 2] [2/0] {47} - ¦ ¦--expr: a [0/0] {49} - ¦ ¦ °--SYMBOL: a [0/0] {48} - ¦ ¦--'[': [ [0/1] {50} - ¦ ¦--expr: 2 [0/0] {52} - ¦ ¦ °--NUM_CONST: 2 [0/0] {51} - ¦ °--']': ] [0/0] {53} - ¦--expr: a[ 2 [2/0] {54} - ¦ ¦--expr: a [0/0] {56} - ¦ ¦ °--SYMBOL: a [0/0] {55} - ¦ ¦--'[': [ [0/1] {57} - ¦ ¦--expr: 2 [0/1] {59} - ¦ ¦ °--NUM_CONST: 2 [0/0] {58} - ¦ °--']': ] [0/0] {60} - ¦--expr: a [[2 [3/0] {61} - ¦ ¦--expr: a [0/1] {63} - ¦ ¦ °--SYMBOL: a [0/0] {62} - ¦ ¦--LBB: [[ [0/0] {64} - ¦ ¦--expr: 2 [0/0] {66} - ¦ ¦ °--NUM_CONST: 2 [0/0] {65} - ¦ ¦--']': ] [0/0] {67} - ¦ °--']': ] [0/0] {68} - °--expr: a [1] [1/0] {69} - ¦--expr: a [0/1] {71} - ¦ °--SYMBOL: a [0/0] {70} - ¦--'[': [ [0/0] {72} - ¦--expr: 1 [0/0] {74} - ¦ °--NUM_CONST: 1 [0/0] {73} - °--']': ] [0/0] {75} diff --git a/tests/testthat/spacing/spacing-tilde-in_tree b/tests/testthat/spacing/spacing-tilde-in_tree deleted file mode 100644 index b8ac310af..000000000 --- a/tests/testthat/spacing/spacing-tilde-in_tree +++ /dev/null @@ -1,57 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a~b [0/0] {1} - ¦ ¦--expr: a [0/0] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--'~': ~ [0/0] {4} - ¦ °--expr: b [0/0] {6} - ¦ °--SYMBOL: b [0/0] {5} - ¦--expr: ~b [1/0] {7} - ¦ ¦--'~': ~ [0/0] {8} - ¦ °--expr: b [0/0] {10} - ¦ °--SYMBOL: b [0/0] {9} - ¦--expr: ~b+ c [1/0] {11} - ¦ ¦--'~': ~ [0/0] {12} - ¦ °--expr: b+ c [0/0] {13} - ¦ ¦--expr: b [0/0] {15} - ¦ ¦ °--SYMBOL: b [0/0] {14} - ¦ ¦--'+': + [0/1] {16} - ¦ °--expr: c [0/0] {18} - ¦ °--SYMBOL: c [0/0] {17} - ¦--expr: a + b [1/0] {19} - ¦ ¦--expr: a + b [0/1] {20} - ¦ ¦ ¦--expr: a [0/1] {22} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {21} - ¦ ¦ ¦--'+': + [0/1] {23} - ¦ ¦ °--expr: b [0/0] {25} - ¦ ¦ °--SYMBOL: b [0/0] {24} - ¦ ¦--'~': ~ [0/0] {26} - ¦ °--expr: c [0/0] {28} - ¦ °--SYMBOL: c [0/0] {27} - ¦--expr: a ~b [2/1] {29} - ¦ ¦--expr: a [0/2] {31} - ¦ ¦ °--SYMBOL: a [0/0] {30} - ¦ ¦--'~': ~ [0/0] {32} - ¦ °--expr: b [0/0] {34} - ¦ °--SYMBOL: b [0/0] {33} - ¦--expr: ~b [1/0] {35} - ¦ ¦--'~': ~ [0/0] {36} - ¦ °--expr: b [0/0] {38} - ¦ °--SYMBOL: b [0/0] {37} - ¦--expr: ~ b+ [1/0] {39} - ¦ ¦--'~': ~ [0/2] {40} - ¦ °--expr: b+c [0/0] {41} - ¦ ¦--expr: b [0/0] {43} - ¦ ¦ °--SYMBOL: b [0/0] {42} - ¦ ¦--'+': + [0/0] {44} - ¦ °--expr: c [0/0] {46} - ¦ °--SYMBOL: c [0/0] {45} - °--expr: a + b [1/0] {47} - ¦--expr: a + b [0/0] {48} - ¦ ¦--expr: a [0/1] {50} - ¦ ¦ °--SYMBOL: a [0/0] {49} - ¦ ¦--'+': + [0/1] {51} - ¦ °--expr: b [0/0] {53} - ¦ °--SYMBOL: b [0/0] {52} - ¦--'~': ~ [0/2] {54} - °--expr: c [0/0] {56} - °--SYMBOL: c [0/0] {55} diff --git a/tests/testthat/spacing/spacing_comma-in_tree b/tests/testthat/spacing/spacing_comma-in_tree deleted file mode 100644 index 1276d7301..000000000 --- a/tests/testthat/spacing/spacing_comma-in_tree +++ /dev/null @@ -1,20 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: c( [0/0] {1} - ¦--expr: c [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦--'(': ( [0/4] {4} - ¦--expr: 1 [0/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--',': , [0/7] {7} - ¦--expr: 16 [0/4] {9} - ¦ °--NUM_CONST: 16 [0/0] {8} - ¦--',': , [0/1] {10} - ¦--expr: 333 [0/1] {12} - ¦ °--NUM_CONST: 333 [0/0] {11} - ¦--',': , [0/1] {13} - ¦--expr: 33 [0/1] {15} - ¦ °--NUM_CONST: 33 [0/0] {14} - ¦--',': , [0/2] {16} - ¦--expr: 1 [0/0] {18} - ¦ °--NUM_CONST: 1 [0/0] {17} - °--')': ) [0/0] {19} diff --git a/tests/testthat/spacing/spacing_comma2-in_tree b/tests/testthat/spacing/spacing_comma2-in_tree deleted file mode 100644 index 1b7af56ef..000000000 --- a/tests/testthat/spacing/spacing_comma2-in_tree +++ /dev/null @@ -1,23 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: arg [0/1] {6} - ¦ ¦ °--SYMBOL: arg [0/0] {5} - ¦ ¦--',': , [0/0] {7} - ¦ ¦--',': , [0/0] {8} - ¦ ¦--expr: more_ [0/0] {10} - ¦ ¦ °--SYMBOL: more_ [0/0] {9} - ¦ °--')': ) [0/0] {11} - °--expr: a[ , [1/0] {12} - ¦--expr: a [0/0] {14} - ¦ °--SYMBOL: a [0/0] {13} - ¦--'[': [ [0/1] {15} - ¦--',': , [0/1] {16} - ¦--',': , [0/1] {17} - ¦--SYMBOL_SUB: drop [0/1] {18} - ¦--EQ_SUB: = [0/1] {19} - ¦--expr: FALSE [0/0] {21} - ¦ °--NUM_CONST: FALSE [0/0] {20} - °--']': ] [0/0] {22} diff --git a/tests/testthat/spacing/spacing_function-in_tree b/tests/testthat/spacing/spacing_function-in_tree deleted file mode 100644 index bebe6be90..000000000 --- a/tests/testthat/spacing/spacing_function-in_tree +++ /dev/null @@ -1,20 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: funct [0/0] {1} - ¦--FUNCTION: funct [0/2] {2} - ¦--'(': ( [0/0] {3} - ¦--SYMBOL_FORMALS: x [0/0] {4} - ¦--',': , [0/1] {5} - ¦--SYMBOL_FORMALS: y [0/0] {6} - ¦--',': , [0/1] {7} - ¦--SYMBOL_FORMALS: z [0/0] {8} - ¦--')': ) [0/1] {9} - °--expr: { - 3 [0/0] {10} - ¦--'{': { [0/2] {11} - ¦--expr: 3 + 1 [1/0] {12} - ¦ ¦--expr: 3 [0/1] {14} - ¦ ¦ °--NUM_CONST: 3 [0/0] {13} - ¦ ¦--'+': + [0/1] {15} - ¦ °--expr: 1 [0/0] {17} - ¦ °--NUM_CONST: 1 [0/0] {16} - °--'}': } [1/0] {18} diff --git a/tests/testthat/spacing/spacing_if-in_tree b/tests/testthat/spacing/spacing_if-in_tree deleted file mode 100644 index 4e4325d2e..000000000 --- a/tests/testthat/spacing/spacing_if-in_tree +++ /dev/null @@ -1,12 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: if(TR [0/0] {1} - ¦--IF: if [0/0] {2} - ¦--'(': ( [0/0] {3} - ¦--expr: TRUE [0/0] {5} - ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦--')': ) [0/1] {6} - ¦--expr: x [0/1] {8} - ¦ °--SYMBOL: x [0/0] {7} - ¦--ELSE: else [0/1] {9} - °--expr: y [0/0] {11} - °--SYMBOL: y [0/0] {10} diff --git a/tests/testthat/spacing/spacing_in-in_tree b/tests/testthat/spacing/spacing_in-in_tree deleted file mode 100644 index 380ead73e..000000000 --- a/tests/testthat/spacing/spacing_in-in_tree +++ /dev/null @@ -1,12 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: for ( [0/0] {1} - ¦--FOR: for [0/1] {2} - ¦--forcond: (i [0/1] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--SYMBOL: i [0/5] {5} - ¦ ¦--IN: in [0/5] {6} - ¦ ¦--expr: 3 [0/0] {8} - ¦ ¦ °--NUM_CONST: 3 [0/0] {7} - ¦ °--')': ) [0/0] {9} - °--expr: 3 [0/0] {11} - °--NUM_CONST: 3 [0/0] {10} diff --git a/tests/testthat/start_line/comment-in_tree b/tests/testthat/start_line/comment-in_tree deleted file mode 100644 index 32d1dfd9d..000000000 --- a/tests/testthat/start_line/comment-in_tree +++ /dev/null @@ -1,17 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # a c [0/0] {1} - °--expr: a <- [1/0] {2} - ¦--expr: a [0/1] {4} - ¦ °--SYMBOL: a [0/0] {3} - ¦--LEFT_ASSIGN: <- [0/1] {5} - °--expr: funct [0/0] {6} - ¦--FUNCTION: funct [0/0] {7} - ¦--'(': ( [0/0] {8} - ¦--SYMBOL_FORMALS: x [0/0] {9} - ¦--')': ) [0/1] {10} - °--expr: { - x [0/0] {11} - ¦--'{': { [0/2] {12} - ¦--expr: x [1/0] {14} - ¦ °--SYMBOL: x [0/0] {13} - °--'}': } [1/0] {15} diff --git a/tests/testthat/start_line/no_comment-in_tree b/tests/testthat/start_line/no_comment-in_tree deleted file mode 100644 index d10990f55..000000000 --- a/tests/testthat/start_line/no_comment-in_tree +++ /dev/null @@ -1,16 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦--')': ) [0/1] {9} - °--expr: { - x [0/0] {10} - ¦--'{': { [0/2] {11} - ¦--expr: x [1/0] {13} - ¦ °--SYMBOL: x [0/0] {12} - °--'}': } [1/0] {14} diff --git a/tests/testthat/strict/eof-in_tree b/tests/testthat/strict/eof-in_tree deleted file mode 100644 index a95a7929c..000000000 --- a/tests/testthat/strict/eof-in_tree +++ /dev/null @@ -1,3 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: blabl [0/0] {2} - °--SYMBOL: blabl [0/0] {1} diff --git a/tests/testthat/strict/eol-in_tree b/tests/testthat/strict/eol-in_tree deleted file mode 100644 index fd1fd103d..000000000 --- a/tests/testthat/strict/eol-in_tree +++ /dev/null @@ -1,9 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: a() [0/0] {1} - ¦ ¦--expr: a [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ °--')': ) [0/0] {5} - ¦--expr: b [1/1] {7} - ¦ °--SYMBOL: b [0/0] {6} - °--COMMENT: # com [0/0] {8} diff --git a/tests/testthat/strict/non_strict-in_tree b/tests/testthat/strict/non_strict-in_tree deleted file mode 100644 index 2caa97471..000000000 --- a/tests/testthat/strict/non_strict-in_tree +++ /dev/null @@ -1,763 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: test [0/0] {1} - ¦ ¦--expr: test [0/1] {3} - ¦ ¦ °--SYMBOL: test [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--')': ) [0/1] {8} - ¦ °--expr: { - " [0/0] {9} - ¦ ¦--'{': { [0/2] {10} - ¦ ¦--expr: "Doub [1/2] {12} - ¦ ¦ °--STR_CONST: "Doub [0/0] {11} - ¦ ¦--expr: 'Sing [1/2] {14} - ¦ ¦ °--STR_CONST: 'Sing [0/0] {13} - ¦ ¦--expr: 'even [1/2] {16} - ¦ ¦ °--STR_CONST: 'even [0/0] {15} - ¦ ¦--expr: 'but [1/2] {18} - ¦ ¦ °--STR_CONST: 'but [0/0] {17} - ¦ ¦--expr: "mult [2/2] {20} - ¦ ¦ °--STR_CONST: "mult [0/0] {19} - ¦ ¦--expr: 'That [2/2] {22} - ¦ ¦ °--STR_CONST: 'That [0/0] {21} - ¦ ¦--expr: 'stri [2/2] {24} - ¦ ¦ °--STR_CONST: 'stri [0/0] {23} - ¦ ¦--expr: '\\' [2/2] {26} - ¦ ¦ °--STR_CONST: '\\' [0/0] {25} - ¦ ¦--expr: '\\\' [1/2] {28} - ¦ ¦ °--STR_CONST: '\\\' [0/0] {27} - ¦ ¦--expr: '\\\\ [1/2] {30} - ¦ ¦ °--STR_CONST: '\\\\ [0/0] {29} - ¦ ¦--expr: '\\\\ [1/2] {32} - ¦ ¦ °--STR_CONST: '\\\\ [0/0] {31} - ¦ ¦--expr: '\'\\ [1/2] {34} - ¦ ¦ °--STR_CONST: '\'\\ [0/0] {33} - ¦ ¦--COMMENT: # Com [2/2] {35} - ¦ ¦--expr: funct [2/2] {36} - ¦ ¦ ¦--expr: funct [0/0] {38} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {37} - ¦ ¦ ¦--'(': ( [0/0] {39} - ¦ ¦ ¦--SYMBOL_SUB: get_s [0/0] {40} - ¦ ¦ ¦--EQ_SUB: = [0/0] {41} - ¦ ¦ ¦--expr: aroun [0/0] {43} - ¦ ¦ ¦ °--SYMBOL: aroun [0/0] {42} - ¦ ¦ °--')': ) [0/0] {44} - ¦ ¦--expr: no_sp [2/2] {45} - ¦ ¦ ¦--expr: no_sp [0/0] {47} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: no_sp [0/0] {46} - ¦ ¦ ¦--'(': ( [0/1] {48} - ¦ ¦ ¦--expr: after [0/0] {49} - ¦ ¦ ¦ ¦--expr: after [0/0] {51} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: after [0/0] {50} - ¦ ¦ ¦ ¦--'(': ( [0/1] {52} - ¦ ¦ ¦ °--')': ) [0/0] {53} - ¦ ¦ ¦--',': , [0/1] {54} - ¦ ¦ ¦--expr: paren [0/0] {55} - ¦ ¦ ¦ ¦--expr: paren [0/0] {57} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paren [0/0] {56} - ¦ ¦ ¦ ¦--'(': ( [0/1] {58} - ¦ ¦ ¦ ¦--expr: (1 + [0/0] {59} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {60} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [0/0] {61} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {63} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {62} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {64} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {66} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {65} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {67} - ¦ ¦ ¦ °--')': ) [0/0] {68} - ¦ ¦ °--')': ) [0/0] {69} - ¦ ¦--expr: no_sp [1/2] {70} - ¦ ¦ ¦--expr: no_sp [0/1] {72} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: no_sp [0/0] {71} - ¦ ¦ ¦--'(': ( [0/0] {73} - ¦ ¦ ¦--expr: befor [0/0] {74} - ¦ ¦ ¦ ¦--expr: befor [0/1] {76} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: befor [0/0] {75} - ¦ ¦ ¦ ¦--'(': ( [0/0] {77} - ¦ ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦ ¦--',': , [0/1] {79} - ¦ ¦ ¦--expr: paren [0/0] {80} - ¦ ¦ ¦ ¦--expr: paren [0/1] {82} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paren [0/0] {81} - ¦ ¦ ¦ ¦--'(': ( [0/1] {83} - ¦ ¦ ¦ ¦--expr: (1 + [0/0] {84} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {85} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [0/0] {86} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {88} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {87} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {89} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {91} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {90} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {92} - ¦ ¦ ¦ °--')': ) [0/0] {93} - ¦ ¦ °--')': ) [0/0] {94} - ¦ ¦--expr: no_sp [1/2] {95} - ¦ ¦ ¦--expr: no_sp [0/0] {97} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: no_sp [0/0] {96} - ¦ ¦ ¦--'(': ( [0/0] {98} - ¦ ¦ ¦--expr: befor [0/0] {99} - ¦ ¦ ¦ ¦--expr: befor [0/0] {101} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: befor [0/0] {100} - ¦ ¦ ¦ ¦--'(': ( [0/0] {102} - ¦ ¦ ¦ ¦--expr: closi [0/1] {104} - ¦ ¦ ¦ ¦ °--SYMBOL: closi [0/0] {103} - ¦ ¦ ¦ °--')': ) [0/0] {105} - ¦ ¦ ¦--',': , [0/1] {106} - ¦ ¦ ¦--expr: paren [0/1] {107} - ¦ ¦ ¦ ¦--expr: paren [0/0] {109} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paren [0/0] {108} - ¦ ¦ ¦ ¦--'(': ( [0/0] {110} - ¦ ¦ ¦ ¦--expr: (1 + [0/1] {111} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {112} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [0/0] {113} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {115} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {114} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {116} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {118} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {117} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {119} - ¦ ¦ ¦ °--')': ) [0/0] {120} - ¦ ¦ °--')': ) [0/0] {121} - ¦ ¦--expr: multi [1/2] {122} - ¦ ¦ ¦--expr: multi [0/0] {124} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: multi [0/0] {123} - ¦ ¦ ¦--'(': ( [0/4] {125} - ¦ ¦ ¦--expr: line [1/0] {127} - ¦ ¦ ¦ °--SYMBOL: line [0/0] {126} - ¦ ¦ ¦--',': , [0/4] {128} - ¦ ¦ ¦--expr: call [1/2] {130} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {129} - ¦ ¦ °--')': ) [1/0] {131} - ¦ ¦--expr: multi [1/2] {132} - ¦ ¦ ¦--expr: multi [0/0] {134} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: multi [0/0] {133} - ¦ ¦ ¦--'(': ( [0/2] {135} - ¦ ¦ °--')': ) [1/0] {136} - ¦ ¦--expr: one_s [2/2] {137} - ¦ ¦ ¦--expr: one_s [0/0] {139} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: one_s [0/0] {138} - ¦ ¦ ¦--'(': ( [0/0] {140} - ¦ ¦ ¦--expr: after [0/0] {142} - ¦ ¦ ¦ °--SYMBOL: after [0/0] {141} - ¦ ¦ ¦--',': , [0/0] {143} - ¦ ¦ ¦--expr: comma [0/0] {144} - ¦ ¦ ¦ ¦--expr: comma [0/0] {146} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: comma [0/0] {145} - ¦ ¦ ¦ ¦--'(': ( [0/0] {147} - ¦ ¦ ¦ ¦--expr: "in" [0/0] {149} - ¦ ¦ ¦ ¦ °--STR_CONST: "in" [0/0] {148} - ¦ ¦ ¦ ¦--',': , [0/0] {150} - ¦ ¦ ¦ ¦--expr: "func [0/0] {152} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {151} - ¦ ¦ ¦ ¦--',': , [0/2] {153} - ¦ ¦ ¦ ¦--expr: args [0/0] {155} - ¦ ¦ ¦ ¦ °--SYMBOL: args [0/0] {154} - ¦ ¦ ¦ °--')': ) [0/0] {156} - ¦ ¦ °--')': ) [0/0] {157} - ¦ ¦--expr: { - [2/2] {158} - ¦ ¦ ¦--'{': { [0/4] {159} - ¦ ¦ ¦--expr: brace [1/4] {161} - ¦ ¦ ¦ °--SYMBOL: brace [0/0] {160} - ¦ ¦ ¦--expr: expre [1/2] {163} - ¦ ¦ ¦ °--SYMBOL: expre [0/0] {162} - ¦ ¦ °--'}': } [1/0] {164} - ¦ ¦--expr: brace [2/2] {165} - ¦ ¦ ¦--expr: brace [0/0] {167} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {166} - ¦ ¦ ¦--'(': ( [0/0] {168} - ¦ ¦ ¦--expr: "unna [0/0] {170} - ¦ ¦ ¦ °--STR_CONST: "unna [0/0] {169} - ¦ ¦ ¦--',': , [0/1] {171} - ¦ ¦ ¦--expr: { - [0/0] {172} - ¦ ¦ ¦ ¦--'{': { [0/4] {173} - ¦ ¦ ¦ ¦--expr: "func [1/4] {175} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {174} - ¦ ¦ ¦ ¦--expr: call [1/2] {177} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {176} - ¦ ¦ ¦ °--'}': } [1/0] {178} - ¦ ¦ °--')': ) [0/0] {179} - ¦ ¦--expr: brace [2/2] {180} - ¦ ¦ ¦--expr: brace [0/0] {182} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {181} - ¦ ¦ ¦--'(': ( [0/0] {183} - ¦ ¦ ¦--SYMBOL_SUB: named [0/1] {184} - ¦ ¦ ¦--EQ_SUB: = [0/1] {185} - ¦ ¦ ¦--expr: { - [0/0] {186} - ¦ ¦ ¦ ¦--'{': { [0/4] {187} - ¦ ¦ ¦ ¦--expr: "func [1/4] {189} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {188} - ¦ ¦ ¦ ¦--expr: call [1/2] {191} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {190} - ¦ ¦ ¦ °--'}': } [1/0] {192} - ¦ ¦ °--')': ) [0/0] {193} - ¦ ¦--expr: brace [2/2] {194} - ¦ ¦ ¦--expr: brace [0/0] {196} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {195} - ¦ ¦ ¦--'(': ( [0/0] {197} - ¦ ¦ ¦--expr: "unna [0/0] {199} - ¦ ¦ ¦ °--STR_CONST: "unna [0/0] {198} - ¦ ¦ ¦--',': , [0/4] {200} - ¦ ¦ ¦--expr: { - } [0/0] {201} - ¦ ¦ ¦ ¦--'{': { [0/2] {202} - ¦ ¦ ¦ °--'}': } [1/0] {203} - ¦ ¦ °--')': ) [0/0] {204} - ¦ ¦--expr: brace [2/2] {205} - ¦ ¦ ¦--expr: brace [0/0] {207} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {206} - ¦ ¦ ¦--'(': ( [0/0] {208} - ¦ ¦ ¦--expr: "unna [0/0] {210} - ¦ ¦ ¦ °--STR_CONST: "unna [0/0] {209} - ¦ ¦ ¦--',': , [0/0] {211} - ¦ ¦ ¦--expr: { - } [0/0] {212} - ¦ ¦ ¦ ¦--'{': { [0/2] {213} - ¦ ¦ ¦ °--'}': } [1/0] {214} - ¦ ¦ °--')': ) [0/0] {215} - ¦ ¦--expr: brace [2/2] {216} - ¦ ¦ ¦--expr: brace [0/0] {218} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {217} - ¦ ¦ ¦--'(': ( [0/0] {219} - ¦ ¦ ¦--SYMBOL_SUB: named [0/1] {220} - ¦ ¦ ¦--EQ_SUB: = [0/4] {221} - ¦ ¦ ¦--expr: { - } [0/0] {222} - ¦ ¦ ¦ ¦--'{': { [0/2] {223} - ¦ ¦ ¦ °--'}': } [1/0] {224} - ¦ ¦ °--')': ) [0/0] {225} - ¦ ¦--expr: brace [2/2] {226} - ¦ ¦ ¦--expr: brace [0/0] {228} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {227} - ¦ ¦ ¦--'(': ( [0/0] {229} - ¦ ¦ ¦--SYMBOL_SUB: named [0/1] {230} - ¦ ¦ ¦--EQ_SUB: = [0/4] {231} - ¦ ¦ ¦--expr: { - } [0/0] {232} - ¦ ¦ ¦ ¦--'{': { [0/2] {233} - ¦ ¦ ¦ °--'}': } [1/0] {234} - ¦ ¦ °--')': ) [0/0] {235} - ¦ ¦--expr: brace [2/2] {236} - ¦ ¦ ¦--expr: brace [0/0] {238} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {237} - ¦ ¦ ¦--'(': ( [0/2] {239} - ¦ ¦ ¦--expr: { - [0/0] {240} - ¦ ¦ ¦ ¦--'{': { [0/4] {241} - ¦ ¦ ¦ ¦--expr: empty [1/2] {243} - ¦ ¦ ¦ ¦ °--SYMBOL: empty [0/0] {242} - ¦ ¦ ¦ °--'}': } [1/0] {244} - ¦ ¦ °--')': ) [0/0] {245} - ¦ ¦--expr: a%/%b [2/2] {246} - ¦ ¦ ¦--expr: a [0/0] {248} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {247} - ¦ ¦ ¦--SPECIAL-OTHER: %/% [0/0] {249} - ¦ ¦ °--expr: b [0/0] {251} - ¦ ¦ °--SYMBOL: b [0/0] {250} - ¦ ¦--expr: a%%b [1/2] {252} - ¦ ¦ ¦--expr: a [0/0] {254} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {253} - ¦ ¦ ¦--SPECIAL-OTHER: %% [0/0] {255} - ¦ ¦ °--expr: b [0/0] {257} - ¦ ¦ °--SYMBOL: b [0/0] {256} - ¦ ¦--expr: a&&b [1/2] {258} - ¦ ¦ ¦--expr: a [0/0] {260} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {259} - ¦ ¦ ¦--AND2: && [0/0] {261} - ¦ ¦ °--expr: b [0/0] {263} - ¦ ¦ °--SYMBOL: b [0/0] {262} - ¦ ¦--expr: a||b [1/2] {264} - ¦ ¦ ¦--expr: a [0/0] {266} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {265} - ¦ ¦ ¦--OR2: || [0/0] {267} - ¦ ¦ °--expr: b [0/0] {269} - ¦ ¦ °--SYMBOL: b [0/0] {268} - ¦ ¦--expr: a==b [1/2] {270} - ¦ ¦ ¦--expr: a [0/0] {272} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {271} - ¦ ¦ ¦--EQ: == [0/0] {273} - ¦ ¦ °--expr: b [0/0] {275} - ¦ ¦ °--SYMBOL: b [0/0] {274} - ¦ ¦--expr: a!=b [1/2] {276} - ¦ ¦ ¦--expr: a [0/0] {278} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {277} - ¦ ¦ ¦--NE: != [0/0] {279} - ¦ ¦ °--expr: b [0/0] {281} - ¦ ¦ °--SYMBOL: b [0/0] {280} - ¦ ¦--expr: a<=b [1/2] {282} - ¦ ¦ ¦--expr: a [0/0] {284} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {283} - ¦ ¦ ¦--LE: <= [0/0] {285} - ¦ ¦ °--expr: b [0/0] {287} - ¦ ¦ °--SYMBOL: b [0/0] {286} - ¦ ¦--expr: a>=b [1/2] {288} - ¦ ¦ ¦--expr: a [0/0] {290} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {289} - ¦ ¦ ¦--GE: >= [0/0] {291} - ¦ ¦ °--expr: b [0/0] {293} - ¦ ¦ °--SYMBOL: b [0/0] {292} - ¦ ¦--expr: a<-b [1/2] {294} - ¦ ¦ ¦--expr: a [0/0] {296} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {295} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/0] {297} - ¦ ¦ °--expr: b [0/0] {299} - ¦ ¦ °--SYMBOL: b [0/0] {298} - ¦ ¦--expr: a->b [1/2] {300} - ¦ ¦ ¦--expr: a [0/0] {302} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {301} - ¦ ¦ ¦--RIGHT_ASSIGN: -> [0/0] {303} - ¦ ¦ °--expr: b [0/0] {305} - ¦ ¦ °--SYMBOL: b [0/0] {304} - ¦ ¦--expr_or_assign_or_help: a=b [1/2] {306} - ¦ ¦ ¦--expr: a [0/0] {308} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {307} - ¦ ¦ ¦--EQ_ASSIGN: = [0/0] {309} - ¦ ¦ °--expr: b [0/0] {311} - ¦ ¦ °--SYMBOL: b [0/0] {310} - ¦ ¦--expr: ab [1/2] {318} - ¦ ¦ ¦--expr: a [0/0] {320} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {319} - ¦ ¦ ¦--GT: > [0/0] {321} - ¦ ¦ °--expr: b [0/0] {323} - ¦ ¦ °--SYMBOL: b [0/0] {322} - ¦ ¦--expr: a*b [1/2] {324} - ¦ ¦ ¦--expr: a [0/0] {326} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {325} - ¦ ¦ ¦--'*': * [0/0] {327} - ¦ ¦ °--expr: b [0/0] {329} - ¦ ¦ °--SYMBOL: b [0/0] {328} - ¦ ¦--expr: a/b [1/2] {330} - ¦ ¦ ¦--expr: a [0/0] {332} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {331} - ¦ ¦ ¦--'/': / [0/0] {333} - ¦ ¦ °--expr: b [0/0] {335} - ¦ ¦ °--SYMBOL: b [0/0] {334} - ¦ ¦--expr: a^b [1/2] {336} - ¦ ¦ ¦--expr: a [0/0] {338} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {337} - ¦ ¦ ¦--'^': ^ [0/0] {339} - ¦ ¦ °--expr: b [0/0] {341} - ¦ ¦ °--SYMBOL: b [0/0] {340} - ¦ ¦--expr: a&b [1/2] {342} - ¦ ¦ ¦--expr: a [0/0] {344} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {343} - ¦ ¦ ¦--AND: & [0/0] {345} - ¦ ¦ °--expr: b [0/0] {347} - ¦ ¦ °--SYMBOL: b [0/0] {346} - ¦ ¦--expr: a|b [1/2] {348} - ¦ ¦ ¦--expr: a [0/0] {350} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {349} - ¦ ¦ ¦--OR: | [0/0] {351} - ¦ ¦ °--expr: b [0/0] {353} - ¦ ¦ °--SYMBOL: b [0/0] {352} - ¦ ¦--expr: a:=b [1/2] {354} - ¦ ¦ ¦--expr: a [0/0] {356} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {355} - ¦ ¦ ¦--LEFT_ASSIGN: := [0/0] {357} - ¦ ¦ °--expr: b [0/0] {359} - ¦ ¦ °--SYMBOL: b [0/0] {358} - ¦ ¦--expr: a+b [2/2] {360} - ¦ ¦ ¦--expr: a [0/0] {362} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {361} - ¦ ¦ ¦--'+': + [0/0] {363} - ¦ ¦ °--expr: b [0/0] {365} - ¦ ¦ °--SYMBOL: b [0/0] {364} - ¦ ¦--expr: a-b [1/2] {366} - ¦ ¦ ¦--expr: a [0/0] {368} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {367} - ¦ ¦ ¦--'-': - [0/0] {369} - ¦ ¦ °--expr: b [0/0] {371} - ¦ ¦ °--SYMBOL: b [0/0] {370} - ¦ ¦--expr: a++b [1/2] {372} - ¦ ¦ ¦--expr: a [0/0] {374} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {373} - ¦ ¦ ¦--'+': + [0/0] {375} - ¦ ¦ °--expr: +b [0/0] {376} - ¦ ¦ ¦--'+': + [0/0] {377} - ¦ ¦ °--expr: b [0/0] {379} - ¦ ¦ °--SYMBOL: b [0/0] {378} - ¦ ¦--expr: a+-b [1/2] {380} - ¦ ¦ ¦--expr: a [0/0] {382} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {381} - ¦ ¦ ¦--'+': + [0/0] {383} - ¦ ¦ °--expr: -b [0/0] {384} - ¦ ¦ ¦--'-': - [0/0] {385} - ¦ ¦ °--expr: b [0/0] {387} - ¦ ¦ °--SYMBOL: b [0/0] {386} - ¦ ¦--expr: a++b [1/2] {388} - ¦ ¦ ¦--expr: a [0/0] {390} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {389} - ¦ ¦ ¦--'+': + [0/0] {391} - ¦ ¦ °--expr: +b [0/0] {392} - ¦ ¦ ¦--'+': + [0/0] {393} - ¦ ¦ °--expr: b [0/0] {395} - ¦ ¦ °--SYMBOL: b [0/0] {394} - ¦ ¦--expr: a-+b [1/2] {396} - ¦ ¦ ¦--expr: a [0/0] {398} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {397} - ¦ ¦ ¦--'-': - [0/0] {399} - ¦ ¦ °--expr: +b [0/0] {400} - ¦ ¦ ¦--'+': + [0/0] {401} - ¦ ¦ °--expr: b [0/0] {403} - ¦ ¦ °--SYMBOL: b [0/0] {402} - ¦ ¦--expr: a--b [1/2] {404} - ¦ ¦ ¦--expr: a [0/0] {406} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {405} - ¦ ¦ ¦--'-': - [0/0] {407} - ¦ ¦ °--expr: -b [0/0] {408} - ¦ ¦ ¦--'-': - [0/0] {409} - ¦ ¦ °--expr: b [0/0] {411} - ¦ ¦ °--SYMBOL: b [0/0] {410} - ¦ ¦--expr: a+--b [1/2] {412} - ¦ ¦ ¦--expr: a [0/0] {414} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {413} - ¦ ¦ ¦--'+': + [0/0] {415} - ¦ ¦ °--expr: --b [0/0] {416} - ¦ ¦ ¦--'-': - [0/0] {417} - ¦ ¦ °--expr: -b [0/0] {418} - ¦ ¦ ¦--'-': - [0/0] {419} - ¦ ¦ °--expr: b [0/0] {421} - ¦ ¦ °--SYMBOL: b [0/0] {420} - ¦ ¦--expr: a--+b [1/2] {422} - ¦ ¦ ¦--expr: a [0/0] {424} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {423} - ¦ ¦ ¦--'-': - [0/0] {425} - ¦ ¦ °--expr: -+b [0/0] {426} - ¦ ¦ ¦--'-': - [0/0] {427} - ¦ ¦ °--expr: +b [0/0] {428} - ¦ ¦ ¦--'+': + [0/0] {429} - ¦ ¦ °--expr: b [0/0] {431} - ¦ ¦ °--SYMBOL: b [0/0] {430} - ¦ ¦--expr: call( [1/2] {432} - ¦ ¦ ¦--expr: call [0/0] {434} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {433} - ¦ ¦ ¦--'(': ( [0/1] {435} - ¦ ¦ ¦--expr: + a [0/0] {436} - ¦ ¦ ¦ ¦--'+': + [0/1] {437} - ¦ ¦ ¦ °--expr: a [0/0] {439} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {438} - ¦ ¦ °--')': ) [0/0] {440} - ¦ ¦--expr: call( [1/2] {441} - ¦ ¦ ¦--expr: call [0/0] {443} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {442} - ¦ ¦ ¦--'(': ( [0/1] {444} - ¦ ¦ ¦--expr: - a [0/0] {445} - ¦ ¦ ¦ ¦--'-': - [0/1] {446} - ¦ ¦ ¦ °--expr: a [0/0] {448} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {447} - ¦ ¦ °--')': ) [0/0] {449} - ¦ ¦--expr: call( [1/2] {450} - ¦ ¦ ¦--expr: call [0/0] {452} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {451} - ¦ ¦ ¦--'(': ( [0/0] {453} - ¦ ¦ ¦--expr: 5 [0/0] {455} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {454} - ¦ ¦ ¦--',': , [0/1] {456} - ¦ ¦ ¦--expr: + a [0/0] {457} - ¦ ¦ ¦ ¦--'+': + [0/1] {458} - ¦ ¦ ¦ °--expr: a [0/0] {460} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {459} - ¦ ¦ °--')': ) [0/0] {461} - ¦ ¦--expr: call( [1/2] {462} - ¦ ¦ ¦--expr: call [0/0] {464} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {463} - ¦ ¦ ¦--'(': ( [0/0] {465} - ¦ ¦ ¦--expr: 5 [0/0] {467} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {466} - ¦ ¦ ¦--',': , [0/1] {468} - ¦ ¦ ¦--expr: - a [0/0] {469} - ¦ ¦ ¦ ¦--'-': - [0/1] {470} - ¦ ¦ ¦ °--expr: a [0/0] {472} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {471} - ¦ ¦ °--')': ) [0/0] {473} - ¦ ¦--COMMENT: # Onl [2/2] {474} - ¦ ¦--expr: call( [1/2] {475} - ¦ ¦ ¦--expr: call [0/0] {477} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {476} - ¦ ¦ ¦--'(': ( [0/4] {478} - ¦ ¦ ¦--expr: prese [1/0] {480} - ¦ ¦ ¦ °--SYMBOL: prese [0/0] {479} - ¦ ¦ ¦--',': , [0/1] {481} - ¦ ¦ ¦--expr: dista [0/0] {483} - ¦ ¦ ¦ °--SYMBOL: dista [0/0] {482} - ¦ ¦ ¦--',': , [0/4] {484} - ¦ ¦ ¦--expr: after [1/0] {486} - ¦ ¦ ¦ °--SYMBOL: after [0/0] {485} - ¦ ¦ ¦--',': , [0/5] {487} - ¦ ¦ ¦--expr: comma [0/0] {489} - ¦ ¦ ¦ °--SYMBOL: comma [0/0] {488} - ¦ ¦ ¦--',': , [0/4] {490} - ¦ ¦ ¦--expr: given [1/0] {492} - ¦ ¦ ¦ °--SYMBOL: given [0/0] {491} - ¦ ¦ ¦--',': , [0/0] {493} - ¦ ¦ ¦--expr: one [0/2] {495} - ¦ ¦ ¦ °--SYMBOL: one [0/0] {494} - ¦ ¦ °--')': ) [1/0] {496} - ¦ ¦--expr: if(TR [2/2] {497} - ¦ ¦ ¦--IF: if [0/0] {498} - ¦ ¦ ¦--'(': ( [0/0] {499} - ¦ ¦ ¦--expr: TRUE [0/0] {501} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {500} - ¦ ¦ ¦--')': ) [0/0] {502} - ¦ ¦ °--expr: { - [0/0] {503} - ¦ ¦ ¦--'{': { [0/4] {504} - ¦ ¦ ¦--expr: FALSE [1/2] {506} - ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {505} - ¦ ¦ °--'}': } [1/0] {507} - ¦ ¦--expr: if(TR [2/2] {508} - ¦ ¦ ¦--IF: if [0/0] {509} - ¦ ¦ ¦--'(': ( [0/0] {510} - ¦ ¦ ¦--expr: TRUE [0/0] {512} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {511} - ¦ ¦ ¦--')': ) [0/0] {513} - ¦ ¦ ¦--expr: { - [0/0] {514} - ¦ ¦ ¦ ¦--'{': { [0/4] {515} - ¦ ¦ ¦ ¦--expr: FALSE [1/2] {517} - ¦ ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {516} - ¦ ¦ ¦ °--'}': } [1/0] {518} - ¦ ¦ ¦--ELSE: else [0/0] {519} - ¦ ¦ °--expr: { - [0/0] {520} - ¦ ¦ ¦--'{': { [0/4] {521} - ¦ ¦ ¦--expr: TRUE [1/2] {523} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {522} - ¦ ¦ °--'}': } [1/0] {524} - ¦ ¦--expr: while [2/2] {525} - ¦ ¦ ¦--WHILE: while [0/0] {526} - ¦ ¦ ¦--'(': ( [0/0] {527} - ¦ ¦ ¦--expr: TRUE [0/0] {529} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {528} - ¦ ¦ ¦--')': ) [0/0] {530} - ¦ ¦ °--expr: { - [0/0] {531} - ¦ ¦ ¦--'{': { [0/4] {532} - ¦ ¦ ¦--expr: FALSE [1/2] {534} - ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {533} - ¦ ¦ °--'}': } [1/0] {535} - ¦ ¦--expr: singl [2/2] {536} - ¦ ¦ ¦--expr: singl [0/1] {538} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: singl [0/0] {537} - ¦ ¦ ¦--'(': ( [0/1] {539} - ¦ ¦ ¦--expr: "func [0/1] {541} - ¦ ¦ ¦ °--STR_CONST: "func [0/0] {540} - ¦ ¦ ¦--',': , [0/0] {542} - ¦ ¦ ¦--expr: call [0/1] {544} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {543} - ¦ ¦ °--')': ) [0/0] {545} - ¦ ¦--expr: multi [2/2] {546} - ¦ ¦ ¦--expr: multi [0/1] {548} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: multi [0/0] {547} - ¦ ¦ ¦--'(': ( [0/2] {549} - ¦ ¦ ¦--expr: "func [1/0] {551} - ¦ ¦ ¦ °--STR_CONST: "func [0/0] {550} - ¦ ¦ ¦--',': , [0/1] {552} - ¦ ¦ ¦--expr: call [0/1] {554} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {553} - ¦ ¦ °--')': ) [0/0] {555} - ¦ ¦--expr: neste [2/2] {556} - ¦ ¦ ¦--expr: neste [0/1] {558} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {557} - ¦ ¦ ¦--'(': ( [0/1] {559} - ¦ ¦ ¦--expr: funct [0/1] {560} - ¦ ¦ ¦ ¦--expr: funct [0/1] {562} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {561} - ¦ ¦ ¦ ¦--'(': ( [0/1] {563} - ¦ ¦ ¦ ¦--expr: "in" [0/1] {565} - ¦ ¦ ¦ ¦ °--STR_CONST: "in" [0/0] {564} - ¦ ¦ ¦ ¦--',': , [0/0] {566} - ¦ ¦ ¦ ¦--expr: one [0/1] {568} - ¦ ¦ ¦ ¦ °--SYMBOL: one [0/0] {567} - ¦ ¦ ¦ ¦--',': , [0/0] {569} - ¦ ¦ ¦ ¦--expr: line [0/1] {571} - ¦ ¦ ¦ ¦ °--SYMBOL: line [0/0] {570} - ¦ ¦ ¦ °--')': ) [0/0] {572} - ¦ ¦ °--')': ) [0/0] {573} - ¦ ¦--expr: neste [2/2] {574} - ¦ ¦ ¦--expr: neste [0/1] {576} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {575} - ¦ ¦ ¦--'(': ( [0/1] {577} - ¦ ¦ ¦--expr: funct [0/1] {578} - ¦ ¦ ¦ ¦--expr: funct [0/1] {580} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {579} - ¦ ¦ ¦ ¦--'(': ( [0/2] {581} - ¦ ¦ ¦ ¦--expr: "in" [1/0] {583} - ¦ ¦ ¦ ¦ °--STR_CONST: "in" [0/0] {582} - ¦ ¦ ¦ ¦--',': , [0/6] {584} - ¦ ¦ ¦ ¦--expr: multi [1/0] {586} - ¦ ¦ ¦ ¦ °--SYMBOL: multi [0/0] {585} - ¦ ¦ ¦ ¦--',': , [0/0] {587} - ¦ ¦ ¦ ¦--expr: lines [0/1] {589} - ¦ ¦ ¦ ¦ °--SYMBOL: lines [0/0] {588} - ¦ ¦ ¦ °--')': ) [0/0] {590} - ¦ ¦ °--')': ) [0/0] {591} - ¦ ¦--expr: neste [2/2] {592} - ¦ ¦ ¦--expr: neste [0/0] {594} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {593} - ¦ ¦ ¦--'(': ( [0/2] {595} - ¦ ¦ ¦--expr: funct [1/0] {596} - ¦ ¦ ¦ ¦--expr: funct [0/1] {598} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {597} - ¦ ¦ ¦ ¦--'(': ( [0/1] {599} - ¦ ¦ ¦ ¦--expr: with [0/1] {601} - ¦ ¦ ¦ ¦ °--SYMBOL: with [0/0] {600} - ¦ ¦ ¦ °--')': ) [0/0] {602} - ¦ ¦ ¦--',': , [0/6] {603} - ¦ ¦ ¦--expr: many [1/2] {605} - ¦ ¦ ¦ °--SYMBOL: many [0/0] {604} - ¦ ¦ ¦--',': , [1/5] {606} - ¦ ¦ ¦--expr: first [0/2] {608} - ¦ ¦ ¦ °--SYMBOL: first [0/0] {607} - ¦ ¦ °--')': ) [0/0] {609} - ¦ ¦--expr: neste [2/2] {610} - ¦ ¦ ¦--expr: neste [0/0] {612} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {611} - ¦ ¦ ¦--'(': ( [0/4] {613} - ¦ ¦ ¦--expr: funct [1/0] {614} - ¦ ¦ ¦ ¦--expr: funct [0/1] {616} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {615} - ¦ ¦ ¦ ¦--'(': ( [0/1] {617} - ¦ ¦ ¦ ¦--expr: with [0/1] {619} - ¦ ¦ ¦ ¦ °--SYMBOL: with [0/0] {618} - ¦ ¦ ¦ °--')': ) [0/0] {620} - ¦ ¦ ¦--',': , [0/2] {621} - ¦ ¦ ¦--COMMENT: # a c [0/4] {622} - ¦ ¦ ¦--expr: many [1/1] {624} - ¦ ¦ ¦ °--SYMBOL: many [0/0] {623} - ¦ ¦ ¦--COMMENT: #more [0/4] {625} - ¦ ¦ ¦--',': , [1/5] {626} - ¦ ¦ ¦--expr: first [0/2] {628} - ¦ ¦ ¦ °--SYMBOL: first [0/0] {627} - ¦ ¦ °--')': ) [0/0] {629} - ¦ ¦--expr: diffi [2/0] {630} - ¦ ¦ ¦--expr: diffi [0/0] {632} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: diffi [0/0] {631} - ¦ ¦ ¦--'(': ( [0/0] {633} - ¦ ¦ ¦--expr: neste [0/0] {634} - ¦ ¦ ¦ ¦--expr: neste [0/0] {636} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {635} - ¦ ¦ ¦ ¦--'(': ( [0/4] {637} - ¦ ¦ ¦ ¦--expr: "func [1/0] {639} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {638} - ¦ ¦ ¦ ¦--',': , [0/1] {640} - ¦ ¦ ¦ ¦--expr: call [0/2] {642} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {641} - ¦ ¦ ¦ °--')': ) [1/0] {643} - ¦ ¦ ¦--',': , [0/4] {644} - ¦ ¦ ¦--expr: with [1/0] {646} - ¦ ¦ ¦ °--SYMBOL: with [0/0] {645} - ¦ ¦ ¦--',': , [0/1] {647} - ¦ ¦ ¦--expr: more [0/0] {649} - ¦ ¦ ¦ °--SYMBOL: more [0/0] {648} - ¦ ¦ ¦--',': , [0/1] {650} - ¦ ¦ ¦--expr: args [0/2] {652} - ¦ ¦ ¦ °--SYMBOL: args [0/0] {651} - ¦ ¦ °--')': ) [1/0] {653} - ¦ °--'}': } [1/0] {654} - ¦--COMMENT: # for [3/0] {655} - ¦--expr: lm(a~ [1/0] {656} - ¦ ¦--expr: lm [0/0] {658} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: lm [0/0] {657} - ¦ ¦--'(': ( [0/0] {659} - ¦ ¦--expr: a~b+c [0/0] {660} - ¦ ¦ ¦--expr: a [0/0] {662} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {661} - ¦ ¦ ¦--'~': ~ [0/0] {663} - ¦ ¦ ¦--expr: b [0/0] {666} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {665} - ¦ ¦ ¦--'+': + [0/0] {667} - ¦ ¦ °--expr: c [0/0] {669} - ¦ ¦ °--SYMBOL: c [0/0] {668} - ¦ ¦--',': , [0/0] {670} - ¦ ¦--SYMBOL_SUB: data [0/0] {671} - ¦ ¦--EQ_SUB: = [0/0] {672} - ¦ ¦--expr: NA [0/0] {674} - ¦ ¦ °--NUM_CONST: NA [0/0] {673} - ¦ °--')': ) [0/0] {675} - ¦--expr: lm(a~ [1/0] {676} - ¦ ¦--expr: lm [0/0] {678} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: lm [0/0] {677} - ¦ ¦--'(': ( [0/0] {679} - ¦ ¦--expr: a~.-1 [0/0] {680} - ¦ ¦ ¦--expr: a [0/0] {682} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {681} - ¦ ¦ ¦--'~': ~ [0/0] {683} - ¦ ¦ ¦--expr: . [0/0] {686} - ¦ ¦ ¦ °--SYMBOL: . [0/0] {685} - ¦ ¦ ¦--'-': - [0/0] {687} - ¦ ¦ °--expr: 1 [0/0] {689} - ¦ ¦ °--NUM_CONST: 1 [0/0] {688} - ¦ ¦--',': , [0/0] {690} - ¦ ¦--SYMBOL_SUB: data [0/0] {691} - ¦ ¦--EQ_SUB: = [0/0] {692} - ¦ ¦--expr: NA [0/0] {694} - ¦ ¦ °--NUM_CONST: NA [0/0] {693} - ¦ °--')': ) [0/0] {695} - ¦--expr: a~b:c [1/0] {696} - ¦ ¦--expr: a [0/0] {698} - ¦ ¦ °--SYMBOL: a [0/0] {697} - ¦ ¦--'~': ~ [0/0] {699} - ¦ °--expr: b:c [0/0] {700} - ¦ ¦--expr: b [0/0] {702} - ¦ ¦ °--SYMBOL: b [0/0] {701} - ¦ ¦--':': : [0/0] {703} - ¦ °--expr: c [0/0] {705} - ¦ °--SYMBOL: c [0/0] {704} - ¦--expr: a~b : [1/0] {706} - ¦ ¦--expr: a [0/0] {708} - ¦ ¦ °--SYMBOL: a [0/0] {707} - ¦ ¦--'~': ~ [0/0] {709} - ¦ °--expr: b :c [0/0] {710} - ¦ ¦--expr: b [0/1] {712} - ¦ ¦ °--SYMBOL: b [0/0] {711} - ¦ ¦--':': : [0/0] {713} - ¦ °--expr: c [0/0] {715} - ¦ °--SYMBOL: c [0/0] {714} - ¦--expr: a ~ [1/0] {716} - ¦ ¦--expr: a [0/3] {718} - ¦ ¦ °--SYMBOL: a [0/0] {717} - ¦ ¦--'~': ~ [0/3] {719} - ¦ °--expr: b : [0/0] {720} - ¦ ¦--expr: b [0/2] {722} - ¦ ¦ °--SYMBOL: b [0/0] {721} - ¦ ¦--':': : [0/1] {723} - ¦ °--expr: c [0/0] {725} - ¦ °--SYMBOL: c [0/0] {724} - ¦--expr: ~ a [2/0] {726} - ¦ ¦--'~': ~ [0/3] {727} - ¦ °--expr: a [0/0] {729} - ¦ °--SYMBOL: a [0/0] {728} - ¦--expr: ~gg [1/0] {730} - ¦ ¦--'~': ~ [0/0] {731} - ¦ °--expr: gg [0/0] {733} - ¦ °--SYMBOL: gg [0/0] {732} - ¦--expr: b~ [1/0] {734} - ¦ ¦--expr: b [0/0] {736} - ¦ ¦ °--SYMBOL: b [0/0] {735} - ¦ ¦--'~': ~ [0/3] {737} - ¦ °--expr: k [0/0] {739} - ¦ °--SYMBOL: k [0/0] {738} - °--expr: call( [1/0] {740} - ¦--expr: call [0/0] {742} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {741} - ¦--'(': ( [0/0] {743} - ¦--expr: 1 [0/0] {745} - ¦ °--NUM_CONST: 1 [0/0] {744} - ¦--',': , [0/0] {746} - ¦--expr: ~ qq [0/0] {747} - ¦ ¦--'~': ~ [0/1] {748} - ¦ °--expr: qq [0/0] {750} - ¦ °--SYMBOL: qq [0/0] {749} - °--')': ) [0/0] {751} diff --git a/tests/testthat/strict/strict-in_tree b/tests/testthat/strict/strict-in_tree deleted file mode 100644 index 94428955b..000000000 --- a/tests/testthat/strict/strict-in_tree +++ /dev/null @@ -1,747 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: test [0/0] {1} - ¦ ¦--expr: test [0/1] {3} - ¦ ¦ °--SYMBOL: test [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--')': ) [0/1] {8} - ¦ °--expr: { - " [0/0] {9} - ¦ ¦--'{': { [0/2] {10} - ¦ ¦--expr: "Doub [1/2] {12} - ¦ ¦ °--STR_CONST: "Doub [0/0] {11} - ¦ ¦--expr: 'Sing [1/2] {14} - ¦ ¦ °--STR_CONST: 'Sing [0/0] {13} - ¦ ¦--expr: 'even [1/2] {16} - ¦ ¦ °--STR_CONST: 'even [0/0] {15} - ¦ ¦--expr: 'but [1/2] {18} - ¦ ¦ °--STR_CONST: 'but [0/0] {17} - ¦ ¦--COMMENT: # Com [2/2] {19} - ¦ ¦--expr: funct [2/2] {20} - ¦ ¦ ¦--expr: funct [0/0] {22} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {21} - ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ ¦--SYMBOL_SUB: get_s [0/0] {24} - ¦ ¦ ¦--EQ_SUB: = [0/0] {25} - ¦ ¦ ¦--expr: aroun [0/0] {27} - ¦ ¦ ¦ °--SYMBOL: aroun [0/0] {26} - ¦ ¦ °--')': ) [0/0] {28} - ¦ ¦--expr: no_sp [2/2] {29} - ¦ ¦ ¦--expr: no_sp [0/0] {31} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: no_sp [0/0] {30} - ¦ ¦ ¦--'(': ( [0/1] {32} - ¦ ¦ ¦--expr: after [0/0] {33} - ¦ ¦ ¦ ¦--expr: after [0/0] {35} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: after [0/0] {34} - ¦ ¦ ¦ ¦--'(': ( [0/1] {36} - ¦ ¦ ¦ °--')': ) [0/0] {37} - ¦ ¦ ¦--',': , [0/1] {38} - ¦ ¦ ¦--expr: paren [0/0] {39} - ¦ ¦ ¦ ¦--expr: paren [0/0] {41} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paren [0/0] {40} - ¦ ¦ ¦ ¦--'(': ( [0/1] {42} - ¦ ¦ ¦ ¦--expr: (1 + [0/0] {43} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {44} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {47} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {46} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {48} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {50} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {49} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {51} - ¦ ¦ ¦ °--')': ) [0/0] {52} - ¦ ¦ °--')': ) [0/0] {53} - ¦ ¦--expr: no_sp [1/2] {54} - ¦ ¦ ¦--expr: no_sp [0/1] {56} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: no_sp [0/0] {55} - ¦ ¦ ¦--'(': ( [0/0] {57} - ¦ ¦ ¦--expr: befor [0/0] {58} - ¦ ¦ ¦ ¦--expr: befor [0/1] {60} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: befor [0/0] {59} - ¦ ¦ ¦ ¦--'(': ( [0/0] {61} - ¦ ¦ ¦ °--')': ) [0/0] {62} - ¦ ¦ ¦--',': , [0/1] {63} - ¦ ¦ ¦--expr: paren [0/0] {64} - ¦ ¦ ¦ ¦--expr: paren [0/1] {66} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paren [0/0] {65} - ¦ ¦ ¦ ¦--'(': ( [0/1] {67} - ¦ ¦ ¦ ¦--expr: (1 + [0/0] {68} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {69} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [0/0] {70} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {72} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {71} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {73} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {75} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {74} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {76} - ¦ ¦ ¦ °--')': ) [0/0] {77} - ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦--expr: no_sp [1/2] {79} - ¦ ¦ ¦--expr: no_sp [0/0] {81} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: no_sp [0/0] {80} - ¦ ¦ ¦--'(': ( [0/0] {82} - ¦ ¦ ¦--expr: befor [0/0] {83} - ¦ ¦ ¦ ¦--expr: befor [0/0] {85} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: befor [0/0] {84} - ¦ ¦ ¦ ¦--'(': ( [0/0] {86} - ¦ ¦ ¦ ¦--expr: closi [0/1] {88} - ¦ ¦ ¦ ¦ °--SYMBOL: closi [0/0] {87} - ¦ ¦ ¦ °--')': ) [0/0] {89} - ¦ ¦ ¦--',': , [0/1] {90} - ¦ ¦ ¦--expr: paren [0/1] {91} - ¦ ¦ ¦ ¦--expr: paren [0/0] {93} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paren [0/0] {92} - ¦ ¦ ¦ ¦--'(': ( [0/0] {94} - ¦ ¦ ¦ ¦--expr: (1 + [0/1] {95} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {96} - ¦ ¦ ¦ ¦ ¦--expr: 1 + 2 [0/0] {97} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 1 [0/1] {99} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {98} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {100} - ¦ ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {102} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {101} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {103} - ¦ ¦ ¦ °--')': ) [0/0] {104} - ¦ ¦ °--')': ) [0/0] {105} - ¦ ¦--expr: multi [1/2] {106} - ¦ ¦ ¦--expr: multi [0/0] {108} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: multi [0/0] {107} - ¦ ¦ ¦--'(': ( [0/4] {109} - ¦ ¦ ¦--expr: line [1/0] {111} - ¦ ¦ ¦ °--SYMBOL: line [0/0] {110} - ¦ ¦ ¦--',': , [0/4] {112} - ¦ ¦ ¦--expr: call [1/2] {114} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {113} - ¦ ¦ °--')': ) [1/0] {115} - ¦ ¦--expr: multi [1/2] {116} - ¦ ¦ ¦--expr: multi [0/0] {118} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: multi [0/0] {117} - ¦ ¦ ¦--'(': ( [0/2] {119} - ¦ ¦ °--')': ) [1/0] {120} - ¦ ¦--expr: one_s [2/2] {121} - ¦ ¦ ¦--expr: one_s [0/0] {123} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: one_s [0/0] {122} - ¦ ¦ ¦--'(': ( [0/0] {124} - ¦ ¦ ¦--expr: after [0/0] {126} - ¦ ¦ ¦ °--SYMBOL: after [0/0] {125} - ¦ ¦ ¦--',': , [0/0] {127} - ¦ ¦ ¦--expr: comma [0/0] {128} - ¦ ¦ ¦ ¦--expr: comma [0/0] {130} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: comma [0/0] {129} - ¦ ¦ ¦ ¦--'(': ( [0/0] {131} - ¦ ¦ ¦ ¦--expr: "in" [0/0] {133} - ¦ ¦ ¦ ¦ °--STR_CONST: "in" [0/0] {132} - ¦ ¦ ¦ ¦--',': , [0/0] {134} - ¦ ¦ ¦ ¦--expr: "func [0/0] {136} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {135} - ¦ ¦ ¦ ¦--',': , [0/2] {137} - ¦ ¦ ¦ ¦--expr: args [0/0] {139} - ¦ ¦ ¦ ¦ °--SYMBOL: args [0/0] {138} - ¦ ¦ ¦ °--')': ) [0/0] {140} - ¦ ¦ °--')': ) [0/0] {141} - ¦ ¦--expr: { - [2/2] {142} - ¦ ¦ ¦--'{': { [0/4] {143} - ¦ ¦ ¦--expr: brace [1/4] {145} - ¦ ¦ ¦ °--SYMBOL: brace [0/0] {144} - ¦ ¦ ¦--expr: expre [1/2] {147} - ¦ ¦ ¦ °--SYMBOL: expre [0/0] {146} - ¦ ¦ °--'}': } [1/0] {148} - ¦ ¦--expr: brace [2/2] {149} - ¦ ¦ ¦--expr: brace [0/0] {151} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {150} - ¦ ¦ ¦--'(': ( [0/0] {152} - ¦ ¦ ¦--expr: "unna [0/0] {154} - ¦ ¦ ¦ °--STR_CONST: "unna [0/0] {153} - ¦ ¦ ¦--',': , [0/1] {155} - ¦ ¦ ¦--expr: { - [0/0] {156} - ¦ ¦ ¦ ¦--'{': { [0/4] {157} - ¦ ¦ ¦ ¦--expr: "func [1/4] {159} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {158} - ¦ ¦ ¦ ¦--expr: call [1/2] {161} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {160} - ¦ ¦ ¦ °--'}': } [1/0] {162} - ¦ ¦ °--')': ) [0/0] {163} - ¦ ¦--expr: brace [2/2] {164} - ¦ ¦ ¦--expr: brace [0/0] {166} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {165} - ¦ ¦ ¦--'(': ( [0/0] {167} - ¦ ¦ ¦--SYMBOL_SUB: named [0/1] {168} - ¦ ¦ ¦--EQ_SUB: = [0/1] {169} - ¦ ¦ ¦--expr: { - [0/0] {170} - ¦ ¦ ¦ ¦--'{': { [0/4] {171} - ¦ ¦ ¦ ¦--expr: "func [1/4] {173} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {172} - ¦ ¦ ¦ ¦--expr: call [1/2] {175} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {174} - ¦ ¦ ¦ °--'}': } [1/0] {176} - ¦ ¦ °--')': ) [0/0] {177} - ¦ ¦--expr: brace [2/2] {178} - ¦ ¦ ¦--expr: brace [0/0] {180} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {179} - ¦ ¦ ¦--'(': ( [0/0] {181} - ¦ ¦ ¦--expr: "unna [0/0] {183} - ¦ ¦ ¦ °--STR_CONST: "unna [0/0] {182} - ¦ ¦ ¦--',': , [0/4] {184} - ¦ ¦ ¦--expr: { - } [0/0] {185} - ¦ ¦ ¦ ¦--'{': { [0/2] {186} - ¦ ¦ ¦ °--'}': } [1/0] {187} - ¦ ¦ °--')': ) [0/0] {188} - ¦ ¦--expr: brace [2/2] {189} - ¦ ¦ ¦--expr: brace [0/0] {191} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {190} - ¦ ¦ ¦--'(': ( [0/0] {192} - ¦ ¦ ¦--expr: "unna [0/0] {194} - ¦ ¦ ¦ °--STR_CONST: "unna [0/0] {193} - ¦ ¦ ¦--',': , [0/0] {195} - ¦ ¦ ¦--expr: { - } [0/0] {196} - ¦ ¦ ¦ ¦--'{': { [0/2] {197} - ¦ ¦ ¦ °--'}': } [1/0] {198} - ¦ ¦ °--')': ) [0/0] {199} - ¦ ¦--expr: brace [2/2] {200} - ¦ ¦ ¦--expr: brace [0/0] {202} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {201} - ¦ ¦ ¦--'(': ( [0/0] {203} - ¦ ¦ ¦--SYMBOL_SUB: named [0/1] {204} - ¦ ¦ ¦--EQ_SUB: = [0/4] {205} - ¦ ¦ ¦--expr: { - } [0/0] {206} - ¦ ¦ ¦ ¦--'{': { [0/2] {207} - ¦ ¦ ¦ °--'}': } [1/0] {208} - ¦ ¦ °--')': ) [0/0] {209} - ¦ ¦--expr: brace [2/2] {210} - ¦ ¦ ¦--expr: brace [0/0] {212} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {211} - ¦ ¦ ¦--'(': ( [0/0] {213} - ¦ ¦ ¦--SYMBOL_SUB: named [0/1] {214} - ¦ ¦ ¦--EQ_SUB: = [0/4] {215} - ¦ ¦ ¦--expr: { - } [0/0] {216} - ¦ ¦ ¦ ¦--'{': { [0/2] {217} - ¦ ¦ ¦ °--'}': } [1/0] {218} - ¦ ¦ °--')': ) [0/0] {219} - ¦ ¦--expr: brace [2/2] {220} - ¦ ¦ ¦--expr: brace [0/0] {222} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: brace [0/0] {221} - ¦ ¦ ¦--'(': ( [0/2] {223} - ¦ ¦ ¦--expr: { - [0/0] {224} - ¦ ¦ ¦ ¦--'{': { [0/4] {225} - ¦ ¦ ¦ ¦--expr: empty [1/2] {227} - ¦ ¦ ¦ ¦ °--SYMBOL: empty [0/0] {226} - ¦ ¦ ¦ °--'}': } [1/0] {228} - ¦ ¦ °--')': ) [0/0] {229} - ¦ ¦--expr: a%/%b [2/2] {230} - ¦ ¦ ¦--expr: a [0/0] {232} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {231} - ¦ ¦ ¦--SPECIAL-OTHER: %/% [0/0] {233} - ¦ ¦ °--expr: b [0/0] {235} - ¦ ¦ °--SYMBOL: b [0/0] {234} - ¦ ¦--expr: a%%b [1/2] {236} - ¦ ¦ ¦--expr: a [0/0] {238} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {237} - ¦ ¦ ¦--SPECIAL-OTHER: %% [0/0] {239} - ¦ ¦ °--expr: b [0/0] {241} - ¦ ¦ °--SYMBOL: b [0/0] {240} - ¦ ¦--expr: a&&b [1/2] {242} - ¦ ¦ ¦--expr: a [0/0] {244} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {243} - ¦ ¦ ¦--AND2: && [0/0] {245} - ¦ ¦ °--expr: b [0/0] {247} - ¦ ¦ °--SYMBOL: b [0/0] {246} - ¦ ¦--expr: a||b [1/2] {248} - ¦ ¦ ¦--expr: a [0/0] {250} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {249} - ¦ ¦ ¦--OR2: || [0/0] {251} - ¦ ¦ °--expr: b [0/0] {253} - ¦ ¦ °--SYMBOL: b [0/0] {252} - ¦ ¦--expr: a==b [1/2] {254} - ¦ ¦ ¦--expr: a [0/0] {256} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {255} - ¦ ¦ ¦--EQ: == [0/0] {257} - ¦ ¦ °--expr: b [0/0] {259} - ¦ ¦ °--SYMBOL: b [0/0] {258} - ¦ ¦--expr: a!=b [1/2] {260} - ¦ ¦ ¦--expr: a [0/0] {262} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {261} - ¦ ¦ ¦--NE: != [0/0] {263} - ¦ ¦ °--expr: b [0/0] {265} - ¦ ¦ °--SYMBOL: b [0/0] {264} - ¦ ¦--expr: a<=b [1/2] {266} - ¦ ¦ ¦--expr: a [0/0] {268} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {267} - ¦ ¦ ¦--LE: <= [0/0] {269} - ¦ ¦ °--expr: b [0/0] {271} - ¦ ¦ °--SYMBOL: b [0/0] {270} - ¦ ¦--expr: a>=b [1/2] {272} - ¦ ¦ ¦--expr: a [0/0] {274} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {273} - ¦ ¦ ¦--GE: >= [0/0] {275} - ¦ ¦ °--expr: b [0/0] {277} - ¦ ¦ °--SYMBOL: b [0/0] {276} - ¦ ¦--expr: a<-b [1/2] {278} - ¦ ¦ ¦--expr: a [0/0] {280} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {279} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/0] {281} - ¦ ¦ °--expr: b [0/0] {283} - ¦ ¦ °--SYMBOL: b [0/0] {282} - ¦ ¦--expr: a->b [1/2] {284} - ¦ ¦ ¦--expr: a [0/0] {286} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {285} - ¦ ¦ ¦--RIGHT_ASSIGN: -> [0/0] {287} - ¦ ¦ °--expr: b [0/0] {289} - ¦ ¦ °--SYMBOL: b [0/0] {288} - ¦ ¦--expr_or_assign_or_help: a=b [1/2] {290} - ¦ ¦ ¦--expr: a [0/0] {292} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {291} - ¦ ¦ ¦--EQ_ASSIGN: = [0/0] {293} - ¦ ¦ °--expr: b [0/0] {295} - ¦ ¦ °--SYMBOL: b [0/0] {294} - ¦ ¦--expr: ab [1/2] {302} - ¦ ¦ ¦--expr: a [0/0] {304} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {303} - ¦ ¦ ¦--GT: > [0/0] {305} - ¦ ¦ °--expr: b [0/0] {307} - ¦ ¦ °--SYMBOL: b [0/0] {306} - ¦ ¦--expr: a*b [1/2] {308} - ¦ ¦ ¦--expr: a [0/0] {310} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {309} - ¦ ¦ ¦--'*': * [0/0] {311} - ¦ ¦ °--expr: b [0/0] {313} - ¦ ¦ °--SYMBOL: b [0/0] {312} - ¦ ¦--expr: a/b [1/2] {314} - ¦ ¦ ¦--expr: a [0/0] {316} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {315} - ¦ ¦ ¦--'/': / [0/0] {317} - ¦ ¦ °--expr: b [0/0] {319} - ¦ ¦ °--SYMBOL: b [0/0] {318} - ¦ ¦--expr: a^b [1/2] {320} - ¦ ¦ ¦--expr: a [0/0] {322} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {321} - ¦ ¦ ¦--'^': ^ [0/0] {323} - ¦ ¦ °--expr: b [0/0] {325} - ¦ ¦ °--SYMBOL: b [0/0] {324} - ¦ ¦--expr: a&b [1/2] {326} - ¦ ¦ ¦--expr: a [0/0] {328} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {327} - ¦ ¦ ¦--AND: & [0/0] {329} - ¦ ¦ °--expr: b [0/0] {331} - ¦ ¦ °--SYMBOL: b [0/0] {330} - ¦ ¦--expr: a|b [1/2] {332} - ¦ ¦ ¦--expr: a [0/0] {334} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {333} - ¦ ¦ ¦--OR: | [0/0] {335} - ¦ ¦ °--expr: b [0/0] {337} - ¦ ¦ °--SYMBOL: b [0/0] {336} - ¦ ¦--expr: a:=b [1/2] {338} - ¦ ¦ ¦--expr: a [0/0] {340} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {339} - ¦ ¦ ¦--LEFT_ASSIGN: := [0/0] {341} - ¦ ¦ °--expr: b [0/0] {343} - ¦ ¦ °--SYMBOL: b [0/0] {342} - ¦ ¦--expr: a+b [2/2] {344} - ¦ ¦ ¦--expr: a [0/0] {346} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {345} - ¦ ¦ ¦--'+': + [0/0] {347} - ¦ ¦ °--expr: b [0/0] {349} - ¦ ¦ °--SYMBOL: b [0/0] {348} - ¦ ¦--expr: a-b [1/2] {350} - ¦ ¦ ¦--expr: a [0/0] {352} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {351} - ¦ ¦ ¦--'-': - [0/0] {353} - ¦ ¦ °--expr: b [0/0] {355} - ¦ ¦ °--SYMBOL: b [0/0] {354} - ¦ ¦--expr: a++b [1/2] {356} - ¦ ¦ ¦--expr: a [0/0] {358} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {357} - ¦ ¦ ¦--'+': + [0/0] {359} - ¦ ¦ °--expr: +b [0/0] {360} - ¦ ¦ ¦--'+': + [0/0] {361} - ¦ ¦ °--expr: b [0/0] {363} - ¦ ¦ °--SYMBOL: b [0/0] {362} - ¦ ¦--expr: a+-b [1/2] {364} - ¦ ¦ ¦--expr: a [0/0] {366} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {365} - ¦ ¦ ¦--'+': + [0/0] {367} - ¦ ¦ °--expr: -b [0/0] {368} - ¦ ¦ ¦--'-': - [0/0] {369} - ¦ ¦ °--expr: b [0/0] {371} - ¦ ¦ °--SYMBOL: b [0/0] {370} - ¦ ¦--expr: a++b [1/2] {372} - ¦ ¦ ¦--expr: a [0/0] {374} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {373} - ¦ ¦ ¦--'+': + [0/0] {375} - ¦ ¦ °--expr: +b [0/0] {376} - ¦ ¦ ¦--'+': + [0/0] {377} - ¦ ¦ °--expr: b [0/0] {379} - ¦ ¦ °--SYMBOL: b [0/0] {378} - ¦ ¦--expr: a-+b [1/2] {380} - ¦ ¦ ¦--expr: a [0/0] {382} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {381} - ¦ ¦ ¦--'-': - [0/0] {383} - ¦ ¦ °--expr: +b [0/0] {384} - ¦ ¦ ¦--'+': + [0/0] {385} - ¦ ¦ °--expr: b [0/0] {387} - ¦ ¦ °--SYMBOL: b [0/0] {386} - ¦ ¦--expr: a--b [1/2] {388} - ¦ ¦ ¦--expr: a [0/0] {390} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {389} - ¦ ¦ ¦--'-': - [0/0] {391} - ¦ ¦ °--expr: -b [0/0] {392} - ¦ ¦ ¦--'-': - [0/0] {393} - ¦ ¦ °--expr: b [0/0] {395} - ¦ ¦ °--SYMBOL: b [0/0] {394} - ¦ ¦--expr: a+--b [1/2] {396} - ¦ ¦ ¦--expr: a [0/0] {398} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {397} - ¦ ¦ ¦--'+': + [0/0] {399} - ¦ ¦ °--expr: --b [0/0] {400} - ¦ ¦ ¦--'-': - [0/0] {401} - ¦ ¦ °--expr: -b [0/0] {402} - ¦ ¦ ¦--'-': - [0/0] {403} - ¦ ¦ °--expr: b [0/0] {405} - ¦ ¦ °--SYMBOL: b [0/0] {404} - ¦ ¦--expr: a--+b [1/2] {406} - ¦ ¦ ¦--expr: a [0/0] {408} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {407} - ¦ ¦ ¦--'-': - [0/0] {409} - ¦ ¦ °--expr: -+b [0/0] {410} - ¦ ¦ ¦--'-': - [0/0] {411} - ¦ ¦ °--expr: +b [0/0] {412} - ¦ ¦ ¦--'+': + [0/0] {413} - ¦ ¦ °--expr: b [0/0] {415} - ¦ ¦ °--SYMBOL: b [0/0] {414} - ¦ ¦--expr: call( [1/2] {416} - ¦ ¦ ¦--expr: call [0/0] {418} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {417} - ¦ ¦ ¦--'(': ( [0/1] {419} - ¦ ¦ ¦--expr: + a [0/0] {420} - ¦ ¦ ¦ ¦--'+': + [0/1] {421} - ¦ ¦ ¦ °--expr: a [0/0] {423} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {422} - ¦ ¦ °--')': ) [0/0] {424} - ¦ ¦--expr: call( [1/2] {425} - ¦ ¦ ¦--expr: call [0/0] {427} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {426} - ¦ ¦ ¦--'(': ( [0/1] {428} - ¦ ¦ ¦--expr: - a [0/0] {429} - ¦ ¦ ¦ ¦--'-': - [0/1] {430} - ¦ ¦ ¦ °--expr: a [0/0] {432} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {431} - ¦ ¦ °--')': ) [0/0] {433} - ¦ ¦--expr: call( [1/2] {434} - ¦ ¦ ¦--expr: call [0/0] {436} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {435} - ¦ ¦ ¦--'(': ( [0/0] {437} - ¦ ¦ ¦--expr: 5 [0/0] {439} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {438} - ¦ ¦ ¦--',': , [0/1] {440} - ¦ ¦ ¦--expr: + a [0/0] {441} - ¦ ¦ ¦ ¦--'+': + [0/1] {442} - ¦ ¦ ¦ °--expr: a [0/0] {444} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {443} - ¦ ¦ °--')': ) [0/0] {445} - ¦ ¦--expr: call( [1/2] {446} - ¦ ¦ ¦--expr: call [0/0] {448} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {447} - ¦ ¦ ¦--'(': ( [0/0] {449} - ¦ ¦ ¦--expr: 5 [0/0] {451} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {450} - ¦ ¦ ¦--',': , [0/1] {452} - ¦ ¦ ¦--expr: - a [0/0] {453} - ¦ ¦ ¦ ¦--'-': - [0/1] {454} - ¦ ¦ ¦ °--expr: a [0/0] {456} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {455} - ¦ ¦ °--')': ) [0/0] {457} - ¦ ¦--COMMENT: # Onl [2/2] {458} - ¦ ¦--expr: call( [1/2] {459} - ¦ ¦ ¦--expr: call [0/0] {461} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {460} - ¦ ¦ ¦--'(': ( [0/4] {462} - ¦ ¦ ¦--expr: prese [1/0] {464} - ¦ ¦ ¦ °--SYMBOL: prese [0/0] {463} - ¦ ¦ ¦--',': , [0/1] {465} - ¦ ¦ ¦--expr: dista [0/0] {467} - ¦ ¦ ¦ °--SYMBOL: dista [0/0] {466} - ¦ ¦ ¦--',': , [0/4] {468} - ¦ ¦ ¦--expr: after [1/0] {470} - ¦ ¦ ¦ °--SYMBOL: after [0/0] {469} - ¦ ¦ ¦--',': , [0/5] {471} - ¦ ¦ ¦--expr: comma [0/0] {473} - ¦ ¦ ¦ °--SYMBOL: comma [0/0] {472} - ¦ ¦ ¦--',': , [0/4] {474} - ¦ ¦ ¦--expr: given [1/0] {476} - ¦ ¦ ¦ °--SYMBOL: given [0/0] {475} - ¦ ¦ ¦--',': , [0/0] {477} - ¦ ¦ ¦--expr: one [0/2] {479} - ¦ ¦ ¦ °--SYMBOL: one [0/0] {478} - ¦ ¦ °--')': ) [1/0] {480} - ¦ ¦--expr: if(TR [2/2] {481} - ¦ ¦ ¦--IF: if [0/0] {482} - ¦ ¦ ¦--'(': ( [0/0] {483} - ¦ ¦ ¦--expr: TRUE [0/0] {485} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {484} - ¦ ¦ ¦--')': ) [0/0] {486} - ¦ ¦ °--expr: { - [0/0] {487} - ¦ ¦ ¦--'{': { [0/4] {488} - ¦ ¦ ¦--expr: FALSE [1/2] {490} - ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {489} - ¦ ¦ °--'}': } [1/0] {491} - ¦ ¦--expr: if(TR [2/2] {492} - ¦ ¦ ¦--IF: if [0/0] {493} - ¦ ¦ ¦--'(': ( [0/0] {494} - ¦ ¦ ¦--expr: TRUE [0/0] {496} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {495} - ¦ ¦ ¦--')': ) [0/0] {497} - ¦ ¦ ¦--expr: { - [0/0] {498} - ¦ ¦ ¦ ¦--'{': { [0/4] {499} - ¦ ¦ ¦ ¦--expr: FALSE [1/2] {501} - ¦ ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {500} - ¦ ¦ ¦ °--'}': } [1/0] {502} - ¦ ¦ ¦--ELSE: else [0/0] {503} - ¦ ¦ °--expr: { - [0/0] {504} - ¦ ¦ ¦--'{': { [0/4] {505} - ¦ ¦ ¦--expr: TRUE [1/2] {507} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {506} - ¦ ¦ °--'}': } [1/0] {508} - ¦ ¦--expr: while [2/2] {509} - ¦ ¦ ¦--WHILE: while [0/0] {510} - ¦ ¦ ¦--'(': ( [0/0] {511} - ¦ ¦ ¦--expr: TRUE [0/0] {513} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {512} - ¦ ¦ ¦--')': ) [0/0] {514} - ¦ ¦ °--expr: { - [0/0] {515} - ¦ ¦ ¦--'{': { [0/4] {516} - ¦ ¦ ¦--expr: FALSE [1/2] {518} - ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {517} - ¦ ¦ °--'}': } [1/0] {519} - ¦ ¦--expr: singl [2/2] {520} - ¦ ¦ ¦--expr: singl [0/1] {522} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: singl [0/0] {521} - ¦ ¦ ¦--'(': ( [0/1] {523} - ¦ ¦ ¦--expr: "func [0/1] {525} - ¦ ¦ ¦ °--STR_CONST: "func [0/0] {524} - ¦ ¦ ¦--',': , [0/0] {526} - ¦ ¦ ¦--expr: call [0/1] {528} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {527} - ¦ ¦ °--')': ) [0/0] {529} - ¦ ¦--expr: multi [2/2] {530} - ¦ ¦ ¦--expr: multi [0/1] {532} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: multi [0/0] {531} - ¦ ¦ ¦--'(': ( [0/2] {533} - ¦ ¦ ¦--expr: "func [1/0] {535} - ¦ ¦ ¦ °--STR_CONST: "func [0/0] {534} - ¦ ¦ ¦--',': , [0/1] {536} - ¦ ¦ ¦--expr: call [0/1] {538} - ¦ ¦ ¦ °--SYMBOL: call [0/0] {537} - ¦ ¦ °--')': ) [0/0] {539} - ¦ ¦--expr: neste [2/2] {540} - ¦ ¦ ¦--expr: neste [0/1] {542} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {541} - ¦ ¦ ¦--'(': ( [0/1] {543} - ¦ ¦ ¦--expr: funct [0/1] {544} - ¦ ¦ ¦ ¦--expr: funct [0/1] {546} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {545} - ¦ ¦ ¦ ¦--'(': ( [0/1] {547} - ¦ ¦ ¦ ¦--expr: "in" [0/1] {549} - ¦ ¦ ¦ ¦ °--STR_CONST: "in" [0/0] {548} - ¦ ¦ ¦ ¦--',': , [0/0] {550} - ¦ ¦ ¦ ¦--expr: one [0/1] {552} - ¦ ¦ ¦ ¦ °--SYMBOL: one [0/0] {551} - ¦ ¦ ¦ ¦--',': , [0/0] {553} - ¦ ¦ ¦ ¦--expr: line [0/1] {555} - ¦ ¦ ¦ ¦ °--SYMBOL: line [0/0] {554} - ¦ ¦ ¦ °--')': ) [0/0] {556} - ¦ ¦ °--')': ) [0/0] {557} - ¦ ¦--expr: neste [2/2] {558} - ¦ ¦ ¦--expr: neste [0/1] {560} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {559} - ¦ ¦ ¦--'(': ( [0/1] {561} - ¦ ¦ ¦--expr: funct [0/1] {562} - ¦ ¦ ¦ ¦--expr: funct [0/1] {564} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {563} - ¦ ¦ ¦ ¦--'(': ( [0/2] {565} - ¦ ¦ ¦ ¦--expr: "in" [1/0] {567} - ¦ ¦ ¦ ¦ °--STR_CONST: "in" [0/0] {566} - ¦ ¦ ¦ ¦--',': , [0/6] {568} - ¦ ¦ ¦ ¦--expr: multi [1/0] {570} - ¦ ¦ ¦ ¦ °--SYMBOL: multi [0/0] {569} - ¦ ¦ ¦ ¦--',': , [0/0] {571} - ¦ ¦ ¦ ¦--expr: lines [0/1] {573} - ¦ ¦ ¦ ¦ °--SYMBOL: lines [0/0] {572} - ¦ ¦ ¦ °--')': ) [0/0] {574} - ¦ ¦ °--')': ) [0/0] {575} - ¦ ¦--expr: neste [2/2] {576} - ¦ ¦ ¦--expr: neste [0/0] {578} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {577} - ¦ ¦ ¦--'(': ( [0/2] {579} - ¦ ¦ ¦--expr: funct [1/0] {580} - ¦ ¦ ¦ ¦--expr: funct [0/1] {582} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {581} - ¦ ¦ ¦ ¦--'(': ( [0/1] {583} - ¦ ¦ ¦ ¦--expr: with [0/1] {585} - ¦ ¦ ¦ ¦ °--SYMBOL: with [0/0] {584} - ¦ ¦ ¦ °--')': ) [0/0] {586} - ¦ ¦ ¦--',': , [0/6] {587} - ¦ ¦ ¦--expr: many [1/2] {589} - ¦ ¦ ¦ °--SYMBOL: many [0/0] {588} - ¦ ¦ ¦--',': , [1/5] {590} - ¦ ¦ ¦--expr: first [0/2] {592} - ¦ ¦ ¦ °--SYMBOL: first [0/0] {591} - ¦ ¦ °--')': ) [0/0] {593} - ¦ ¦--expr: neste [2/2] {594} - ¦ ¦ ¦--expr: neste [0/0] {596} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {595} - ¦ ¦ ¦--'(': ( [0/4] {597} - ¦ ¦ ¦--expr: funct [1/0] {598} - ¦ ¦ ¦ ¦--expr: funct [0/1] {600} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: funct [0/0] {599} - ¦ ¦ ¦ ¦--'(': ( [0/1] {601} - ¦ ¦ ¦ ¦--expr: with [0/1] {603} - ¦ ¦ ¦ ¦ °--SYMBOL: with [0/0] {602} - ¦ ¦ ¦ °--')': ) [0/0] {604} - ¦ ¦ ¦--',': , [0/2] {605} - ¦ ¦ ¦--COMMENT: # a c [0/4] {606} - ¦ ¦ ¦--expr: many [1/1] {608} - ¦ ¦ ¦ °--SYMBOL: many [0/0] {607} - ¦ ¦ ¦--COMMENT: #more [0/4] {609} - ¦ ¦ ¦--',': , [1/5] {610} - ¦ ¦ ¦--expr: first [0/2] {612} - ¦ ¦ ¦ °--SYMBOL: first [0/0] {611} - ¦ ¦ °--')': ) [0/0] {613} - ¦ ¦--expr: diffi [2/0] {614} - ¦ ¦ ¦--expr: diffi [0/0] {616} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: diffi [0/0] {615} - ¦ ¦ ¦--'(': ( [0/0] {617} - ¦ ¦ ¦--expr: neste [0/0] {618} - ¦ ¦ ¦ ¦--expr: neste [0/0] {620} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: neste [0/0] {619} - ¦ ¦ ¦ ¦--'(': ( [0/4] {621} - ¦ ¦ ¦ ¦--expr: "func [1/0] {623} - ¦ ¦ ¦ ¦ °--STR_CONST: "func [0/0] {622} - ¦ ¦ ¦ ¦--',': , [0/1] {624} - ¦ ¦ ¦ ¦--expr: call [0/2] {626} - ¦ ¦ ¦ ¦ °--SYMBOL: call [0/0] {625} - ¦ ¦ ¦ °--')': ) [1/0] {627} - ¦ ¦ ¦--',': , [0/4] {628} - ¦ ¦ ¦--expr: with [1/0] {630} - ¦ ¦ ¦ °--SYMBOL: with [0/0] {629} - ¦ ¦ ¦--',': , [0/1] {631} - ¦ ¦ ¦--expr: more [0/0] {633} - ¦ ¦ ¦ °--SYMBOL: more [0/0] {632} - ¦ ¦ ¦--',': , [0/1] {634} - ¦ ¦ ¦--expr: args [0/2] {636} - ¦ ¦ ¦ °--SYMBOL: args [0/0] {635} - ¦ ¦ °--')': ) [1/0] {637} - ¦ °--'}': } [1/0] {638} - ¦--COMMENT: # for [3/0] {639} - ¦--expr: lm(a~ [1/0] {640} - ¦ ¦--expr: lm [0/0] {642} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: lm [0/0] {641} - ¦ ¦--'(': ( [0/0] {643} - ¦ ¦--expr: a~b+c [0/0] {644} - ¦ ¦ ¦--expr: a [0/0] {646} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {645} - ¦ ¦ ¦--'~': ~ [0/0] {647} - ¦ ¦ ¦--expr: b [0/0] {650} - ¦ ¦ ¦ °--SYMBOL: b [0/0] {649} - ¦ ¦ ¦--'+': + [0/0] {651} - ¦ ¦ °--expr: c [0/0] {653} - ¦ ¦ °--SYMBOL: c [0/0] {652} - ¦ ¦--',': , [0/0] {654} - ¦ ¦--SYMBOL_SUB: data [0/0] {655} - ¦ ¦--EQ_SUB: = [0/0] {656} - ¦ ¦--expr: NA [0/0] {658} - ¦ ¦ °--NUM_CONST: NA [0/0] {657} - ¦ °--')': ) [0/0] {659} - ¦--expr: lm(a~ [1/0] {660} - ¦ ¦--expr: lm [0/0] {662} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: lm [0/0] {661} - ¦ ¦--'(': ( [0/0] {663} - ¦ ¦--expr: a~.-1 [0/0] {664} - ¦ ¦ ¦--expr: a [0/0] {666} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {665} - ¦ ¦ ¦--'~': ~ [0/0] {667} - ¦ ¦ ¦--expr: . [0/0] {670} - ¦ ¦ ¦ °--SYMBOL: . [0/0] {669} - ¦ ¦ ¦--'-': - [0/0] {671} - ¦ ¦ °--expr: 1 [0/0] {673} - ¦ ¦ °--NUM_CONST: 1 [0/0] {672} - ¦ ¦--',': , [0/0] {674} - ¦ ¦--SYMBOL_SUB: data [0/0] {675} - ¦ ¦--EQ_SUB: = [0/0] {676} - ¦ ¦--expr: NA [0/0] {678} - ¦ ¦ °--NUM_CONST: NA [0/0] {677} - ¦ °--')': ) [0/0] {679} - ¦--expr: a~b:c [1/0] {680} - ¦ ¦--expr: a [0/0] {682} - ¦ ¦ °--SYMBOL: a [0/0] {681} - ¦ ¦--'~': ~ [0/0] {683} - ¦ °--expr: b:c [0/0] {684} - ¦ ¦--expr: b [0/0] {686} - ¦ ¦ °--SYMBOL: b [0/0] {685} - ¦ ¦--':': : [0/0] {687} - ¦ °--expr: c [0/0] {689} - ¦ °--SYMBOL: c [0/0] {688} - ¦--expr: a ~ [1/0] {690} - ¦ ¦--expr: a [0/3] {692} - ¦ ¦ °--SYMBOL: a [0/0] {691} - ¦ ¦--'~': ~ [0/3] {693} - ¦ °--expr: b : [0/0] {694} - ¦ ¦--expr: b [0/2] {696} - ¦ ¦ °--SYMBOL: b [0/0] {695} - ¦ ¦--':': : [0/1] {697} - ¦ °--expr: c [0/0] {699} - ¦ °--SYMBOL: c [0/0] {698} - ¦--expr: a~b : [1/0] {700} - ¦ ¦--expr: a [0/0] {702} - ¦ ¦ °--SYMBOL: a [0/0] {701} - ¦ ¦--'~': ~ [0/0] {703} - ¦ °--expr: b :c [0/0] {704} - ¦ ¦--expr: b [0/1] {706} - ¦ ¦ °--SYMBOL: b [0/0] {705} - ¦ ¦--':': : [0/0] {707} - ¦ °--expr: c [0/0] {709} - ¦ °--SYMBOL: c [0/0] {708} - ¦--expr: ~ [1/0] {710} - ¦ ¦--'~': ~ [0/4] {711} - ¦ °--expr: a [0/0] {713} - ¦ °--SYMBOL: a [0/0] {712} - ¦--expr: ~gg [1/0] {714} - ¦ ¦--'~': ~ [0/0] {715} - ¦ °--expr: gg [0/0] {717} - ¦ °--SYMBOL: gg [0/0] {716} - ¦--expr: b~k [1/0] {718} - ¦ ¦--expr: b [0/0] {720} - ¦ ¦ °--SYMBOL: b [0/0] {719} - ¦ ¦--'~': ~ [0/0] {721} - ¦ °--expr: k [0/0] {723} - ¦ °--SYMBOL: k [0/0] {722} - °--expr: call( [1/0] {724} - ¦--expr: call [0/0] {726} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {725} - ¦--'(': ( [0/0] {727} - ¦--expr: 1 [0/0] {729} - ¦ °--NUM_CONST: 1 [0/0] {728} - ¦--',': , [0/1] {730} - ¦--expr: ~ qq [0/0] {731} - ¦ ¦--'~': ~ [0/1] {732} - ¦ °--expr: qq [0/0] {734} - ¦ °--SYMBOL: qq [0/0] {733} - °--')': ) [0/0] {735} diff --git a/tests/testthat/stylerignore/adding-removing-in_tree b/tests/testthat/stylerignore/adding-removing-in_tree deleted file mode 100644 index df503a1ec..000000000 --- a/tests/testthat/stylerignore/adding-removing-in_tree +++ /dev/null @@ -1,180 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # sty [0/0] {1} - ¦--expr: 1 +1 [1/0] {2} - ¦ ¦--expr: 1 [0/1] {4} - ¦ ¦ °--NUM_CONST: 1 [0/0] {3} - ¦ ¦--'+': + [0/0] {5} - ¦ °--expr: 1 [0/0] {7} - ¦ °--NUM_CONST: 1 [0/0] {6} - ¦--';': ; [0/0] {8} - ¦--expr: 3 [0/0] {10} - ¦ °--NUM_CONST: 3 [0/0] {9} - ¦--COMMENT: # sty [1/0] {11} - ¦--COMMENT: # a c [1/0] {12} - ¦--expr: c(z ) [1/0] {13} - ¦ ¦--expr: c [0/0] {15} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {14} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--expr: z [0/1] {18} - ¦ ¦ °--SYMBOL: z [0/0] {17} - ¦ °--')': ) [0/0] {19} - ¦--COMMENT: # sty [3/0] {20} - ¦--expr: if (F [1/0] {21} - ¦ ¦--IF: if [0/1] {22} - ¦ ¦--'(': ( [0/0] {23} - ¦ ¦--expr: FALSE [0/0] {25} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {24} - ¦ ¦--')': ) [0/2] {26} - ¦ °--expr: 3 [1/0] {28} - ¦ °--NUM_CONST: 3 [0/0] {27} - ¦--expr_or_assign_or_help: x = 3 [1/0] {29} - ¦ ¦--expr: x [0/1] {31} - ¦ ¦ °--SYMBOL: x [0/0] {30} - ¦ ¦--EQ_ASSIGN: = [0/1] {32} - ¦ °--expr: 3 [0/0] {34} - ¦ °--NUM_CONST: 3 [0/0] {33} - ¦--expr_or_assign_or_help: y = 2 [2/1] {35} - ¦ ¦--expr: y [0/1] {37} - ¦ ¦ °--SYMBOL: y [0/0] {36} - ¦ ¦--EQ_ASSIGN: = [0/1] {38} - ¦ °--expr: 2 [0/0] {40} - ¦ °--NUM_CONST: 2 [0/0] {39} - ¦--COMMENT: # com [0/0] {41} - ¦--COMMENT: # sty [1/0] {42} - ¦--expr: if (F [2/0] {43} - ¦ ¦--IF: if [0/1] {44} - ¦ ¦--'(': ( [0/0] {45} - ¦ ¦--expr: FALSE [0/0] {47} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {46} - ¦ ¦--')': ) [0/1] {48} - ¦ °--expr: { - 3 [0/0] {49} - ¦ ¦--'{': { [0/2] {50} - ¦ ¦--expr: 3 [1/0] {52} - ¦ ¦ °--NUM_CONST: 3 [0/0] {51} - ¦ °--'}': } [1/0] {53} - ¦--COMMENT: # sty [3/0] {54} - ¦--expr: funct [1/0] {55} - ¦ ¦--FUNCTION: funct [0/0] {56} - ¦ ¦--'(': ( [0/0] {57} - ¦ ¦--')': ) [0/2] {58} - ¦ °--expr: NULL [1/0] {60} - ¦ °--NULL_CONST: NULL [0/0] {59} - ¦--COMMENT: # sty [1/0] {61} - ¦--COMMENT: # sty [3/0] {62} - ¦--expr: if (f [1/0] {63} - ¦ ¦--IF: if [0/1] {64} - ¦ ¦--'(': ( [0/0] {65} - ¦ ¦--expr: f(x) [0/0] {66} - ¦ ¦ ¦--expr: f [0/0] {68} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: f [0/0] {67} - ¦ ¦ ¦--'(': ( [0/0] {69} - ¦ ¦ ¦--expr: x [0/0] {71} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {70} - ¦ ¦ °--')': ) [0/0] {72} - ¦ ¦--')': ) [0/1] {73} - ¦ ¦--expr: { - 3 [0/1] {74} - ¦ ¦ ¦--'{': { [0/2] {75} - ¦ ¦ ¦--expr: 3 [1/0] {77} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {76} - ¦ ¦ °--'}': } [1/0] {78} - ¦ ¦--ELSE: else [0/2] {79} - ¦ °--expr: 4 [1/0] {81} - ¦ °--NUM_CONST: 4 [0/0] {80} - ¦--COMMENT: # sty [1/0] {82} - ¦--COMMENT: # sty [3/0] {83} - ¦--expr: while [1/0] {84} - ¦ ¦--WHILE: while [0/1] {85} - ¦ ¦--'(': ( [0/0] {86} - ¦ ¦--expr: x < 4 [0/0] {87} - ¦ ¦ ¦--expr: x [0/1] {89} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {88} - ¦ ¦ ¦--LT: < [0/1] {90} - ¦ ¦ °--expr: 4 [0/0] {92} - ¦ ¦ °--NUM_CONST: 4 [0/0] {91} - ¦ ¦--')': ) [0/1] {93} - ¦ °--expr: n() [0/0] {94} - ¦ ¦--expr: n [0/0] {96} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {95} - ¦ ¦--'(': ( [0/0] {97} - ¦ °--')': ) [0/0] {98} - ¦--COMMENT: # sty [1/0] {99} - ¦--COMMENT: # sty [3/0] {100} - ¦--expr: for(i [1/0] {101} - ¦ ¦--FOR: for [0/0] {102} - ¦ ¦--forcond: (i in [0/1] {103} - ¦ ¦ ¦--'(': ( [0/0] {104} - ¦ ¦ ¦--SYMBOL: i [0/1] {105} - ¦ ¦ ¦--IN: in [0/1] {106} - ¦ ¦ ¦--expr: 1:3 [0/0] {107} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {109} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {108} - ¦ ¦ ¦ ¦--':': : [0/0] {110} - ¦ ¦ ¦ °--expr: 3 [0/0] {112} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {111} - ¦ ¦ °--')': ) [0/0] {113} - ¦ °--expr: { - i [0/0] {114} - ¦ ¦--'{': { [0/2] {115} - ¦ ¦--expr: i [1/0] {117} - ¦ ¦ °--SYMBOL: i [0/0] {116} - ¦ °--'}': } [1/0] {118} - ¦--COMMENT: # sty [1/0] {119} - ¦--COMMENT: # sty [2/0] {120} - ¦--expr: for ( [1/0] {121} - ¦ ¦--FOR: for [0/1] {122} - ¦ ¦--forcond: (i in [0/2] {123} - ¦ ¦ ¦--'(': ( [0/0] {124} - ¦ ¦ ¦--SYMBOL: i [0/1] {125} - ¦ ¦ ¦--IN: in [0/1] {126} - ¦ ¦ ¦--expr: 1:3 [0/0] {127} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {129} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {128} - ¦ ¦ ¦ ¦--':': : [0/0] {130} - ¦ ¦ ¦ °--expr: 3 [0/0] {132} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {131} - ¦ ¦ °--')': ) [0/0] {133} - ¦ °--expr: g(i) [1/0] {134} - ¦ ¦--expr: g(i) [0/1] {135} - ¦ ¦ ¦--expr: g [0/0] {137} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: g [0/0] {136} - ¦ ¦ ¦--'(': ( [0/0] {138} - ¦ ¦ ¦--expr: i [0/0] {140} - ¦ ¦ ¦ °--SYMBOL: i [0/0] {139} - ¦ ¦ °--')': ) [0/0] {141} - ¦ ¦--'-': - [0/1] {142} - ¦ °--expr: 2 [0/0] {144} - ¦ °--NUM_CONST: 2 [0/0] {143} - ¦--COMMENT: # sty [2/0] {145} - ¦--expr: 1+ 54 [1/0] {146} - ¦ ¦--expr: 1 [0/0] {148} - ¦ ¦ °--NUM_CONST: 1 [0/0] {147} - ¦ ¦--'+': + [0/1] {149} - ¦ °--expr: 54780 [0/0] {151} - ¦ °--NUM_CONST: 54780 [0/0] {150} - ¦--expr: 1 +1 [3/1] {152} - ¦ ¦--expr: 1 [0/1] {154} - ¦ ¦ °--NUM_CONST: 1 [0/0] {153} - ¦ ¦--'+': + [0/0] {155} - ¦ °--expr: 1 [0/0] {157} - ¦ °--NUM_CONST: 1 [0/0] {156} - ¦--COMMENT: # sty [0/0] {158} - ¦--expr: 1 [2/0] {160} - ¦ °--NUM_CONST: 1 [0/0] {159} - ¦--';': ; [0/0] {161} - ¦--expr: 1 [0/1] {163} - ¦ °--NUM_CONST: 1 [0/0] {162} - ¦--COMMENT: # sty [0/0] {164} - ¦--COMMENT: # sty [2/0] {165} - ¦--expr: 1 +1 [1/0] {166} - ¦ ¦--expr: 1 [0/1] {168} - ¦ ¦ °--NUM_CONST: 1 [0/0] {167} - ¦ ¦--'+': + [0/0] {169} - ¦ °--expr: 1 [0/0] {171} - ¦ °--NUM_CONST: 1 [0/0] {170} - ¦--';': ; [0/0] {172} - ¦--expr: 3 [0/1] {174} - ¦ °--NUM_CONST: 3 [0/0] {173} - ¦--COMMENT: # com [0/0] {175} - °--COMMENT: # sty [1/0] {176} diff --git a/tests/testthat/stylerignore/alignment-in_tree b/tests/testthat/stylerignore/alignment-in_tree deleted file mode 100644 index 18ae34374..000000000 --- a/tests/testthat/stylerignore/alignment-in_tree +++ /dev/null @@ -1,110 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: ps( - [0/0] {1} - ¦--expr: ps [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: ps [0/0] {2} - ¦--'(': ( [0/2] {4} - ¦--SYMBOL_SUB: inter [1/1] {5} - ¦--EQ_SUB: = [0/1] {6} - ¦--expr: p_uty [0/0] {7} - ¦ ¦--expr: p_uty [0/0] {9} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: p_uty [0/0] {8} - ¦ ¦--'(': ( [0/0] {10} - ¦ ¦--SYMBOL_SUB: tgs [0/1] {11} - ¦ ¦--EQ_SUB: = [0/1] {12} - ¦ ¦--expr: "trai [0/0] {14} - ¦ ¦ °--STR_CONST: "trai [0/0] {13} - ¦ °--')': ) [0/0] {15} - ¦--',': , [0/2] {16} - ¦--SYMBOL_SUB: monot [1/4] {17} - ¦--EQ_SUB: = [0/1] {18} - ¦--expr: p_uty [0/0] {19} - ¦ ¦--expr: p_uty [0/0] {21} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: p_uty [0/0] {20} - ¦ ¦--'(': ( [0/0] {22} - ¦ ¦--SYMBOL_SUB: dfaul [0/1] {23} - ¦ ¦--EQ_SUB: = [0/1] {24} - ¦ ¦--expr: 0 [0/0] {26} - ¦ ¦ °--NUM_CONST: 0 [0/0] {25} - ¦ ¦--',': , [0/1] {27} - ¦ ¦--SYMBOL_SUB: tags [0/1] {28} - ¦ ¦--EQ_SUB: = [0/1] {29} - ¦ ¦--expr: c("tr [0/0] {30} - ¦ ¦ ¦--expr: c [0/0] {32} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {31} - ¦ ¦ ¦--'(': ( [0/0] {33} - ¦ ¦ ¦--expr: "trai [0/0] {35} - ¦ ¦ ¦ °--STR_CONST: "trai [0/0] {34} - ¦ ¦ ¦--',': , [0/1] {36} - ¦ ¦ ¦--expr: "cont [0/0] {38} - ¦ ¦ ¦ °--STR_CONST: "cont [0/0] {37} - ¦ ¦ °--')': ) [0/0] {39} - ¦ ¦--',': , [0/1] {40} - ¦ ¦--SYMBOL_SUB: custo [0/1] {41} - ¦ ¦--EQ_SUB: = [0/1] {42} - ¦ ¦--expr: funct [0/0] {43} - ¦ ¦ ¦--FUNCTION: funct [0/0] {44} - ¦ ¦ ¦--'(': ( [0/0] {45} - ¦ ¦ ¦--SYMBOL_FORMALS: x [0/0] {46} - ¦ ¦ ¦--')': ) [0/1] {47} - ¦ ¦ °--expr: { ch [0/0] {48} - ¦ ¦ ¦--'{': { [0/2] {49} - ¦ ¦ ¦--expr: check [0/1] {50} - ¦ ¦ ¦ ¦--expr: check [0/0] {51} - ¦ ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: check [0/0] {52} - ¦ ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {53} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: check [0/0] {54} - ¦ ¦ ¦ ¦--'(': ( [0/0] {55} - ¦ ¦ ¦ ¦--expr: x [0/0] {57} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {56} - ¦ ¦ ¦ ¦--',': , [0/1] {58} - ¦ ¦ ¦ ¦--SYMBOL_SUB: lower [0/1] {59} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {60} - ¦ ¦ ¦ ¦--expr: -1 [0/0] {61} - ¦ ¦ ¦ ¦ ¦--'-': - [0/0] {62} - ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {64} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {63} - ¦ ¦ ¦ ¦--',': , [0/1] {65} - ¦ ¦ ¦ ¦--SYMBOL_SUB: upper [0/1] {66} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {67} - ¦ ¦ ¦ ¦--expr: 1 [0/0] {69} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {68} - ¦ ¦ ¦ ¦--',': , [0/1] {70} - ¦ ¦ ¦ ¦--SYMBOL_SUB: any.m [0/1] {71} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {72} - ¦ ¦ ¦ ¦--expr: FALSE [0/0] {74} - ¦ ¦ ¦ ¦ °--NUM_CONST: FALSE [0/0] {73} - ¦ ¦ ¦ °--')': ) [0/0] {75} - ¦ ¦ °--'}': } [0/0] {76} - ¦ °--')': ) [0/0] {77} - ¦--',': , [0/1] {78} - ¦--COMMENT: # sty [0/2] {79} - ¦--SYMBOL_SUB: norma [1/10] {80} - ¦--EQ_SUB: = [0/1] {81} - ¦--expr: p_fct [0/0] {82} - ¦ ¦--expr: p_fct [0/0] {84} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: p_fct [0/0] {83} - ¦ ¦--'(': ( [0/0] {85} - ¦ ¦--expr: c("te [0/0] {86} - ¦ ¦ ¦--expr: c [0/0] {88} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {87} - ¦ ¦ ¦--'(': ( [0/0] {89} - ¦ ¦ ¦--expr: "tee" [0/0] {91} - ¦ ¦ ¦ °--STR_CONST: "tee" [0/0] {90} - ¦ ¦ ¦--',': , [0/1] {92} - ¦ ¦ ¦--expr: "fore [0/0] {94} - ¦ ¦ ¦ °--STR_CONST: "fore [0/0] {93} - ¦ ¦ °--')': ) [0/0] {95} - ¦ ¦--',': , [0/1] {96} - ¦ ¦--SYMBOL_SUB: defau [0/1] {97} - ¦ ¦--EQ_SUB: = [0/1] {98} - ¦ ¦--expr: "tree [0/0] {100} - ¦ ¦ °--STR_CONST: "tree [0/0] {99} - ¦ ¦--',': , [0/1] {101} - ¦ ¦--SYMBOL_SUB: tags [0/1] {102} - ¦ ¦--EQ_SUB: = [0/1] {103} - ¦ ¦--expr: "trai [0/0] {105} - ¦ ¦ °--STR_CONST: "trai [0/0] {104} - ¦ °--')': ) [0/0] {106} - ¦--',': , [0/0] {107} - °--')': ) [1/0] {108} diff --git a/tests/testthat/stylerignore/braces-in_tree b/tests/testthat/stylerignore/braces-in_tree deleted file mode 100644 index a24768ff6..000000000 --- a/tests/testthat/stylerignore/braces-in_tree +++ /dev/null @@ -1,81 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: x<- f [0/1] {1} - ¦ ¦--expr: x [0/0] {3} - ¦ ¦ °--SYMBOL: x [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--')': ) [0/0] {8} - ¦ °--expr: 3 [1/0] {10} - ¦ °--NUM_CONST: 3 [0/0] {9} - ¦--COMMENT: # sty [0/0] {11} - ¦--expr: x<- f [2/0] {12} - ¦ ¦--expr: x [0/0] {14} - ¦ ¦ °--SYMBOL: x [0/0] {13} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {15} - ¦ °--expr: funct [0/0] {16} - ¦ ¦--FUNCTION: funct [0/0] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--')': ) [0/1] {19} - ¦ ¦--COMMENT: # sty [0/2] {20} - ¦ °--expr: 3 [1/0] {22} - ¦ °--NUM_CONST: 3 [0/0] {21} - ¦--expr: if (x [3/0] {23} - ¦ ¦--IF: if [0/1] {24} - ¦ ¦--'(': ( [0/0] {25} - ¦ ¦--expr: x [0/0] {27} - ¦ ¦ °--SYMBOL: x [0/0] {26} - ¦ ¦--')': ) [0/1] {28} - ¦ ¦--COMMENT: # sty [0/2] {29} - ¦ ¦--expr: 3 [1/1] {31} - ¦ ¦ °--NUM_CONST: 3 [0/0] {30} - ¦ ¦--ELSE: else [0/2] {32} - ¦ °--expr: 4 [1/0] {34} - ¦ °--NUM_CONST: 4 [0/0] {33} - ¦--expr: if (x [2/0] {35} - ¦ ¦--IF: if [0/1] {36} - ¦ ¦--'(': ( [0/0] {37} - ¦ ¦--expr: x [0/0] {39} - ¦ ¦ °--SYMBOL: x [0/0] {38} - ¦ ¦--')': ) [0/1] {40} - ¦ ¦--expr: { - 3 [0/1] {41} - ¦ ¦ ¦--'{': { [0/2] {42} - ¦ ¦ ¦--expr: 3 [1/0] {44} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {43} - ¦ ¦ °--'}': } [1/0] {45} - ¦ ¦--ELSE: else [0/2] {46} - ¦ ¦--COMMENT: # sty [0/2] {47} - ¦ °--expr: 4 [1/0] {49} - ¦ °--NUM_CONST: 4 [0/0] {48} - ¦--expr: if (x [2/1] {50} - ¦ ¦--IF: if [0/1] {51} - ¦ ¦--'(': ( [0/0] {52} - ¦ ¦--expr: x [0/0] {54} - ¦ ¦ °--SYMBOL: x [0/0] {53} - ¦ ¦--')': ) [0/2] {55} - ¦ ¦--expr: 3 [1/1] {57} - ¦ ¦ °--NUM_CONST: 3 [0/0] {56} - ¦ ¦--ELSE: else [0/1] {58} - ¦ °--expr: 4 [0/0] {60} - ¦ °--NUM_CONST: 4 [0/0] {59} - ¦--COMMENT: # sty [0/0] {61} - ¦--expr: while [2/0] {62} - ¦ ¦--WHILE: while [0/1] {63} - ¦ ¦--'(': ( [0/0] {64} - ¦ ¦--expr: x [0/0] {66} - ¦ ¦ °--SYMBOL: x [0/0] {65} - ¦ ¦--')': ) [0/1] {67} - ¦ ¦--COMMENT: # sty [0/2] {68} - ¦ °--expr: "x" [1/0] {70} - ¦ °--STR_CONST: "x" [0/0] {69} - ¦--expr: while [3/0] {71} - ¦ ¦--WHILE: while [0/1] {72} - ¦ ¦--'(': ( [0/0] {73} - ¦ ¦--expr: x [0/0] {75} - ¦ ¦ °--SYMBOL: x [0/0] {74} - ¦ ¦--')': ) [0/2] {76} - ¦ °--expr: "x" [1/0] {78} - ¦ °--STR_CONST: "x" [0/0] {77} - °--COMMENT: # sty [0/0] {79} diff --git a/tests/testthat/stylerignore/crossing-with-expressions-in_tree b/tests/testthat/stylerignore/crossing-with-expressions-in_tree deleted file mode 100644 index d1e859747..000000000 --- a/tests/testthat/stylerignore/crossing-with-expressions-in_tree +++ /dev/null @@ -1,91 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--COMMENT: # sty [1/2] {5} - ¦ ¦--expr: 1+ 1 [1/0] {6} - ¦ ¦ ¦--expr: 1 [0/0] {8} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {7} - ¦ ¦ ¦--'+': + [0/1] {9} - ¦ ¦ °--expr: 1 [0/0] {11} - ¦ ¦ °--NUM_CONST: 1 [0/0] {10} - ¦ ¦--',': , [0/1] {12} - ¦ ¦--expr: test_ [0/0] {13} - ¦ ¦ ¦--expr: test_ [0/0] {15} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {14} - ¦ ¦ ¦--'(': ( [0/0] {16} - ¦ ¦ ¦--expr: "hier [0/0] {18} - ¦ ¦ ¦ °--STR_CONST: "hier [0/0] {17} - ¦ ¦ ¦--',': , [0/1] {19} - ¦ ¦ ¦--SYMBOL_SUB: na.rm [0/1] {20} - ¦ ¦ ¦--EQ_SUB: = [0/1] {21} - ¦ ¦ ¦--expr: 3 [0/1] {23} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {22} - ¦ ¦ ¦--',': , [0/0] {24} - ¦ ¦ ¦--SYMBOL_SUB: py [0/1] {25} - ¦ ¦ ¦--EQ_SUB: = [0/1] {26} - ¦ ¦ ¦--expr: 43 [0/2] {28} - ¦ ¦ ¦ °--NUM_CONST: 43 [0/0] {27} - ¦ ¦ °--')': ) [1/0] {29} - ¦ °--')': ) [1/0] {30} - ¦--COMMENT: # als [2/0] {31} - ¦--expr: test_ [1/0] {32} - ¦ ¦--expr: test_ [0/0] {34} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {33} - ¦ ¦--'(': ( [0/0] {35} - ¦ ¦--expr: "hier [0/0] {37} - ¦ ¦ °--STR_CONST: "hier [0/0] {36} - ¦ ¦--',': , [0/1] {38} - ¦ ¦--SYMBOL_SUB: na.rm [0/1] {39} - ¦ ¦--EQ_SUB: = [0/1] {40} - ¦ ¦--expr: 3 [0/0] {42} - ¦ ¦ °--NUM_CONST: 3 [0/0] {41} - ¦ ¦--',': , [0/1] {43} - ¦ ¦--SYMBOL_SUB: py [0/1] {44} - ¦ ¦--EQ_SUB: = [0/1] {45} - ¦ ¦--expr: 43 [0/9] {47} - ¦ ¦ °--NUM_CONST: 43 [0/0] {46} - ¦ °--')': ) [1/0] {48} - ¦--expr_or_assign_or_help: x="ne [3/1] {49} - ¦ ¦--expr: x [0/0] {51} - ¦ ¦ °--SYMBOL: x [0/0] {50} - ¦ ¦--EQ_ASSIGN: = [0/0] {52} - ¦ °--expr: "new" [0/0] {54} - ¦ °--STR_CONST: "new" [0/0] {53} - ¦--COMMENT: # sty [0/0] {55} - ¦--expr_or_assign_or_help: y=1 [1/1] {56} - ¦ ¦--expr: y [0/0] {58} - ¦ ¦ °--SYMBOL: y [0/0] {57} - ¦ ¦--EQ_ASSIGN: = [0/0] {59} - ¦ °--expr: 1 [0/0] {61} - ¦ °--NUM_CONST: 1 [0/0] {60} - ¦--COMMENT: # non [0/0] {62} - ¦--expr: more_ [2/0] {63} - ¦ ¦--expr: more_ [0/0] {65} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: more_ [0/0] {64} - ¦ ¦--'(': ( [0/2] {66} - ¦ ¦--COMMENT: # sty [1/2] {67} - ¦ ¦--expr: with( [1/0] {68} - ¦ ¦ ¦--expr: with [0/0] {70} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: with [0/0] {69} - ¦ ¦ ¦--'(': ( [0/4] {71} - ¦ ¦ ¦--expr: argum [1/0] {73} - ¦ ¦ ¦ °--SYMBOL: argum [0/0] {72} - ¦ ¦ °--')': ) [0/0] {74} - ¦ °--')': ) [0/0] {75} - ¦--expr: 1 + 1 [1/0] {76} - ¦ ¦--expr: 1 [0/1] {78} - ¦ ¦ °--NUM_CONST: 1 [0/0] {77} - ¦ ¦--'+': + [0/1] {79} - ¦ °--expr: 1 [0/0] {81} - ¦ °--NUM_CONST: 1 [0/0] {80} - °--expr: a(!b) [1/0] {82} - ¦--expr: a [0/0] {84} - ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {83} - ¦--'(': ( [0/0] {85} - ¦--expr: !b [0/0] {86} - ¦ ¦--'!': ! [0/0] {87} - ¦ °--expr: b [0/0] {89} - ¦ °--SYMBOL: b [0/0] {88} - °--')': ) [0/0] {90} diff --git a/tests/testthat/stylerignore/simple-in_tree b/tests/testthat/stylerignore/simple-in_tree deleted file mode 100644 index be7eeea9e..000000000 --- a/tests/testthat/stylerignore/simple-in_tree +++ /dev/null @@ -1,113 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/1] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--expr: 1 [0/1] {6} - ¦ ¦ °--NUM_CONST: 1 [0/0] {5} - ¦ °--')': ) [0/0] {7} - ¦--COMMENT: # sty [0/0] {8} - ¦--COMMENT: # sty [1/0] {9} - ¦--COMMENT: # als [1/0] {10} - ¦--expr: test_ [1/0] {11} - ¦ ¦--expr: test_ [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: test_ [0/0] {12} - ¦ ¦--'(': ( [0/0] {14} - ¦ ¦--expr: "hier [0/0] {16} - ¦ ¦ °--STR_CONST: "hier [0/0] {15} - ¦ ¦--',': , [0/1] {17} - ¦ ¦--SYMBOL_SUB: na.rm [0/1] {18} - ¦ ¦--EQ_SUB: = [0/1] {19} - ¦ ¦--expr: 3 [0/0] {21} - ¦ ¦ °--NUM_CONST: 3 [0/0] {20} - ¦ ¦--',': , [0/1] {22} - ¦ ¦--SYMBOL_SUB: py [0/1] {23} - ¦ ¦--EQ_SUB: = [0/1] {24} - ¦ ¦--expr: 43 [0/9] {26} - ¦ ¦ °--NUM_CONST: 43 [0/0] {25} - ¦ °--')': ) [1/0] {27} - ¦--expr_or_assign_or_help: x="ne [3/1] {28} - ¦ ¦--expr: x [0/0] {30} - ¦ ¦ °--SYMBOL: x [0/0] {29} - ¦ ¦--EQ_ASSIGN: = [0/0] {31} - ¦ °--expr: "new" [0/0] {33} - ¦ °--STR_CONST: "new" [0/0] {32} - ¦--COMMENT: # sty [0/0] {34} - ¦--expr_or_assign_or_help: y=1 [1/1] {35} - ¦ ¦--expr: y [0/0] {37} - ¦ ¦ °--SYMBOL: y [0/0] {36} - ¦ ¦--EQ_ASSIGN: = [0/0] {38} - ¦ °--expr: 1 [0/0] {40} - ¦ °--NUM_CONST: 1 [0/0] {39} - ¦--COMMENT: # non [0/0] {41} - ¦--expr: more_ [2/0] {42} - ¦ ¦--expr: more_ [0/0] {44} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: more_ [0/0] {43} - ¦ ¦--'(': ( [0/0] {45} - ¦ ¦--expr: with( [0/0] {46} - ¦ ¦ ¦--expr: with [0/0] {48} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: with [0/0] {47} - ¦ ¦ ¦--'(': ( [0/0] {49} - ¦ ¦ ¦--expr: argum [0/0] {51} - ¦ ¦ ¦ °--SYMBOL: argum [0/0] {50} - ¦ ¦ °--')': ) [0/0] {52} - ¦ °--')': ) [0/0] {53} - ¦--COMMENT: # sty [1/0] {54} - ¦--expr: 1 + 1 [1/0] {55} - ¦ ¦--expr: 1 [0/1] {57} - ¦ ¦ °--NUM_CONST: 1 [0/0] {56} - ¦ ¦--'+': + [0/1] {58} - ¦ °--expr: 1 [0/0] {60} - ¦ °--NUM_CONST: 1 [0/0] {59} - ¦--expr: a(!b) [1/0] {61} - ¦ ¦--expr: a [0/0] {63} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {62} - ¦ ¦--'(': ( [0/0] {64} - ¦ ¦--expr: !b [0/0] {65} - ¦ ¦ ¦--'!': ! [0/0] {66} - ¦ ¦ °--expr: b [0/0] {68} - ¦ ¦ °--SYMBOL: b [0/0] {67} - ¦ °--')': ) [0/0] {69} - ¦--COMMENT: # --- [3/0] {70} - ¦--expr_or_assign_or_help: x="ne [1/1] {71} - ¦ ¦--expr: x [0/0] {73} - ¦ ¦ °--SYMBOL: x [0/0] {72} - ¦ ¦--EQ_ASSIGN: = [0/0] {74} - ¦ °--expr: "new" [0/0] {76} - ¦ °--STR_CONST: "new" [0/0] {75} - ¦--COMMENT: # sty [0/0] {77} - ¦--expr_or_assign_or_help: y=1 [1/1] {78} - ¦ ¦--expr: y [0/0] {80} - ¦ ¦ °--SYMBOL: y [0/0] {79} - ¦ ¦--EQ_ASSIGN: = [0/0] {81} - ¦ °--expr: 1 [0/0] {83} - ¦ °--NUM_CONST: 1 [0/0] {82} - ¦--COMMENT: # non [0/0] {84} - ¦--expr: more_ [2/0] {85} - ¦ ¦--expr: more_ [0/0] {87} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: more_ [0/0] {86} - ¦ ¦--'(': ( [0/0] {88} - ¦ ¦--expr: with( [0/0] {89} - ¦ ¦ ¦--expr: with [0/0] {91} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: with [0/0] {90} - ¦ ¦ ¦--'(': ( [0/0] {92} - ¦ ¦ ¦--expr: argum [0/0] {94} - ¦ ¦ ¦ °--SYMBOL: argum [0/0] {93} - ¦ ¦ °--')': ) [0/0] {95} - ¦ °--')': ) [0/0] {96} - ¦--COMMENT: # sty [1/0] {97} - ¦--expr: 1 + 1 [1/0] {98} - ¦ ¦--expr: 1 [0/1] {100} - ¦ ¦ °--NUM_CONST: 1 [0/0] {99} - ¦ ¦--'+': + [0/1] {101} - ¦ °--expr: 1 [0/0] {103} - ¦ °--NUM_CONST: 1 [0/0] {102} - °--expr: a(!b) [1/0] {104} - ¦--expr: a [0/0] {106} - ¦ °--SYMBOL_FUNCTION_CALL: a [0/0] {105} - ¦--'(': ( [0/0] {107} - ¦--expr: !b [0/0] {108} - ¦ ¦--'!': ! [0/0] {109} - ¦ °--expr: b [0/0] {111} - ¦ °--SYMBOL: b [0/0] {110} - °--')': ) [0/0] {112} diff --git a/tests/testthat/tidyeval/bang_bang-in_tree b/tests/testthat/tidyeval/bang_bang-in_tree deleted file mode 100644 index 5e03ff01a..000000000 --- a/tests/testthat/tidyeval/bang_bang-in_tree +++ /dev/null @@ -1,167 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: names [0/0] {1} - ¦ ¦--expr: names [0/1] {3} - ¦ ¦ °--SYMBOL: names [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: c(SL [0/0] {5} - ¦ ¦--expr: c [0/0] {7} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {6} - ¦ ¦--'(': ( [0/0] {8} - ¦ ¦--SYMBOL_SUB: SL [0/1] {9} - ¦ ¦--EQ_SUB: = [0/1] {10} - ¦ ¦--expr: 'Sepa [0/0] {12} - ¦ ¦ °--STR_CONST: 'Sepa [0/0] {11} - ¦ °--')': ) [0/0] {13} - ¦--expr: head( [1/0] {14} - ¦ ¦--expr: head [0/0] {16} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: head [0/0] {15} - ¦ ¦--'(': ( [0/0] {17} - ¦ ¦--expr: dplyr [0/0] {18} - ¦ ¦ ¦--expr: dplyr [0/0] {19} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: dplyr [0/0] {20} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {21} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: renam [0/0] {22} - ¦ ¦ ¦--'(': ( [0/0] {23} - ¦ ¦ ¦--expr: iris[ [0/0] {24} - ¦ ¦ ¦ ¦--expr: iris [0/0] {26} - ¦ ¦ ¦ ¦ °--SYMBOL: iris [0/0] {25} - ¦ ¦ ¦ ¦--'[': [ [0/0] {27} - ¦ ¦ ¦ ¦--',': , [0/0] {28} - ¦ ¦ ¦ ¦--expr: 1:2 [0/0] {29} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {31} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {30} - ¦ ¦ ¦ ¦ ¦--':': : [0/0] {32} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {34} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {33} - ¦ ¦ ¦ °--']': ] [0/0] {35} - ¦ ¦ ¦--',': , [0/1] {36} - ¦ ¦ ¦--expr: ! ! ! [0/0] {37} - ¦ ¦ ¦ ¦--'!': ! [0/1] {38} - ¦ ¦ ¦ °--expr: ! ! n [0/0] {39} - ¦ ¦ ¦ ¦--'!': ! [0/1] {40} - ¦ ¦ ¦ °--expr: ! nam [0/0] {41} - ¦ ¦ ¦ ¦--'!': ! [0/1] {42} - ¦ ¦ ¦ °--expr: names [0/0] {44} - ¦ ¦ ¦ °--SYMBOL: names [0/0] {43} - ¦ ¦ °--')': ) [0/0] {45} - ¦ ¦--',': , [0/1] {46} - ¦ ¦--expr: 3 [0/0] {48} - ¦ ¦ °--NUM_CONST: 3 [0/0] {47} - ¦ °--')': ) [0/0] {49} - ¦--expr: head( [1/0] {50} - ¦ ¦--expr: head [0/0] {52} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: head [0/0] {51} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--expr: dplyr [0/0] {54} - ¦ ¦ ¦--expr: dplyr [0/0] {55} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: dplyr [0/0] {56} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {57} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: renam [0/0] {58} - ¦ ¦ ¦--'(': ( [0/0] {59} - ¦ ¦ ¦--expr: iris[ [0/0] {60} - ¦ ¦ ¦ ¦--expr: iris [0/0] {62} - ¦ ¦ ¦ ¦ °--SYMBOL: iris [0/0] {61} - ¦ ¦ ¦ ¦--'[': [ [0/0] {63} - ¦ ¦ ¦ ¦--',': , [0/0] {64} - ¦ ¦ ¦ ¦--expr: 1:2 [0/0] {65} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {67} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {66} - ¦ ¦ ¦ ¦ ¦--':': : [0/0] {68} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {70} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {69} - ¦ ¦ ¦ °--']': ] [0/0] {71} - ¦ ¦ ¦--',': , [0/0] {72} - ¦ ¦ ¦--expr: !! ! [0/0] {73} - ¦ ¦ ¦ ¦--'!': ! [0/0] {74} - ¦ ¦ ¦ °--expr: ! ! n [0/0] {75} - ¦ ¦ ¦ ¦--'!': ! [0/1] {76} - ¦ ¦ ¦ °--expr: ! nam [0/0] {77} - ¦ ¦ ¦ ¦--'!': ! [0/1] {78} - ¦ ¦ ¦ °--expr: names [0/0] {80} - ¦ ¦ ¦ °--SYMBOL: names [0/0] {79} - ¦ ¦ °--')': ) [0/0] {81} - ¦ ¦--',': , [0/1] {82} - ¦ ¦--expr: 3 [0/0] {84} - ¦ ¦ °--NUM_CONST: 3 [0/0] {83} - ¦ °--')': ) [0/0] {85} - ¦--expr: head( [1/0] {86} - ¦ ¦--expr: head [0/0] {88} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: head [0/0] {87} - ¦ ¦--'(': ( [0/0] {89} - ¦ ¦--expr: dplyr [0/0] {90} - ¦ ¦ ¦--expr: dplyr [0/0] {91} - ¦ ¦ ¦ ¦--SYMBOL_PACKAGE: dplyr [0/0] {92} - ¦ ¦ ¦ ¦--NS_GET: :: [0/0] {93} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: renam [0/0] {94} - ¦ ¦ ¦--'(': ( [0/0] {95} - ¦ ¦ ¦--expr: iris[ [0/0] {96} - ¦ ¦ ¦ ¦--expr: iris [0/0] {98} - ¦ ¦ ¦ ¦ °--SYMBOL: iris [0/0] {97} - ¦ ¦ ¦ ¦--'[': [ [0/0] {99} - ¦ ¦ ¦ ¦--',': , [0/0] {100} - ¦ ¦ ¦ ¦--expr: 1:2 [0/0] {101} - ¦ ¦ ¦ ¦ ¦--expr: 1 [0/0] {103} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {102} - ¦ ¦ ¦ ¦ ¦--':': : [0/0] {104} - ¦ ¦ ¦ ¦ °--expr: 2 [0/0] {106} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {105} - ¦ ¦ ¦ °--']': ] [0/0] {107} - ¦ ¦ ¦--',': , [0/1] {108} - ¦ ¦ ¦--expr: !!!na [0/0] {109} - ¦ ¦ ¦ ¦--'!': ! [0/0] {110} - ¦ ¦ ¦ °--expr: !!nam [0/0] {111} - ¦ ¦ ¦ ¦--'!': ! [0/0] {112} - ¦ ¦ ¦ °--expr: !name [0/0] {113} - ¦ ¦ ¦ ¦--'!': ! [0/0] {114} - ¦ ¦ ¦ °--expr: names [0/0] {116} - ¦ ¦ ¦ °--SYMBOL: names [0/0] {115} - ¦ ¦ °--')': ) [0/0] {117} - ¦ ¦--',': , [0/1] {118} - ¦ ¦--expr: 3 [0/0] {120} - ¦ ¦ °--NUM_CONST: 3 [0/0] {119} - ¦ °--')': ) [0/0] {121} - °--expr: my_su [1/0] {122} - ¦--expr: my_su [0/1] {124} - ¦ °--SYMBOL: my_su [0/0] {123} - ¦--LEFT_ASSIGN: <- [0/1] {125} - °--expr: funct [0/0] {126} - ¦--FUNCTION: funct [0/0] {127} - ¦--'(': ( [0/0] {128} - ¦--SYMBOL_FORMALS: df [0/0] {129} - ¦--',': , [0/1] {130} - ¦--SYMBOL_FORMALS: group [0/0] {131} - ¦--')': ) [0/1] {132} - °--expr: { - d [0/0] {133} - ¦--'{': { [0/2] {134} - ¦--expr: df %> [1/0] {135} - ¦ ¦--expr: df [0/1] {138} - ¦ ¦ °--SYMBOL: df [0/0] {137} - ¦ ¦--SPECIAL-PIPE: %>% [0/4] {139} - ¦ ¦--expr: group [1/1] {140} - ¦ ¦ ¦--expr: group [0/0] {142} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: group [0/0] {141} - ¦ ¦ ¦--'(': ( [0/1] {143} - ¦ ¦ ¦--expr: ! ! g [0/0] {144} - ¦ ¦ ¦ ¦--'!': ! [0/1] {145} - ¦ ¦ ¦ °--expr: ! gro [0/0] {146} - ¦ ¦ ¦ ¦--'!': ! [0/1] {147} - ¦ ¦ ¦ °--expr: group [0/0] {149} - ¦ ¦ ¦ °--SYMBOL: group [0/0] {148} - ¦ ¦ °--')': ) [0/0] {150} - ¦ ¦--SPECIAL-PIPE: %>% [0/4] {151} - ¦ °--expr: summa [1/0] {152} - ¦ ¦--expr: summa [0/0] {154} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: summa [0/0] {153} - ¦ ¦--'(': ( [0/0] {155} - ¦ ¦--SYMBOL_SUB: a [0/1] {156} - ¦ ¦--EQ_SUB: = [0/1] {157} - ¦ ¦--expr: mean( [0/0] {158} - ¦ ¦ ¦--expr: mean [0/0] {160} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {159} - ¦ ¦ ¦--'(': ( [0/0] {161} - ¦ ¦ ¦--expr: a [0/0] {163} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {162} - ¦ ¦ °--')': ) [0/0] {164} - ¦ °--')': ) [0/0] {165} - °--'}': } [1/0] {166} diff --git a/tests/testthat/tidyeval/eq_sub_and_comma-in_tree b/tests/testthat/tidyeval/eq_sub_and_comma-in_tree deleted file mode 100644 index f707a6e07..000000000 --- a/tests/testthat/tidyeval/eq_sub_and_comma-in_tree +++ /dev/null @@ -1,24 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--')': ) [0/1] {8} - °--expr: { - d [0/0] {9} - ¦--'{': { [0/2] {10} - ¦--expr: data_ [1/0] {11} - ¦ ¦--expr: data_ [0/0] {13} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {12} - ¦ ¦--'(': ( [0/4] {14} - ¦ ¦--SYMBOL_SUB: b [1/1] {15} - ¦ ¦--EQ_SUB: = [0/0] {16} - ¦ ¦--',': , [0/4] {17} - ¦ ¦--SYMBOL_SUB: c [1/1] {18} - ¦ ¦--EQ_SUB: = [0/0] {19} - ¦ ¦--',': , [0/2] {20} - ¦ °--')': ) [1/0] {21} - °--'}': } [1/0] {22} diff --git a/tests/testthat/tidyeval/setting_var_names-in_tree b/tests/testthat/tidyeval/setting_var_names-in_tree deleted file mode 100644 index 32cc2cfda..000000000 --- a/tests/testthat/tidyeval/setting_var_names-in_tree +++ /dev/null @@ -1,47 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: mtcar [0/0] {1} - ¦--expr: mtcar [0/1] {4} - ¦ °--SYMBOL: mtcar [0/0] {3} - ¦--SPECIAL-PIPE: %>% [0/2] {5} - ¦--expr: group [1/1] {6} - ¦ ¦--expr: group [0/0] {8} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: group [0/0] {7} - ¦ ¦--'(': ( [0/0] {9} - ¦ ¦--expr: am [0/0] {11} - ¦ ¦ °--SYMBOL: am [0/0] {10} - ¦ °--')': ) [0/0] {12} - ¦--SPECIAL-PIPE: %>% [0/2] {13} - °--expr: summa [1/0] {14} - ¦--expr: summa [0/0] {16} - ¦ °--SYMBOL_FUNCTION_CALL: summa [0/0] {15} - ¦--'(': ( [0/4] {17} - ¦--expr: !!mea [1/0] {18} - ¦ ¦--expr: !!mea [0/0] {19} - ¦ ¦ ¦--'!': ! [0/0] {20} - ¦ ¦ °--expr: !mean [0/0] {21} - ¦ ¦ ¦--'!': ! [0/0] {22} - ¦ ¦ °--expr: mean_ [0/0] {24} - ¦ ¦ °--SYMBOL: mean_ [0/0] {23} - ¦ ¦--LEFT_ASSIGN: := [0/0] {25} - ¦ °--expr: mean( [0/0] {26} - ¦ ¦--expr: mean [0/0] {28} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: mean [0/0] {27} - ¦ ¦--'(': ( [0/0] {29} - ¦ ¦--expr: cyl [0/0] {31} - ¦ ¦ °--SYMBOL: cyl [0/0] {30} - ¦ °--')': ) [0/0] {32} - ¦--',': , [0/4] {33} - ¦--expr: !!cou [1/2] {34} - ¦ ¦--expr: !!cou [0/4] {35} - ¦ ¦ ¦--'!': ! [0/0] {36} - ¦ ¦ °--expr: !coun [0/0] {37} - ¦ ¦ ¦--'!': ! [0/0] {38} - ¦ ¦ °--expr: count [0/0] {40} - ¦ ¦ °--SYMBOL: count [0/0] {39} - ¦ ¦--LEFT_ASSIGN: := [0/0] {41} - ¦ °--expr: n() [0/0] {42} - ¦ ¦--expr: n [0/0] {44} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: n [0/0] {43} - ¦ ¦--'(': ( [0/0] {45} - ¦ °--')': ) [0/0] {46} - °--')': ) [1/0] {47} diff --git a/tests/testthat/token_adding_removing/add_brackets_in_pipe-in_tree b/tests/testthat/token_adding_removing/add_brackets_in_pipe-in_tree deleted file mode 100644 index 41937bcfc..000000000 --- a/tests/testthat/token_adding_removing/add_brackets_in_pipe-in_tree +++ /dev/null @@ -1,31 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1 %>% [0/0] {1} - ¦ ¦--expr: 1 [0/1] {3} - ¦ ¦ °--NUM_CONST: 1 [0/0] {2} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {4} - ¦ °--expr: 2 [0/0] {6} - ¦ °--NUM_CONST: 2 [0/0] {5} - ¦--expr: 1 %x% [1/0] {7} - ¦ ¦--expr: 1 [0/1] {9} - ¦ ¦ °--NUM_CONST: 1 [0/0] {8} - ¦ ¦--SPECIAL-OTHER: %x% [0/1] {10} - ¦ °--expr: 1 [0/0] {12} - ¦ °--NUM_CONST: 1 [0/0] {11} - ¦--expr: 1 %x% [1/0] {13} - ¦ ¦--expr: 1 [0/1] {15} - ¦ ¦ °--NUM_CONST: 1 [0/0] {14} - ¦ ¦--SPECIAL-OTHER: %x% [0/1] {16} - ¦ °--expr: y [0/0] {18} - ¦ °--SYMBOL: y [0/0] {17} - ¦--expr: 1 %>% [1/0] {19} - ¦ ¦--expr: 1 [0/1] {21} - ¦ ¦ °--NUM_CONST: 1 [0/0] {20} - ¦ ¦--SPECIAL-PIPE: %>% [0/1] {22} - ¦ °--expr: x [0/0] {24} - ¦ °--SYMBOL: x [0/0] {23} - °--expr: 1 %s% [1/0] {25} - ¦--expr: 1 [0/1] {27} - ¦ °--NUM_CONST: 1 [0/0] {26} - ¦--SPECIAL-OTHER: %s% [0/1] {28} - °--expr: 1 [0/0] {30} - °--NUM_CONST: 1 [0/0] {29} diff --git a/tests/testthat/token_adding_removing/add_brackets_in_pipe-stylerignore-in_tree b/tests/testthat/token_adding_removing/add_brackets_in_pipe-stylerignore-in_tree deleted file mode 100644 index 0e89e475e..000000000 --- a/tests/testthat/token_adding_removing/add_brackets_in_pipe-stylerignore-in_tree +++ /dev/null @@ -1,163 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # sty [0/0] {1} - ¦--expr: aflh( [1/0] {2} - ¦ ¦--expr: aflh [0/0] {4} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: aflh [0/0] {3} - ¦ ¦--'(': ( [0/0] {5} - ¦ ¦--expr: { - i [0/0] {6} - ¦ ¦ ¦--'{': { [0/2] {7} - ¦ ¦ ¦--expr: isfri [1/0] {8} - ¦ ¦ ¦ ¦--expr: isfri [0/1] {14} - ¦ ¦ ¦ ¦ °--SYMBOL: isfri [0/0] {13} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {15} - ¦ ¦ ¦ ¦--COMMENT: # com [1/4] {16} - ¦ ¦ ¦ ¦--expr: tjnfa [1/1] {17} - ¦ ¦ ¦ ¦ ¦--expr: tjnfa [0/0] {19} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tjnfa [0/0] {18} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {20} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {21} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {22} - ¦ ¦ ¦ ¦--COMMENT: # com [0/4] {23} - ¦ ¦ ¦ ¦--expr: tjnfa [1/1] {24} - ¦ ¦ ¦ ¦ ¦--expr: tjnfa [0/0] {26} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tjnfa [0/0] {25} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {27} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {28} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {29} - ¦ ¦ ¦ ¦--expr: tjnfx [1/1] {30} - ¦ ¦ ¦ ¦ ¦--expr: tjnfx [0/0] {32} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tjnfx [0/0] {31} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {33} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {34} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {35} - ¦ ¦ ¦ ¦--expr: tf797 [1/1] {36} - ¦ ¦ ¦ ¦ ¦--expr: tf797 [0/0] {38} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tf797 [0/0] {37} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {39} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {40} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {41} - ¦ ¦ ¦ ¦--COMMENT: # mor [0/4] {42} - ¦ ¦ ¦ ¦--COMMENT: # com [1/4] {43} - ¦ ¦ ¦ °--expr: yyexp [1/0] {44} - ¦ ¦ ¦ ¦--expr: yyexp [0/0] {46} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: yyexp [0/0] {45} - ¦ ¦ ¦ ¦--'(': ( [0/0] {47} - ¦ ¦ ¦ °--')': ) [0/0] {48} - ¦ ¦ °--'}': } [1/0] {49} - ¦ °--')': ) [0/0] {50} - ¦--COMMENT: # sty [1/0] {51} - ¦--expr: aflh( [3/0] {52} - ¦ ¦--expr: aflh [0/0] {54} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: aflh [0/0] {53} - ¦ ¦--'(': ( [0/0] {55} - ¦ ¦--expr: { - i [0/0] {56} - ¦ ¦ ¦--'{': { [0/2] {57} - ¦ ¦ ¦--expr: isfri [1/0] {58} - ¦ ¦ ¦ ¦--expr: isfri [0/1] {64} - ¦ ¦ ¦ ¦ °--SYMBOL: isfri [0/0] {63} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {65} - ¦ ¦ ¦ ¦--COMMENT: # com [1/4] {66} - ¦ ¦ ¦ ¦--expr: tjnfa [1/1] {67} - ¦ ¦ ¦ ¦ ¦--expr: tjnfa [0/0] {69} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tjnfa [0/0] {68} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {70} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {71} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {72} - ¦ ¦ ¦ ¦--COMMENT: # com [0/4] {73} - ¦ ¦ ¦ ¦--expr: tjnfa [1/1] {74} - ¦ ¦ ¦ ¦ ¦--expr: tjnfa [0/0] {76} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tjnfa [0/0] {75} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {77} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {78} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {79} - ¦ ¦ ¦ ¦--expr: tjnfx [1/1] {80} - ¦ ¦ ¦ ¦ ¦--expr: tjnfx [0/0] {82} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tjnfx [0/0] {81} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {83} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {84} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {85} - ¦ ¦ ¦ ¦--expr: tf797 [1/1] {86} - ¦ ¦ ¦ ¦ ¦--expr: tf797 [0/0] {88} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tf797 [0/0] {87} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {89} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {90} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {91} - ¦ ¦ ¦ ¦--COMMENT: # mor [0/4] {92} - ¦ ¦ ¦ ¦--COMMENT: # com [1/4] {93} - ¦ ¦ ¦ °--expr: yyexp [1/0] {94} - ¦ ¦ ¦ ¦--expr: yyexp [0/0] {96} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: yyexp [0/0] {95} - ¦ ¦ ¦ ¦--'(': ( [0/0] {97} - ¦ ¦ ¦ °--')': ) [0/0] {98} - ¦ ¦ °--'}': } [1/0] {99} - ¦ °--')': ) [0/0] {100} - ¦--COMMENT: # sty [3/0] {101} - ¦--expr: aflh( [1/0] {102} - ¦ ¦--expr: aflh [0/0] {104} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: aflh [0/0] {103} - ¦ ¦--'(': ( [0/0] {105} - ¦ ¦--expr: { - i [0/0] {106} - ¦ ¦ ¦--'{': { [0/2] {107} - ¦ ¦ ¦--expr: isfri [1/1] {108} - ¦ ¦ ¦ ¦--expr: isfri [0/1] {114} - ¦ ¦ ¦ ¦ °--SYMBOL: isfri [0/0] {113} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {115} - ¦ ¦ ¦ ¦--COMMENT: # com [1/4] {116} - ¦ ¦ ¦ ¦--expr: tjnfa [1/1] {118} - ¦ ¦ ¦ ¦ °--SYMBOL: tjnfa [0/0] {117} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {119} - ¦ ¦ ¦ ¦--expr: tjnfa [1/1] {121} - ¦ ¦ ¦ ¦ °--SYMBOL: tjnfa [0/0] {120} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {122} - ¦ ¦ ¦ ¦--expr: tjnfx [1/1] {124} - ¦ ¦ ¦ ¦ °--SYMBOL: tjnfx [0/0] {123} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {125} - ¦ ¦ ¦ ¦--COMMENT: # mor [1/4] {126} - ¦ ¦ ¦ ¦--expr: tf797 [1/1] {128} - ¦ ¦ ¦ ¦ °--SYMBOL: tf797 [0/0] {127} - ¦ ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {129} - ¦ ¦ ¦ ¦--COMMENT: # com [0/4] {130} - ¦ ¦ ¦ ¦--COMMENT: # her [1/4] {131} - ¦ ¦ ¦ °--expr: yyexp [1/0] {133} - ¦ ¦ ¦ °--SYMBOL: yyexp [0/0] {132} - ¦ ¦ ¦--COMMENT: # [0/2] {134} - ¦ ¦ ¦--COMMENT: # wha [1/0] {135} - ¦ ¦ °--'}': } [1/0] {136} - ¦ °--')': ) [0/0] {137} - ¦--COMMENT: # sty [1/0] {138} - °--expr: aflh( [3/0] {139} - ¦--expr: aflh [0/0] {141} - ¦ °--SYMBOL_FUNCTION_CALL: aflh [0/0] {140} - ¦--'(': ( [0/0] {142} - ¦--expr: { - i [0/0] {143} - ¦ ¦--'{': { [0/2] {144} - ¦ ¦--expr: isfri [1/1] {145} - ¦ ¦ ¦--expr: isfri [0/1] {151} - ¦ ¦ ¦ °--SYMBOL: isfri [0/0] {150} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {152} - ¦ ¦ ¦--COMMENT: # com [1/4] {153} - ¦ ¦ ¦--expr: tjnfa [1/1] {155} - ¦ ¦ ¦ °--SYMBOL: tjnfa [0/0] {154} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {156} - ¦ ¦ ¦--expr: tjnfa [1/1] {158} - ¦ ¦ ¦ °--SYMBOL: tjnfa [0/0] {157} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {159} - ¦ ¦ ¦--expr: tjnfx [1/1] {161} - ¦ ¦ ¦ °--SYMBOL: tjnfx [0/0] {160} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/4] {162} - ¦ ¦ ¦--COMMENT: # mor [1/4] {163} - ¦ ¦ ¦--expr: tf797 [1/1] {165} - ¦ ¦ ¦ °--SYMBOL: tf797 [0/0] {164} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {166} - ¦ ¦ ¦--COMMENT: # com [0/4] {167} - ¦ ¦ ¦--COMMENT: # her [1/4] {168} - ¦ ¦ °--expr: yyexp [1/0] {170} - ¦ ¦ °--SYMBOL: yyexp [0/0] {169} - ¦ ¦--COMMENT: # [0/2] {171} - ¦ ¦--COMMENT: # wha [1/0] {172} - ¦ °--'}': } [1/0] {173} - °--')': ) [0/0] {174} diff --git a/tests/testthat/token_adding_removing/double_braces-in_tree b/tests/testthat/token_adding_removing/double_braces-in_tree deleted file mode 100644 index 6ae6d16e2..000000000 --- a/tests/testthat/token_adding_removing/double_braces-in_tree +++ /dev/null @@ -1,27 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: if (X [0/0] {1} - ¦ ¦--IF: if [0/1] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: X [0/0] {5} - ¦ ¦ °--SYMBOL: X [0/0] {4} - ¦ ¦--')': ) [0/2] {6} - ¦ °--expr: retur [1/0] {7} - ¦ ¦--expr: retur [0/0] {9} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {8} - ¦ ¦--'(': ( [0/0] {10} - ¦ ¦--expr: TRUE [0/0] {12} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {11} - ¦ °--')': ) [0/0] {13} - °--expr: if (X [2/0] {14} - ¦--IF: if [0/1] {15} - ¦--'(': ( [0/0] {16} - ¦--expr: X [0/0] {18} - ¦ °--SYMBOL: X [0/0] {17} - ¦--')': ) [0/1] {19} - °--expr: retur [0/0] {20} - ¦--expr: retur [0/0] {22} - ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {21} - ¦--'(': ( [0/0] {23} - ¦--expr: FALSE [0/0] {25} - ¦ °--NUM_CONST: FALSE [0/0] {24} - °--')': ) [0/0] {26} diff --git a/tests/testthat/token_adding_removing/else-pipe-in_tree b/tests/testthat/token_adding_removing/else-pipe-in_tree deleted file mode 100644 index c8f1974f9..000000000 --- a/tests/testthat/token_adding_removing/else-pipe-in_tree +++ /dev/null @@ -1,41 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: mtcar [0/0] {1} - ¦ ¦--expr: mtcar [0/1] {4} - ¦ ¦ °--SYMBOL: mtcar [0/0] {3} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {5} - ¦ ¦--expr: mutat [1/1] {6} - ¦ ¦ ¦--expr: mutat [0/0] {8} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mutat [0/0] {7} - ¦ ¦ ¦--'(': ( [0/4] {9} - ¦ ¦ ¦--SYMBOL_SUB: x [1/1] {10} - ¦ ¦ ¦--EQ_SUB: = [0/1] {11} - ¦ ¦ ¦--expr: 1 [0/2] {13} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {12} - ¦ ¦ °--')': ) [1/0] {14} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {15} - ¦ °--expr: if (F [1/0] {16} - ¦ ¦--IF: if [0/1] {17} - ¦ ¦--'(': ( [0/0] {18} - ¦ ¦--expr: FALSE [0/0] {20} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {19} - ¦ ¦--')': ) [0/1] {21} - ¦ ¦--expr: { - [0/1] {22} - ¦ ¦ ¦--'{': { [0/4] {23} - ¦ ¦ ¦--expr: mutat [1/2] {24} - ¦ ¦ ¦ ¦--expr: mutat [0/0] {26} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: mutat [0/0] {25} - ¦ ¦ ¦ ¦--'(': ( [0/0] {27} - ¦ ¦ ¦ ¦--expr: . [0/0] {29} - ¦ ¦ ¦ ¦ °--SYMBOL: . [0/0] {28} - ¦ ¦ ¦ ¦--',': , [0/1] {30} - ¦ ¦ ¦ ¦--SYMBOL_SUB: count [0/1] {31} - ¦ ¦ ¦ ¦--EQ_SUB: = [0/1] {32} - ¦ ¦ ¦ ¦--expr: 2 [0/0] {34} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {33} - ¦ ¦ ¦ °--')': ) [0/0] {35} - ¦ ¦ °--'}': } [1/0] {36} - ¦ ¦--ELSE: else [0/1] {37} - ¦ °--expr: . [0/0] {39} - ¦ °--SYMBOL: . [0/0] {38} - °--COMMENT: # add [2/0] {40} diff --git a/tests/testthat/token_adding_removing/for_while_stylerignore-in_tree b/tests/testthat/token_adding_removing/for_while_stylerignore-in_tree deleted file mode 100644 index ef9ea4bbb..000000000 --- a/tests/testthat/token_adding_removing/for_while_stylerignore-in_tree +++ /dev/null @@ -1,180 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: while [0/0] {1} - ¦ ¦--WHILE: while [0/0] {2} - ¦ ¦--'(': ( [0/0] {3} - ¦ ¦--expr: TRUE [0/0] {5} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {4} - ¦ ¦--')': ) [0/2] {6} - ¦ °--expr: 3 [1/0] {8} - ¦ °--NUM_CONST: 3 [0/0] {7} - ¦--COMMENT: # sty [2/0] {9} - ¦--expr: while [1/0] {10} - ¦ ¦--WHILE: while [0/0] {11} - ¦ ¦--'(': ( [0/0] {12} - ¦ ¦--expr: TRUE [0/0] {14} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {13} - ¦ ¦--')': ) [0/2] {15} - ¦ °--expr: 3 [1/0] {17} - ¦ °--NUM_CONST: 3 [0/0] {16} - ¦--COMMENT: # sty [2/0] {18} - ¦--expr: while [1/0] {19} - ¦ ¦--WHILE: while [0/0] {20} - ¦ ¦--'(': ( [0/0] {21} - ¦ ¦--expr: TRUE [0/0] {23} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {22} - ¦ ¦--')': ) [0/2] {24} - ¦ ¦--COMMENT: # sty [1/2] {25} - ¦ °--expr: 3 [1/0] {27} - ¦ °--NUM_CONST: 3 [0/0] {26} - ¦--COMMENT: # sty [2/0] {28} - ¦--expr: for ( [2/0] {29} - ¦ ¦--FOR: for [0/1] {30} - ¦ ¦--forcond: (i # [0/2] {31} - ¦ ¦ ¦--'(': ( [0/0] {32} - ¦ ¦ ¦--SYMBOL: i [0/1] {33} - ¦ ¦ ¦--COMMENT: # sty [0/5] {34} - ¦ ¦ ¦--IN: in [1/1] {35} - ¦ ¦ ¦--expr: 3 [0/0] {37} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {36} - ¦ ¦ °--')': ) [0/0] {38} - ¦ °--expr: 3 [1/0] {40} - ¦ °--NUM_CONST: 3 [0/0] {39} - ¦--COMMENT: # sty [2/0] {41} - ¦--expr: for ( [1/0] {42} - ¦ ¦--FOR: for [0/1] {43} - ¦ ¦--forcond: (i - [0/2] {44} - ¦ ¦ ¦--'(': ( [0/0] {45} - ¦ ¦ ¦--SYMBOL: i [0/5] {46} - ¦ ¦ ¦--IN: in [1/1] {47} - ¦ ¦ ¦--expr: 3 [0/0] {49} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {48} - ¦ ¦ °--')': ) [0/0] {50} - ¦ °--expr: 3 [1/0] {52} - ¦ °--NUM_CONST: 3 [0/0] {51} - ¦--COMMENT: # sty [1/0] {53} - ¦--COMMENT: # sty [3/0] {54} - ¦--expr: for ( [1/0] {55} - ¦ ¦--FOR: for [0/1] {56} - ¦ ¦--forcond: (i - [0/2] {57} - ¦ ¦ ¦--'(': ( [0/0] {58} - ¦ ¦ ¦--SYMBOL: i [0/5] {59} - ¦ ¦ ¦--IN: in [1/1] {60} - ¦ ¦ ¦--expr: 3 [0/0] {62} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {61} - ¦ ¦ °--')': ) [0/0] {63} - ¦ °--expr: { - 3 [0/0] {64} - ¦ ¦--'{': { [0/2] {65} - ¦ ¦--expr: 3 [1/0] {67} - ¦ ¦ °--NUM_CONST: 3 [0/0] {66} - ¦ °--'}': } [0/0] {68} - ¦--COMMENT: # sty [1/0] {69} - ¦--expr: for ( [3/1] {70} - ¦ ¦--FOR: for [0/1] {71} - ¦ ¦--forcond: (i - [0/2] {72} - ¦ ¦ ¦--'(': ( [0/0] {73} - ¦ ¦ ¦--SYMBOL: i [0/5] {74} - ¦ ¦ ¦--IN: in [1/1] {75} - ¦ ¦ ¦--expr: 3 [0/0] {77} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {76} - ¦ ¦ °--')': ) [0/0] {78} - ¦ °--expr: { - 3 [0/0] {79} - ¦ ¦--'{': { [0/2] {80} - ¦ ¦--expr: 3 [1/0] {82} - ¦ ¦ °--NUM_CONST: 3 [0/0] {81} - ¦ °--'}': } [0/0] {83} - ¦--COMMENT: # sty [0/0] {84} - ¦--expr: for ( [2/0] {85} - ¦ ¦--FOR: for [0/1] {86} - ¦ ¦--forcond: (i - [0/2] {87} - ¦ ¦ ¦--'(': ( [0/0] {88} - ¦ ¦ ¦--SYMBOL: i [0/5] {89} - ¦ ¦ ¦--IN: in [1/1] {90} - ¦ ¦ ¦--expr: 3 [0/0] {92} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {91} - ¦ ¦ °--')': ) [0/0] {93} - ¦ °--expr: {# st [0/0] {94} - ¦ ¦--'{': { [0/0] {95} - ¦ ¦--COMMENT: # sty [0/2] {96} - ¦ ¦--expr: 3 [1/0] {98} - ¦ ¦ °--NUM_CONST: 3 [0/0] {97} - ¦ °--'}': } [0/0] {99} - ¦--expr: for ( [2/0] {100} - ¦ ¦--FOR: for [0/1] {101} - ¦ ¦--forcond: (i# s [0/2] {102} - ¦ ¦ ¦--'(': ( [0/0] {103} - ¦ ¦ ¦--SYMBOL: i [0/0] {104} - ¦ ¦ ¦--COMMENT: # sty [0/5] {105} - ¦ ¦ ¦--IN: in [1/1] {106} - ¦ ¦ ¦--expr: 3 [0/0] {108} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {107} - ¦ ¦ °--')': ) [0/0] {109} - ¦ °--expr: { - 3 [0/0] {110} - ¦ ¦--'{': { [0/2] {111} - ¦ ¦--expr: 3 [1/0] {113} - ¦ ¦ °--NUM_CONST: 3 [0/0] {112} - ¦ °--'}': } [0/0] {114} - ¦--expr: while [3/0] {115} - ¦ ¦--WHILE: while [0/0] {116} - ¦ ¦--'(': ( [0/2] {117} - ¦ ¦--expr: FALSE [1/0] {119} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {118} - ¦ ¦--')': ) [1/1] {120} - ¦ °--expr: { - # [0/0] {121} - ¦ ¦--'{': { [0/2] {122} - ¦ ¦--COMMENT: # sty [1/2] {123} - ¦ ¦--expr: 1 [1/2] {125} - ¦ ¦ °--NUM_CONST: 1 [0/0] {124} - ¦ ¦--COMMENT: # sty [1/0] {126} - ¦ °--'}': } [1/0] {127} - ¦--expr: while [2/0] {128} - ¦ ¦--WHILE: while [0/0] {129} - ¦ ¦--'(': ( [0/2] {130} - ¦ ¦--expr: FALSE [1/1] {132} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {131} - ¦ ¦--COMMENT: # com [0/0] {133} - ¦ ¦--')': ) [1/1] {134} - ¦ °--expr: { - # [0/0] {135} - ¦ ¦--'{': { [0/2] {136} - ¦ ¦--COMMENT: # sty [1/2] {137} - ¦ ¦--expr: 1 [1/2] {139} - ¦ ¦ °--NUM_CONST: 1 [0/0] {138} - ¦ ¦--COMMENT: # sty [1/0] {140} - ¦ °--'}': } [1/0] {141} - ¦--expr: while [2/0] {142} - ¦ ¦--WHILE: while [0/0] {143} - ¦ ¦--'(': ( [0/1] {144} - ¦ ¦--COMMENT: # sty [0/2] {145} - ¦ ¦--expr: FALSE [1/0] {147} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {146} - ¦ ¦--')': ) [1/1] {148} - ¦ °--expr: { - - [0/0] {149} - ¦ ¦--'{': { [0/2] {150} - ¦ ¦--expr: 1 [2/0] {152} - ¦ ¦ °--NUM_CONST: 1 [0/0] {151} - ¦ °--'}': } [2/0] {153} - ¦--expr: while [2/0] {154} - ¦ ¦--WHILE: while [0/0] {155} - ¦ ¦--'(': ( [0/2] {156} - ¦ ¦--COMMENT: # sty [1/2] {157} - ¦ ¦--expr: FALSE [1/0] {159} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {158} - ¦ ¦--')': ) [1/1] {160} - ¦ °--expr: { - - [0/0] {161} - ¦ ¦--'{': { [0/2] {162} - ¦ ¦--expr: 1 [2/0] {164} - ¦ ¦ °--NUM_CONST: 1 [0/0] {163} - ¦ °--'}': } [2/0] {165} - °--COMMENT: # sty [1/0] {166} diff --git a/tests/testthat/token_adding_removing/if-else-comma-in_tree b/tests/testthat/token_adding_removing/if-else-comma-in_tree deleted file mode 100644 index 00da35b6a..000000000 --- a/tests/testthat/token_adding_removing/if-else-comma-in_tree +++ /dev/null @@ -1,89 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: call( [0/0] {1} - ¦ ¦--expr: call [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {2} - ¦ ¦--'(': ( [0/2] {4} - ¦ ¦--expr: if (x [1/0] {5} - ¦ ¦ ¦--IF: if [0/1] {6} - ¦ ¦ ¦--'(': ( [0/0] {7} - ¦ ¦ ¦--expr: x [0/0] {9} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {8} - ¦ ¦ ¦--')': ) [0/4] {10} - ¦ ¦ °--expr: y [1/0] {12} - ¦ ¦ °--SYMBOL: y [0/0] {11} - ¦ ¦--',': , [0/2] {13} - ¦ ¦--expr: if(x) [1/0] {14} - ¦ ¦ ¦--IF: if [0/0] {15} - ¦ ¦ ¦--'(': ( [0/0] {16} - ¦ ¦ ¦--expr: x [0/0] {18} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {17} - ¦ ¦ ¦--')': ) [0/4] {19} - ¦ ¦ °--expr: z [1/0] {21} - ¦ ¦ °--SYMBOL: z [0/0] {20} - ¦ °--')': ) [1/0] {22} - ¦--expr: call( [2/0] {23} - ¦ ¦--expr: call [0/0] {25} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {24} - ¦ ¦--'(': ( [0/0] {26} - ¦ ¦--expr: if (x [0/1] {27} - ¦ ¦ ¦--IF: if [0/1] {28} - ¦ ¦ ¦--'(': ( [0/0] {29} - ¦ ¦ ¦--expr: x [0/0] {31} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {30} - ¦ ¦ ¦--')': ) [0/1] {32} - ¦ ¦ °--expr: y [0/0] {34} - ¦ ¦ °--SYMBOL: y [0/0] {33} - ¦ ¦--',': , [0/5] {35} - ¦ ¦--expr: if(x) [1/1] {36} - ¦ ¦ ¦--IF: if [0/0] {37} - ¦ ¦ ¦--'(': ( [0/0] {38} - ¦ ¦ ¦--expr: x [0/0] {40} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {39} - ¦ ¦ ¦--')': ) [0/1] {41} - ¦ ¦ °--expr: z [0/0] {43} - ¦ ¦ °--SYMBOL: z [0/0] {42} - ¦ °--')': ) [0/0] {44} - ¦--expr: call( [2/0] {45} - ¦ ¦--expr: call [0/0] {47} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {46} - ¦ ¦--'(': ( [0/0] {48} - ¦ ¦--expr: if (x [0/0] {49} - ¦ ¦ ¦--IF: if [0/1] {50} - ¦ ¦ ¦--'(': ( [0/0] {51} - ¦ ¦ ¦--expr: x [0/0] {53} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {52} - ¦ ¦ ¦--')': ) [0/1] {54} - ¦ ¦ °--expr: y [0/0] {56} - ¦ ¦ °--SYMBOL: y [0/0] {55} - ¦ ¦--',': , [0/5] {57} - ¦ ¦--expr: if(x) [1/1] {58} - ¦ ¦ ¦--IF: if [0/0] {59} - ¦ ¦ ¦--'(': ( [0/0] {60} - ¦ ¦ ¦--expr: x [0/0] {62} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {61} - ¦ ¦ ¦--')': ) [0/1] {63} - ¦ ¦ °--expr: z [0/0] {65} - ¦ ¦ °--SYMBOL: z [0/0] {64} - ¦ °--')': ) [0/0] {66} - °--expr: call( [2/0] {67} - ¦--expr: call [0/0] {69} - ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {68} - ¦--'(': ( [0/0] {70} - ¦--expr: if (x [0/0] {71} - ¦ ¦--IF: if [0/1] {72} - ¦ ¦--'(': ( [0/0] {73} - ¦ ¦--expr: x [0/0] {75} - ¦ ¦ °--SYMBOL: x [0/0] {74} - ¦ ¦--')': ) [0/1] {76} - ¦ °--expr: y [0/0] {78} - ¦ °--SYMBOL: y [0/0] {77} - ¦--',': , [0/5] {79} - ¦--expr: if(x) [1/0] {80} - ¦ ¦--IF: if [0/0] {81} - ¦ ¦--'(': ( [0/0] {82} - ¦ ¦--expr: x [0/0] {84} - ¦ ¦ °--SYMBOL: x [0/0] {83} - ¦ ¦--')': ) [0/1] {85} - ¦ °--expr: z [0/0] {87} - ¦ °--SYMBOL: z [0/0] {86} - °--')': ) [0/0] {88} diff --git a/tests/testthat/token_adding_removing/if_else_non_strict-in_tree b/tests/testthat/token_adding_removing/if_else_non_strict-in_tree deleted file mode 100644 index ad8fd9ee7..000000000 --- a/tests/testthat/token_adding_removing/if_else_non_strict-in_tree +++ /dev/null @@ -1,173 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: { - i [0/0] {1} - ¦ ¦--'{': { [0/2] {2} - ¦ ¦--expr: if (T [1/0] {3} - ¦ ¦ ¦--IF: if [0/1] {4} - ¦ ¦ ¦--'(': ( [0/0] {5} - ¦ ¦ ¦--expr: TRUE [0/0] {7} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {6} - ¦ ¦ ¦--')': ) [0/4] {8} - ¦ ¦ ¦--expr: 3 [1/0] {10} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {9} - ¦ ¦ ¦--ELSE: else [1/0] {11} - ¦ ¦ °--expr: 5 [1/0] {13} - ¦ ¦ °--NUM_CONST: 5 [0/0] {12} - ¦ °--'}': } [1/0] {14} - ¦--expr: { - i [3/0] {15} - ¦ ¦--'{': { [0/2] {16} - ¦ ¦--expr: if (T [1/3] {17} - ¦ ¦ ¦--IF: if [0/1] {18} - ¦ ¦ ¦--'(': ( [0/0] {19} - ¦ ¦ ¦--expr: TRUE [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {20} - ¦ ¦ ¦--')': ) [0/1] {22} - ¦ ¦ ¦--expr: { - [0/0] {23} - ¦ ¦ ¦ ¦--'{': { [0/4] {24} - ¦ ¦ ¦ ¦--expr: 3 [1/4] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {25} - ¦ ¦ ¦ ¦--expr: a + b [1/3] {27} - ¦ ¦ ¦ ¦ ¦--expr: a [0/1] {29} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {28} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {30} - ¦ ¦ ¦ ¦ °--expr: b [0/0] {32} - ¦ ¦ ¦ ¦ °--SYMBOL: b [0/0] {31} - ¦ ¦ ¦ °--'}': } [1/0] {33} - ¦ ¦ ¦--ELSE: else [0/4] {34} - ¦ ¦ °--expr: 5 [1/0] {36} - ¦ ¦ °--NUM_CONST: 5 [0/0] {35} - ¦ ¦--expr: c() [2/0] {37} - ¦ ¦ ¦--expr: c [0/0] {39} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {38} - ¦ ¦ ¦--'(': ( [0/0] {40} - ¦ ¦ °--')': ) [0/0] {41} - ¦ °--'}': } [1/0] {42} - ¦--expr: { - i [3/0] {43} - ¦ ¦--'{': { [0/2] {44} - ¦ ¦--expr: if (T [1/0] {45} - ¦ ¦ ¦--IF: if [0/1] {46} - ¦ ¦ ¦--'(': ( [0/0] {47} - ¦ ¦ ¦--expr: TRUE [0/0] {49} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {48} - ¦ ¦ ¦--')': ) [0/4] {50} - ¦ ¦ ¦--expr: 3 [1/2] {52} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {51} - ¦ ¦ ¦--ELSE: else [1/1] {53} - ¦ ¦ °--expr: { - [0/0] {54} - ¦ ¦ ¦--'{': { [0/4] {55} - ¦ ¦ ¦--expr: h() [1/4] {56} - ¦ ¦ ¦ ¦--expr: h [0/0] {58} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {57} - ¦ ¦ ¦ ¦--'(': ( [0/0] {59} - ¦ ¦ ¦ °--')': ) [0/0] {60} - ¦ ¦ ¦--expr: 5 [1/1] {62} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {61} - ¦ ¦ °--'}': } [0/0] {63} - ¦ °--'}': } [1/0] {64} - ¦--expr: { - i [3/0] {65} - ¦ ¦--'{': { [0/2] {66} - ¦ ¦--expr: if (T [1/0] {67} - ¦ ¦ ¦--IF: if [0/1] {68} - ¦ ¦ ¦--'(': ( [0/0] {69} - ¦ ¦ ¦--expr: TRUE [0/0] {71} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {70} - ¦ ¦ ¦--')': ) [0/1] {72} - ¦ ¦ ¦--expr: { - [0/0] {73} - ¦ ¦ ¦ ¦--'{': { [0/4] {74} - ¦ ¦ ¦ ¦--expr: 3 [1/2] {76} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {75} - ¦ ¦ ¦ °--'}': } [1/0] {77} - ¦ ¦ ¦--ELSE: else [0/1] {78} - ¦ ¦ °--expr: { - [0/0] {79} - ¦ ¦ ¦--'{': { [0/4] {80} - ¦ ¦ ¦--expr: s() [1/4] {81} - ¦ ¦ ¦ ¦--expr: s [0/0] {83} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {82} - ¦ ¦ ¦ ¦--'(': ( [0/0] {84} - ¦ ¦ ¦ °--')': ) [0/0] {85} - ¦ ¦ ¦--expr: 5 [1/1] {87} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {86} - ¦ ¦ °--'}': } [0/0] {88} - ¦ °--'}': } [1/0] {89} - ¦--expr: if (T [2/0] {90} - ¦ ¦--IF: if [0/1] {91} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--expr: TRUE [0/0] {94} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {93} - ¦ ¦--')': ) [0/2] {95} - ¦ ¦--expr: 1 [1/1] {97} - ¦ ¦ °--NUM_CONST: 1 [0/0] {96} - ¦ ¦--ELSE: else [0/4] {98} - ¦ °--expr: 3 [1/0] {100} - ¦ °--NUM_CONST: 3 [0/0] {99} - ¦--expr: if (F [2/0] {101} - ¦ ¦--IF: if [0/1] {102} - ¦ ¦--'(': ( [0/0] {103} - ¦ ¦--expr: FALSE [0/0] {105} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {104} - ¦ ¦--')': ) [0/2] {106} - ¦ ¦--expr: 1 + a [1/1] {107} - ¦ ¦ ¦--expr: 1 [0/1] {109} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {108} - ¦ ¦ ¦--'+': + [0/1] {110} - ¦ ¦ °--expr: a * ( [0/0] {111} - ¦ ¦ ¦--expr: a [0/1] {113} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {112} - ¦ ¦ ¦--'*': * [0/1] {114} - ¦ ¦ °--expr: ( 31/ [0/0] {115} - ¦ ¦ ¦--'(': ( [0/1] {116} - ¦ ¦ ¦--expr: 31/2 [0/0] {117} - ¦ ¦ ¦ ¦--expr: 31 [0/0] {119} - ¦ ¦ ¦ ¦ °--NUM_CONST: 31 [0/0] {118} - ¦ ¦ ¦ ¦--'/': / [0/0] {120} - ¦ ¦ ¦ °--expr: 2 [0/0] {122} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {121} - ¦ ¦ °--')': ) [0/0] {123} - ¦ ¦--ELSE: else [0/4] {124} - ¦ °--expr: 3^k [1/0] {125} - ¦ ¦--expr: 3 [0/0] {127} - ¦ ¦ °--NUM_CONST: 3 [0/0] {126} - ¦ ¦--'^': ^ [0/0] {128} - ¦ °--expr: k [0/0] {130} - ¦ °--SYMBOL: k [0/0] {129} - ¦--expr: if (T [3/0] {131} - ¦ ¦--IF: if [0/1] {132} - ¦ ¦--'(': ( [0/0] {133} - ¦ ¦--expr: TRUE [0/0] {135} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {134} - ¦ ¦--')': ) [0/2] {136} - ¦ ¦--expr: 1+1 [1/1] {137} - ¦ ¦ ¦--expr: 1 [0/0] {139} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {138} - ¦ ¦ ¦--'+': + [0/0] {140} - ¦ ¦ °--expr: 1 [0/0] {142} - ¦ ¦ °--NUM_CONST: 1 [0/0] {141} - ¦ ¦--ELSE: else [0/4] {143} - ¦ °--expr: 3 [1/0] {145} - ¦ °--NUM_CONST: 3 [0/0] {144} - °--expr: if (T [2/0] {146} - ¦--IF: if [0/1] {147} - ¦--'(': ( [0/0] {148} - ¦--expr: TRUE [0/0] {150} - ¦ °--NUM_CONST: TRUE [0/0] {149} - ¦--')': ) [0/2] {151} - ¦--expr: 1 + 1 [1/1] {152} - ¦ ¦--expr: 1 [0/1] {154} - ¦ ¦ °--NUM_CONST: 1 [0/0] {153} - ¦ ¦--'+': + [0/1] {155} - ¦ °--expr: 1 [0/0] {157} - ¦ °--NUM_CONST: 1 [0/0] {156} - ¦--ELSE: else [0/1] {158} - °--expr: a +4 [0/0] {159} - ¦--expr: a [0/1] {161} - ¦ °--SYMBOL: a [0/0] {160} - ¦--'+': + [0/0] {162} - °--expr: 4 [0/0] {164} - °--NUM_CONST: 4 [0/0] {163} diff --git a/tests/testthat/token_adding_removing/if_else_strict-in_tree b/tests/testthat/token_adding_removing/if_else_strict-in_tree deleted file mode 100644 index e5d3a6155..000000000 --- a/tests/testthat/token_adding_removing/if_else_strict-in_tree +++ /dev/null @@ -1,173 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: { - i [0/0] {1} - ¦ ¦--'{': { [0/2] {2} - ¦ ¦--expr: if (T [1/0] {3} - ¦ ¦ ¦--IF: if [0/1] {4} - ¦ ¦ ¦--'(': ( [0/0] {5} - ¦ ¦ ¦--expr: TRUE [0/0] {7} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {6} - ¦ ¦ ¦--')': ) [0/4] {8} - ¦ ¦ ¦--expr: 3 [1/0] {10} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {9} - ¦ ¦ ¦--ELSE: else [1/0] {11} - ¦ ¦ °--expr: 5 [1/0] {13} - ¦ ¦ °--NUM_CONST: 5 [0/0] {12} - ¦ °--'}': } [1/0] {14} - ¦--expr: { - i [3/0] {15} - ¦ ¦--'{': { [0/2] {16} - ¦ ¦--expr: if (T [1/3] {17} - ¦ ¦ ¦--IF: if [0/1] {18} - ¦ ¦ ¦--'(': ( [0/0] {19} - ¦ ¦ ¦--expr: TRUE [0/0] {21} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {20} - ¦ ¦ ¦--')': ) [0/1] {22} - ¦ ¦ ¦--expr: { - [0/0] {23} - ¦ ¦ ¦ ¦--'{': { [0/4] {24} - ¦ ¦ ¦ ¦--expr: 3 [1/4] {26} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {25} - ¦ ¦ ¦ ¦--expr: a + b [1/3] {27} - ¦ ¦ ¦ ¦ ¦--expr: a [0/1] {29} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {28} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {30} - ¦ ¦ ¦ ¦ °--expr: b [0/0] {32} - ¦ ¦ ¦ ¦ °--SYMBOL: b [0/0] {31} - ¦ ¦ ¦ °--'}': } [1/0] {33} - ¦ ¦ ¦--ELSE: else [0/4] {34} - ¦ ¦ °--expr: 5 [1/0] {36} - ¦ ¦ °--NUM_CONST: 5 [0/0] {35} - ¦ ¦--expr: c() [2/0] {37} - ¦ ¦ ¦--expr: c [0/0] {39} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {38} - ¦ ¦ ¦--'(': ( [0/0] {40} - ¦ ¦ °--')': ) [0/0] {41} - ¦ °--'}': } [1/0] {42} - ¦--expr: { - i [3/0] {43} - ¦ ¦--'{': { [0/2] {44} - ¦ ¦--expr: if (T [1/0] {45} - ¦ ¦ ¦--IF: if [0/1] {46} - ¦ ¦ ¦--'(': ( [0/0] {47} - ¦ ¦ ¦--expr: TRUE [0/0] {49} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {48} - ¦ ¦ ¦--')': ) [0/4] {50} - ¦ ¦ ¦--expr: 3 [1/2] {52} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {51} - ¦ ¦ ¦--ELSE: else [1/1] {53} - ¦ ¦ °--expr: { - [0/0] {54} - ¦ ¦ ¦--'{': { [0/4] {55} - ¦ ¦ ¦--expr: h() [1/4] {56} - ¦ ¦ ¦ ¦--expr: h [0/0] {58} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {57} - ¦ ¦ ¦ ¦--'(': ( [0/0] {59} - ¦ ¦ ¦ °--')': ) [0/0] {60} - ¦ ¦ ¦--expr: 5 [1/1] {62} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {61} - ¦ ¦ °--'}': } [0/0] {63} - ¦ °--'}': } [1/0] {64} - ¦--expr: { - i [3/0] {65} - ¦ ¦--'{': { [0/2] {66} - ¦ ¦--expr: if (T [1/0] {67} - ¦ ¦ ¦--IF: if [0/1] {68} - ¦ ¦ ¦--'(': ( [0/0] {69} - ¦ ¦ ¦--expr: TRUE [0/0] {71} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {70} - ¦ ¦ ¦--')': ) [0/1] {72} - ¦ ¦ ¦--expr: { - [0/0] {73} - ¦ ¦ ¦ ¦--'{': { [0/4] {74} - ¦ ¦ ¦ ¦--expr: 3 [1/2] {76} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {75} - ¦ ¦ ¦ °--'}': } [1/0] {77} - ¦ ¦ ¦--ELSE: else [0/1] {78} - ¦ ¦ °--expr: { - [0/0] {79} - ¦ ¦ ¦--'{': { [0/4] {80} - ¦ ¦ ¦--expr: s() [1/4] {81} - ¦ ¦ ¦ ¦--expr: s [0/0] {83} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {82} - ¦ ¦ ¦ ¦--'(': ( [0/0] {84} - ¦ ¦ ¦ °--')': ) [0/0] {85} - ¦ ¦ ¦--expr: 5 [1/1] {87} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {86} - ¦ ¦ °--'}': } [0/0] {88} - ¦ °--'}': } [1/0] {89} - ¦--expr: if (T [2/0] {90} - ¦ ¦--IF: if [0/1] {91} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--expr: TRUE [0/0] {94} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {93} - ¦ ¦--')': ) [0/2] {95} - ¦ ¦--expr: 1 [1/1] {97} - ¦ ¦ °--NUM_CONST: 1 [0/0] {96} - ¦ ¦--ELSE: else [0/2] {98} - ¦ °--expr: 3 [1/0] {100} - ¦ °--NUM_CONST: 3 [0/0] {99} - ¦--expr: if (F [2/0] {101} - ¦ ¦--IF: if [0/1] {102} - ¦ ¦--'(': ( [0/0] {103} - ¦ ¦--expr: FALSE [0/0] {105} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {104} - ¦ ¦--')': ) [0/2] {106} - ¦ ¦--expr: 1 + a [1/1] {107} - ¦ ¦ ¦--expr: 1 [0/1] {109} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {108} - ¦ ¦ ¦--'+': + [0/1] {110} - ¦ ¦ °--expr: a * ( [0/0] {111} - ¦ ¦ ¦--expr: a [0/1] {113} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {112} - ¦ ¦ ¦--'*': * [0/1] {114} - ¦ ¦ °--expr: ( 31/ [0/0] {115} - ¦ ¦ ¦--'(': ( [0/1] {116} - ¦ ¦ ¦--expr: 31/2 [0/0] {117} - ¦ ¦ ¦ ¦--expr: 31 [0/0] {119} - ¦ ¦ ¦ ¦ °--NUM_CONST: 31 [0/0] {118} - ¦ ¦ ¦ ¦--'/': / [0/0] {120} - ¦ ¦ ¦ °--expr: 2 [0/0] {122} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {121} - ¦ ¦ °--')': ) [0/0] {123} - ¦ ¦--ELSE: else [0/2] {124} - ¦ °--expr: 3^k [1/0] {125} - ¦ ¦--expr: 3 [0/0] {127} - ¦ ¦ °--NUM_CONST: 3 [0/0] {126} - ¦ ¦--'^': ^ [0/0] {128} - ¦ °--expr: k [0/0] {130} - ¦ °--SYMBOL: k [0/0] {129} - ¦--expr: if (T [3/0] {131} - ¦ ¦--IF: if [0/1] {132} - ¦ ¦--'(': ( [0/0] {133} - ¦ ¦--expr: TRUE [0/0] {135} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {134} - ¦ ¦--')': ) [0/2] {136} - ¦ ¦--expr: 1+1 [1/1] {137} - ¦ ¦ ¦--expr: 1 [0/0] {139} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {138} - ¦ ¦ ¦--'+': + [0/0] {140} - ¦ ¦ °--expr: 1 [0/0] {142} - ¦ ¦ °--NUM_CONST: 1 [0/0] {141} - ¦ ¦--ELSE: else [0/4] {143} - ¦ °--expr: 3 [1/0] {145} - ¦ °--NUM_CONST: 3 [0/0] {144} - °--expr: if (T [3/0] {146} - ¦--IF: if [0/1] {147} - ¦--'(': ( [0/0] {148} - ¦--expr: TRUE [0/0] {150} - ¦ °--NUM_CONST: TRUE [0/0] {149} - ¦--')': ) [0/2] {151} - ¦--expr: 1 + 1 [1/1] {152} - ¦ ¦--expr: 1 [0/1] {154} - ¦ ¦ °--NUM_CONST: 1 [0/0] {153} - ¦ ¦--'+': + [0/1] {155} - ¦ °--expr: 1 [0/0] {157} - ¦ °--NUM_CONST: 1 [0/0] {156} - ¦--ELSE: else [0/1] {158} - °--expr: a +4 [0/0] {159} - ¦--expr: a [0/1] {161} - ¦ °--SYMBOL: a [0/0] {160} - ¦--'+': + [0/0] {162} - °--expr: 4 [0/0] {164} - °--NUM_CONST: 4 [0/0] {163} diff --git a/tests/testthat/token_adding_removing/if_else_stylerignore-in_tree b/tests/testthat/token_adding_removing/if_else_stylerignore-in_tree deleted file mode 100644 index 77a7ae18b..000000000 --- a/tests/testthat/token_adding_removing/if_else_stylerignore-in_tree +++ /dev/null @@ -1,232 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr_or_assign_or_help: a =1 [0/0] {1} - ¦ ¦--expr: a [0/1] {3} - ¦ ¦ °--SYMBOL: a [0/0] {2} - ¦ ¦--EQ_ASSIGN: = [0/0] {4} - ¦ °--expr: 1 [0/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--expr_or_assign_or_help: b=3 [1/0] {7} - ¦ ¦--expr: b [0/0] {9} - ¦ ¦ °--SYMBOL: b [0/0] {8} - ¦ ¦--EQ_ASSIGN: = [0/0] {10} - ¦ °--expr: 3 [0/0] {12} - ¦ °--NUM_CONST: 3 [0/0] {11} - ¦--expr_or_assign_or_help: k = 9 [1/0] {13} - ¦ ¦--expr: k [0/1] {15} - ¦ ¦ °--SYMBOL: k [0/0] {14} - ¦ ¦--EQ_ASSIGN: = [0/1] {16} - ¦ °--expr: 9 [0/0] {18} - ¦ °--NUM_CONST: 9 [0/0] {17} - ¦--expr: h <- [1/0] {19} - ¦ ¦--expr: h [0/1] {21} - ¦ ¦ °--SYMBOL: h [0/0] {20} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {22} - ¦ °--expr: funct [0/0] {23} - ¦ ¦--FUNCTION: funct [0/0] {24} - ¦ ¦--'(': ( [0/0] {25} - ¦ ¦--')': ) [0/1] {26} - ¦ °--expr: 1 [0/0] {28} - ¦ °--NUM_CONST: 1 [0/0] {27} - ¦--expr: s <- [1/0] {29} - ¦ ¦--expr: s [0/1] {31} - ¦ ¦ °--SYMBOL: s [0/0] {30} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {32} - ¦ °--expr: h [0/0] {34} - ¦ °--SYMBOL: h [0/0] {33} - ¦--expr: { - i [1/0] {35} - ¦ ¦--'{': { [0/2] {36} - ¦ ¦--expr: if (T [1/1] {37} - ¦ ¦ ¦--IF: if [0/1] {38} - ¦ ¦ ¦--'(': ( [0/0] {39} - ¦ ¦ ¦--expr: TRUE [0/0] {41} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {40} - ¦ ¦ ¦--')': ) [0/1] {42} - ¦ ¦ ¦--COMMENT: # sty [0/4] {43} - ¦ ¦ ¦--expr: 3 [1/2] {45} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {44} - ¦ ¦ ¦--ELSE: else [1/4] {46} - ¦ ¦ °--expr: 5 [1/0] {48} - ¦ ¦ °--NUM_CONST: 5 [0/0] {47} - ¦ ¦--COMMENT: # sty [0/0] {49} - ¦ °--'}': } [1/0] {50} - ¦--expr: { - i [3/0] {51} - ¦ ¦--'{': { [0/2] {52} - ¦ ¦--expr: if (T [1/1] {53} - ¦ ¦ ¦--IF: if [0/1] {54} - ¦ ¦ ¦--'(': ( [0/0] {55} - ¦ ¦ ¦--expr: TRUE [0/0] {57} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {56} - ¦ ¦ ¦--')': ) [0/1] {58} - ¦ ¦ ¦--expr: { # s [0/0] {59} - ¦ ¦ ¦ ¦--'{': { [0/1] {60} - ¦ ¦ ¦ ¦--COMMENT: # sty [0/4] {61} - ¦ ¦ ¦ ¦--expr: 3 [1/4] {63} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {62} - ¦ ¦ ¦ ¦--expr: a + b [1/2] {64} - ¦ ¦ ¦ ¦ ¦--expr: a [0/1] {66} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL: a [0/0] {65} - ¦ ¦ ¦ ¦ ¦--'+': + [0/1] {67} - ¦ ¦ ¦ ¦ °--expr: b [0/0] {69} - ¦ ¦ ¦ ¦ °--SYMBOL: b [0/0] {68} - ¦ ¦ ¦ °--'}': } [1/0] {70} - ¦ ¦ ¦--ELSE: else [0/4] {71} - ¦ ¦ °--expr: 5 [1/0] {73} - ¦ ¦ °--NUM_CONST: 5 [0/0] {72} - ¦ ¦--COMMENT: # sty [0/2] {74} - ¦ ¦--expr: c() [2/0] {75} - ¦ ¦ ¦--expr: c [0/0] {77} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {76} - ¦ ¦ ¦--'(': ( [0/0] {78} - ¦ ¦ °--')': ) [0/0] {79} - ¦ °--'}': } [1/0] {80} - ¦--COMMENT: # sty [2/0] {81} - ¦--expr: { - i [1/0] {82} - ¦ ¦--'{': { [0/2] {83} - ¦ ¦--expr: if (T [1/0] {84} - ¦ ¦ ¦--IF: if [0/1] {85} - ¦ ¦ ¦--'(': ( [0/0] {86} - ¦ ¦ ¦--expr: TRUE [0/0] {88} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {87} - ¦ ¦ ¦--')': ) [0/4] {89} - ¦ ¦ ¦--expr: 3 [1/2] {91} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {90} - ¦ ¦ ¦--ELSE: else [1/1] {92} - ¦ ¦ °--expr: { - [0/0] {93} - ¦ ¦ ¦--'{': { [0/4] {94} - ¦ ¦ ¦--expr: h() [1/4] {95} - ¦ ¦ ¦ ¦--expr: h [0/0] {97} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: h [0/0] {96} - ¦ ¦ ¦ ¦--'(': ( [0/0] {98} - ¦ ¦ ¦ °--')': ) [0/0] {99} - ¦ ¦ ¦--expr: 5 [1/1] {101} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {100} - ¦ ¦ °--'}': } [0/0] {102} - ¦ °--'}': } [1/0] {103} - ¦--COMMENT: # sty [1/0] {104} - ¦--expr: { - i [2/0] {105} - ¦ ¦--'{': { [0/2] {106} - ¦ ¦--expr: if (T [1/0] {107} - ¦ ¦ ¦--IF: if [0/1] {108} - ¦ ¦ ¦--'(': ( [0/0] {109} - ¦ ¦ ¦--expr: TRUE [0/0] {111} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {110} - ¦ ¦ ¦--')': ) [0/1] {112} - ¦ ¦ ¦--expr: { - [0/0] {113} - ¦ ¦ ¦ ¦--'{': { [0/4] {114} - ¦ ¦ ¦ ¦--expr: 3 [1/1] {116} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {115} - ¦ ¦ ¦ ¦--COMMENT: # sty [0/2] {117} - ¦ ¦ ¦ °--'}': } [1/0] {118} - ¦ ¦ ¦--ELSE: else [0/1] {119} - ¦ ¦ °--expr: { - [0/0] {120} - ¦ ¦ ¦--'{': { [0/4] {121} - ¦ ¦ ¦--expr: s() [1/4] {122} - ¦ ¦ ¦ ¦--expr: s [0/0] {124} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: s [0/0] {123} - ¦ ¦ ¦ ¦--'(': ( [0/0] {125} - ¦ ¦ ¦ °--')': ) [0/0] {126} - ¦ ¦ ¦--expr: 5 [1/1] {128} - ¦ ¦ ¦ °--NUM_CONST: 5 [0/0] {127} - ¦ ¦ °--'}': } [0/0] {129} - ¦ °--'}': } [1/0] {130} - ¦--expr: if (T [2/0] {131} - ¦ ¦--IF: if [0/1] {132} - ¦ ¦--'(': ( [0/0] {133} - ¦ ¦--expr: TRUE [0/0] {135} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {134} - ¦ ¦--')': ) [0/1] {136} - ¦ ¦--COMMENT: # sty [0/2] {137} - ¦ ¦--expr: 1 [1/1] {139} - ¦ ¦ °--NUM_CONST: 1 [0/0] {138} - ¦ ¦--ELSE: else [0/4] {140} - ¦ °--expr: 3 [1/0] {142} - ¦ °--NUM_CONST: 3 [0/0] {141} - ¦--expr: if (F [2/0] {143} - ¦ ¦--IF: if [0/1] {144} - ¦ ¦--'(': ( [0/0] {145} - ¦ ¦--expr: FALSE [0/0] {147} - ¦ ¦ °--NUM_CONST: FALSE [0/0] {146} - ¦ ¦--')': ) [0/1] {148} - ¦ ¦--COMMENT: # sty [0/2] {149} - ¦ ¦--expr: 1 + a [1/1] {150} - ¦ ¦ ¦--expr: 1 [0/1] {152} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {151} - ¦ ¦ ¦--'+': + [0/1] {153} - ¦ ¦ °--expr: a * ( [0/0] {154} - ¦ ¦ ¦--expr: a [0/1] {156} - ¦ ¦ ¦ °--SYMBOL: a [0/0] {155} - ¦ ¦ ¦--'*': * [0/1] {157} - ¦ ¦ °--expr: ( 31/ [0/0] {158} - ¦ ¦ ¦--'(': ( [0/1] {159} - ¦ ¦ ¦--expr: 31/2 [0/0] {160} - ¦ ¦ ¦ ¦--expr: 31 [0/0] {162} - ¦ ¦ ¦ ¦ °--NUM_CONST: 31 [0/0] {161} - ¦ ¦ ¦ ¦--'/': / [0/0] {163} - ¦ ¦ ¦ °--expr: 2 [0/0] {165} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {164} - ¦ ¦ °--')': ) [0/0] {166} - ¦ ¦--ELSE: else [0/4] {167} - ¦ °--expr: 3^k [1/0] {168} - ¦ ¦--expr: 3 [0/0] {170} - ¦ ¦ °--NUM_CONST: 3 [0/0] {169} - ¦ ¦--'^': ^ [0/0] {171} - ¦ °--expr: k [0/0] {173} - ¦ °--SYMBOL: k [0/0] {172} - ¦--expr: if (T [3/0] {174} - ¦ ¦--IF: if [0/1] {175} - ¦ ¦--'(': ( [0/0] {176} - ¦ ¦--expr: TRUE [0/0] {178} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {177} - ¦ ¦--')': ) [0/2] {179} - ¦ ¦--expr: 1+1 [1/1] {180} - ¦ ¦ ¦--expr: 1 [0/0] {182} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {181} - ¦ ¦ ¦--'+': + [0/0] {183} - ¦ ¦ °--expr: 1 [0/0] {185} - ¦ ¦ °--NUM_CONST: 1 [0/0] {184} - ¦ ¦--ELSE: else [0/1] {186} - ¦ ¦--COMMENT: # sty [0/4] {187} - ¦ °--expr: 3 [1/0] {189} - ¦ °--NUM_CONST: 3 [0/0] {188} - ¦--expr: if (T [2/0] {190} - ¦ ¦--IF: if [0/1] {191} - ¦ ¦--'(': ( [0/0] {192} - ¦ ¦--expr: TRUE [0/0] {194} - ¦ ¦ °--NUM_CONST: TRUE [0/0] {193} - ¦ ¦--')': ) [0/2] {195} - ¦ ¦--expr: 1 + 1 [1/1] {196} - ¦ ¦ ¦--expr: 1 [0/1] {198} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {197} - ¦ ¦ ¦--'+': + [0/1] {199} - ¦ ¦ °--expr: 1 [0/0] {201} - ¦ ¦ °--NUM_CONST: 1 [0/0] {200} - ¦ ¦--ELSE: else [0/1] {202} - ¦ °--expr: a +4 [0/0] {203} - ¦ ¦--expr: a [0/1] {205} - ¦ ¦ °--SYMBOL: a [0/0] {204} - ¦ ¦--'+': + [0/0] {206} - ¦ °--expr: 4 [0/0] {208} - ¦ °--NUM_CONST: 4 [0/0] {207} - ¦--COMMENT: # sty [2/0] {209} - ¦--expr: {if ( [1/0] {210} - ¦ ¦--'{': { [0/0] {211} - ¦ ¦--expr: if (T [0/0] {212} - ¦ ¦ ¦--IF: if [0/1] {213} - ¦ ¦ ¦--'(': ( [0/0] {214} - ¦ ¦ ¦--expr: TRUE [0/0] {216} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {215} - ¦ ¦ ¦--')': ) [0/2] {217} - ¦ ¦ ¦--expr: 3 [1/0] {219} - ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {218} - ¦ ¦ ¦--ELSE: else [1/2] {220} - ¦ ¦ °--expr: 5 [1/0] {222} - ¦ ¦ °--NUM_CONST: 5 [0/0] {221} - ¦ °--'}': } [1/0] {223} - °--COMMENT: # sty [1/0] {224} diff --git a/tests/testthat/token_adding_removing/mixed_token-in_tree b/tests/testthat/token_adding_removing/mixed_token-in_tree deleted file mode 100644 index 2e91e3aaf..000000000 --- a/tests/testthat/token_adding_removing/mixed_token-in_tree +++ /dev/null @@ -1,54 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # = r [0/0] {1} - ¦--expr_or_assign_or_help: a = 3 [1/0] {2} - ¦ ¦--expr: a [0/1] {4} - ¦ ¦ °--SYMBOL: a [0/0] {3} - ¦ ¦--EQ_ASSIGN: = [0/1] {5} - ¦ °--expr: 3 [0/0] {7} - ¦ °--NUM_CONST: 3 [0/0] {6} - ¦--expr: data_ [1/0] {8} - ¦ ¦--expr: data_ [0/0] {10} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: data_ [0/0] {9} - ¦ ¦--'(': ( [0/0] {11} - ¦ ¦--SYMBOL_SUB: a [0/1] {12} - ¦ ¦--EQ_SUB: = [0/1] {13} - ¦ ¦--expr: 3 [0/0] {15} - ¦ ¦ °--NUM_CONST: 3 [0/0] {14} - ¦ °--')': ) [0/0] {16} - ¦--COMMENT: # sem [2/0] {17} - ¦--expr: a [1/0] {19} - ¦ °--SYMBOL: a [0/0] {18} - ¦--';': ; [0/1] {20} - ¦--expr: b [0/1] {22} - ¦ °--SYMBOL: b [0/0] {21} - ¦--';': ; [0/0] {23} - ¦--expr: c [0/0] {25} - ¦ °--SYMBOL: c [0/0] {24} - ¦--';': ; [0/0] {26} - ¦--expr: d [0/0] {28} - ¦ °--SYMBOL: d [0/0] {27} - ¦--COMMENT: # quo [3/0] {29} - ¦--expr: "text [1/0] {31} - ¦ °--STR_CONST: "text [0/0] {30} - ¦--expr: 'text [1/0] {33} - ¦ °--STR_CONST: 'text [0/0] {32} - ¦--COMMENT: # add [4/0] {34} - ¦--expr: a %>% [1/0] {35} - ¦ ¦--expr: a [0/1] {38} - ¦ ¦ °--SYMBOL: a [0/0] {37} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {39} - ¦ ¦--expr: b [1/1] {41} - ¦ ¦ °--SYMBOL: b [0/0] {40} - ¦ ¦--SPECIAL-PIPE: %>% [0/2] {42} - ¦ °--expr: c [1/0] {44} - ¦ °--SYMBOL: c [0/0] {43} - ¦--COMMENT: # add [2/0] {45} - °--expr: a %>% [1/0] {46} - ¦--expr: a [0/1] {49} - ¦ °--SYMBOL: a [0/0] {48} - ¦--SPECIAL-PIPE: %>% [0/1] {50} - ¦--expr: b [0/1] {52} - ¦ °--SYMBOL: b [0/0] {51} - ¦--SPECIAL-PIPE: %>% [0/2] {53} - °--expr: c [1/0] {55} - °--SYMBOL: c [0/0] {54} diff --git a/tests/testthat/token_adding_removing/substitute-in_tree b/tests/testthat/token_adding_removing/substitute-in_tree deleted file mode 100644 index 70c35013e..000000000 --- a/tests/testthat/token_adding_removing/substitute-in_tree +++ /dev/null @@ -1,39 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: expr [0/0] {1} - ¦ ¦--expr: expr [0/1] {3} - ¦ ¦ °--SYMBOL: expr [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: subst [0/0] {5} - ¦ ¦--expr: subst [0/0] {7} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: subst [0/0] {6} - ¦ ¦--'(': ( [0/0] {8} - ¦ ¦--expr: airqu [0/0] {9} - ¦ ¦ ¦--expr: airqu [0/1] {11} - ¦ ¦ ¦ °--SYMBOL: airqu [0/0] {10} - ¦ ¦ ¦--SPECIAL-PIPE: %>% [0/1] {12} - ¦ ¦ °--expr: FUN_E [0/0] {14} - ¦ ¦ °--SYMBOL: FUN_E [0/0] {13} - ¦ ¦--',': , [0/1] {15} - ¦ ¦--SYMBOL_SUB: env [0/1] {16} - ¦ ¦--EQ_SUB: = [0/1] {17} - ¦ ¦--expr: list( [0/0] {18} - ¦ ¦ ¦--expr: list [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: list [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--SYMBOL_SUB: FUN_E [0/1] {22} - ¦ ¦ ¦--EQ_SUB: = [0/1] {23} - ¦ ¦ ¦--expr: call( [0/0] {24} - ¦ ¦ ¦ ¦--expr: call [0/0] {26} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {25} - ¦ ¦ ¦ ¦--'(': ( [0/0] {27} - ¦ ¦ ¦ ¦--expr: "FUN_ [0/0] {29} - ¦ ¦ ¦ ¦ °--STR_CONST: "FUN_ [0/0] {28} - ¦ ¦ ¦ °--')': ) [0/0] {30} - ¦ ¦ °--')': ) [0/0] {31} - ¦ °--')': ) [0/0] {32} - °--expr: a %>% [1/0] {33} - ¦--expr: a [0/1] {35} - ¦ °--SYMBOL: a [0/0] {34} - ¦--SPECIAL-PIPE: %>% [0/2] {36} - °--expr: x [1/0] {38} - °--SYMBOL: x [0/0] {37} diff --git a/tests/testthat/token_adding_removing/token_creation_find_pos-in_tree b/tests/testthat/token_adding_removing/token_creation_find_pos-in_tree deleted file mode 100644 index d7851f86c..000000000 --- a/tests/testthat/token_adding_removing/token_creation_find_pos-in_tree +++ /dev/null @@ -1,190 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: print [0/0] {1} - ¦ ¦--expr: print [0/1] {3} - ¦ ¦ °--SYMBOL: print [0/0] {2} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {4} - ¦ °--expr: funct [0/0] {5} - ¦ ¦--FUNCTION: funct [0/0] {6} - ¦ ¦--'(': ( [0/0] {7} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {8} - ¦ ¦--',': , [0/1] {9} - ¦ ¦--SYMBOL_FORMALS: ... [0/0] {10} - ¦ ¦--')': ) [0/1] {11} - ¦ °--expr: { - l [0/0] {12} - ¦ ¦--'{': { [0/2] {13} - ¦ ¦--expr: lines [1/2] {14} - ¦ ¦ ¦--expr: lines [0/1] {16} - ¦ ¦ ¦ °--SYMBOL: lines [0/0] {15} - ¦ ¦ ¦--LEFT_ASSIGN: <- [0/1] {17} - ¦ ¦ °--expr: m(y, [0/0] {18} - ¦ ¦ ¦--expr: m [0/0] {20} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: m [0/0] {19} - ¦ ¦ ¦--'(': ( [0/0] {21} - ¦ ¦ ¦--expr: y [0/0] {23} - ¦ ¦ ¦ °--SYMBOL: y [0/0] {22} - ¦ ¦ ¦--',': , [0/1] {24} - ¦ ¦ ¦--expr: ... [0/0] {26} - ¦ ¦ ¦ °--SYMBOL: ... [0/0] {25} - ¦ ¦ ¦--',': , [0/1] {27} - ¦ ¦ ¦--SYMBOL_SUB: print [0/1] {28} - ¦ ¦ ¦--EQ_SUB: = [0/1] {29} - ¦ ¦ ¦--expr: TRUE [0/0] {31} - ¦ ¦ ¦ °--NUM_CONST: TRUE [0/0] {30} - ¦ ¦ °--')': ) [0/0] {32} - ¦ ¦--expr: paste [1/0] {33} - ¦ ¦ ¦--expr: paste [0/0] {35} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: paste [0/0] {34} - ¦ ¦ ¦--'(': ( [0/0] {36} - ¦ ¦ ¦--expr: lines [0/0] {38} - ¦ ¦ ¦ °--SYMBOL: lines [0/0] {37} - ¦ ¦ ¦--',': , [0/1] {39} - ¦ ¦ ¦--SYMBOL_SUB: sep [0/1] {40} - ¦ ¦ ¦--EQ_SUB: = [0/1] {41} - ¦ ¦ ¦--expr: "\n" [0/0] {43} - ¦ ¦ ¦ °--STR_CONST: "\n" [0/0] {42} - ¦ ¦ °--')': ) [0/0] {44} - ¦ °--'}': } [1/0] {45} - ¦--COMMENT: # No [2/0] {46} - ¦--expr: kng < [2/0] {47} - ¦ ¦--expr: kng [0/1] {49} - ¦ ¦ °--SYMBOL: kng [0/0] {48} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {50} - ¦ °--expr: funct [0/0] {51} - ¦ ¦--FUNCTION: funct [0/0] {52} - ¦ ¦--'(': ( [0/0] {53} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {54} - ¦ ¦--',': , [0/1] {55} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {56} - ¦ ¦--')': ) [0/1] {57} - ¦ °--expr: spm(f [0/0] {58} - ¦ ¦--expr: spm [0/0] {60} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: spm [0/0] {59} - ¦ ¦--'(': ( [0/0] {61} - ¦ ¦--SYMBOL_SUB: fmt [0/1] {62} - ¦ ¦--EQ_SUB: = [0/1] {63} - ¦ ¦--expr: "%i" [0/0] {65} - ¦ ¦ °--STR_CONST: "%i" [0/0] {64} - ¦ ¦--',': , [0/1] {66} - ¦ ¦--expr: lgd(x [0/0] {67} - ¦ ¦ ¦--expr: lgd [0/0] {69} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: lgd [0/0] {68} - ¦ ¦ ¦--'(': ( [0/0] {70} - ¦ ¦ ¦--expr: x [0/0] {72} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {71} - ¦ ¦ °--')': ) [0/0] {73} - ¦ ¦--',': , [0/1] {74} - ¦ ¦--expr: tds(y [0/0] {75} - ¦ ¦ ¦--expr: tds [0/0] {77} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: tds [0/0] {76} - ¦ ¦ ¦--'(': ( [0/0] {78} - ¦ ¦ ¦--expr: y [0/0] {80} - ¦ ¦ ¦ °--SYMBOL: y [0/0] {79} - ¦ ¦ °--')': ) [0/0] {81} - ¦ °--')': ) [0/0] {82} - ¦--expr: tka < [1/0] {83} - ¦ ¦--expr: tka [0/1] {85} - ¦ ¦ °--SYMBOL: tka [0/0] {84} - ¦ ¦--LEFT_ASSIGN: <- [0/1] {86} - ¦ °--expr: funct [0/0] {87} - ¦ ¦--FUNCTION: funct [0/0] {88} - ¦ ¦--'(': ( [0/0] {89} - ¦ ¦--SYMBOL_FORMALS: my [0/0] {90} - ¦ ¦--',': , [0/1] {91} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {92} - ¦ ¦--')': ) [0/1] {93} - ¦ °--expr: ttt(g [0/0] {94} - ¦ ¦--expr: ttt [0/0] {96} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ttt [0/0] {95} - ¦ ¦--'(': ( [0/0] {97} - ¦ ¦--SYMBOL_SUB: gmks [0/1] {98} - ¦ ¦--EQ_SUB: = [0/1] {99} - ¦ ¦--expr: "%s" [0/0] {101} - ¦ ¦ °--STR_CONST: "%s" [0/0] {100} - ¦ ¦--',': , [0/1] {102} - ¦ ¦--expr: slice [0/0] {103} - ¦ ¦ ¦--expr: slice [0/0] {105} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: slice [0/0] {104} - ¦ ¦ ¦--'(': ( [0/0] {106} - ¦ ¦ ¦--expr: x [0/0] {108} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {107} - ¦ ¦ °--')': ) [0/0] {109} - ¦ ¦--',': , [0/1] {110} - ¦ ¦--expr: acast [0/0] {111} - ¦ ¦ ¦--expr: acast [0/0] {113} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: acast [0/0] {112} - ¦ ¦ ¦--'(': ( [0/0] {114} - ¦ ¦ ¦--expr: d [0/0] {116} - ¦ ¦ ¦ °--SYMBOL: d [0/0] {115} - ¦ ¦ °--')': ) [0/0] {117} - ¦ °--')': ) [0/0] {118} - °--expr: anoth [2/0] {119} - ¦--expr: anoth [0/1] {121} - ¦ °--SYMBOL: anoth [0/0] {120} - ¦--LEFT_ASSIGN: <- [0/1] {122} - °--expr: funct [0/0] {123} - ¦--FUNCTION: funct [0/0] {124} - ¦--'(': ( [0/0] {125} - ¦--SYMBOL_FORMALS: x [0/0] {126} - ¦--',': , [0/1] {127} - ¦--SYMBOL_FORMALS: y [0/0] {128} - ¦--')': ) [0/1] {129} - °--expr: { - i [0/0] {130} - ¦--'{': { [0/2] {131} - ¦--expr: if (! [1/2] {132} - ¦ ¦--IF: if [0/1] {133} - ¦ ¦--'(': ( [0/0] {134} - ¦ ¦--expr: !fun( [0/0] {135} - ¦ ¦ ¦--expr: !fun( [0/1] {136} - ¦ ¦ ¦ ¦--'!': ! [0/0] {137} - ¦ ¦ ¦ °--expr: fun(x [0/0] {138} - ¦ ¦ ¦ ¦--expr: fun [0/0] {140} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: fun [0/0] {139} - ¦ ¦ ¦ ¦--'(': ( [0/0] {141} - ¦ ¦ ¦ ¦--expr: x [0/0] {143} - ¦ ¦ ¦ ¦ °--SYMBOL: x [0/0] {142} - ¦ ¦ ¦ °--')': ) [0/0] {144} - ¦ ¦ ¦--AND2: && [0/1] {145} - ¦ ¦ °--expr: !not_ [0/0] {146} - ¦ ¦ ¦--'!': ! [0/0] {147} - ¦ ¦ °--expr: not_i [0/0] {148} - ¦ ¦ ¦--expr: not_i [0/0] {150} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: not_i [0/0] {149} - ¦ ¦ ¦--'(': ( [0/0] {151} - ¦ ¦ ¦--expr: y [0/0] {153} - ¦ ¦ ¦ °--SYMBOL: y [0/0] {152} - ¦ ¦ °--')': ) [0/0] {154} - ¦ ¦--')': ) [0/1] {155} - ¦ °--expr: { - [0/0] {156} - ¦ ¦--'{': { [0/4] {157} - ¦ ¦--expr: retur [1/2] {158} - ¦ ¦ ¦--expr: retur [0/0] {160} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: retur [0/0] {159} - ¦ ¦ ¦--'(': ( [0/0] {161} - ¦ ¦ ¦--expr: s [0/0] {163} - ¦ ¦ ¦ °--SYMBOL: s [0/0] {162} - ¦ ¦ °--')': ) [0/0] {164} - ¦ °--'}': } [1/0] {165} - ¦--expr: ident [1/0] {166} - ¦ ¦--expr: ident [0/0] {168} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: ident [0/0] {167} - ¦ ¦--'(': ( [0/0] {169} - ¦ ¦--expr: kss(n [0/0] {170} - ¦ ¦ ¦--expr: kss [0/0] {172} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: kss [0/0] {171} - ¦ ¦ ¦--'(': ( [0/0] {173} - ¦ ¦ ¦--expr: nmp [0/0] {175} - ¦ ¦ ¦ °--SYMBOL: nmp [0/0] {174} - ¦ ¦ °--')': ) [0/0] {176} - ¦ ¦--',': , [0/1] {177} - ¦ ¦--expr: gsk(r [0/0] {178} - ¦ ¦ ¦--expr: gsk [0/0] {180} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: gsk [0/0] {179} - ¦ ¦ ¦--'(': ( [0/0] {181} - ¦ ¦ ¦--expr: rdm [0/0] {183} - ¦ ¦ ¦ °--SYMBOL: rdm [0/0] {182} - ¦ ¦ °--')': ) [0/0] {184} - ¦ °--')': ) [0/0] {185} - °--'}': } [1/0] {186} diff --git a/tests/testthat/unary_spacing/unary_complex-in_tree b/tests/testthat/unary_spacing/unary_complex-in_tree deleted file mode 100644 index 42b3fce70..000000000 --- a/tests/testthat/unary_spacing/unary_complex-in_tree +++ /dev/null @@ -1,81 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1+(1 [0/0] {1} - ¦ ¦--expr: 1 [0/0] {4} - ¦ ¦ °--NUM_CONST: 1 [0/0] {3} - ¦ ¦--'+': + [0/0] {5} - ¦ ¦--expr: (1 [0/0] {6} - ¦ ¦ ¦--'(': ( [0/0] {7} - ¦ ¦ ¦--expr: 1 - [0/0] {8} - ¦ ¦ ¦ ¦--expr: 1 [0/3] {11} - ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {10} - ¦ ¦ ¦ ¦--'-': - [0/1] {12} - ¦ ¦ ¦ ¦--expr: (- (- [0/5] {13} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {14} - ¦ ¦ ¦ ¦ ¦--expr: - (- [0/3] {15} - ¦ ¦ ¦ ¦ ¦ ¦--'-': - [0/1] {16} - ¦ ¦ ¦ ¦ ¦ °--expr: (- 3 [0/0] {17} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {18} - ¦ ¦ ¦ ¦ ¦ ¦--expr: - 3 + [0/0] {19} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: - 3 [0/1] {21} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--'-': - [0/1] {22} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 3 [0/0] {24} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {23} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/2] {25} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--expr: 11 [0/0] {27} - ¦ ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 11 [0/0] {26} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {28} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: + 1 [0/0] {29} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/3] {30} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {32} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {31} - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {33} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {34} - ¦ ¦ ¦ ¦--'-': - [0/0] {35} - ¦ ¦ ¦ °--expr: 4 [0/0] {37} - ¦ ¦ ¦ °--NUM_CONST: 4 [0/0] {36} - ¦ ¦ °--')': ) [0/0] {38} - ¦ ¦--'-': - [0/0] {39} - ¦ °--expr: -40 [0/0] {40} - ¦ ¦--'-': - [0/0] {41} - ¦ °--expr: 40 [0/0] {43} - ¦ °--NUM_CONST: 40 [0/0] {42} - °--expr: 1+(1- [1/0] {44} - ¦--expr: 1 [0/0] {47} - ¦ °--NUM_CONST: 1 [0/0] {46} - ¦--'+': + [0/0] {48} - ¦--expr: (1-(- [0/0] {49} - ¦ ¦--'(': ( [0/0] {50} - ¦ ¦--expr: 1-(-( [0/0] {51} - ¦ ¦ ¦--expr: 1 [0/0] {54} - ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {53} - ¦ ¦ ¦--'-': - [0/0] {55} - ¦ ¦ ¦--expr: (-(-3 [0/0] {56} - ¦ ¦ ¦ ¦--'(': ( [0/0] {57} - ¦ ¦ ¦ ¦--expr: -(-3+ [0/0] {58} - ¦ ¦ ¦ ¦ ¦--'-': - [0/0] {59} - ¦ ¦ ¦ ¦ °--expr: (-3+1 [0/0] {60} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {61} - ¦ ¦ ¦ ¦ ¦--expr: -3+11 [0/0] {62} - ¦ ¦ ¦ ¦ ¦ ¦--expr: -3 [0/0] {64} - ¦ ¦ ¦ ¦ ¦ ¦ ¦--'-': - [0/0] {65} - ¦ ¦ ¦ ¦ ¦ ¦ °--expr: 3 [0/0] {67} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {66} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {68} - ¦ ¦ ¦ ¦ ¦ ¦--expr: 11 [0/0] {70} - ¦ ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 11 [0/0] {69} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {71} - ¦ ¦ ¦ ¦ ¦ °--expr: +1 [0/0] {72} - ¦ ¦ ¦ ¦ ¦ ¦--'+': + [0/0] {73} - ¦ ¦ ¦ ¦ ¦ °--expr: 1 [0/0] {75} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 1 [0/0] {74} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {76} - ¦ ¦ ¦ °--')': ) [0/0] {77} - ¦ ¦ ¦--'-': - [0/0] {78} - ¦ ¦ °--expr: 4 [0/0] {80} - ¦ ¦ °--NUM_CONST: 4 [0/0] {79} - ¦ °--')': ) [0/0] {81} - ¦--'-': - [0/0] {82} - °--expr: -40 [0/0] {83} - ¦--'-': - [0/0] {84} - °--expr: 40 [0/0] {86} - °--NUM_CONST: 40 [0/0] {85} diff --git a/tests/testthat/unary_spacing/unary_indention-in_tree b/tests/testthat/unary_spacing/unary_indention-in_tree deleted file mode 100644 index a1d0470e5..000000000 --- a/tests/testthat/unary_spacing/unary_indention-in_tree +++ /dev/null @@ -1,57 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: 1 + - [0/0] {1} - ¦ ¦--expr: 1 [0/1] {4} - ¦ ¦ °--NUM_CONST: 1 [0/0] {3} - ¦ ¦--'+': + [0/5] {5} - ¦ ¦--expr: 2 [1/1] {6} - ¦ ¦ ¦--expr: 2 [0/4] {9} - ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {8} - ¦ ¦ ¦--'/': / [0/2] {10} - ¦ ¦ ¦--expr: 8 [1/0] {12} - ¦ ¦ ¦ °--NUM_CONST: 8 [0/0] {11} - ¦ ¦ ¦--'/': / [0/5] {13} - ¦ ¦ °--expr: 5 [1/0] {15} - ¦ ¦ °--NUM_CONST: 5 [0/0] {14} - ¦ ¦--'+': + [0/0] {16} - ¦ °--expr: 13 [1/0] {18} - ¦ °--NUM_CONST: 13 [0/0] {17} - ¦--expr: 1 + - [3/0] {19} - ¦ ¦--expr: 1 [0/1] {22} - ¦ ¦ °--NUM_CONST: 1 [0/0] {21} - ¦ ¦--'+': + [0/2] {23} - ¦ ¦--expr: + 1 [1/1] {24} - ¦ ¦ ¦--'+': + [0/1] {25} - ¦ ¦ °--expr: 1 [0/0] {27} - ¦ ¦ °--NUM_CONST: 1 [0/0] {26} - ¦ ¦--'-': - [0/0] {28} - ¦ °--expr: -1 / - [1/0] {29} - ¦ ¦--expr: -1 [0/1] {31} - ¦ ¦ ¦--'-': - [0/0] {32} - ¦ ¦ °--expr: 1 [0/0] {34} - ¦ ¦ °--NUM_CONST: 1 [0/0] {33} - ¦ ¦--'/': / [0/2] {35} - ¦ ¦--expr: 27 [1/2] {37} - ¦ ¦ °--NUM_CONST: 27 [0/0] {36} - ¦ ¦--'/': / [0/2] {38} - ¦ °--expr: - 3 [1/0] {39} - ¦ ¦--'-': - [0/1] {40} - ¦ °--expr: 3 [0/0] {42} - ¦ °--NUM_CONST: 3 [0/0] {41} - °--expr: 1 / - [2/0] {43} - ¦--expr: 1 [0/1] {46} - ¦ °--NUM_CONST: 1 [0/0] {45} - ¦--'/': / [0/2] {47} - ¦--expr: 2 [1/1] {49} - ¦ °--NUM_CONST: 2 [0/0] {48} - ¦--'+': + [0/2] {50} - °--expr: 33 * - [1/0] {51} - ¦--expr: 33 [0/1] {53} - ¦ °--NUM_CONST: 33 [0/0] {52} - ¦--'*': * [0/2] {54} - °--expr: 2 [1/0] {56} - °--NUM_CONST: 2 [0/0] {55} diff --git a/tests/testthat/unary_spacing/unary_simple-in_tree b/tests/testthat/unary_spacing/unary_simple-in_tree deleted file mode 100644 index bebf9c503..000000000 --- a/tests/testthat/unary_spacing/unary_simple-in_tree +++ /dev/null @@ -1,26 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: 1+-1/ [0/0] {1} - ¦--expr: 1 [0/0] {6} - ¦ °--NUM_CONST: 1 [0/0] {5} - ¦--'+': + [0/0] {7} - ¦--expr: -1/2 [0/0] {8} - ¦ ¦--expr: -1 [0/0] {9} - ¦ ¦ ¦--'-': - [0/0] {10} - ¦ ¦ °--expr: 1 [0/0] {12} - ¦ ¦ °--NUM_CONST: 1 [0/0] {11} - ¦ ¦--'/': / [0/0] {13} - ¦ °--expr: 2 [0/0] {15} - ¦ °--NUM_CONST: 2 [0/0] {14} - ¦--'-': - [0/0] {16} - ¦--expr: 3 [0/0] {18} - ¦ °--NUM_CONST: 3 [0/0] {17} - ¦--'-': - [0/0] {19} - ¦--expr: -3 [0/0] {20} - ¦ ¦--'-': - [0/0] {21} - ¦ °--expr: 3 [0/0] {23} - ¦ °--NUM_CONST: 3 [0/0] {22} - ¦--'+': + [0/0] {24} - °--expr: +3 [0/0] {25} - ¦--'+': + [0/0] {26} - °--expr: 3 [0/0] {28} - °--NUM_CONST: 3 [0/0] {27} diff --git a/tests/testthat/unindention/mixed-double-in_tree b/tests/testthat/unindention/mixed-double-in_tree deleted file mode 100644 index 48a5a8d9b..000000000 --- a/tests/testthat/unindention/mixed-double-in_tree +++ /dev/null @@ -1,189 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # cla [0/0] {1} - ¦--expr: funct [2/0] {2} - ¦ ¦--FUNCTION: funct [0/0] {3} - ¦ ¦--'(': ( [0/0] {4} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {5} - ¦ ¦--',': , [0/9] {6} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {7} - ¦ ¦--')': ) [0/1] {8} - ¦ °--expr: { - 1 [0/0] {9} - ¦ ¦--'{': { [0/2] {10} - ¦ ¦--expr: 1 [1/0] {12} - ¦ ¦ °--NUM_CONST: 1 [0/0] {11} - ¦ °--'}': } [1/0] {13} - ¦--expr: funct [3/0] {14} - ¦ ¦--FUNCTION: funct [0/0] {15} - ¦ ¦--'(': ( [0/0] {16} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {17} - ¦ ¦--',': , [0/9] {18} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {19} - ¦ ¦--',': , [0/9] {20} - ¦ ¦--SYMBOL_FORMALS: k [1/0] {21} - ¦ ¦--')': ) [0/1] {22} - ¦ °--expr: { - 1 [0/0] {23} - ¦ ¦--'{': { [0/2] {24} - ¦ ¦--expr: 1 [1/0] {26} - ¦ ¦ °--NUM_CONST: 1 [0/0] {25} - ¦ °--'}': } [1/0] {27} - ¦--expr: funct [3/0] {28} - ¦ ¦--FUNCTION: funct [0/0] {29} - ¦ ¦--'(': ( [0/0] {30} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {31} - ¦ ¦--',': , [0/9] {32} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {33} - ¦ ¦--')': ) [0/1] {34} - ¦ °--expr: { - 1 [0/0] {35} - ¦ ¦--'{': { [0/2] {36} - ¦ ¦--expr: 1 [1/0] {38} - ¦ ¦ °--NUM_CONST: 1 [0/0] {37} - ¦ °--'}': } [1/0] {39} - ¦--expr: funct [2/0] {40} - ¦ ¦--FUNCTION: funct [0/0] {41} - ¦ ¦--'(': ( [0/9] {42} - ¦ ¦--SYMBOL_FORMALS: x [1/0] {43} - ¦ ¦--',': , [0/9] {44} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {45} - ¦ ¦--')': ) [0/1] {46} - ¦ °--expr: { - 1 [0/0] {47} - ¦ ¦--'{': { [0/2] {48} - ¦ ¦--expr: 1 [1/0] {50} - ¦ ¦ °--NUM_CONST: 1 [0/0] {49} - ¦ °--'}': } [1/0] {51} - ¦--expr: funct [3/0] {52} - ¦ ¦--FUNCTION: funct [0/0] {53} - ¦ ¦--'(': ( [0/0] {54} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {55} - ¦ ¦--',': , [0/1] {56} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {57} - ¦ ¦--')': ) [0/1] {58} - ¦ °--expr: { - 1 [0/0] {59} - ¦ ¦--'{': { [0/2] {60} - ¦ ¦--expr: 1 [1/0] {62} - ¦ ¦ °--NUM_CONST: 1 [0/0] {61} - ¦ °--'}': } [1/0] {63} - ¦--expr: funct [2/0] {64} - ¦ ¦--FUNCTION: funct [0/0] {65} - ¦ ¦--'(': ( [0/0] {66} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {67} - ¦ ¦--',': , [0/9] {68} - ¦ ¦--COMMENT: # [1/9] {69} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {70} - ¦ ¦--')': ) [0/1] {71} - ¦ °--expr: { - 1 [0/0] {72} - ¦ ¦--'{': { [0/2] {73} - ¦ ¦--expr: 1 [1/0] {75} - ¦ ¦ °--NUM_CONST: 1 [0/0] {74} - ¦ °--'}': } [1/0] {76} - ¦--COMMENT: # dou [3/0] {77} - ¦--expr: funct [1/0] {78} - ¦ ¦--FUNCTION: funct [0/0] {79} - ¦ ¦--'(': ( [0/0] {80} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {81} - ¦ ¦--',': , [0/0] {82} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {83} - ¦ ¦--')': ) [0/1] {84} - ¦ °--expr: { - 1 [0/0] {85} - ¦ ¦--'{': { [0/2] {86} - ¦ ¦--expr: 1 [1/0] {88} - ¦ ¦ °--NUM_CONST: 1 [0/0] {87} - ¦ °--'}': } [1/0] {89} - ¦--expr: funct [3/0] {90} - ¦ ¦--FUNCTION: funct [0/0] {91} - ¦ ¦--'(': ( [0/0] {92} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {93} - ¦ ¦--',': , [0/0] {94} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {95} - ¦ ¦--',': , [0/9] {96} - ¦ ¦--SYMBOL_FORMALS: k [1/0] {97} - ¦ ¦--')': ) [0/1] {98} - ¦ °--expr: { - 1 [0/0] {99} - ¦ ¦--'{': { [0/2] {100} - ¦ ¦--expr: 1 [1/0] {102} - ¦ ¦ °--NUM_CONST: 1 [0/0] {101} - ¦ °--'}': } [1/0] {103} - ¦--expr: funct [3/0] {104} - ¦ ¦--FUNCTION: funct [0/0] {105} - ¦ ¦--'(': ( [0/4] {106} - ¦ ¦--SYMBOL_FORMALS: x [2/0] {107} - ¦ ¦--',': , [0/4] {108} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {109} - ¦ ¦--')': ) [0/1] {110} - ¦ °--expr: { - 1 [0/0] {111} - ¦ ¦--'{': { [0/2] {112} - ¦ ¦--expr: 1 [1/0] {114} - ¦ ¦ °--NUM_CONST: 1 [0/0] {113} - ¦ °--'}': } [1/0] {115} - ¦--expr: funct [3/0] {116} - ¦ ¦--FUNCTION: funct [0/0] {117} - ¦ ¦--'(': ( [0/2] {118} - ¦ ¦--SYMBOL_FORMALS: x [1/0] {119} - ¦ ¦--',': , [0/1] {120} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {121} - ¦ ¦--')': ) [0/1] {122} - ¦ °--expr: { - 1 [0/0] {123} - ¦ ¦--'{': { [0/2] {124} - ¦ ¦--expr: 1 [1/0] {126} - ¦ ¦ °--NUM_CONST: 1 [0/0] {125} - ¦ °--'}': } [1/0] {127} - ¦--expr: funct [2/0] {128} - ¦ ¦--FUNCTION: funct [0/0] {129} - ¦ ¦--'(': ( [0/0] {130} - ¦ ¦--SYMBOL_FORMALS: x [0/0] {131} - ¦ ¦--',': , [0/0] {132} - ¦ ¦--COMMENT: # [1/25] {133} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {134} - ¦ ¦--')': ) [0/1] {135} - ¦ °--expr: { - 1 [0/0] {136} - ¦ ¦--'{': { [0/2] {137} - ¦ ¦--expr: 1 [1/0] {139} - ¦ ¦ °--NUM_CONST: 1 [0/0] {138} - ¦ °--'}': } [1/0] {140} - ¦--COMMENT: # las [3/0] {141} - ¦--expr: funct [1/0] {142} - ¦ ¦--FUNCTION: funct [0/0] {143} - ¦ ¦--'(': ( [0/4] {144} - ¦ ¦--SYMBOL_FORMALS: x [1/0] {145} - ¦ ¦--',': , [0/1] {146} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {147} - ¦ ¦--')': ) [0/1] {148} - ¦ °--expr: NULL [0/0] {150} - ¦ °--NULL_CONST: NULL [0/0] {149} - ¦--expr: funct [2/0] {151} - ¦ ¦--FUNCTION: funct [0/0] {152} - ¦ ¦--'(': ( [0/4] {153} - ¦ ¦--SYMBOL_FORMALS: x [1/0] {154} - ¦ ¦--',': , [0/1] {155} - ¦ ¦--SYMBOL_FORMALS: y [0/0] {156} - ¦ ¦--')': ) [1/1] {157} - ¦ °--expr: NULL [0/0] {159} - ¦ °--NULL_CONST: NULL [0/0] {158} - ¦--expr: funct [2/0] {160} - ¦ ¦--FUNCTION: funct [0/0] {161} - ¦ ¦--'(': ( [0/4] {162} - ¦ ¦--SYMBOL_FORMALS: x [1/0] {163} - ¦ ¦--',': , [0/4] {164} - ¦ ¦--SYMBOL_FORMALS: y [1/0] {165} - ¦ ¦--')': ) [0/1] {166} - ¦ °--expr: NULL [0/0] {168} - ¦ °--NULL_CONST: NULL [0/0] {167} - °--expr: funct [2/0] {169} - ¦--FUNCTION: funct [0/0] {170} - ¦--'(': ( [0/4] {171} - ¦--SYMBOL_FORMALS: x [1/0] {172} - ¦--',': , [0/4] {173} - ¦--SYMBOL_FORMALS: y [1/0] {174} - ¦--')': ) [1/1] {175} - °--expr: NULL [0/0] {177} - °--NULL_CONST: NULL [0/0] {176} diff --git a/tests/testthat/unindention/mixed-in_tree b/tests/testthat/unindention/mixed-in_tree deleted file mode 100644 index 275bbebef..000000000 --- a/tests/testthat/unindention/mixed-in_tree +++ /dev/null @@ -1,61 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--expr: { - ( [0/0] {1} - ¦ ¦--'{': { [0/2] {2} - ¦ ¦--expr: ((( - [1/3] {3} - ¦ ¦ ¦--'(': ( [0/0] {4} - ¦ ¦ ¦--expr: (( - 2 [0/0] {5} - ¦ ¦ ¦ ¦--'(': ( [0/0] {6} - ¦ ¦ ¦ ¦--expr: ( - 2 - [0/0] {7} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/1] {8} - ¦ ¦ ¦ ¦ ¦--expr: 2 [1/4] {10} - ¦ ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {9} - ¦ ¦ ¦ ¦ °--')': ) [1/0] {11} - ¦ ¦ ¦ °--')': ) [0/0] {12} - ¦ ¦ °--')': ) [0/0] {13} - ¦ °--'}': } [1/0] {14} - °--expr: { -{ - [2/0] {15} - ¦--'{': { [0/0] {16} - ¦--expr: { - [1/0] {17} - ¦ ¦--'{': { [0/8] {18} - ¦ ¦--expr: call( [1/5] {19} - ¦ ¦ ¦--expr: call [0/0] {21} - ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {20} - ¦ ¦ ¦--'(': ( [0/10] {22} - ¦ ¦ ¦--expr: call1 [1/0] {23} - ¦ ¦ ¦ ¦--expr: call1 [0/0] {25} - ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: call1 [0/0] {24} - ¦ ¦ ¦ ¦--'(': ( [0/0] {26} - ¦ ¦ ¦ ¦--expr: 2 [0/0] {28} - ¦ ¦ ¦ ¦ °--NUM_CONST: 2 [0/0] {27} - ¦ ¦ ¦ ¦--',': , [0/1] {29} - ¦ ¦ ¦ ¦--expr: 3 [0/0] {31} - ¦ ¦ ¦ ¦ °--NUM_CONST: 3 [0/0] {30} - ¦ ¦ ¦ °--')': ) [0/0] {32} - ¦ ¦ ¦--',': , [0/10] {33} - ¦ ¦ ¦--expr: { - [1/1] {34} - ¦ ¦ ¦ ¦--'{': { [0/15] {35} - ¦ ¦ ¦ ¦--expr: sin(c [1/2] {36} - ¦ ¦ ¦ ¦ ¦--expr: sin [0/0] {38} - ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: sin [0/0] {37} - ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {39} - ¦ ¦ ¦ ¦ ¦--expr: cos(p [0/0] {40} - ¦ ¦ ¦ ¦ ¦ ¦--expr: cos [0/0] {42} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL_FUNCTION_CALL: cos [0/0] {41} - ¦ ¦ ¦ ¦ ¦ ¦--'(': ( [0/0] {43} - ¦ ¦ ¦ ¦ ¦ ¦--expr: pi [0/0] {45} - ¦ ¦ ¦ ¦ ¦ ¦ °--SYMBOL: pi [0/0] {44} - ¦ ¦ ¦ ¦ ¦ °--')': ) [0/0] {46} - ¦ ¦ ¦ ¦ °--')': ) [0/0] {47} - ¦ ¦ ¦ °--'}': } [1/0] {48} - ¦ ¦ °--')': ) [0/0] {49} - ¦ °--'}': } [1/0] {50} - °--'}': } [1/0] {51} diff --git a/tests/testthat/unindention/unindent_multi_line-in_tree b/tests/testthat/unindention/unindent_multi_line-in_tree deleted file mode 100644 index d2b2b61a7..000000000 --- a/tests/testthat/unindention/unindent_multi_line-in_tree +++ /dev/null @@ -1,31 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {id}) - ¦--expr: [0/1] {55} - ¦ ¦--expr: [0/0] {3} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: call [0/0] {1} - ¦ ¦--'(': ( [0/2] {2} - ¦ ¦--expr: [1/0] {7} - ¦ ¦ °--SYMBOL: engin [0/0] {5} - ¦ ¦--',': , [0/2] {6} - ¦ ¦--SYMBOL_SUB: xetex [1/1] {11} - ¦ ¦--EQ_SUB: = [0/1] {12} - ¦ ¦--expr: [0/0] {22} - ¦ ¦ ¦--'{': { [0/9] {13} - ¦ ¦ ¦--expr: [1/7] {17} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {15} - ¦ ¦ °--'}': } [1/0] {20} - ¦ ¦--',': , [0/7] {23} - ¦ ¦--SYMBOL_SUB: luate [1/0] {27} - ¦ ¦--EQ_SUB: = [0/1] {28} - ¦ ¦--expr: [0/0] {38} - ¦ ¦ ¦--'{': { [0/7] {29} - ¦ ¦ ¦--expr: [1/7] {33} - ¦ ¦ ¦ °--SYMBOL: x [0/0] {31} - ¦ ¦ °--'}': } [1/0] {36} - ¦ ¦--',': , [0/0] {39} - ¦ ¦--expr: [0/1] {51} - ¦ ¦ ¦--'{': { [0/3] {42} - ¦ ¦ ¦--expr: [1/2] {46} - ¦ ¦ ¦ °--SYMBOL: xx [0/0] {44} - ¦ ¦ °--'}': } [1/0] {49} - ¦ °--')': ) [0/0] {52} - °--COMMENT: # FIX [0/0] {56} diff --git a/tests/testthat/unindention/vec_with_fun-in_tree b/tests/testthat/unindention/vec_with_fun-in_tree deleted file mode 100644 index d34be57bd..000000000 --- a/tests/testthat/unindention/vec_with_fun-in_tree +++ /dev/null @@ -1,18 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: c(a= [0/0] {1} - ¦--expr: c [0/0] {3} - ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {2} - ¦--'(': ( [0/0] {4} - ¦--SYMBOL_SUB: a [0/0] {5} - ¦--EQ_SUB: = [0/1] {6} - ¦--expr: funct [0/0] {7} - ¦ ¦--FUNCTION: funct [0/0] {8} - ¦ ¦--'(': ( [0/0] {9} - ¦ ¦--')': ) [0/1] {10} - ¦ °--expr: { - [0/0] {11} - ¦ ¦--'{': { [0/5] {12} - ¦ ¦--expr: 33 [1/2] {14} - ¦ ¦ °--NUM_CONST: 33 [0/0] {13} - ¦ °--'}': } [1/0] {15} - °--')': ) [0/0] {16} diff --git a/tests/testthat/unindention_regex/random_non_comment_indention-in_tree b/tests/testthat/unindention_regex/random_non_comment_indention-in_tree deleted file mode 100644 index 68bd330dc..000000000 --- a/tests/testthat/unindention_regex/random_non_comment_indention-in_tree +++ /dev/null @@ -1,17 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - °--expr: a <- [0/0] {1} - ¦--expr: a [0/1] {3} - ¦ °--SYMBOL: a [0/0] {2} - ¦--LEFT_ASSIGN: <- [0/1] {4} - °--expr: funct [0/0] {5} - ¦--FUNCTION: funct [0/0] {6} - ¦--'(': ( [0/0] {7} - ¦--')': ) [0/1] {8} - °--expr: { - bb [0/0] {9} - ¦--'{': { [0/1] {10} - ¦--expr: bbx [1/2] {12} - ¦ °--SYMBOL: bbx [0/0] {11} - ¦--expr: x [1/2] {14} - ¦ °--SYMBOL: x [0/0] {13} - °--'}': } [1/0] {15} diff --git a/tests/testthat/unindention_regex/regex_force_no_pattern-in_tree b/tests/testthat/unindention_regex/regex_force_no_pattern-in_tree deleted file mode 100644 index 80aec2371..000000000 --- a/tests/testthat/unindention_regex/regex_force_no_pattern-in_tree +++ /dev/null @@ -1,24 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # _ [0/0] {1} - ¦--COMMENT: # l [1/0] {2} - °--expr: a <- [1/0] {3} - ¦--expr: a [0/1] {5} - ¦ °--SYMBOL: a [0/0] {4} - ¦--LEFT_ASSIGN: <- [0/1] {6} - °--expr: funct [0/0] {7} - ¦--FUNCTION: funct [0/0] {8} - ¦--'(': ( [0/0] {9} - ¦--')': ) [0/1] {10} - °--expr: { - # [0/0] {11} - ¦--'{': { [0/2] {12} - ¦--COMMENT: ### . [1/2] {13} - ¦--COMMENT: ### i [1/2] {14} - ¦--expr: q() [1/2] {15} - ¦ ¦--expr: q [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {16} - ¦ ¦--'(': ( [0/0] {18} - ¦ °--')': ) [0/0] {19} - ¦--COMMENT: ## . [1/2] {20} - ¦--COMMENT: ## s [1/0] {21} - °--'}': } [1/0] {22} diff --git a/tests/testthat/unindention_regex/regex_force_with_pattern-in_tree b/tests/testthat/unindention_regex/regex_force_with_pattern-in_tree deleted file mode 100644 index 66c1cda0a..000000000 --- a/tests/testthat/unindention_regex/regex_force_with_pattern-in_tree +++ /dev/null @@ -1,24 +0,0 @@ -ROOT (token: short_text [lag_newlines/spaces] {pos_id}) - ¦--COMMENT: # _ [0/0] {1} - ¦--COMMENT: # l [1/0] {2} - °--expr: a <- [1/0] {3} - ¦--expr: a [0/1] {5} - ¦ °--SYMBOL: a [0/0] {4} - ¦--LEFT_ASSIGN: <- [0/1] {6} - °--expr: funct [0/0] {7} - ¦--FUNCTION: funct [0/0] {8} - ¦--'(': ( [0/0] {9} - ¦--')': ) [0/1] {10} - °--expr: { - ## [0/0] {11} - ¦--'{': { [0/1] {12} - ¦--COMMENT: ### . [1/5] {13} - ¦--COMMENT: ### i [1/5] {14} - ¦--expr: q() [1/4] {15} - ¦ ¦--expr: q [0/0] {17} - ¦ ¦ °--SYMBOL_FUNCTION_CALL: q [0/0] {16} - ¦ ¦--'(': ( [0/0] {18} - ¦ °--')': ) [0/0] {19} - ¦--COMMENT: ## . [1/2] {20} - ¦--COMMENT: ## s [1/0] {21} - °--'}': } [1/0] {22} From e744159f0016d070b5ccb62bfeb788153a33e370 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 14 May 2024 22:01:26 +0200 Subject: [PATCH 131/238] use only a single transformer --- R/rules-line-breaks.R | 27 +++++++++++-------------- R/style-guides.R | 6 +++--- tests/testthat/test-transformers-drop.R | 5 ++--- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 4d356a32d..8fc492643 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -419,26 +419,23 @@ set_line_break_after_ggplot2_plus <- function(pd) { } -remove_empty_lines_after_opening_braces <- function(pd) { +remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { opening_braces <- c("'('", "'['", "LBB") + closing_braces <- c("')'", "']'") + paren_after <- pd$token %in% opening_braces - if (!any(paren_after)) { - return(pd) + if (any(paren_after)) { + pd$lag_newlines[ + lag(pd$token %in% opening_braces) & pd$lag_newlines > 1L + ] <- 1L } - pd$lag_newlines[ - lag(pd$token %in% opening_braces) & pd$lag_newlines > 1L - ] <- 1L - pd -} -remove_empty_lines_before_closing_braces <- function(pd) { - closing_braces <- c("')'", "']'") paren_before <- pd$token %in% closing_braces - if (!any(paren_before)) { - return(pd) + if (any(paren_before)) { + pd$lag_newlines[ + pd$token %in% closing_braces & pd$lag_newlines > 1L + ] <- 1L } - pd$lag_newlines[ - pd$token %in% closing_braces & pd$lag_newlines > 1L - ] <- 1L + pd } diff --git a/R/style-guides.R b/R/style-guides.R index 2b83ab0c2..1445586ac 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -130,6 +130,8 @@ tidyverse_style <- function(scope = "tokens", line_break_manipulators <- if ("line_breaks" %in% scope) { list( + remove_empty_lines_after_opening_and_before_closing_braces = + remove_empty_lines_after_opening_and_before_closing_braces, set_line_break_around_comma_and_or = set_line_break_around_comma_and_or, set_line_break_after_assignment = set_line_break_after_assignment, set_line_break_before_curly_opening = set_line_break_before_curly_opening, @@ -166,9 +168,7 @@ tidyverse_style <- function(scope = "tokens", add_line_break_after_pipe = if (strict) add_line_break_after_pipe, set_line_break_after_ggplot2_plus = if (strict) { set_line_break_after_ggplot2_plus - }, - remove_empty_lines_after_opening_braces = remove_empty_lines_after_opening_braces, - remove_empty_lines_before_closing_braces = remove_empty_lines_before_closing_braces + } ) } diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index e9709d260..77ccff008 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -71,14 +71,13 @@ test_that("tidyverse transformers are correctly dropped", { t_fun <- transformers_drop("x", t_style) names_line_break <- c( + "remove_empty_lines_after_opening_and_before_closing_braces", "set_line_break_around_comma_and_or", "set_line_break_after_assignment", "set_line_break_after_opening_if_call_is_multi_line", "set_line_break_before_closing_call", "remove_line_break_in_fun_call", - "set_line_break_after_ggplot2_plus", - "remove_empty_lines_after_opening_braces", - "remove_empty_lines_before_closing_braces" + "set_line_break_after_ggplot2_plus" ) expect_setequal(names(t_fun$line_break), names_line_break) From 2a98c4d1b8036b5f737ff61052218f192b3b22a6 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 14 May 2024 22:03:28 +0200 Subject: [PATCH 132/238] Update strict.Rmd --- vignettes/strict.Rmd | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vignettes/strict.Rmd b/vignettes/strict.Rmd index 880a5db10..13ad2509d 100644 --- a/vignettes/strict.Rmd +++ b/vignettes/strict.Rmd @@ -58,12 +58,11 @@ function() 1 ~ more() # comment ``` -- More than one line break is tolerated before closing curly brace and line breaks between curly and round braces are not removed. +- Line breaks between curly and round braces are not removed. ```{styler} test({ 1 - } ) ``` From 8cc390ed97050c6d0e500cf40af76146c6e41471 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 14 May 2024 22:14:04 +0200 Subject: [PATCH 133/238] Use Bootstrap 5 template for pkgdown website --- _pkgdown.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_pkgdown.yaml b/_pkgdown.yaml index 69e6d3d3b..e229ce399 100644 --- a/_pkgdown.yaml +++ b/_pkgdown.yaml @@ -1,6 +1,9 @@ home: strip_header: true +template: + bootstrap: 5 + reference: - title: "Styling API" desc: > From 67f8c5333ab19e48e795f6967b8530987054f52d Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 14 May 2024 22:20:16 +0200 Subject: [PATCH 134/238] Update _pkgdown.yaml --- _pkgdown.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/_pkgdown.yaml b/_pkgdown.yaml index e229ce399..1755bc830 100644 --- a/_pkgdown.yaml +++ b/_pkgdown.yaml @@ -1,9 +1,6 @@ home: strip_header: true -template: - bootstrap: 5 - reference: - title: "Styling API" desc: > @@ -45,11 +42,9 @@ reference: - print.vertical template: + bootstrap: 5 params: bootswatch: flatly # https://bootswatch.com/flatly/ - docsearch: - api_key: 13580d327d8a7159f83a7cff178d2141 - index_name: r-lib_styler authors: Kirill Müller: From 077ca45f2bd32118fdd74d45ebdc338867be2516 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 14 May 2024 22:24:51 +0200 Subject: [PATCH 135/238] Update spelling wordlist via `spelling::update_wordlist()` --- DESCRIPTION | 1 + inst/WORDLIST | 168 ++++++------------------------- vignettes/customizing_styler.Rmd | 2 +- 3 files changed, 34 insertions(+), 137 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1015146f4..5c1cd3138 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -53,6 +53,7 @@ Roxygen: list(markdown = TRUE, roclets = c( "rd", "namespace", "collate", warning("Please install r-lib/pkgapi to make sure the file API is kept up to date"); NULL})) RoxygenNote: 7.3.1 +Language: en-US Config/testthat/edition: 3 Config/testthat/parallel: true Collate: diff --git a/inst/WORDLIST b/inst/WORDLIST index 23a970246..0699d470b 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,245 +1,141 @@ +AST Addin +Addins +AppVeyor +CMD +DSLs +EOF +EOL +EOLs +EQ +Freepik +Gayathri +Github +Invasiveness +JamesIves +Jupyterlab +LF +Lifecycle +ORCID +README +RMarkdown +RStudio +Rmarkdown +Rmd +Rnw +Robinlovelace +Roxygen +Shallowify +StackOverflow +Tidyverse +Unindent +Visit'em +YAML addin addins -api -AppVeyor arg -args -AST -aut -backport backports bdr benchmarking -bootswatch -BugReports -bXj cancelling -cff ci cli -CMD -codebase -codecov codegrip coercible coercions -compat config -Config counterpair -coventions -cpp -cre -ctb -cyclocomp -cynkra dec dependabot -desc -devtools dir -dirs -docsearch dont dontrun dontshow donttest dplyr -DSLs emacs -EOF -EOL -EOLs -EQ examplesIf -expr -eZm fansi -Fi filetype -Fjmav flaticon forcond formatter -Freepik gadenbuie -Gayathri -getOption ggplot github -Github -gitsum -gmail grkstyle -GSOC helpfiles -href https -icloud ifelse -Indrajeet infinitively -initializer inode integrations -interaces internal's invasiveness -Invasiveness io ixmypi -JamesIves -JBP -Jupyterlab -kirill -Kirill knitr -krlmlr -labelled learnr -LF lifecycle -linter -linters lintr -lorenz lorenzwalthert -macOS magrittr -mav md -MERCHANTABILITY mlr mlr's -mutli -Müller -navbar -nbv -netlify nocomments -NONINFRINGEMENT -nonportable -nzchar -ocx oneliner -ORCID -ourself -packrat pandoc -params parsable -parsesum -Patil -patilindrajeet patilindrajeets -pdy -PGW pkgapi pkgconfig pkgdown pos pre precommit -prefill prettycode priori -PRs -purrr -qez qmd -Qmd -RcppExports readme -README rebased -reindent reindented reindention -relevel -renv repo reprex -revdepcheck rlang rlang's rmarkdown -Rmarkdown -RMarkdown rmd -Rmd rnw -Rnw roadmap -Robinlovelace -roclet -roclets ropensci -roxgen roxygen -Roxygen -RoxygenNote rplumber rprofile -Rprofile -rprojroot -RStudio -RStudio's -rstudioapi -saamwerk -Sd semicoloner -Shallowify sharding spaceout -StackOverflow -styler stylerignore stylerignored -sublicense -summarises testthat -tg -th tibble tibbles -tidyr tidyverse -todo travis -ubuntu -Uf -ui uncached unexplainable unicode unindent -Unindent unindention unlink unnest utf vctrs vec -Vh -VignetteBuilder -Visit'em -walthert -Walthert -winbuilder withr -WN -www xaringan xfun -Xie -xk -XN yaml -YAML yihui -Yihui -yl -YPa -zm zzz diff --git a/vignettes/customizing_styler.Rmd b/vignettes/customizing_styler.Rmd index 7742b9e18..7c31c9a27 100644 --- a/vignettes/customizing_styler.Rmd +++ b/vignettes/customizing_styler.Rmd @@ -44,7 +44,7 @@ We note that there are different types of transformer functions. `initialize` in tidyverse_style()$space$remove_space_after_opening_paren ``` -As the name says, this function removes spaces after the opening parenthesis. But how? Its input is a *nest*. Since the visitor will go through all levels of nesting, we just need a function that can be applied to a *nest*, that is, to a parse table at one level of nesting. We can compute the nested parse table and look at one of the levels of nesting that is interesting for us (more on the data structure in the vignettes "Data structures" and "Manipulating the parse table"): +As the name says, this function removes spaces after the opening parenthesis. But how? Its input is a *nest*. Since the visitor will go through all levels of nesting, we just need a function that can be applied to a *nest*, that is, to a parse table at one level of nesting. We can compute the nested parse table and look at one of the levels of nesting that is interesting for us: ```{r} string_to_format <- "call( 3)" From 0c4a0b6ef5910447e3b48ee4f11e4ab013c68175 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 14 May 2024 20:29:27 +0000 Subject: [PATCH 136/238] pre-commit --- inst/WORDLIST | 166 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 134 insertions(+), 32 deletions(-) diff --git a/inst/WORDLIST b/inst/WORDLIST index 0699d470b..66f2882fe 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,131 +1,218 @@ -AST Addin -Addins -AppVeyor -CMD -DSLs -EOF -EOL -EOLs -EQ -Freepik -Gayathri -Github -Invasiveness -JamesIves -Jupyterlab -LF -Lifecycle -ORCID -README -RMarkdown -RStudio -Rmarkdown -Rmd -Rnw -Robinlovelace -Roxygen -Shallowify -StackOverflow -Tidyverse -Unindent -Visit'em -YAML addin +Addins addins +api +AppVeyor arg +AST +aut +backport backports bdr benchmarking +bootswatch +BugReports +bXj cancelling +cff ci cli +CMD +codebase codegrip coercible coercions +compat config counterpair +coventions +cpp +cre +ctb +cyclocomp +cynkra dec dependabot +desc +devtools dir +docsearch dont dontrun dontshow donttest dplyr +DSLs emacs +EOF +EOL +EOLs +EQ examplesIf +expr +eZm fansi +Fi filetype +Fjmav flaticon forcond formatter +Freepik gadenbuie +Gayathri +getOption ggplot +Github github +gitsum +gmail grkstyle +GSOC helpfiles +href https +icloud ifelse +Indrajeet infinitively +initializer inode integrations +interaces internal's +Invasiveness invasiveness io ixmypi +JamesIves +JBP +Jupyterlab +kirill +Kirill knitr +krlmlr +labelled learnr +LF +Lifecycle lifecycle +linter +linters lintr +lorenz lorenzwalthert +macOS magrittr +mav md +MERCHANTABILITY mlr mlr's +mutli +Müller +navbar +nbv +netlify nocomments +NONINFRINGEMENT +nonportable +nzchar +ocx oneliner +ORCID +ourself +packrat pandoc +params parsable +parsesum +Patil +patilindrajeet patilindrajeets +pdy +PGW pkgapi pkgconfig pkgdown pos pre precommit +prefill prettycode priori +PRs +purrr +qez qmd +RcppExports +README readme rebased +reindent reindented reindention +relevel +renv repo reprex +revdepcheck rlang rlang's +RMarkdown +Rmarkdown rmarkdown +Rmd rmd +Rnw rnw roadmap +Robinlovelace +roclet +roclets ropensci +roxgen +Roxygen roxygen +RoxygenNote rplumber rprofile +rprojroot +RStudio +RStudio's +rstudioapi +saamwerk +Sd semicoloner +Shallowify sharding spaceout +StackOverflow +styler stylerignore stylerignored +stylers +Stylers +sublicense +summarises testthat +tg +th tibble tibbles +tidyr +Tidyverse tidyverse +todo travis +ubuntu +Uf +ui uncached unexplainable unicode +Unindent unindent unindention unlink @@ -133,9 +220,24 @@ unnest utf vctrs vec +Vh +VignetteBuilder +Visit'em +walthert +Walthert +winbuilder withr +WN +www xaringan xfun +Xie +xk +XN +YAML yaml yihui +yl +YPa +zm zzz From dd0598145f17cf3a76eba38c1ccac8558eb8f1e5 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 14 May 2024 22:37:25 +0200 Subject: [PATCH 137/238] correct actual spelling mistakes --- CONTRIBUTING.md | 2 +- R/utils-cache.R | 2 +- inst/WORDLIST | 2 -- man/cache_make_key.Rd | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9759dc00..665875467 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -98,7 +98,7 @@ The source code is organized as follows: | token-create.R | Utilities for creating tokens, mostly to insert braces around mutli-line if statements. | | token-define.R | Defines which tokens belong to which group. | | transform-code.R, transform-files.R | Transformation of code for APIs that manipulate files (e.g. `style_file()`). | -| ui.R | User interaces. Top-level functions for styling. | +| ui.R | User interfaces. Top-level functions for styling. | | unindent.R | Certain tokens cause unindention, e.g. closing braces. | | utils.R | low-level general purpose utilities. | | vertical.R | S3 class for pretty printing of styled code. | diff --git a/R/utils-cache.R b/R/utils-cache.R index ce255587e..fdbc2cbe2 100644 --- a/R/utils-cache.R +++ b/R/utils-cache.R @@ -54,7 +54,7 @@ is_cached <- function(text, #' a new cache. #' * transformers. Cannot easily hash them because two environments won't be #' identical even if they contain the same objects (see 'Experiments'). Simple -#' `as.character(transformers)` will not consider infinitively recursive +#' `as.character(transformers)` will not consider infinitely recursive #' code dependencies. #' To fix this, transformers must have names and version number as described #' in [create_style_guide()]. Now, the only way to fool the cache invalidation diff --git a/inst/WORDLIST b/inst/WORDLIST index 66f2882fe..36b75233f 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -76,11 +76,9 @@ https icloud ifelse Indrajeet -infinitively initializer inode integrations -interaces internal's Invasiveness invasiveness diff --git a/man/cache_make_key.Rd b/man/cache_make_key.Rd index ec1cdb9d8..b7468fcb3 100644 --- a/man/cache_make_key.Rd +++ b/man/cache_make_key.Rd @@ -29,7 +29,7 @@ We need to compare: a new cache. \item transformers. Cannot easily hash them because two environments won't be identical even if they contain the same objects (see 'Experiments'). Simple -\code{as.character(transformers)} will not consider infinitively recursive +\code{as.character(transformers)} will not consider infinitely recursive code dependencies. To fix this, transformers must have names and version number as described in \code{\link[=create_style_guide]{create_style_guide()}}. Now, the only way to fool the cache invalidation From 4b1201072d150a5cabed0a7ebf099dbd58f472bd Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 20:22:07 +0200 Subject: [PATCH 138/238] add a test that mixes LBB with ( --- .../square_brackets_double_line_break-in.R | 14 ++++-- .../square_brackets_double_line_break-in_tree | 44 +++++++++++-------- .../square_brackets_double_line_break-out.R | 10 +++-- 3 files changed, 41 insertions(+), 27 deletions(-) diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R index 6eb852298..322d25bf5 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R +++ b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in.R @@ -26,14 +26,20 @@ a[[ 2 + ]] + a[[ - 2 -]] + # this comment shouldn't mess + 1, c( + + 1, 2 + + # neither should this one + + ) -a[[ - 2 ]] diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree index 82ce65dce..f2de64d54 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree +++ b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-in_tree @@ -52,24 +52,30 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ ¦--LBB: [[ [0/2] {45} ¦ ¦--expr: 2 [2/0] {47} ¦ ¦ °--NUM_CONST: 2 [0/0] {46} - ¦ ¦--']': ] [2/0] {48} + ¦ ¦--']': ] [3/0] {48} ¦ °--']': ] [0/0] {49} - ¦--expr: a[[ - - [2/0] {50} - ¦ ¦--expr: a [0/0] {52} - ¦ ¦ °--SYMBOL: a [0/0] {51} - ¦ ¦--LBB: [[ [0/2] {53} - ¦ ¦--expr: 2 [2/0] {55} - ¦ ¦ °--NUM_CONST: 2 [0/0] {54} - ¦ ¦--']': ] [1/0] {56} - ¦ °--']': ] [0/0] {57} °--expr: a[[ - [2/0] {58} - ¦--expr: a [0/0] {60} - ¦ °--SYMBOL: a [0/0] {59} - ¦--LBB: [[ [0/2] {61} - ¦--expr: 2 [1/0] {63} - ¦ °--NUM_CONST: 2 [0/0] {62} - ¦--']': ] [2/0] {64} - °--']': ] [0/0] {65} + + [3/0] {50} + ¦--expr: a [0/0] {52} + ¦ °--SYMBOL: a [0/0] {51} + ¦--LBB: [[ [0/2] {53} + ¦--COMMENT: # thi [2/2] {54} + ¦--expr: 1 [1/0] {56} + ¦ °--NUM_CONST: 1 [0/0] {55} + ¦--',': , [0/1] {57} + ¦--expr: c( + + [0/0] {58} + ¦ ¦--expr: c [0/0] {60} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {59} + ¦ ¦--'(': ( [0/4] {61} + ¦ ¦--expr: 1 [2/0] {63} + ¦ ¦ °--NUM_CONST: 1 [0/0] {62} + ¦ ¦--',': , [0/1] {64} + ¦ ¦--expr: 2 [0/4] {66} + ¦ ¦ °--NUM_CONST: 2 [0/0] {65} + ¦ ¦--COMMENT: # nei [2/4] {67} + ¦ °--')': ) [2/0] {68} + ¦--']': ] [3/0] {69} + °--']': ] [0/0] {70} diff --git a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R index a6a371f93..378cb936b 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R +++ b/tests/testthat/indention_square_brackets/square_brackets_double_line_break-out.R @@ -26,10 +26,12 @@ a[[ 2 ]] -a[[ - 2 -]] a[[ - 2 + # this comment shouldn't mess + 1, c( + 1, 2 + + # neither should this one + ) ]] From 0a1c8b6c72409a07ea3cf2db5d26d87d623eb88c Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 20:24:57 +0200 Subject: [PATCH 139/238] also add test for mixing `[ `and `(` --- .../square_brackets_line_break-in.R | 16 ++++--- .../square_brackets_line_break-in_tree | 47 ++++++++++--------- .../square_brackets_line_break-out.R | 12 ++--- 3 files changed, 40 insertions(+), 35 deletions(-) diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R b/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R index bb0f3aca6..4d42c1ec0 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-in.R @@ -63,21 +63,25 @@ x[ ] + x[ a, b -] -x[ - a, - b ] x[ - a, - b + # this comment shouldn't be an issue + 1, c( + + 1, 2 + + # neither should this one + + ) + ] diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree index 3ab82d3d9..96fcabd2c 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-in_tree @@ -320,7 +320,7 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ °--']': ] [3/0] {313} ¦--expr: x[ - [2/0] {314} + [3/0] {314} ¦ ¦--expr: x [0/0] {316} ¦ ¦ °--SYMBOL: x [0/0] {315} ¦ ¦--'[': [ [0/2] {317} @@ -329,27 +329,28 @@ ROOT (token: short_text [lag_newlines/spaces] {pos_id}) ¦ ¦--',': , [0/2] {320} ¦ ¦--expr: b [1/0] {322} ¦ ¦ °--SYMBOL: b [0/0] {321} - ¦ °--']': ] [1/0] {323} - ¦--expr: x[ - [2/0] {324} - ¦ ¦--expr: x [0/0] {326} - ¦ ¦ °--SYMBOL: x [0/0] {325} - ¦ ¦--'[': [ [0/2] {327} - ¦ ¦--expr: a [1/0] {329} - ¦ ¦ °--SYMBOL: a [0/0] {328} - ¦ ¦--',': , [0/2] {330} - ¦ ¦--expr: b [1/0] {332} - ¦ ¦ °--SYMBOL: b [0/0] {331} - ¦ °--']': ] [2/0] {333} + ¦ °--']': ] [3/0] {323} °--expr: x[ - [2/0] {334} - ¦--expr: x [0/0] {336} - ¦ °--SYMBOL: x [0/0] {335} - ¦--'[': [ [0/2] {337} - ¦--expr: a [2/0] {339} - ¦ °--SYMBOL: a [0/0] {338} - ¦--',': , [0/2] {340} - ¦--expr: b [1/0] {342} - ¦ °--SYMBOL: b [0/0] {341} - °--']': ] [2/0] {343} + [2/0] {324} + ¦--expr: x [0/0] {326} + ¦ °--SYMBOL: x [0/0] {325} + ¦--'[': [ [0/2] {327} + ¦--COMMENT: # thi [2/2] {328} + ¦--expr: 1 [1/0] {330} + ¦ °--NUM_CONST: 1 [0/0] {329} + ¦--',': , [0/1] {331} + ¦--expr: c( + + [0/0] {332} + ¦ ¦--expr: c [0/0] {334} + ¦ ¦ °--SYMBOL_FUNCTION_CALL: c [0/0] {333} + ¦ ¦--'(': ( [0/2] {335} + ¦ ¦--expr: 1 [2/0] {337} + ¦ ¦ °--NUM_CONST: 1 [0/0] {336} + ¦ ¦--',': , [0/1] {338} + ¦ ¦--expr: 2 [0/2] {340} + ¦ ¦ °--NUM_CONST: 2 [0/0] {339} + ¦ ¦--COMMENT: # nei [2/2] {341} + ¦ °--')': ) [2/0] {342} + °--']': ] [3/0] {343} diff --git a/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R b/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R index a6534d45a..f888e3398 100644 --- a/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R +++ b/tests/testthat/indention_square_brackets/square_brackets_line_break-out.R @@ -60,10 +60,6 @@ x[ # or below shouldn't be an issue ] -x[ - a, - b -] x[ a, @@ -71,6 +67,10 @@ x[ ] x[ - a, - b + # this comment shouldn't be an issue + 1, c( + 1, 2 + + # neither should this one + ) ] From 8c93aaf98f8b31f026fd7148947bc22ea8b914f5 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 20:57:08 +0200 Subject: [PATCH 140/238] Update pre-commit.yaml --- .github/workflows/pre-commit.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index a47455f05..d9052ab1d 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -24,11 +24,6 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Install system dependencies - if: runner.os == 'Linux' - run: | - # your system installation code here - # sudo apt-get install -y libcurl4-openssl-dev - name: Set up Python uses: actions/setup-python@v5 with: @@ -36,7 +31,7 @@ jobs: architecture: "x64" - name: Run pre-commit uses: pre-commit/action@v3.0.1 - env: + env: SKIP: pkgdown - name: Commit files if: failure() && startsWith(github.ref, 'refs/heads') From 671f3f41aa0189e6eae6f128c91605d92175c65a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 20:59:34 +0200 Subject: [PATCH 141/238] Update pre-commit.yaml --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index d9052ab1d..571edd9c7 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -27,7 +27,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.9" + python-version: "3.12" architecture: "x64" - name: Run pre-commit uses: pre-commit/action@v3.0.1 From b480577fab04580022017ebd9247c7e11f367dcd Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 21:04:21 +0200 Subject: [PATCH 142/238] Revert "Update pre-commit.yaml" This reverts commit 671f3f41aa0189e6eae6f128c91605d92175c65a. --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 571edd9c7..d9052ab1d 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -27,7 +27,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.9" architecture: "x64" - name: Run pre-commit uses: pre-commit/action@v3.0.1 From 18bae504e18908dd29e0bbd23546cf5b3f3c4890 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 21:30:28 +0200 Subject: [PATCH 143/238] Update pre-commit.yaml --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index d9052ab1d..690143359 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v5.1.0 with: python-version: "3.9" architecture: "x64" From 64a422fd1f5316ab60812d96a11695af38761b6a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 21:43:02 +0200 Subject: [PATCH 144/238] Remove unused testing helper: `generate_test_samples()` --- R/testing.R | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/R/testing.R b/R/testing.R index f2c8ffe6b..76bed0416 100644 --- a/R/testing.R +++ b/R/testing.R @@ -269,48 +269,6 @@ n_times_faster_bench <- function(i, x1, x2, fun, ..., n, clear) { ) } - -#' Generate a comprehensive collection test cases for comment / insertion -#' interaction -#' Test consist of if / if-else / if-else-if-else cases, paired with various -#' line-break and comment configurations. Used for internal testing. -#' @return -#' The function is called for its side effects, i.e. to write the -#' test cases to *-in.R files that can be tested with [test_collection()]. Note -#' that a few of the test cases are invalid and need to be removed / commented -#' out manually. -#' @keywords internal -generate_test_samples <- function() { - gen <- function(x) { - if (length(x) == 0L) { - "" - } else { - c( - paste0(x[1L], gen(x[-1L])), - paste0(x[1L], " # comment\n", paste(x[-1L], collapse = "")) - ) - } - } - - collapse <- function(x) paste(x, collapse = "\n\n") - - cat( - collapse(gen(c("if", "(", "TRUE", ")", "NULL"))), - file = "tests/testthat/insertion_comment_interaction/just_if-in.R" - ) - cat( - collapse(gen(c("if", "(", "TRUE", ")", "NULL", " else", " NULL"))), - file = "tests/testthat/insertion_comment_interaction/if_else-in.R" - ) - cat( - collapse(gen(c( - "if", "(", "TRUE", ")", "NULL", " else", " if", "(", "FALSE", ")", "NULL", - " else", " NULL" - ))), - file = "tests/testthat/insertion_comment_interaction/if_else_if_else-in.R" - ) -} - #' @include ui-caching.R clear_testthat_cache <- purrr::partial(cache_clear, "testthat", ask = FALSE) activate_testthat_cache <- purrr::partial(cache_activate, "testthat") From 156b6d06f29df649e097a9048ecbd423951c8159 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Wed, 15 May 2024 21:46:23 +0200 Subject: [PATCH 145/238] Delete generate_test_samples.Rd --- man/generate_test_samples.Rd | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 man/generate_test_samples.Rd diff --git a/man/generate_test_samples.Rd b/man/generate_test_samples.Rd deleted file mode 100644 index 40177fc80..000000000 --- a/man/generate_test_samples.Rd +++ /dev/null @@ -1,24 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/testing.R -\name{generate_test_samples} -\alias{generate_test_samples} -\title{Generate a comprehensive collection test cases for comment / insertion -interaction -Test consist of if / if-else / if-else-if-else cases, paired with various -line-break and comment configurations. Used for internal testing.} -\usage{ -generate_test_samples() -} -\value{ -The function is called for its side effects, i.e. to write the -test cases to *-in.R files that can be tested with \code{\link[=test_collection]{test_collection()}}. Note -that a few of the test cases are invalid and need to be removed / commented -out manually. -} -\description{ -Generate a comprehensive collection test cases for comment / insertion -interaction -Test consist of if / if-else / if-else-if-else cases, paired with various -line-break and comment configurations. Used for internal testing. -} -\keyword{internal} From d764e7832ea650674a0044c460612cf18cbade65 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sun, 19 May 2024 17:09:34 +0200 Subject: [PATCH 146/238] Remove unused internal utility: `calls_sys()` --- R/utils.R | 16 ---------------- man/calls_sys.Rd | 18 ------------------ 2 files changed, 34 deletions(-) delete mode 100644 man/calls_sys.Rd diff --git a/R/utils.R b/R/utils.R index 6602efd75..972e22286 100644 --- a/R/utils.R +++ b/R/utils.R @@ -93,22 +93,6 @@ is_windows <- function() { identical(.Platform$OS.type, "windows") } -#' Invoke a system command -#' -#' Wraps a system command into [shell()] or [system()], depending on the -#' operating system. -#' @param sys_call The call to be executed. -#' @param ... Arguments passed to [shell()] or [system()]. -#' @keywords internal -calls_sys <- function(sys_call, ...) { - if (is_windows()) { - error <- shell(sys_call, ...) - } else { - error <- system(sys_call, ...) - } - error -} - #' Get the value of an option #' #' Basically a `getOptions()` that fails fast by default. diff --git a/man/calls_sys.Rd b/man/calls_sys.Rd deleted file mode 100644 index 14899a3dc..000000000 --- a/man/calls_sys.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/utils.R -\name{calls_sys} -\alias{calls_sys} -\title{Invoke a system command} -\usage{ -calls_sys(sys_call, ...) -} -\arguments{ -\item{sys_call}{The call to be executed.} - -\item{...}{Arguments passed to \code{\link[=shell]{shell()}} or \code{\link[=system]{system()}}.} -} -\description{ -Wraps a system command into \code{\link[=shell]{shell()}} or \code{\link[=system]{system()}}, depending on the -operating system. -} -\keyword{internal} From e53df77f1f4e5eaa33bc02aa754f5b22c5d244a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 03:36:34 +0000 Subject: [PATCH 147/238] Bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.0...v4.6.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 9e29ea59f..dad368915 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.6.0 + uses: JamesIves/github-pages-deploy-action@v4.6.1 with: clean: false branch: gh-pages From cb6f54401e6ad741749af0ed95f6e722b2abd622 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 23 May 2024 18:18:55 +0200 Subject: [PATCH 148/238] Use stable version of `{purrrr}` --- DESCRIPTION | 2 +- R/compat-dplyr.R | 6 ------ R/visit.R | 5 +++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1015146f4..eff06662c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,7 +27,7 @@ Depends: Imports: cli (>= 3.1.1), magrittr (>= 2.0.0), - purrr (>= 0.2.3), + purrr (>= 1.0.2), R.cache (>= 0.15.0), rlang (>= 1.0.0), rprojroot (>= 1.1), diff --git a/R/compat-dplyr.R b/R/compat-dplyr.R index 340810003..00b08610b 100644 --- a/R/compat-dplyr.R +++ b/R/compat-dplyr.R @@ -51,9 +51,3 @@ left_join <- function(x, y, by) { last <- function(x) { x[[length(x)]] } - -map_dfr <- function(.x, .f, ...) { - .f <- purrr::as_mapper(.f, ...) - res <- map(.x, .f, ...) - vec_rbind(!!!res) -} diff --git a/R/visit.R b/R/visit.R index 1d048bbfa..6fd0d5a97 100644 --- a/R/visit.R +++ b/R/visit.R @@ -233,10 +233,11 @@ enrich_terminals <- function(flattened_pd, use_raw_indention = FALSE) { groups <- flattened_pd$line1 split_pd <- vec_split(flattened_pd, groups)[[2L]] flattened_pd <- split_pd %>% - map_dfr(function(.x) { + purrr::map(function(.x) { .x$col2 <- cumsum(.x$nchar + .x$lag_spaces) .x - }) + }) %>% + purrr::list_rbind() flattened_pd$col1 <- flattened_pd$col2 - flattened_pd$nchar flattened_pd } From 9e9d8eca8ffcafdb9441574b873d5f093be55837 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 23 May 2024 18:23:48 +0200 Subject: [PATCH 149/238] remove unused `arrange()` --- R/compat-dplyr.R | 6 ------ 1 file changed, 6 deletions(-) diff --git a/R/compat-dplyr.R b/R/compat-dplyr.R index 00b08610b..1d8d6623e 100644 --- a/R/compat-dplyr.R +++ b/R/compat-dplyr.R @@ -10,12 +10,6 @@ lead <- function(x, n = 1L, default = NA) { c(x[-seq_len(n)], rep(default, n)) } - -arrange <- function(.data, ...) { - ord <- eval(substitute(order(...)), .data, parent.frame()) - vec_slice(.data, ord) -} - arrange_pos_id <- function(data) { pos_id <- data$pos_id if (is.unsorted(pos_id)) { From 9849bcf763db8c43b668bf67d49e8f4ce9db4464 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 24 May 2024 10:12:12 +0200 Subject: [PATCH 150/238] also include website in pkgdown footer --- _pkgdown.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_pkgdown.yaml b/_pkgdown.yaml index 69e6d3d3b..dc421d5a9 100644 --- a/_pkgdown.yaml +++ b/_pkgdown.yaml @@ -53,6 +53,8 @@ authors: href: https://krlmlr.info Lorenz Walthert: href: https://lorenzwalthert.com + Indrajeet Patil: + href: https://sites.google.com/site/indrajeetspatilmorality/ development: mode: auto From 9b46ad8652c84804a4012910618f7d692b9dd489 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 24 May 2024 08:16:32 +0000 Subject: [PATCH 151/238] pre-commit --- inst/WORDLIST | 1 + 1 file changed, 1 insertion(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index 36b75233f..3b67a1317 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -76,6 +76,7 @@ https icloud ifelse Indrajeet +indrajeetspatilmorality initializer inode integrations From a09c46737a01e4936c788e2b3f6c99ad95b83331 Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Thu, 13 Jun 2024 12:45:36 -0400 Subject: [PATCH 152/238] Refactor `parse_safely for a better stack trace --- R/parse.R | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/R/parse.R b/R/parse.R index 3af0146bc..723c8e2b8 100644 --- a/R/parse.R +++ b/R/parse.R @@ -17,23 +17,24 @@ parse_safely <- function(text, ...) { tried_parsing <- rlang::try_fetch( parse(text = text, ...), - error = function(e) e, - warning = function(w) w - ) - if (inherits(tried_parsing, "error")) { - if (has_crlf_as_first_line_sep(tried_parsing$message, text)) { - abort(paste0( - "The code to style seems to use Windows style line endings (CRLF). ", - "styler currently only supports Unix style line endings (LF). ", - "Please change the EOL character in your editor to Unix style and try ", - "again.\nThe parsing error was:\n", tried_parsing$message - )) - } else { - abort(tried_parsing$message) + error = function(e) { + if (has_crlf_as_first_line_sep(e$message, text)) { + msg <- c( + "x" = "The code to style seems to use Windows style line endings (CRLF).", + "!" = "styler currently only supports Unix style line endings (LF). ", + "i" = "Please change the EOL character in your editor to Unix style + and try again." + ) + } else { + msg <- c("x" = "Styling failed") + } + cli::cli_abort(msg, parent = e, call = NULL) + }, + warning = function(w) { + cli::cli_warn(w$message) + w } - } else if (inherits(tried_parsing, "warning")) { - warn(tried_parsing$message) - } + ) tried_parsing } From 6832a8e8c63ba08f5a58f7864a8a6afea845c6ad Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Thu, 13 Jun 2024 13:13:16 -0400 Subject: [PATCH 153/238] Use `withCallingHandlers()` for performance --- R/parse.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/parse.R b/R/parse.R index 723c8e2b8..c71b489a4 100644 --- a/R/parse.R +++ b/R/parse.R @@ -15,7 +15,7 @@ #' #' styler:::parse_safely("a + 3 -4 -> \n glück + 1") parse_safely <- function(text, ...) { - tried_parsing <- rlang::try_fetch( + tried_parsing <- withCallingHandlers( parse(text = text, ...), error = function(e) { if (has_crlf_as_first_line_sep(e$message, text)) { From e4388a13c8cace2892a1df5afb828e39b2d26213 Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Thu, 13 Jun 2024 13:13:34 -0400 Subject: [PATCH 154/238] Add a clickable link to path when warning. --- R/io.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/io.R b/R/io.R index fdb4260fb..a0d8c2168 100644 --- a/R/io.R +++ b/R/io.R @@ -54,7 +54,11 @@ transform_utf8_one <- function(path, fun, dry) { if (inherits(e, "dryError")) { rlang::abort(conditionMessage(e)) } - warn(paste0("When processing ", path, ": ", conditionMessage(e))) + show_path <- cli::style_hyperlink( + cli::col_blue(basename(path)), + paste0("file://", path) + ) + cli::cli_warn("When processing {show_path}:", parent = e) NA } ) From 90717a88b93a68e4d3ec834c0ede85a84f8a08c0 Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Thu, 13 Jun 2024 13:13:45 -0400 Subject: [PATCH 155/238] Fix typo --- R/testing.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/testing.R b/R/testing.R index 5495d3580..bce9f8b3c 100644 --- a/R/testing.R +++ b/R/testing.R @@ -117,7 +117,7 @@ transform_and_check <- function(in_item, out_item, unclass() if (!file.exists(out_item)) { warn(paste( - "File", out_item, "does not exist. Creating it from transormation." + "File", out_item, "does not exist. Creating it from transformation." )) file.create(out_item) } From c6944ab9c4bbb89129965119451f0aba3d6bc379 Mon Sep 17 00:00:00 2001 From: Olivier Roy Date: Thu, 13 Jun 2024 13:24:47 -0400 Subject: [PATCH 156/238] try it this way for precommit --- R/parse.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/parse.R b/R/parse.R index c71b489a4..d4bacd1c4 100644 --- a/R/parse.R +++ b/R/parse.R @@ -20,13 +20,13 @@ parse_safely <- function(text, ...) { error = function(e) { if (has_crlf_as_first_line_sep(e$message, text)) { msg <- c( - "x" = "The code to style seems to use Windows style line endings (CRLF).", - "!" = "styler currently only supports Unix style line endings (LF). ", - "i" = "Please change the EOL character in your editor to Unix style + x = "The code to style seems to use Windows style line endings (CRLF).", + `!` = "styler currently only supports Unix style line endings (LF). ", + i = "Please change the EOL character in your editor to Unix style and try again." ) } else { - msg <- c("x" = "Styling failed") + msg <- c(x = "Styling failed") } cli::cli_abort(msg, parent = e, call = NULL) }, From 434cbc5798680f127fbb191e6e91f046617a57bc Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 15 Jun 2024 06:59:18 +0200 Subject: [PATCH 157/238] Turn off `strings_as_factors_linter()` Since we rely on >= R 4.0 now. --- .lintr | 1 + R/token-define.R | 3 +-- R/ui-caching.R | 3 +-- R/utils.R | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.lintr b/.lintr index 9fd7b119c..726a8b596 100644 --- a/.lintr +++ b/.lintr @@ -14,6 +14,7 @@ linters: all_linters( todo_comment_linter = NULL, nonportable_path_linter = NULL, string_boundary_linter = NULL, + strings_as_factors_linter = NULL, # since we use R >= 4.0 undesirable_function_linter = NULL, undesirable_operator_linter = NULL ) diff --git a/R/token-define.R b/R/token-define.R index 0954bcb80..64813fa1d 100644 --- a/R/token-define.R +++ b/R/token-define.R @@ -23,8 +23,7 @@ token <- rbind.data.frame( c("if", "cond", "IF"), c("else", "cond", "ELSE"), c("in", "loop_cond", "IN"), - c("while", "loop_cond", "WHILE"), - stringsAsFactors = FALSE + c("while", "loop_cond", "WHILE") ) # styler: on diff --git a/R/ui-caching.R b/R/ui-caching.R index 1ab58e1c4..6713569e5 100644 --- a/R/ui-caching.R +++ b/R/ui-caching.R @@ -104,8 +104,7 @@ cache_info <- function(cache_name = NULL, format = "both") { last_modified = suppressWarnings(max(file_info$mtime)), created = file.info(path_cache)$ctime, location = path_cache, - activated = cache_is_activated(cache_name), - stringsAsFactors = FALSE + activated = cache_is_activated(cache_name) ) if (any(c("lucid", "both") == format)) { diff --git a/R/utils.R b/R/utils.R index 972e22286..4329915e0 100644 --- a/R/utils.R +++ b/R/utils.R @@ -44,7 +44,7 @@ re_match <- function(text, pattern) { end <- start + length - 1L matchstr <- substring(text, start, end) matchstr[start == -1L] <- NA_character_ - res <- data.frame(stringsAsFactors = FALSE, .text = text, .match = matchstr) + res <- data.frame(.text = text, .match = matchstr) gstart <- attr(match, "capture.start") glength <- attr(match, "capture.length") @@ -52,7 +52,7 @@ re_match <- function(text, pattern) { groupstr <- substring(text, gstart, gend) groupstr[gstart == -1L] <- NA_character_ dim(groupstr) <- dim(gstart) - res <- cbind(groupstr, res, stringsAsFactors = FALSE) + res <- cbind(groupstr, res) names(res) <- c(attr(match, "capture.names"), ".text", ".match") res From e19bc2ca47ed20f2add2686e14959d9a08abdf82 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 29 Jun 2024 14:55:45 +0200 Subject: [PATCH 158/238] Check examples with stricter settings --- .github/workflows/check-all-examples.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-all-examples.yaml b/.github/workflows/check-all-examples.yaml index 36415fc90..d1f1507f0 100644 --- a/.github/workflows/check-all-examples.yaml +++ b/.github/workflows/check-all-examples.yaml @@ -37,6 +37,12 @@ jobs: - name: Run examples run: | - options(crayon.enabled = TRUE) + options( + crayon.enabled = TRUE, + warn = 2L, + warnPartialMatchArgs = TRUE, + warnPartialMatchAttr = TRUE, + warnPartialMatchDollar = TRUE + ) devtools::run_examples(fresh = TRUE, run_dontrun = TRUE, run_donttest = TRUE) shell: Rscript {0} From 27a07d52ea23ec4b7698efd678c50aa1c9e36992 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 1 Jul 2024 16:03:34 +0200 Subject: [PATCH 159/238] Create check-test-warnings.yaml --- .github/workflows/check-test-warnings.yaml | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/check-test-warnings.yaml diff --git a/.github/workflows/check-test-warnings.yaml b/.github/workflows/check-test-warnings.yaml new file mode 100644 index 000000000..414385293 --- /dev/null +++ b/.github/workflows/check-test-warnings.yaml @@ -0,0 +1,39 @@ +# based on test-coverage, running testthat with options(warn = 2) to fail on test warnings +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +name: test-package + +jobs: + test-package: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: local::. + + - name: Run Tests + run: | + ## -------------------------------------------------------------------- + options( + crayon.enabled = TRUE, + warn = 2L, + warnPartialMatchArgs = TRUE, + warnPartialMatchAttr = TRUE, + warnPartialMatchDollar = TRUE + ) + if (Sys.getenv("_R_CHECK_FORCE_SUGGESTS_", "") == "") Sys.setenv("_R_CHECK_FORCE_SUGGESTS_" = "false") + testthat::test_dir("tests") + shell: Rscript {0} From eb2ee1381a102c7cf98251fb734b0343dd137e8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:31:08 +0000 Subject: [PATCH 160/238] Bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.1 to 4.6.3. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.1...v4.6.3) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index dad368915..3d75fb082 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.6.1 + uses: JamesIves/github-pages-deploy-action@v4.6.3 with: clean: false branch: gh-pages From efdd61c6217c1ac17cde1f7d53920a7939872480 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:23:40 +0000 Subject: [PATCH 161/238] Bump actions/setup-python from 5.1.0 to 5.1.1 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.0 to 5.1.1. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.1.0...v5.1.1) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 690143359..aed16fecc 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.1.0 + uses: actions/setup-python@v5.1.1 with: python-version: "3.9" architecture: "x64" From 7eff367794003d0015663aa942e19cda053052b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 03:29:28 +0000 Subject: [PATCH 162/238] Bump actions/setup-python from 5.1.1 to 5.2.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.1.1...v5.2.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index aed16fecc..bd675eac5 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.1.1 + uses: actions/setup-python@v5.2.0 with: python-version: "3.9" architecture: "x64" From 134f41c011a28ff727811e7a3b78c0f2c05dfc61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:58:57 +0000 Subject: [PATCH 163/238] Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.3 to 4.6.4. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.3...v4.6.4) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 3d75fb082..48cf63577 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.6.3 + uses: JamesIves/github-pages-deploy-action@v4.6.4 with: clean: false branch: gh-pages From 1e5e12795df3a77e4c5150d04b7453d952b2e7ff Mon Sep 17 00:00:00 2001 From: Jacob Scott Date: Thu, 19 Sep 2024 10:10:20 +0100 Subject: [PATCH 164/238] feat: * Add support for webr code chunks in Rmd/qmd documents --- R/transform-code.R | 4 ++-- tests/testthat/rmd/r_and_non_r_code_chunks-in.Rmd | 8 ++++++++ tests/testthat/rmd/r_and_non_r_code_chunks-out.Rmd | 8 ++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/R/transform-code.R b/R/transform-code.R index 91b495e3a..786dae745 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -100,8 +100,8 @@ identify_raw_chunks <- function(lines, if (filetype == "Rmd") { starts <- grep( - "^[\t >]*```+\\s*\\{([Rr]( *[ ,].*)?)\\}\\s*$", lines, - perl = TRUE + "^[\t >]*```+\\s*\\{((r|webr-r|webr)( *[ ,].*)?)\\}\\s*$", + lines, perl = TRUE, ignore.case = TRUE ) ends <- grep("^[\t >]*```+\\s*$", lines, perl = TRUE) ends <- purrr::imap_int(starts, ~ ends[which(ends > .x)[1L]]) %>% diff --git a/tests/testthat/rmd/r_and_non_r_code_chunks-in.Rmd b/tests/testthat/rmd/r_and_non_r_code_chunks-in.Rmd index 8360de933..02dabe478 100644 --- a/tests/testthat/rmd/r_and_non_r_code_chunks-in.Rmd +++ b/tests/testthat/rmd/r_and_non_r_code_chunks-in.Rmd @@ -18,6 +18,14 @@ Some text. 1+1 ``` +```{webr} +1+1 +``` + +```{webr-r} +1+1 +``` + More text. ```{nonR} diff --git a/tests/testthat/rmd/r_and_non_r_code_chunks-out.Rmd b/tests/testthat/rmd/r_and_non_r_code_chunks-out.Rmd index 0e76de3f2..8188c5385 100644 --- a/tests/testthat/rmd/r_and_non_r_code_chunks-out.Rmd +++ b/tests/testthat/rmd/r_and_non_r_code_chunks-out.Rmd @@ -18,6 +18,14 @@ Some text. 1+1 ``` +```{webr} +1 + 1 +``` + +```{webr-r} +1 + 1 +``` + More text. ```{nonR} From dc08277dd52fe8e490ae89d51f0da166dfb907ae Mon Sep 17 00:00:00 2001 From: Jacob Scott Date: Thu, 19 Sep 2024 20:53:06 +0100 Subject: [PATCH 165/238] fix: styler CI --- R/transform-code.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/transform-code.R b/R/transform-code.R index 786dae745..7e2cba4ff 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -100,8 +100,9 @@ identify_raw_chunks <- function(lines, if (filetype == "Rmd") { starts <- grep( - "^[\t >]*```+\\s*\\{((r|webr-r|webr)( *[ ,].*)?)\\}\\s*$", - lines, perl = TRUE, ignore.case = TRUE + "^[\t >]*```+\\s*\\{((r|webr-r|webr)( *[ ,].*)?)\\}\\s*$", + lines, + perl = TRUE, ignore.case = TRUE ) ends <- grep("^[\t >]*```+\\s*$", lines, perl = TRUE) ends <- purrr::imap_int(starts, ~ ends[which(ends > .x)[1L]]) %>% From 8c5132f2008a5988299ca4558574440cd841cf85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 03:43:47 +0000 Subject: [PATCH 166/238] Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.8 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.4 to 4.6.8. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.4...v4.6.8) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 48cf63577..4e77b61eb 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.6.4 + uses: JamesIves/github-pages-deploy-action@v4.6.8 with: clean: false branch: gh-pages From 9d076fc61ff580f6196eb4f02ae9ef79eac392d0 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 6 Oct 2024 20:03:20 +0200 Subject: [PATCH 167/238] empty curly have no spaces --- .pre-commit-config.yaml | 5 ++--- DESCRIPTION | 2 +- R/rules-spaces.R | 7 ++++++- R/style-guides.R | 4 ++-- man/set_line_break_around_curly_curly.Rd | 4 ++-- tests/testthat/line_breaks_and_other/curly-in.R | 6 ++++++ tests/testthat/line_breaks_and_other/curly-out.R | 5 +++++ 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cf22944df..4f34c10b7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,7 +34,6 @@ repos: )$ - id: roxygenize additional_dependencies: - - r-lib/pkgapi - dplyr - roxygen2 - rlang @@ -102,7 +101,7 @@ repos: )$ - id: pkgdown - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: check-added-large-files args: ["--maxkb=200"] @@ -120,7 +119,7 @@ repos: tests/testthat/_snaps/.*| )$ - repo: https://github.com/lorenzwalthert/gitignore-tidy - rev: 517cddbf1d8514ddaf43159686617ae65895dc99 + rev: 0.1.2 hooks: - id: tidy-gitignore - repo: local diff --git a/DESCRIPTION b/DESCRIPTION index 42229a06c..a7d401163 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -52,7 +52,7 @@ Roxygen: list(markdown = TRUE, roclets = c( "rd", "namespace", "collate", if (rlang::is_installed("pkgapi")) "pkgapi::api_roclet" else { warning("Please install r-lib/pkgapi to make sure the file API is kept up to date"); NULL})) -RoxygenNote: 7.3.1 +RoxygenNote: 7.3.2 Language: en-US Config/testthat/edition: 3 Config/testthat/parallel: true diff --git a/R/rules-spaces.R b/R/rules-spaces.R index c96584d6c..54f4bf289 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -174,8 +174,9 @@ add_space_after_for_if_while <- function(pd_flat) { #' @rdname set_line_break_around_curly_curly #' @keywords internal -set_space_in_curly_curly <- function(pd) { +set_space_in_curly <- function(pd) { if (is_curly_expr(pd)) { + # curly-curly after_inner_opening <- pd$token == "'{'" & pd$token_before == "'{'" before_inner_closing <- lead(pd$token == "'}'" & pd$token_after == "'}'") is_curly_curly_inner <- any(after_inner_opening, na.rm = TRUE) && @@ -193,6 +194,10 @@ set_space_in_curly_curly <- function(pd) { pd$spaces[after_outer_opening] <- 0L pd$spaces[before_outer_closing] <- 0L } + + # empty curly + after_is_empty_curly <- lead(pd$token == "'}'" & pd$token_before == "'{'") + pd$spaces[after_is_empty_curly] <- 0L } pd } diff --git a/R/style-guides.R b/R/style-guides.R index 1445586ac..39fc30118 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -122,7 +122,7 @@ tidyverse_style <- function(scope = "tokens", }, set_space_between_levels = set_space_between_levels, set_space_between_eq_sub_and_comma = set_space_between_eq_sub_and_comma, - set_space_in_curly_curly = set_space_in_curly_curly + set_space_in_curly = set_space_in_curly ) } @@ -209,7 +209,7 @@ tidyverse_style <- function(scope = "tokens", start_comments_with_space = "COMMENT", remove_space_after_unary_pm_nested = c("'+'", "'-'"), spacing_before_comments = "COMMENT", - set_space_in_curly_curly = c("'{'", "'}'") + set_space_in_curly = c("'{'", "'}'") ), indention = list( # indent_braces = c("'('", "'['", "'{'", "')'", "']'", "'}'"), diff --git a/man/set_line_break_around_curly_curly.Rd b/man/set_line_break_around_curly_curly.Rd index 06fd2fa9e..1215ff6d4 100644 --- a/man/set_line_break_around_curly_curly.Rd +++ b/man/set_line_break_around_curly_curly.Rd @@ -2,12 +2,12 @@ % Please edit documentation in R/rules-line-breaks.R, R/rules-spaces.R \name{set_line_break_around_curly_curly} \alias{set_line_break_around_curly_curly} -\alias{set_space_in_curly_curly} +\alias{set_space_in_curly} \title{Styling around \verb{\\\{\\\{}} \usage{ set_line_break_around_curly_curly(pd) -set_space_in_curly_curly(pd) +set_space_in_curly(pd) } \arguments{ \item{pd}{A parse table.} diff --git a/tests/testthat/line_breaks_and_other/curly-in.R b/tests/testthat/line_breaks_and_other/curly-in.R index 9f44b5716..03650832a 100644 --- a/tests/testthat/line_breaks_and_other/curly-in.R +++ b/tests/testthat/line_breaks_and_other/curly-in.R @@ -41,3 +41,9 @@ test_that( # comment expect_equal(1 + 1, 2) }) + + +while (TRUE) { } + +while (TRUE) + { } diff --git a/tests/testthat/line_breaks_and_other/curly-out.R b/tests/testthat/line_breaks_and_other/curly-out.R index c55508290..4ad742fc6 100644 --- a/tests/testthat/line_breaks_and_other/curly-out.R +++ b/tests/testthat/line_breaks_and_other/curly-out.R @@ -38,3 +38,8 @@ test_that( expect_equal(1 + 1, 2) } ) + + +while (TRUE) {} + +while (TRUE) {} From e1455c66c50bb0e69ddb08e0ae0290c59df3ffd3 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Tue, 8 Oct 2024 23:05:22 +0200 Subject: [PATCH 168/238] whenver ther is an empty brace expression, remove line breaks --- R/rules-line-breaks.R | 24 ++++++++++------ .../edge_strict_mixed-out.R | 3 +- .../eq_formals_complex_tokens-out.R | 4 +-- .../braces-fun-calls2-out.R | 28 +++++-------------- .../testthat/line_breaks_and_other/curly-in.R | 12 ++++++++ .../line_breaks_and_other/curly-out.R | 10 +++++++ .../token_dependent_complex_non_strict-out.R | 3 +- .../token_dependent_complex_strict-out.R | 3 +- .../spinning_code_chunk_headers-out.R | 4 +-- .../subdir/random-script-in-sub-dir.R | 3 +- .../xyzdir/subdir/random-script-in-sub-dir.R | 3 +- tests/testthat/spacing/round_curly-out.R | 6 ++-- tests/testthat/strict/non_strict-out.R | 12 +++----- tests/testthat/strict/strict-out.R | 12 +++----- 14 files changed, 61 insertions(+), 66 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 8fc492643..ecbea2dfe 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -149,15 +149,21 @@ set_line_break_around_comma_and_or <- function(pd, strict) { } style_line_break_around_curly <- function(strict, pd) { - if (is_curly_expr(pd) && nrow(pd) > 2L) { - closing_before <- pd$token == "'}'" - opening_before <- (pd$token == "'{'") - to_break <- lag(opening_before, default = FALSE) | closing_before - pd$lag_newlines[to_break] <- ifelse( - pd$token[to_break] == "COMMENT", - pmin(1L, pd$lag_newlines[to_break]), - if (strict) 1L else pmax(1L, pd$lag_newlines[to_break]) - ) + if (is_curly_expr(pd)) { + n_row <- nrow(pd) + if (n_row > 2L) { + closing_before <- pd$token == "'}'" + opening_before <- (pd$token == "'{'") + to_break <- lag(opening_before, default = FALSE) | closing_before + pd$lag_newlines[to_break] <- ifelse( + pd$token[to_break] == "COMMENT", + pmin(1L, pd$lag_newlines[to_break]), + if (strict) 1L else pmax(1L, pd$lag_newlines[to_break]) + ) + } else if (n_row == 2L) { + # pd represents {} + pd$lag_newlines[2L] <- 0L + } } else { is_else <- pd$token == "ELSE" if (any(pd$token_before[is_else] == "'}'")) { diff --git a/tests/testthat/indention_multiple/edge_strict_mixed-out.R b/tests/testthat/indention_multiple/edge_strict_mixed-out.R index dcfe06a07..0d95d3468 100644 --- a/tests/testthat/indention_multiple/edge_strict_mixed-out.R +++ b/tests/testthat/indention_multiple/edge_strict_mixed-out.R @@ -23,5 +23,4 @@ ))) -function(x, y, z) { -} +function(x, y, z) {} diff --git a/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R b/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R index 612a4beed..27b8d7e7c 100644 --- a/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R +++ b/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R @@ -30,6 +30,4 @@ function(a = f = d, c = 3, d = - 4) { - -} + 4) {} diff --git a/tests/testthat/line_breaks_and_other/braces-fun-calls2-out.R b/tests/testthat/line_breaks_and_other/braces-fun-calls2-out.R index 14e0fadc3..340e1eaf8 100644 --- a/tests/testthat/line_breaks_and_other/braces-fun-calls2-out.R +++ b/tests/testthat/line_breaks_and_other/braces-fun-calls2-out.R @@ -1,8 +1,6 @@ test( "x", - { - - }, + {}, a + b, { s(x = sd) @@ -11,9 +9,7 @@ test( test( "x", - { - - }, + {}, a + b, { s(x = sd) @@ -22,9 +18,7 @@ test( test( "x", - { - - }, + {}, a + b, { s(x = sd) @@ -34,9 +28,7 @@ test( test( "x", - { - - }, + {}, a + b, { s(x = sd) @@ -45,9 +37,7 @@ test( test( "x", - { - - }, # h + {}, # h a + b, { s(x = sd) @@ -56,9 +46,7 @@ test( test( "x", - { - - }, # h + {}, # h a + b, # k { @@ -68,9 +56,7 @@ test( test( "x", - { - - }, + {}, a + b, # k { s(x = sd) diff --git a/tests/testthat/line_breaks_and_other/curly-in.R b/tests/testthat/line_breaks_and_other/curly-in.R index 03650832a..8da4db732 100644 --- a/tests/testthat/line_breaks_and_other/curly-in.R +++ b/tests/testthat/line_breaks_and_other/curly-in.R @@ -47,3 +47,15 @@ while (TRUE) { } while (TRUE) { } + +while (TRUE){ + + } + +while (TRUE){ +# + } + + +while (TRUE){# + } diff --git a/tests/testthat/line_breaks_and_other/curly-out.R b/tests/testthat/line_breaks_and_other/curly-out.R index 4ad742fc6..22730a44b 100644 --- a/tests/testthat/line_breaks_and_other/curly-out.R +++ b/tests/testthat/line_breaks_and_other/curly-out.R @@ -43,3 +43,13 @@ test_that( while (TRUE) {} while (TRUE) {} + +while (TRUE) {} + +while (TRUE) { + # +} + + +while (TRUE) { # +} diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-out.R b/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-out.R index 8ef14cf81..c4783fb6c 100644 --- a/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-out.R +++ b/tests/testthat/line_breaks_fun_call/token_dependent_complex_non_strict-out.R @@ -5,8 +5,7 @@ call(call( call(call(1, 2)) # multi-line: no indention based on first vall -call(a(b(c({ -})))) +call(a(b(c({})))) call(call( 2), diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-out.R b/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-out.R index 093fd65cf..8e0309e98 100644 --- a/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-out.R +++ b/tests/testthat/line_breaks_fun_call/token_dependent_complex_strict-out.R @@ -7,8 +7,7 @@ call(call( 2 )) # multi-line: no indention based on first vall -call(a(b(c({ -})))) +call(a(b(c({})))) call( call( diff --git a/tests/testthat/parse_comments/spinning_code_chunk_headers-out.R b/tests/testthat/parse_comments/spinning_code_chunk_headers-out.R index 88ab28999..743269425 100644 --- a/tests/testthat/parse_comments/spinning_code_chunk_headers-out.R +++ b/tests/testthat/parse_comments/spinning_code_chunk_headers-out.R @@ -1,7 +1,5 @@ # A comment -a <- function() { - -} +a <- function() {} #+ chunk-label, opt1=value1 "chunk-content" diff --git a/tests/testthat/public-api/xyz-r-and-rmd-dir/subdir/random-script-in-sub-dir.R b/tests/testthat/public-api/xyz-r-and-rmd-dir/subdir/random-script-in-sub-dir.R index 1337474bf..4b6e446d9 100644 --- a/tests/testthat/public-api/xyz-r-and-rmd-dir/subdir/random-script-in-sub-dir.R +++ b/tests/testthat/public-api/xyz-r-and-rmd-dir/subdir/random-script-in-sub-dir.R @@ -1,4 +1,3 @@ # random this(is_a_call(x)) -if (x) { -} +if (x) {} diff --git a/tests/testthat/public-api/xyzdir/subdir/random-script-in-sub-dir.R b/tests/testthat/public-api/xyzdir/subdir/random-script-in-sub-dir.R index 1337474bf..4b6e446d9 100644 --- a/tests/testthat/public-api/xyzdir/subdir/random-script-in-sub-dir.R +++ b/tests/testthat/public-api/xyzdir/subdir/random-script-in-sub-dir.R @@ -1,4 +1,3 @@ # random this(is_a_call(x)) -if (x) { -} +if (x) {} diff --git a/tests/testthat/spacing/round_curly-out.R b/tests/testthat/spacing/round_curly-out.R index e49f328b3..8f2a4c49a 100644 --- a/tests/testthat/spacing/round_curly-out.R +++ b/tests/testthat/spacing/round_curly-out.R @@ -1,5 +1,4 @@ -a <- function(x) { -} +a <- function(x) {} if (a) { 3 @@ -13,5 +12,4 @@ if (x) { y } else if (x) { x -} else { -} +} else {} diff --git a/tests/testthat/strict/non_strict-out.R b/tests/testthat/strict/non_strict-out.R index 08f773a73..64a698bb5 100644 --- a/tests/testthat/strict/non_strict-out.R +++ b/tests/testthat/strict/non_strict-out.R @@ -51,17 +51,13 @@ test <- function() { call }) - braced("unnamed reduces space", { - }) + braced("unnamed reduces space", {}) - braced("unnamed adds space space", { - }) + braced("unnamed adds space space", {}) - braced(named_reduces_space = { - }) + braced(named_reduces_space = {}) - braced(named_adds_space = { - }) + braced(named_adds_space = {}) braced({ empty_removes_space diff --git a/tests/testthat/strict/strict-out.R b/tests/testthat/strict/strict-out.R index 3422f4e5b..688cf7f88 100644 --- a/tests/testthat/strict/strict-out.R +++ b/tests/testthat/strict/strict-out.R @@ -34,17 +34,13 @@ test <- function() { call }) - braced("unnamed reduces space", { - }) + braced("unnamed reduces space", {}) - braced("unnamed adds space space", { - }) + braced("unnamed adds space space", {}) - braced(named_reduces_space = { - }) + braced(named_reduces_space = {}) - braced(named_adds_space = { - }) + braced(named_adds_space = {}) braced({ empty_removes_space From b15344536520e1b5b787228e3bbf5ab9c18f4f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Sat, 19 Oct 2024 20:05:33 +0200 Subject: [PATCH 169/238] Adapt to single indent semantics in style guide --- R/rules-indention.R | 3 ++- R/rules-line-breaks.R | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/R/rules-indention.R b/R/rules-indention.R index 30cf7b246..178cc319f 100644 --- a/R/rules-indention.R +++ b/R/rules-indention.R @@ -23,7 +23,8 @@ unindent_fun_dec <- function(pd, indent_by = 2L) { idx_closing_brace <- which(pd$token == "')'") fun_dec_head <- seq2(2L, idx_closing_brace) if (is_double_indent_function_declaration(pd, indent_by = indent_by)) { - pd$indent[fun_dec_head] <- 2L * indent_by + pd$indent[fun_dec_head] <- indent_by + pd$indent[idx_closing_brace] <- 0L } else { pd$indent[fun_dec_head] <- 0L } diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index ecbea2dfe..319929d6d 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -242,9 +242,11 @@ remove_line_breaks_in_fun_dec <- function(pd) { ) & pd$token_before != "COMMENT" pd$lag_newlines[pd$lag_newlines > 1L] <- 1L - pd$lag_newlines[round_after] <- 0L if (is_double_indention) { pd$lag_newlines[lag(pd$token == "'('")] <- 1L + pd$lag_newlines[round_after] <- 1L + } else { + pd$lag_newlines[round_after] <- 0L } } pd From 5e5eb3aa5ce20ffe99136045f849a6522d8a421d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Sat, 19 Oct 2024 20:05:40 +0200 Subject: [PATCH 170/238] Adapt tests --- .../testthat/fun_dec/line_break_fun_dec-out.R | 7 ++-- .../eq_formals_complex_indention-out.R | 30 +++++++------- .../eq_formals_complex_tokens-out.R | 39 +++++++++++-------- .../eq_sub_complex_indention-out.R | 4 +- tests/testthat/unindention/mixed-double-out.R | 32 ++++++++------- 5 files changed, 61 insertions(+), 51 deletions(-) diff --git a/tests/testthat/fun_dec/line_break_fun_dec-out.R b/tests/testthat/fun_dec/line_break_fun_dec-out.R index f9d494561..f910b6b43 100644 --- a/tests/testthat/fun_dec/line_break_fun_dec-out.R +++ b/tests/testthat/fun_dec/line_break_fun_dec-out.R @@ -40,8 +40,9 @@ a <- function(x, } a <- function( - # - x, - y) { + # + x, + y +) { x - 1 } diff --git a/tests/testthat/indention_operators/eq_formals_complex_indention-out.R b/tests/testthat/indention_operators/eq_formals_complex_indention-out.R index 305fe6e1c..a2e1d79b8 100644 --- a/tests/testthat/indention_operators/eq_formals_complex_indention-out.R +++ b/tests/testthat/indention_operators/eq_formals_complex_indention-out.R @@ -1,27 +1,27 @@ function(a = - 33, - b - ) {} + 33, + b +) {} function(a = - 33, - b) {} + 33, + b) {} function(a, - b, - c - ) {} + b, + c +) {} function(a, - b, - c) {} + b, + c) {} function(ss, - a = - 3, - er = - 4 - ) {} + a = + 3, + er = + 4 +) {} function(a = b, diff --git a/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R b/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R index 27b8d7e7c..9c001e666 100644 --- a/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R +++ b/tests/testthat/indention_operators/eq_formals_complex_tokens-out.R @@ -1,29 +1,34 @@ function( - a = - 33, - b) {} + a = + 33, + b +) {} function( - a = - 33, - b) {} + a = + 33, + b +) {} function( - a, - b, - c) {} + a, + b, + c +) {} function( - a, - b, - c) {} + a, + b, + c +) {} function( - ss, - a = - 3, - er = - 4) {} + ss, + a = + 3, + er = + 4 +) {} function(a = b, diff --git a/tests/testthat/indention_operators/eq_sub_complex_indention-out.R b/tests/testthat/indention_operators/eq_sub_complex_indention-out.R index 02b322973..03c121d81 100644 --- a/tests/testthat/indention_operators/eq_sub_complex_indention-out.R +++ b/tests/testthat/indention_operators/eq_sub_complex_indention-out.R @@ -10,8 +10,8 @@ b # multiple nested levels { v <- function(x = - 122, - y) { + 122, + y) { } } diff --git a/tests/testthat/unindention/mixed-double-out.R b/tests/testthat/unindention/mixed-double-out.R index a1c7e24d2..44591e1f2 100644 --- a/tests/testthat/unindention/mixed-double-out.R +++ b/tests/testthat/unindention/mixed-double-out.R @@ -37,29 +37,33 @@ function(x, # double function( - x, - y) { + x, + y +) { 1 } function( - x, - y, - k) { + x, + y, + k +) { 1 } function( - x, - y) { + x, + y +) { 1 } function( - x, y) { + x, y +) { 1 } @@ -72,23 +76,23 @@ function(x, # last brace function( - x, y) { + x, y) { NULL } function( - x, y) { + x, y) { NULL } function( - x, - y) { + x, + y) { NULL } function( - x, - y) { + x, + y) { NULL } From 8b9a4a088800d50c16daf0eb7c1823aed8d3c199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Sat, 19 Oct 2024 20:10:42 +0200 Subject: [PATCH 171/238] double -> single --- R/rules-indention.R | 13 +++++++------ R/rules-line-breaks.R | 2 +- ....Rd => is_single_indent_function_declaration.Rd} | 10 +++++----- 3 files changed, 13 insertions(+), 12 deletions(-) rename man/{is_double_indent_function_declaration.Rd => is_single_indent_function_declaration.Rd} (60%) diff --git a/R/rules-indention.R b/R/rules-indention.R index 178cc319f..3e953d76e 100644 --- a/R/rules-indention.R +++ b/R/rules-indention.R @@ -15,14 +15,14 @@ indent_braces <- function(pd, indent_by) { #' #' Necessary for consistent indention of the function declaration header. #' @param pd A parse table. -#' @inheritParams is_double_indent_function_declaration +#' @inheritParams is_single_indent_function_declaration #' @seealso set_unindention_child update_indention_ref_fun_dec #' @keywords internal unindent_fun_dec <- function(pd, indent_by = 2L) { if (is_function_declaration(pd)) { idx_closing_brace <- which(pd$token == "')'") fun_dec_head <- seq2(2L, idx_closing_brace) - if (is_double_indent_function_declaration(pd, indent_by = indent_by)) { + if (is_single_indent_function_declaration(pd, indent_by = indent_by)) { pd$indent[fun_dec_head] <- indent_by pd$indent[idx_closing_brace] <- 0L } else { @@ -32,20 +32,21 @@ unindent_fun_dec <- function(pd, indent_by = 2L) { pd } -#' Is the function declaration double indented? +#' Is the function declaration single indented? #' #' Assumes you already checked if it's a function with -#' `is_function_declaration`. It is double indented if the first token +#' `is_function_declaration`. It is single indented if the first token #' after the first line break that is a `"SYMBOL_FORMALS"`. #' @param pd A parse table. #' @inheritParams tidyverse_style #' @keywords internal -is_double_indent_function_declaration <- function(pd, indent_by = 2L) { +is_single_indent_function_declaration <- function(pd, indent_by = 2L) { head_pd <- vec_slice(pd, -nrow(pd)) line_break_in_header <- which(head_pd$lag_newlines > 0L & head_pd$token == "SYMBOL_FORMALS") if (length(line_break_in_header) > 0L) { # indent results from applying the rules, spaces is the initial spaces # (which is indention if a newline is ahead) + # The 2L factor is kept to convert double indent to single indent pd$spaces[line_break_in_header[1L] - 1L] <= 2L * indent_by } else { FALSE @@ -133,7 +134,7 @@ NULL #' #' @keywords internal update_indention_ref_fun_dec <- function(pd_nested) { - if (is_function_declaration(pd_nested) && !is_double_indent_function_declaration(pd_nested)) { + if (is_function_declaration(pd_nested) && !is_single_indent_function_declaration(pd_nested)) { seq <- seq2(3L, nrow(pd_nested) - 2L) pd_nested$indention_ref_pos_id[seq] <- pd_nested$pos_id[2L] } diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 319929d6d..0afc8e45d 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -236,7 +236,7 @@ remove_line_break_before_round_closing_after_curly <- function(pd) { remove_line_breaks_in_fun_dec <- function(pd) { if (is_function_declaration(pd)) { - is_double_indention <- is_double_indent_function_declaration(pd) + is_double_indention <- is_single_indent_function_declaration(pd) round_after <- ( pd$token == "')'" | pd$token_before == "'('" ) & diff --git a/man/is_double_indent_function_declaration.Rd b/man/is_single_indent_function_declaration.Rd similarity index 60% rename from man/is_double_indent_function_declaration.Rd rename to man/is_single_indent_function_declaration.Rd index d9a36a367..b186ec201 100644 --- a/man/is_double_indent_function_declaration.Rd +++ b/man/is_single_indent_function_declaration.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/rules-indention.R -\name{is_double_indent_function_declaration} -\alias{is_double_indent_function_declaration} -\title{Is the function declaration double indented?} +\name{is_single_indent_function_declaration} +\alias{is_single_indent_function_declaration} +\title{Is the function declaration single indented?} \usage{ -is_double_indent_function_declaration(pd, indent_by = 2L) +is_single_indent_function_declaration(pd, indent_by = 2L) } \arguments{ \item{pd}{A parse table.} @@ -14,7 +14,7 @@ operators such as '('.} } \description{ Assumes you already checked if it's a function with -\code{is_function_declaration}. It is double indented if the first token +\code{is_function_declaration}. It is single indented if the first token after the first line break that is a \code{"SYMBOL_FORMALS"}. } \keyword{internal} From 26fa96547ec11602e2b1e8c214a173fb4a558d77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 03:57:46 +0000 Subject: [PATCH 172/238] Bump actions/setup-python from 5.2.0 to 5.3.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.2.0 to 5.3.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.2.0...v5.3.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index bd675eac5..c049998ee 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.2.0 + uses: actions/setup-python@v5.3.0 with: python-version: "3.9" architecture: "x64" From 87313c731e3aaa4027fc58f9a9fd61e27d32ae77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 03:34:17 +0000 Subject: [PATCH 173/238] Bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.6.9 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.8 to 4.6.9. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.8...v4.6.9) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 4e77b61eb..466abf1e0 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.6.8 + uses: JamesIves/github-pages-deploy-action@v4.6.9 with: clean: false branch: gh-pages From ff785eabbe9c9130efbc0794b5471f8672d8386e Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 24 Nov 2024 23:54:05 +0100 Subject: [PATCH 174/238] rename for consistency --- R/rules-line-breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 0afc8e45d..07229ebc9 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -236,13 +236,13 @@ remove_line_break_before_round_closing_after_curly <- function(pd) { remove_line_breaks_in_fun_dec <- function(pd) { if (is_function_declaration(pd)) { - is_double_indention <- is_single_indent_function_declaration(pd) + is_single_indention <- is_single_indent_function_declaration(pd) round_after <- ( pd$token == "')'" | pd$token_before == "'('" ) & pd$token_before != "COMMENT" pd$lag_newlines[pd$lag_newlines > 1L] <- 1L - if (is_double_indention) { + if (is_single_indention) { pd$lag_newlines[lag(pd$token == "'('")] <- 1L pd$lag_newlines[round_after] <- 1L } else { From 2530f99e48831326c77630f5812ac9ae5b5a1ccf Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 28 Nov 2024 20:20:08 +0100 Subject: [PATCH 175/238] Add rule to reduce blank lines between scopes --- R/rules-line-breaks.R | 18 ++++++++++++++++++ R/style-guides.R | 1 + tests/testthat/alignment/named-out.R | 1 - .../indention_curly_brackets/custom-out.R | 1 - .../line_breaks_and_other/assignment-out.R | 2 -- .../line_breaks_fun_call/blank-strict-out.R | 1 - .../switch_ifelse_etc_no_line_break-out.R | 1 - .../token_dependent_mixed-out.R | 1 - .../parse_comments/with_indention-out.R | 2 -- .../13-empty-lines-out.R | 2 -- .../26-empty-trailing-lines-out.R | 1 - tests/testthat/test-transformers-drop.R | 1 + .../token_adding_removing/mixed_token-out.R | 1 - 13 files changed, 20 insertions(+), 13 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 07229ebc9..1e834ab77 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -447,3 +447,21 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { pd } + + +#' Reduce multiple blank lines to a maximum number of allowed blank lines +#' @param pd_flat A flat parse table. +#' @param allowed_blank_lines The maximum number of allowed blank lines between code elements. Default is `2L`. +#' @keywords internal +reduce_extra_blank_lines_between_scopes <- function(pd_flat, allowed_blank_lines = 2L) { + # Calculate the maximum allowed lag_newlines + max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token + + # Identify positions where lag_newlines exceed the maximum allowed + idx <- which(pd_flat$lag_newlines > max_lag_newlines) + + # Reduce lag_newlines to the maximum allowed at those positions + pd_flat$lag_newlines[idx] <- max_lag_newlines + + return(pd_flat) +} diff --git a/R/style-guides.R b/R/style-guides.R index 39fc30118..c61392d1f 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -139,6 +139,7 @@ tidyverse_style <- function(scope = "tokens", if (strict) remove_line_break_before_round_closing_after_curly, remove_line_breaks_in_fun_dec = if (strict) remove_line_breaks_in_fun_dec, + reduce_extra_blank_lines_between_scopes = reduce_extra_blank_lines_between_scopes, style_line_break_around_curly = partial( style_line_break_around_curly, strict diff --git a/tests/testthat/alignment/named-out.R b/tests/testthat/alignment/named-out.R index 5fd8e9507..35c3bb607 100644 --- a/tests/testthat/alignment/named-out.R +++ b/tests/testthat/alignment/named-out.R @@ -102,7 +102,6 @@ call( ) - # if all col1 arguments are named, col1 must also be aligned # not aligned fell( diff --git a/tests/testthat/indention_curly_brackets/custom-out.R b/tests/testthat/indention_curly_brackets/custom-out.R index f2612d575..f68775003 100644 --- a/tests/testthat/indention_curly_brackets/custom-out.R +++ b/tests/testthat/indention_curly_brackets/custom-out.R @@ -4,7 +4,6 @@ if (value > 0) { } - if (value > 0) { print(value) } diff --git a/tests/testthat/line_breaks_and_other/assignment-out.R b/tests/testthat/line_breaks_and_other/assignment-out.R index 239bb02aa..5c16559ed 100644 --- a/tests/testthat/line_breaks_and_other/assignment-out.R +++ b/tests/testthat/line_breaks_and_other/assignment-out.R @@ -22,7 +22,6 @@ x <- 3 - ImportantDataFrame$ImportantColumn1 <- ImportantDataFrame$ImportantColumn2 <- ComplicatedFunction(ImportantDataFrame$InputColumn) @@ -32,6 +31,5 @@ ImportantDataFrame$ImportantColumn1 <- ImportantDataFrame$ImportantColumn2 <- ComplicatedFunction(ImportantDataFrame$InputColumn) - ImportantDataFrame$ImportantColumn1 <- ImportantDataFrame$ImportantColumn2 <- ComplicatedFunction(ImportantDataFrame$InputColumn) diff --git a/tests/testthat/line_breaks_fun_call/blank-strict-out.R b/tests/testthat/line_breaks_fun_call/blank-strict-out.R index cb9acea09..19232c9fa 100644 --- a/tests/testthat/line_breaks_fun_call/blank-strict-out.R +++ b/tests/testthat/line_breaks_fun_call/blank-strict-out.R @@ -19,7 +19,6 @@ call( 2, - # comment 1, diff --git a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R index e6cfeee64..f43cd21f8 100644 --- a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R +++ b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R @@ -16,7 +16,6 @@ switch( # ) - switch(x, a = 2, # y = 3 diff --git a/tests/testthat/line_breaks_fun_call/token_dependent_mixed-out.R b/tests/testthat/line_breaks_fun_call/token_dependent_mixed-out.R index d588f1ff0..1bd68278f 100644 --- a/tests/testthat/line_breaks_fun_call/token_dependent_mixed-out.R +++ b/tests/testthat/line_breaks_fun_call/token_dependent_mixed-out.R @@ -16,7 +16,6 @@ call(call( )) - # no more barcket on same line -> call(call( 3, 4 diff --git a/tests/testthat/parse_comments/with_indention-out.R b/tests/testthat/parse_comments/with_indention-out.R index 5854b9515..526802374 100644 --- a/tests/testthat/parse_comments/with_indention-out.R +++ b/tests/testthat/parse_comments/with_indention-out.R @@ -18,8 +18,6 @@ call( # new comment - - a() # I think it gets boring # new_line here diff --git a/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R b/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R index a2f6f567b..460600158 100644 --- a/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R +++ b/tests/testthat/roxygen-examples-complete/13-empty-lines-out.R @@ -9,8 +9,6 @@ #' # two #' #' -#' -#' #' ( #' # more #' a <- 3 diff --git a/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-out.R b/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-out.R index f85ff9e76..dc44475aa 100644 --- a/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-out.R +++ b/tests/testthat/roxygen-examples-complete/26-empty-trailing-lines-out.R @@ -24,7 +24,6 @@ NULL NULL - #' this #' #' empty line after example diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index 77ccff008..6d7dc099a 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -72,6 +72,7 @@ test_that("tidyverse transformers are correctly dropped", { names_line_break <- c( "remove_empty_lines_after_opening_and_before_closing_braces", + "reduce_extra_blank_lines_between_scopes", "set_line_break_around_comma_and_or", "set_line_break_after_assignment", "set_line_break_after_opening_if_call_is_multi_line", diff --git a/tests/testthat/token_adding_removing/mixed_token-out.R b/tests/testthat/token_adding_removing/mixed_token-out.R index e80aafb4d..068ab64ef 100644 --- a/tests/testthat/token_adding_removing/mixed_token-out.R +++ b/tests/testthat/token_adding_removing/mixed_token-out.R @@ -14,7 +14,6 @@ d 'text with "quotes"' - # adding brackets in pipes a %>% b() %>% From 86daefab8545b58e098192d8cdf181674118ac43 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 28 Nov 2024 19:23:42 +0000 Subject: [PATCH 176/238] pre-commit --- R/rules-line-breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 1e834ab77..2bc121446 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -455,7 +455,7 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { #' @keywords internal reduce_extra_blank_lines_between_scopes <- function(pd_flat, allowed_blank_lines = 2L) { # Calculate the maximum allowed lag_newlines - max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token + max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token # Identify positions where lag_newlines exceed the maximum allowed idx <- which(pd_flat$lag_newlines > max_lag_newlines) From 287c7563ebb7c378ada47b9ce8dc3a3982822fc9 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 28 Nov 2024 21:20:55 +0100 Subject: [PATCH 177/238] fix --- R/rules-line-breaks.R | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 2bc121446..41da4c523 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -457,11 +457,19 @@ reduce_extra_blank_lines_between_scopes <- function(pd_flat, allowed_blank_lines # Calculate the maximum allowed lag_newlines max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token - # Identify positions where lag_newlines exceed the maximum allowed - idx <- which(pd_flat$lag_newlines > max_lag_newlines) + # Create a copy of lag_newlines to track modifications + modified_lag_newlines <- pd_flat$lag_newlines - # Reduce lag_newlines to the maximum allowed at those positions - pd_flat$lag_newlines[idx] <- max_lag_newlines + # Iterate through the dataframe to reduce consecutive blank lines + for (i in seq_along(modified_lag_newlines)) { + if (modified_lag_newlines[i] > max_lag_newlines) { + modified_lag_newlines[i] <- max_lag_newlines + } + } + + # Update the original data frame + pd_flat$lag_newlines <- modified_lag_newlines return(pd_flat) } + From 2ed01970c0c395e936cbbf9355926405deead00f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 28 Nov 2024 20:24:21 +0000 Subject: [PATCH 178/238] pre-commit --- R/rules-line-breaks.R | 1 - 1 file changed, 1 deletion(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 41da4c523..561914593 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -472,4 +472,3 @@ reduce_extra_blank_lines_between_scopes <- function(pd_flat, allowed_blank_lines return(pd_flat) } - From 23eb8a3fb6d88067bc217bef616c90dc1581d082 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 28 Nov 2024 21:36:00 +0100 Subject: [PATCH 179/238] add tests --- tests/testthat/line_breaks_and_other/curly-in.R | 9 +++++++++ tests/testthat/line_breaks_and_other/curly-out.R | 6 ++++++ .../line_breaks_and_other/pipe_and_comment-in.R | 9 +++++++++ .../line_breaks_and_other/pipe_and_comment-out.R | 6 ++++++ .../line_breaks_fun_call/blank-non-strict-in.R | 4 ++++ .../line_breaks_fun_call/blank-non-strict-out.R | 1 + .../30-multiple-empty-lines-between-in.R | 16 ++++++++++++++++ .../30-multiple-empty-lines-between-out.R | 13 +++++++++++++ .../testthat/test-roxygen-examples-complete-30.R | 5 +++++ 9 files changed, 69 insertions(+) create mode 100644 tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-in.R create mode 100644 tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-out.R create mode 100644 tests/testthat/test-roxygen-examples-complete-30.R diff --git a/tests/testthat/line_breaks_and_other/curly-in.R b/tests/testthat/line_breaks_and_other/curly-in.R index 8da4db732..31e6fc468 100644 --- a/tests/testthat/line_breaks_and_other/curly-in.R +++ b/tests/testthat/line_breaks_and_other/curly-in.R @@ -59,3 +59,12 @@ while (TRUE){ while (TRUE){# } + + +for (i in 1:10) {} + + + + + +while (TRUE) {} diff --git a/tests/testthat/line_breaks_and_other/curly-out.R b/tests/testthat/line_breaks_and_other/curly-out.R index 22730a44b..753c2a853 100644 --- a/tests/testthat/line_breaks_and_other/curly-out.R +++ b/tests/testthat/line_breaks_and_other/curly-out.R @@ -53,3 +53,9 @@ while (TRUE) { while (TRUE) { # } + + +for (i in 1:10) {} + + +while (TRUE) {} diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R b/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R index f0dcfb1d5..6f3ca4fb4 100644 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R +++ b/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R @@ -1,2 +1,11 @@ 1:10 %>% # sum sum() + + +f %>% g() + + + + + +h %>% i() diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R b/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R index f0dcfb1d5..bad0b84a2 100644 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R +++ b/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R @@ -1,2 +1,8 @@ 1:10 %>% # sum sum() + + +f %>% g() + + +h %>% i() diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R b/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R index 21225f5f8..cf1631c36 100644 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R +++ b/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R @@ -10,6 +10,10 @@ call( 1 ) + + + + call( x = 2, 1, diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R index 02330a9ec..024a4c205 100644 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R +++ b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R @@ -8,6 +8,7 @@ call( 1 ) + call( x = 2, 1, diff --git a/tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-in.R b/tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-in.R new file mode 100644 index 000000000..880595599 --- /dev/null +++ b/tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-in.R @@ -0,0 +1,16 @@ +#' Empty line in examples +#' +#' @examples +1 + + + + + + +#' Empty line in examples +#' +#' @examples +#' \dontrun{ +#' } +2 diff --git a/tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-out.R b/tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-out.R new file mode 100644 index 000000000..8871734b8 --- /dev/null +++ b/tests/testthat/roxygen-examples-complete/30-multiple-empty-lines-between-out.R @@ -0,0 +1,13 @@ +#' Empty line in examples +#' +#' @examples +1 + + +#' Empty line in examples +#' +#' @examples +#' \dontrun{ +#' +#' } +2 diff --git a/tests/testthat/test-roxygen-examples-complete-30.R b/tests/testthat/test-roxygen-examples-complete-30.R new file mode 100644 index 000000000..f81bab588 --- /dev/null +++ b/tests/testthat/test-roxygen-examples-complete-30.R @@ -0,0 +1,5 @@ +# NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. + +test_that("analogous to test-roxygen-examples-complete: 30", { + expect_warning(test_collection("roxygen-examples-complete", "^30-", transformer = style_text), NA) +}) From 1166e3b7cb357f35c26b4d4c4751dd9a47e284d8 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Thu, 28 Nov 2024 21:42:10 +0100 Subject: [PATCH 180/238] update precommit --- .pre-commit-config.yaml | 4 ++-- man/reduce_extra_blank_lines_between_scopes.Rd | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 man/reduce_extra_blank_lines_between_scopes.Rd diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4f34c10b7..0ad306e94 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,12 +1,12 @@ # All available hooks: https://pre-commit.com/hooks.html # R specific hooks: https://github.com/lorenzwalthert/precommit -default_stages: [commit] +default_stages: [pre-commit] default_language_version: python: python3 repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.2 + rev: v0.4.3.9003 hooks: - id: style-files args: diff --git a/man/reduce_extra_blank_lines_between_scopes.Rd b/man/reduce_extra_blank_lines_between_scopes.Rd new file mode 100644 index 000000000..37a7a44bc --- /dev/null +++ b/man/reduce_extra_blank_lines_between_scopes.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/rules-line-breaks.R +\name{reduce_extra_blank_lines_between_scopes} +\alias{reduce_extra_blank_lines_between_scopes} +\title{Reduce multiple blank lines to a maximum number of allowed blank lines} +\usage{ +reduce_extra_blank_lines_between_scopes(pd_flat, allowed_blank_lines = 2L) +} +\arguments{ +\item{pd_flat}{A flat parse table.} + +\item{allowed_blank_lines}{The maximum number of allowed blank lines between code elements. Default is \code{2L}.} +} +\description{ +Reduce multiple blank lines to a maximum number of allowed blank lines +} +\keyword{internal} From a2014dc876287a20fddbd8aa344c6f89dec5ceb9 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 20:27:37 +0100 Subject: [PATCH 181/238] address review feedback --- R/rules-line-breaks.R | 25 +++++-------------- R/style-guides.R | 3 ++- ...reduce_extra_blank_lines_between_scopes.Rd | 17 ------------- .../pipe_and_comment-in.R | 11 ++++++++ .../pipe_and_comment-out.R | 6 +++++ .../blank-non-strict-out.R | 3 +++ 6 files changed, 28 insertions(+), 37 deletions(-) delete mode 100644 man/reduce_extra_blank_lines_between_scopes.Rd diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 561914593..e29c8f603 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -449,26 +449,13 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { } -#' Reduce multiple blank lines to a maximum number of allowed blank lines -#' @param pd_flat A flat parse table. -#' @param allowed_blank_lines The maximum number of allowed blank lines between code elements. Default is `2L`. -#' @keywords internal -reduce_extra_blank_lines_between_scopes <- function(pd_flat, allowed_blank_lines = 2L) { +reduce_extra_blank_lines_between_scopes <- function(pd, allowed_blank_lines = 2L) { # Calculate the maximum allowed lag_newlines - max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token - - # Create a copy of lag_newlines to track modifications - modified_lag_newlines <- pd_flat$lag_newlines + max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token - # Iterate through the dataframe to reduce consecutive blank lines - for (i in seq_along(modified_lag_newlines)) { - if (modified_lag_newlines[i] > max_lag_newlines) { - modified_lag_newlines[i] <- max_lag_newlines - } - } + # cap lag_newlines at max_lag_newlines + pd$lag_newlines <- pmin(pd$lag_newlines, max_lag_newlines) - # Update the original data frame - pd_flat$lag_newlines <- modified_lag_newlines - - return(pd_flat) + pd } + diff --git a/R/style-guides.R b/R/style-guides.R index c61392d1f..b1fad6bc7 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -139,7 +139,8 @@ tidyverse_style <- function(scope = "tokens", if (strict) remove_line_break_before_round_closing_after_curly, remove_line_breaks_in_fun_dec = if (strict) remove_line_breaks_in_fun_dec, - reduce_extra_blank_lines_between_scopes = reduce_extra_blank_lines_between_scopes, + reduce_extra_blank_lines_between_scopes = + if (strict) reduce_extra_blank_lines_between_scopes, style_line_break_around_curly = partial( style_line_break_around_curly, strict diff --git a/man/reduce_extra_blank_lines_between_scopes.Rd b/man/reduce_extra_blank_lines_between_scopes.Rd deleted file mode 100644 index 37a7a44bc..000000000 --- a/man/reduce_extra_blank_lines_between_scopes.Rd +++ /dev/null @@ -1,17 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/rules-line-breaks.R -\name{reduce_extra_blank_lines_between_scopes} -\alias{reduce_extra_blank_lines_between_scopes} -\title{Reduce multiple blank lines to a maximum number of allowed blank lines} -\usage{ -reduce_extra_blank_lines_between_scopes(pd_flat, allowed_blank_lines = 2L) -} -\arguments{ -\item{pd_flat}{A flat parse table.} - -\item{allowed_blank_lines}{The maximum number of allowed blank lines between code elements. Default is \code{2L}.} -} -\description{ -Reduce multiple blank lines to a maximum number of allowed blank lines -} -\keyword{internal} diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R b/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R index 6f3ca4fb4..43970b285 100644 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R +++ b/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R @@ -9,3 +9,14 @@ f %>% g() h %>% i() + + + + + +# some comment + + + + +j %>% k() diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R b/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R index bad0b84a2..ed19d1149 100644 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R +++ b/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R @@ -6,3 +6,9 @@ f %>% g() h %>% i() + + +# some comment + + +j %>% k() diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R index 024a4c205..9579dbf4d 100644 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R +++ b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R @@ -9,6 +9,9 @@ call( ) + + + call( x = 2, 1, From 35cd8a927b14d840d313cc7360fe9789880db855 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 30 Nov 2024 19:29:10 +0000 Subject: [PATCH 182/238] pre-commit --- R/rules-line-breaks.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index e29c8f603..4ae18b760 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -451,11 +451,10 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { reduce_extra_blank_lines_between_scopes <- function(pd, allowed_blank_lines = 2L) { # Calculate the maximum allowed lag_newlines - max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token + max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token # cap lag_newlines at max_lag_newlines pd$lag_newlines <- pmin(pd$lag_newlines, max_lag_newlines) pd } - From 5705339efe2a48d6d2cdaea697be4e399bd97228 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 20:33:21 +0100 Subject: [PATCH 183/238] another test --- tests/testthat/line_breaks_and_other/ggplot2-in.R | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/testthat/line_breaks_and_other/ggplot2-in.R b/tests/testthat/line_breaks_and_other/ggplot2-in.R index c767dca7a..c9c224cec 100644 --- a/tests/testthat/line_breaks_and_other/ggplot2-in.R +++ b/tests/testthat/line_breaks_and_other/ggplot2-in.R @@ -26,6 +26,7 @@ ggplot(data = mtcars, mapping = aes(x = mpg, y = vs)) + ggplot(data = mtcars, mapping = aes(x = mpg, y = vs)) + ggplot2::geom_point() + g() # comment + # add when comment ggplot(data = mtcars, mapping = aes(x = mpg, y = vs)) + ggplot2::geom_point() + g() + geom_oint() # comment From 181cceaef2480a45152992b1f8022eab28e4c872 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 20:33:47 +0100 Subject: [PATCH 184/238] Update WORDLIST --- inst/WORDLIST | 166 ++++++++++---------------------------------------- 1 file changed, 32 insertions(+), 134 deletions(-) diff --git a/inst/WORDLIST b/inst/WORDLIST index 3b67a1317..f70375732 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,217 +1,130 @@ +AST Addin -addin Addins -addins -api AppVeyor +CMD +DSLs +EOF +EOL +EOLs +EQ +Freepik +Gayathri +Github +Invasiveness +JamesIves +Jupyterlab +LF +Lifecycle +ORCID +README +RMarkdown +RStudio +Rmarkdown +Rmd +Rnw +Robinlovelace +Roxygen +Shallowify +StackOverflow +Tidyverse +Unindent +Visit'em +YAML +addin +addins arg -AST -aut -backport backports bdr benchmarking -bootswatch -BugReports -bXj cancelling -cff ci cli -CMD -codebase codegrip coercible coercions -compat config counterpair -coventions -cpp -cre -ctb -cyclocomp -cynkra dec dependabot -desc -devtools dir -docsearch dont dontrun dontshow donttest dplyr -DSLs emacs -EOF -EOL -EOLs -EQ examplesIf -expr -eZm fansi -Fi filetype -Fjmav flaticon forcond formatter -Freepik gadenbuie -Gayathri -getOption ggplot -Github github -gitsum -gmail grkstyle -GSOC helpfiles -href https -icloud ifelse -Indrajeet -indrajeetspatilmorality -initializer inode integrations internal's -Invasiveness invasiveness io ixmypi -JamesIves -JBP -Jupyterlab -kirill -Kirill knitr -krlmlr -labelled learnr -LF -Lifecycle lifecycle -linter -linters lintr -lorenz lorenzwalthert -macOS magrittr -mav md -MERCHANTABILITY mlr mlr's -mutli -Müller -navbar -nbv -netlify nocomments -NONINFRINGEMENT -nonportable -nzchar -ocx oneliner -ORCID -ourself -packrat pandoc -params parsable -parsesum -Patil -patilindrajeet patilindrajeets -pdy -PGW pkgapi pkgconfig pkgdown pos pre precommit -prefill prettycode priori -PRs -purrr -qez qmd -RcppExports -README readme rebased -reindent reindented reindention -relevel -renv repo reprex -revdepcheck rlang rlang's -RMarkdown -Rmarkdown rmarkdown -Rmd rmd -Rnw rnw roadmap -Robinlovelace -roclet -roclets ropensci -roxgen -Roxygen roxygen -RoxygenNote rplumber rprofile -rprojroot -RStudio -RStudio's -rstudioapi -saamwerk -Sd semicoloner -Shallowify sharding spaceout -StackOverflow -styler stylerignore stylerignored -stylers -Stylers -sublicense -summarises testthat -tg -th tibble tibbles -tidyr -Tidyverse tidyverse -todo travis -ubuntu -Uf -ui uncached unexplainable unicode -Unindent unindent unindention unlink @@ -219,24 +132,9 @@ unnest utf vctrs vec -Vh -VignetteBuilder -Visit'em -walthert -Walthert -winbuilder withr -WN -www xaringan xfun -Xie -xk -XN -YAML yaml yihui -yl -YPa -zm zzz From 7260ff90e62616459a081299f794f24e55bcc9db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 30 Nov 2024 19:37:20 +0000 Subject: [PATCH 185/238] pre-commit --- inst/WORDLIST | 162 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 130 insertions(+), 32 deletions(-) diff --git a/inst/WORDLIST b/inst/WORDLIST index f70375732..a6c3937ce 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,130 +1,213 @@ -AST Addin -Addins -AppVeyor -CMD -DSLs -EOF -EOL -EOLs -EQ -Freepik -Gayathri -Github -Invasiveness -JamesIves -Jupyterlab -LF -Lifecycle -ORCID -README -RMarkdown -RStudio -Rmarkdown -Rmd -Rnw -Robinlovelace -Roxygen -Shallowify -StackOverflow -Tidyverse -Unindent -Visit'em -YAML addin +Addins addins +api +AppVeyor arg +AST +aut +backport backports bdr benchmarking +bootswatch +BugReports +bXj cancelling ci cli +CMD +codebase codegrip coercible coercions +compat config counterpair +coventions +cpp +cre +cyclocomp +cynkra dec dependabot +desc +devtools dir dont dontrun dontshow donttest dplyr +DSLs emacs +EOF +EOL +EOLs +EQ examplesIf +expr +eZm fansi +Fi filetype +Fjmav flaticon forcond formatter +Freepik gadenbuie +Gayathri +getOption ggplot +Github github +gitsum +gmail grkstyle +GSOC helpfiles +href https +icloud ifelse +Indrajeet +indrajeetspatilmorality +initializer inode integrations internal's +Invasiveness invasiveness io ixmypi +JamesIves +JBP +Jupyterlab +kirill +Kirill knitr +krlmlr +labelled learnr +LF +Lifecycle lifecycle +linter +linters lintr +lorenz lorenzwalthert magrittr +mav md +MERCHANTABILITY mlr mlr's +mutli +Müller +navbar +nbv +netlify nocomments +NONINFRINGEMENT +nonportable +nzchar +ocx oneliner +ORCID +ourself +packrat pandoc +params parsable +parsesum +Patil +patilindrajeet patilindrajeets +pdy +PGW pkgapi pkgconfig pkgdown pos pre precommit +prefill prettycode priori +PRs +purrr +qez qmd +RcppExports +README readme rebased +reindent reindented reindention +relevel +renv repo reprex +revdepcheck rlang rlang's +RMarkdown +Rmarkdown rmarkdown +Rmd rmd +Rnw rnw roadmap +Robinlovelace +roclet +roclets ropensci +roxgen +Roxygen roxygen +RoxygenNote rplumber rprofile +rprojroot +RStudio +RStudio's +rstudioapi +saamwerk +Sd semicoloner +Shallowify sharding spaceout +StackOverflow +styler stylerignore stylerignored +stylers +Stylers +sublicense +summarises testthat +tg +th tibble tibbles +tidyr +Tidyverse tidyverse +todo travis +ubuntu +Uf +ui uncached unexplainable unicode +Unindent unindent unindention unlink @@ -132,9 +215,24 @@ unnest utf vctrs vec +Vh +VignetteBuilder +Visit'em +walthert +Walthert +winbuilder withr +WN +www xaringan xfun +Xie +xk +XN +YAML yaml yihui +yl +YPa +zm zzz From 173d39722718c004017dde31194b1a5e47d6b99a Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 20:42:54 +0100 Subject: [PATCH 186/238] consolidate into an existing check --- .github/workflows/check-all-examples.yaml | 48 ---------------------- .github/workflows/check-no-warnings.yaml | 48 ++++++++++++++++++++++ .github/workflows/check-test-warnings.yaml | 39 ------------------ 3 files changed, 48 insertions(+), 87 deletions(-) delete mode 100644 .github/workflows/check-all-examples.yaml create mode 100644 .github/workflows/check-no-warnings.yaml delete mode 100644 .github/workflows/check-test-warnings.yaml diff --git a/.github/workflows/check-all-examples.yaml b/.github/workflows/check-all-examples.yaml deleted file mode 100644 index d1f1507f0..000000000 --- a/.github/workflows/check-all-examples.yaml +++ /dev/null @@ -1,48 +0,0 @@ -# Make sure all examples run successfully, even the ones that are not supposed -# to be run or tested on CRAN machines by default. -# -# The examples that fail should use -# - `if (FALSE) { ... }` (if example is included only for illustrative purposes) -# - `try({ ... })` (if the intent is to show the error) -# -# This workflow helps find such failing examples that need to be modified. - -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - -name: check-all-examples - -jobs: - check-all-examples: - runs-on: ubuntu-latest - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - - steps: - - uses: actions/checkout@v4 - - - uses: r-lib/actions/setup-r@v2 - with: - use-public-rspm: true - - - uses: r-lib/actions/setup-r-dependencies@v2 - with: - pak-version: devel - extra-packages: | - any::devtools - local::. - - - name: Run examples - run: | - options( - crayon.enabled = TRUE, - warn = 2L, - warnPartialMatchArgs = TRUE, - warnPartialMatchAttr = TRUE, - warnPartialMatchDollar = TRUE - ) - devtools::run_examples(fresh = TRUE, run_dontrun = TRUE, run_donttest = TRUE) - shell: Rscript {0} diff --git a/.github/workflows/check-no-warnings.yaml b/.github/workflows/check-no-warnings.yaml new file mode 100644 index 000000000..4b792a68d --- /dev/null +++ b/.github/workflows/check-no-warnings.yaml @@ -0,0 +1,48 @@ +# execute all examples and tests with warnings turned into errors to look for new warnings +on: + push: + branches: [main, master] + pull_request: + branches: [main, master] + +name: check-no-warnings + +jobs: + check-no-warnings: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + pak-version: devel + extra-packages: | + any::devtools + local::. + + - name: Run examples + run: | + options(crayon.enabled = TRUE, warn = 2L) + devtools::run_examples(fresh = TRUE, run_dontrun = TRUE, run_donttest = TRUE) + shell: Rscript {0} + + - name: Run Tests + run: | + options(crayon.enabled = TRUE) + pkgload::load_all() + # this workaround needed to play nicely with parallel testing + # see: https://github.com/r-lib/testthat/issues/1912 + test_script_paths <- testthat::find_test_scripts("tests/testthat") + test_with_warning_as_error <- function(path) { + withr::local_options(list(warn = 2L)) + testthat::test_file(path, stop_on_failure = TRUE, stop_on_warning = TRUE) + } + purrr::walk(test_script_paths, test_with_warning_as_error) + shell: Rscript {0} diff --git a/.github/workflows/check-test-warnings.yaml b/.github/workflows/check-test-warnings.yaml deleted file mode 100644 index 414385293..000000000 --- a/.github/workflows/check-test-warnings.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# based on test-coverage, running testthat with options(warn = 2) to fail on test warnings -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] - -name: test-package - -jobs: - test-package: - runs-on: ubuntu-latest - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - - steps: - - uses: actions/checkout@v4 - - - uses: r-lib/actions/setup-r@v2 - with: - use-public-rspm: true - - - uses: r-lib/actions/setup-r-dependencies@v2 - with: - extra-packages: local::. - - - name: Run Tests - run: | - ## -------------------------------------------------------------------- - options( - crayon.enabled = TRUE, - warn = 2L, - warnPartialMatchArgs = TRUE, - warnPartialMatchAttr = TRUE, - warnPartialMatchDollar = TRUE - ) - if (Sys.getenv("_R_CHECK_FORCE_SUGGESTS_", "") == "") Sys.setenv("_R_CHECK_FORCE_SUGGESTS_" = "false") - testthat::test_dir("tests") - shell: Rscript {0} From 8fb3d272c32d7b0a444d2613526818750d425679 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 20:45:48 +0100 Subject: [PATCH 187/238] check with devel spelling --- .pre-commit-config.yaml | 2 + inst/WORDLIST | 162 ++++++++-------------------------------- 2 files changed, 34 insertions(+), 130 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4f34c10b7..ab505369f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -39,6 +39,8 @@ repos: - rlang - id: use-tidy-description - id: spell-check + additional_dependencies: + - ropensci/spelling exclude: > (?x)^( \.github/.*\.yaml| diff --git a/inst/WORDLIST b/inst/WORDLIST index a6c3937ce..f70375732 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,213 +1,130 @@ +AST Addin -addin Addins -addins -api AppVeyor +CMD +DSLs +EOF +EOL +EOLs +EQ +Freepik +Gayathri +Github +Invasiveness +JamesIves +Jupyterlab +LF +Lifecycle +ORCID +README +RMarkdown +RStudio +Rmarkdown +Rmd +Rnw +Robinlovelace +Roxygen +Shallowify +StackOverflow +Tidyverse +Unindent +Visit'em +YAML +addin +addins arg -AST -aut -backport backports bdr benchmarking -bootswatch -BugReports -bXj cancelling ci cli -CMD -codebase codegrip coercible coercions -compat config counterpair -coventions -cpp -cre -cyclocomp -cynkra dec dependabot -desc -devtools dir dont dontrun dontshow donttest dplyr -DSLs emacs -EOF -EOL -EOLs -EQ examplesIf -expr -eZm fansi -Fi filetype -Fjmav flaticon forcond formatter -Freepik gadenbuie -Gayathri -getOption ggplot -Github github -gitsum -gmail grkstyle -GSOC helpfiles -href https -icloud ifelse -Indrajeet -indrajeetspatilmorality -initializer inode integrations internal's -Invasiveness invasiveness io ixmypi -JamesIves -JBP -Jupyterlab -kirill -Kirill knitr -krlmlr -labelled learnr -LF -Lifecycle lifecycle -linter -linters lintr -lorenz lorenzwalthert magrittr -mav md -MERCHANTABILITY mlr mlr's -mutli -Müller -navbar -nbv -netlify nocomments -NONINFRINGEMENT -nonportable -nzchar -ocx oneliner -ORCID -ourself -packrat pandoc -params parsable -parsesum -Patil -patilindrajeet patilindrajeets -pdy -PGW pkgapi pkgconfig pkgdown pos pre precommit -prefill prettycode priori -PRs -purrr -qez qmd -RcppExports -README readme rebased -reindent reindented reindention -relevel -renv repo reprex -revdepcheck rlang rlang's -RMarkdown -Rmarkdown rmarkdown -Rmd rmd -Rnw rnw roadmap -Robinlovelace -roclet -roclets ropensci -roxgen -Roxygen roxygen -RoxygenNote rplumber rprofile -rprojroot -RStudio -RStudio's -rstudioapi -saamwerk -Sd semicoloner -Shallowify sharding spaceout -StackOverflow -styler stylerignore stylerignored -stylers -Stylers -sublicense -summarises testthat -tg -th tibble tibbles -tidyr -Tidyverse tidyverse -todo travis -ubuntu -Uf -ui uncached unexplainable unicode -Unindent unindent unindention unlink @@ -215,24 +132,9 @@ unnest utf vctrs vec -Vh -VignetteBuilder -Visit'em -walthert -Walthert -winbuilder withr -WN -www xaringan xfun -Xie -xk -XN -YAML yaml yihui -yl -YPa -zm zzz From e89e65b2a4dc445f21e512c5ca32fa37cd9c109b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 30 Nov 2024 19:50:34 +0000 Subject: [PATCH 188/238] pre-commit --- inst/WORDLIST | 162 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 130 insertions(+), 32 deletions(-) diff --git a/inst/WORDLIST b/inst/WORDLIST index f70375732..a6c3937ce 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,130 +1,213 @@ -AST Addin -Addins -AppVeyor -CMD -DSLs -EOF -EOL -EOLs -EQ -Freepik -Gayathri -Github -Invasiveness -JamesIves -Jupyterlab -LF -Lifecycle -ORCID -README -RMarkdown -RStudio -Rmarkdown -Rmd -Rnw -Robinlovelace -Roxygen -Shallowify -StackOverflow -Tidyverse -Unindent -Visit'em -YAML addin +Addins addins +api +AppVeyor arg +AST +aut +backport backports bdr benchmarking +bootswatch +BugReports +bXj cancelling ci cli +CMD +codebase codegrip coercible coercions +compat config counterpair +coventions +cpp +cre +cyclocomp +cynkra dec dependabot +desc +devtools dir dont dontrun dontshow donttest dplyr +DSLs emacs +EOF +EOL +EOLs +EQ examplesIf +expr +eZm fansi +Fi filetype +Fjmav flaticon forcond formatter +Freepik gadenbuie +Gayathri +getOption ggplot +Github github +gitsum +gmail grkstyle +GSOC helpfiles +href https +icloud ifelse +Indrajeet +indrajeetspatilmorality +initializer inode integrations internal's +Invasiveness invasiveness io ixmypi +JamesIves +JBP +Jupyterlab +kirill +Kirill knitr +krlmlr +labelled learnr +LF +Lifecycle lifecycle +linter +linters lintr +lorenz lorenzwalthert magrittr +mav md +MERCHANTABILITY mlr mlr's +mutli +Müller +navbar +nbv +netlify nocomments +NONINFRINGEMENT +nonportable +nzchar +ocx oneliner +ORCID +ourself +packrat pandoc +params parsable +parsesum +Patil +patilindrajeet patilindrajeets +pdy +PGW pkgapi pkgconfig pkgdown pos pre precommit +prefill prettycode priori +PRs +purrr +qez qmd +RcppExports +README readme rebased +reindent reindented reindention +relevel +renv repo reprex +revdepcheck rlang rlang's +RMarkdown +Rmarkdown rmarkdown +Rmd rmd +Rnw rnw roadmap +Robinlovelace +roclet +roclets ropensci +roxgen +Roxygen roxygen +RoxygenNote rplumber rprofile +rprojroot +RStudio +RStudio's +rstudioapi +saamwerk +Sd semicoloner +Shallowify sharding spaceout +StackOverflow +styler stylerignore stylerignored +stylers +Stylers +sublicense +summarises testthat +tg +th tibble tibbles +tidyr +Tidyverse tidyverse +todo travis +ubuntu +Uf +ui uncached unexplainable unicode +Unindent unindent unindention unlink @@ -132,9 +215,24 @@ unnest utf vctrs vec +Vh +VignetteBuilder +Visit'em +walthert +Walthert +winbuilder withr +WN +www xaringan xfun +Xie +xk +XN +YAML yaml yihui +yl +YPa +zm zzz From 5aa06990060e059de75cfa5682ad7d850b36a270 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 20:53:25 +0100 Subject: [PATCH 189/238] Update .pre-commit-config.yaml --- .pre-commit-config.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ab505369f..4f34c10b7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -39,8 +39,6 @@ repos: - rlang - id: use-tidy-description - id: spell-check - additional_dependencies: - - ropensci/spelling exclude: > (?x)^( \.github/.*\.yaml| From ab6cb648791050ce6792285c6cb6fd4acba762e2 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 30 Nov 2024 23:14:48 +0100 Subject: [PATCH 190/238] address feedback --- R/rules-line-breaks.R | 9 ++------- R/style-guides.R | 4 ++-- tests/testthat/test-transformers-drop.R | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 4ae18b760..d1c4458f5 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -449,12 +449,7 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { } -reduce_extra_blank_lines_between_scopes <- function(pd, allowed_blank_lines = 2L) { - # Calculate the maximum allowed lag_newlines - max_lag_newlines <- allowed_blank_lines + 1L # +1 accounts for the line with the previous token - - # cap lag_newlines at max_lag_newlines - pd$lag_newlines <- pmin(pd$lag_newlines, max_lag_newlines) - +reduce_extra_blank_lines_between_top_level_exprs <- function(pd, allowed_blank_lines = 2L) { + pd$lag_newlines <- pmin(pd$lag_newlines, allowed_blank_lines + 1L) pd } diff --git a/R/style-guides.R b/R/style-guides.R index b1fad6bc7..f73fe8a0e 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -139,8 +139,8 @@ tidyverse_style <- function(scope = "tokens", if (strict) remove_line_break_before_round_closing_after_curly, remove_line_breaks_in_fun_dec = if (strict) remove_line_breaks_in_fun_dec, - reduce_extra_blank_lines_between_scopes = - if (strict) reduce_extra_blank_lines_between_scopes, + reduce_extra_blank_lines_between_top_level_exprs = + if (strict) reduce_extra_blank_lines_between_top_level_exprs, style_line_break_around_curly = partial( style_line_break_around_curly, strict diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index 6d7dc099a..659baa18d 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -72,7 +72,7 @@ test_that("tidyverse transformers are correctly dropped", { names_line_break <- c( "remove_empty_lines_after_opening_and_before_closing_braces", - "reduce_extra_blank_lines_between_scopes", + "reduce_extra_blank_lines_between_top_level_exprs", "set_line_break_around_comma_and_or", "set_line_break_after_assignment", "set_line_break_after_opening_if_call_is_multi_line", From 5b598ecd3016bf107a8b63a86e2c985bd450fab4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 03:22:02 +0000 Subject: [PATCH 191/238] Bump JamesIves/github-pages-deploy-action from 4.6.9 to 4.7.1 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.9 to 4.7.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.9...v4.7.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 466abf1e0..cc8ffb62f 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.6.9 + uses: JamesIves/github-pages-deploy-action@v4.7.1 with: clean: false branch: gh-pages From 7dc83bade493a6d481004871dab7639b95991aec Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 2 Dec 2024 10:08:55 +0100 Subject: [PATCH 192/238] make name of transformer more similar to existing ones --- R/rules-line-breaks.R | 2 +- R/style-guides.R | 4 ++-- tests/testthat/test-transformers-drop.R | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index d1c4458f5..a02177e5e 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -449,7 +449,7 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { } -reduce_extra_blank_lines_between_top_level_exprs <- function(pd, allowed_blank_lines = 2L) { +set_line_breaks_between_top_level_exprs <- function(pd, allowed_blank_lines = 2L) { pd$lag_newlines <- pmin(pd$lag_newlines, allowed_blank_lines + 1L) pd } diff --git a/R/style-guides.R b/R/style-guides.R index f73fe8a0e..b11ff613c 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -139,8 +139,8 @@ tidyverse_style <- function(scope = "tokens", if (strict) remove_line_break_before_round_closing_after_curly, remove_line_breaks_in_fun_dec = if (strict) remove_line_breaks_in_fun_dec, - reduce_extra_blank_lines_between_top_level_exprs = - if (strict) reduce_extra_blank_lines_between_top_level_exprs, + set_line_breaks_between_top_level_exprs = + if (strict) set_line_breaks_between_top_level_exprs , style_line_break_around_curly = partial( style_line_break_around_curly, strict diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index 659baa18d..dfd51afda 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -72,7 +72,7 @@ test_that("tidyverse transformers are correctly dropped", { names_line_break <- c( "remove_empty_lines_after_opening_and_before_closing_braces", - "reduce_extra_blank_lines_between_top_level_exprs", + "set_line_breaks_between_top_level_exprs ", "set_line_break_around_comma_and_or", "set_line_break_after_assignment", "set_line_break_after_opening_if_call_is_multi_line", From a59d4bbdafa37089e38a5c1c885ad92a133ea267 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 2 Dec 2024 09:10:41 +0000 Subject: [PATCH 193/238] pre-commit --- R/rules-line-breaks.R | 2 +- R/style-guides.R | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index a02177e5e..5a007bdff 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -449,7 +449,7 @@ remove_empty_lines_after_opening_and_before_closing_braces <- function(pd) { } -set_line_breaks_between_top_level_exprs <- function(pd, allowed_blank_lines = 2L) { +set_line_breaks_between_top_level_exprs <- function(pd, allowed_blank_lines = 2L) { pd$lag_newlines <- pmin(pd$lag_newlines, allowed_blank_lines + 1L) pd } diff --git a/R/style-guides.R b/R/style-guides.R index b11ff613c..93ea89dd2 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -139,8 +139,8 @@ tidyverse_style <- function(scope = "tokens", if (strict) remove_line_break_before_round_closing_after_curly, remove_line_breaks_in_fun_dec = if (strict) remove_line_breaks_in_fun_dec, - set_line_breaks_between_top_level_exprs = - if (strict) set_line_breaks_between_top_level_exprs , + set_line_breaks_between_top_level_exprs = + if (strict) set_line_breaks_between_top_level_exprs, style_line_break_around_curly = partial( style_line_break_around_curly, strict From e843fd5dc65f5fb06348dbcfbf2c077524e1e8a1 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 3 Dec 2024 17:31:16 +0300 Subject: [PATCH 194/238] create a new test collection instead of modifying existing tests --- .../testthat/line_breaks_and_other/curly-in.R | 9 ------ .../line_breaks_and_other/curly-out.R | 6 ---- .../pipe_and_comment-in.R | 20 ------------- .../pipe_and_comment-out.R | 12 -------- .../blank-non-strict-in.R | 4 --- .../blank-non-strict-out.R | 4 --- .../line_breaks_top_level_exprs/braces-in.R | 16 ++++++++++ .../line_breaks_top_level_exprs/braces-out.R | 11 +++++++ .../conditionals-in.R | 20 +++++++++++++ .../conditionals-out.R | 11 +++++++ .../function_defs_and_calls-in.R | 23 ++++++++++++++ .../function_defs_and_calls-out.R | 12 ++++++++ .../non_strict-in.R | 23 ++++++++++++++ .../non_strict-out.R | 12 ++++++++ .../piped_chains-in.R | 21 +++++++++++++ .../piped_chains-out.R | 10 +++++++ .../test-line_breaks_top_level_exprs.R | 30 +++++++++++++++++++ tests/testthat/test-transformers-drop.R | 2 +- 18 files changed, 190 insertions(+), 56 deletions(-) create mode 100644 tests/testthat/line_breaks_top_level_exprs/braces-in.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/braces-out.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/conditionals-in.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/conditionals-out.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-in.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-out.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/non_strict-in.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/non_strict-out.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/piped_chains-in.R create mode 100644 tests/testthat/line_breaks_top_level_exprs/piped_chains-out.R create mode 100644 tests/testthat/test-line_breaks_top_level_exprs.R diff --git a/tests/testthat/line_breaks_and_other/curly-in.R b/tests/testthat/line_breaks_and_other/curly-in.R index 31e6fc468..8da4db732 100644 --- a/tests/testthat/line_breaks_and_other/curly-in.R +++ b/tests/testthat/line_breaks_and_other/curly-in.R @@ -59,12 +59,3 @@ while (TRUE){ while (TRUE){# } - - -for (i in 1:10) {} - - - - - -while (TRUE) {} diff --git a/tests/testthat/line_breaks_and_other/curly-out.R b/tests/testthat/line_breaks_and_other/curly-out.R index 753c2a853..22730a44b 100644 --- a/tests/testthat/line_breaks_and_other/curly-out.R +++ b/tests/testthat/line_breaks_and_other/curly-out.R @@ -53,9 +53,3 @@ while (TRUE) { while (TRUE) { # } - - -for (i in 1:10) {} - - -while (TRUE) {} diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R b/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R index 43970b285..f0dcfb1d5 100644 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R +++ b/tests/testthat/line_breaks_and_other/pipe_and_comment-in.R @@ -1,22 +1,2 @@ 1:10 %>% # sum sum() - - -f %>% g() - - - - - -h %>% i() - - - - - -# some comment - - - - -j %>% k() diff --git a/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R b/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R index ed19d1149..f0dcfb1d5 100644 --- a/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R +++ b/tests/testthat/line_breaks_and_other/pipe_and_comment-out.R @@ -1,14 +1,2 @@ 1:10 %>% # sum sum() - - -f %>% g() - - -h %>% i() - - -# some comment - - -j %>% k() diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R b/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R index cf1631c36..21225f5f8 100644 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R +++ b/tests/testthat/line_breaks_fun_call/blank-non-strict-in.R @@ -10,10 +10,6 @@ call( 1 ) - - - - call( x = 2, 1, diff --git a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R index 9579dbf4d..02330a9ec 100644 --- a/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R +++ b/tests/testthat/line_breaks_fun_call/blank-non-strict-out.R @@ -8,10 +8,6 @@ call( 1 ) - - - - call( x = 2, 1, diff --git a/tests/testthat/line_breaks_top_level_exprs/braces-in.R b/tests/testthat/line_breaks_top_level_exprs/braces-in.R new file mode 100644 index 000000000..d504e6413 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/braces-in.R @@ -0,0 +1,16 @@ +{ + 1 + 1 +} + + + + + +### some comment + + + + +{ + NULL +} diff --git a/tests/testthat/line_breaks_top_level_exprs/braces-out.R b/tests/testthat/line_breaks_top_level_exprs/braces-out.R new file mode 100644 index 000000000..9fd7a480d --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/braces-out.R @@ -0,0 +1,11 @@ +{ + 1 + 1 +} + + +### some comment + + +{ + NULL +} diff --git a/tests/testthat/line_breaks_top_level_exprs/conditionals-in.R b/tests/testthat/line_breaks_top_level_exprs/conditionals-in.R new file mode 100644 index 000000000..37e07e57f --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/conditionals-in.R @@ -0,0 +1,20 @@ +for (i in 1:10) {} + + + + + + +# some comment + + + + + +while (TRUE) {} + + + + +# some comment +if (TRUE) NULL diff --git a/tests/testthat/line_breaks_top_level_exprs/conditionals-out.R b/tests/testthat/line_breaks_top_level_exprs/conditionals-out.R new file mode 100644 index 000000000..54104e290 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/conditionals-out.R @@ -0,0 +1,11 @@ +for (i in 1:10) {} + + +# some comment + + +while (TRUE) {} + + +# some comment +if (TRUE) NULL diff --git a/tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-in.R b/tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-in.R new file mode 100644 index 000000000..4a18af903 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-in.R @@ -0,0 +1,23 @@ +f <- function() NULL + + + + + + + + +g <- function() NULL + + + + +f() + +# comment + + + + + +g() diff --git a/tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-out.R b/tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-out.R new file mode 100644 index 000000000..741c47309 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/function_defs_and_calls-out.R @@ -0,0 +1,12 @@ +f <- function() NULL + + +g <- function() NULL + + +f() + +# comment + + +g() diff --git a/tests/testthat/line_breaks_top_level_exprs/non_strict-in.R b/tests/testthat/line_breaks_top_level_exprs/non_strict-in.R new file mode 100644 index 000000000..4a18af903 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/non_strict-in.R @@ -0,0 +1,23 @@ +f <- function() NULL + + + + + + + + +g <- function() NULL + + + + +f() + +# comment + + + + + +g() diff --git a/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R b/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R new file mode 100644 index 000000000..741c47309 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R @@ -0,0 +1,12 @@ +f <- function() NULL + + +g <- function() NULL + + +f() + +# comment + + +g() diff --git a/tests/testthat/line_breaks_top_level_exprs/piped_chains-in.R b/tests/testthat/line_breaks_top_level_exprs/piped_chains-in.R new file mode 100644 index 000000000..75a3abee2 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/piped_chains-in.R @@ -0,0 +1,21 @@ + + +f %>% g() + + + + + + +h %>% i() + + + + + +# some comment + + + + +j %>% k() diff --git a/tests/testthat/line_breaks_top_level_exprs/piped_chains-out.R b/tests/testthat/line_breaks_top_level_exprs/piped_chains-out.R new file mode 100644 index 000000000..b424cbba1 --- /dev/null +++ b/tests/testthat/line_breaks_top_level_exprs/piped_chains-out.R @@ -0,0 +1,10 @@ +f %>% g() + + +h %>% i() + + +# some comment + + +j %>% k() diff --git a/tests/testthat/test-line_breaks_top_level_exprs.R b/tests/testthat/test-line_breaks_top_level_exprs.R new file mode 100644 index 000000000..dd8c95da8 --- /dev/null +++ b/tests/testthat/test-line_breaks_top_level_exprs.R @@ -0,0 +1,30 @@ +test_that("extra line breaks between conditional statements are removed", { + expect_no_warning( + test_collection("line_breaks_top_level_exprs", "conditionals", transformer = style_text) + ) +}) + +test_that("extra line breaks between function and definitions and calls are removed", { + expect_no_warning( + test_collection("line_breaks_top_level_exprs", "function_defs_and_calls", transformer = style_text) + ) +}) + +test_that("extra line breaks between piped chains are removed", { + expect_no_warning( + test_collection("line_breaks_top_level_exprs", "piped_chains", transformer = style_text) + ) +}) + +test_that("extra line breaks between braced expressions are removed", { + expect_no_warning( + test_collection("line_breaks_top_level_exprs", "braces", transformer = style_text) + ) +}) + +test_that("extra line breaks are not removed in non-strict mode", { + expect_no_warning( + test_collection("line_breaks_top_level_exprs", "non_strict", transformer = style_text) + ) +}) + diff --git a/tests/testthat/test-transformers-drop.R b/tests/testthat/test-transformers-drop.R index dfd51afda..ad10908f5 100644 --- a/tests/testthat/test-transformers-drop.R +++ b/tests/testthat/test-transformers-drop.R @@ -72,7 +72,7 @@ test_that("tidyverse transformers are correctly dropped", { names_line_break <- c( "remove_empty_lines_after_opening_and_before_closing_braces", - "set_line_breaks_between_top_level_exprs ", + "set_line_breaks_between_top_level_exprs", "set_line_break_around_comma_and_or", "set_line_break_after_assignment", "set_line_break_after_opening_if_call_is_multi_line", From 127588acff38389a4374b8fffe32404cf2bb8199 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 3 Dec 2024 14:32:58 +0000 Subject: [PATCH 195/238] pre-commit --- tests/testthat/test-line_breaks_top_level_exprs.R | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/testthat/test-line_breaks_top_level_exprs.R b/tests/testthat/test-line_breaks_top_level_exprs.R index dd8c95da8..d3a834ea1 100644 --- a/tests/testthat/test-line_breaks_top_level_exprs.R +++ b/tests/testthat/test-line_breaks_top_level_exprs.R @@ -27,4 +27,3 @@ test_that("extra line breaks are not removed in non-strict mode", { test_collection("line_breaks_top_level_exprs", "non_strict", transformer = style_text) ) }) - From 784803915e31c958a06a434f714b6e082bc9a865 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 3 Dec 2024 17:34:16 +0300 Subject: [PATCH 196/238] correct non-strict mode test --- .../line_breaks_top_level_exprs/non_strict-out.R | 11 +++++++++++ tests/testthat/test-line_breaks_top_level_exprs.R | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R b/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R index 741c47309..4a18af903 100644 --- a/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R +++ b/tests/testthat/line_breaks_top_level_exprs/non_strict-out.R @@ -1,12 +1,23 @@ f <- function() NULL + + + + + + g <- function() NULL + + f() # comment + + + g() diff --git a/tests/testthat/test-line_breaks_top_level_exprs.R b/tests/testthat/test-line_breaks_top_level_exprs.R index dd8c95da8..691c69d30 100644 --- a/tests/testthat/test-line_breaks_top_level_exprs.R +++ b/tests/testthat/test-line_breaks_top_level_exprs.R @@ -24,7 +24,7 @@ test_that("extra line breaks between braced expressions are removed", { test_that("extra line breaks are not removed in non-strict mode", { expect_no_warning( - test_collection("line_breaks_top_level_exprs", "non_strict", transformer = style_text) + test_collection("line_breaks_top_level_exprs", "non_strict", transformer = style_text, strict = FALSE) ) }) From e4da5ae78c242c643eb45a1ebc9f04d40f3279a4 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 7 Dec 2024 08:35:49 +0530 Subject: [PATCH 197/238] Remove spaces around dollar operator --- R/rules-spaces.R | 3 ++- R/style-guides.R | 4 ++-- tests/testthat/indention_operators/dollar_R6-in.R | 2 +- tests/testthat/indention_operators/dollar_R6-out.R | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 54f4bf289..6dad9d34e 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -341,9 +341,10 @@ set_space_after_bang_bang <- function(pd_flat) { pd_flat } -remove_space_before_dollar <- function(pd_flat) { +remove_space_around_dollar <- function(pd_flat) { dollar_after <- (pd_flat$token == "'$'") & (pd_flat$lag_newlines == 0L) dollar_before <- lead(dollar_after, default = FALSE) + pd_flat$spaces[dollar_after] <- 0L pd_flat$spaces[dollar_before] <- 0L pd_flat } diff --git a/R/style-guides.R b/R/style-guides.R index 93ea89dd2..51e758c2c 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -108,7 +108,7 @@ tidyverse_style <- function(scope = "tokens", remove_space_after_opening_paren = remove_space_after_opening_paren, remove_space_after_excl = remove_space_after_excl, set_space_after_bang_bang = set_space_after_bang_bang, - remove_space_before_dollar = remove_space_before_dollar, + remove_space_around_dollar = remove_space_around_dollar, remove_space_after_fun_dec = remove_space_after_fun_dec, remove_space_around_colons = remove_space_around_colons, start_comments_with_space = partial(start_comments_with_space, @@ -205,7 +205,7 @@ tidyverse_style <- function(scope = "tokens", # remove_space_after_opening_paren = c("'('", "'['", "LBB"), remove_space_after_excl = "'!'", set_space_after_bang_bang = "'!'", - remove_space_before_dollar = "'$'", + remove_space_around_dollar = "'$'", remove_space_after_fun_dec = "FUNCTION", remove_space_around_colons = c("':'", "NS_GET_INT", "NS_GET"), start_comments_with_space = "COMMENT", diff --git a/tests/testthat/indention_operators/dollar_R6-in.R b/tests/testthat/indention_operators/dollar_R6-in.R index de575d6a5..399ebe5ea 100644 --- a/tests/testthat/indention_operators/dollar_R6-in.R +++ b/tests/testthat/indention_operators/dollar_R6-in.R @@ -1,4 +1,4 @@ x$ - add(10) $ + add(10) $ add(10) $ add(10)$sum + 3 diff --git a/tests/testthat/indention_operators/dollar_R6-out.R b/tests/testthat/indention_operators/dollar_R6-out.R index e4cf03219..25744ef23 100644 --- a/tests/testthat/indention_operators/dollar_R6-out.R +++ b/tests/testthat/indention_operators/dollar_R6-out.R @@ -1,4 +1,4 @@ x$ - add(10)$ + add(10)$add(10)$ add(10)$sum + 3 From bf5c500423df894eba40bc37b048f76ce0c096c3 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 7 Dec 2024 08:56:47 +0530 Subject: [PATCH 198/238] fix --- R/rules-spaces.R | 2 +- tests/testthat/indention_operators/dollar_R6-in.R | 2 +- tests/testthat/indention_operators/dollar_R6-out.R | 2 +- tests/testthat/spacing/dollar-in.R | 5 +++++ tests/testthat/spacing/dollar-out.R | 5 +++++ tests/testthat/test-spacing.R | 7 +++++++ 6 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 tests/testthat/spacing/dollar-in.R create mode 100644 tests/testthat/spacing/dollar-out.R diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 6dad9d34e..835b25e91 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -344,8 +344,8 @@ set_space_after_bang_bang <- function(pd_flat) { remove_space_around_dollar <- function(pd_flat) { dollar_after <- (pd_flat$token == "'$'") & (pd_flat$lag_newlines == 0L) dollar_before <- lead(dollar_after, default = FALSE) - pd_flat$spaces[dollar_after] <- 0L pd_flat$spaces[dollar_before] <- 0L + pd_flat$spaces[dollar_after] <- 0L pd_flat } diff --git a/tests/testthat/indention_operators/dollar_R6-in.R b/tests/testthat/indention_operators/dollar_R6-in.R index 399ebe5ea..a3bf2f591 100644 --- a/tests/testthat/indention_operators/dollar_R6-in.R +++ b/tests/testthat/indention_operators/dollar_R6-in.R @@ -1,4 +1,4 @@ - x$ + x$ add(10)$ add(10) $ add(10) $ add(10)$sum + 3 diff --git a/tests/testthat/indention_operators/dollar_R6-out.R b/tests/testthat/indention_operators/dollar_R6-out.R index 25744ef23..8111d3582 100644 --- a/tests/testthat/indention_operators/dollar_R6-out.R +++ b/tests/testthat/indention_operators/dollar_R6-out.R @@ -1,4 +1,4 @@ -x$ +x$add(10)$ add(10)$add(10)$ add(10)$sum + 3 diff --git a/tests/testthat/spacing/dollar-in.R b/tests/testthat/spacing/dollar-in.R new file mode 100644 index 000000000..3ac9a459a --- /dev/null +++ b/tests/testthat/spacing/dollar-in.R @@ -0,0 +1,5 @@ +mtcars $wt + +mtcars$ wt + +mtcars $ wt diff --git a/tests/testthat/spacing/dollar-out.R b/tests/testthat/spacing/dollar-out.R new file mode 100644 index 000000000..070ddc731 --- /dev/null +++ b/tests/testthat/spacing/dollar-out.R @@ -0,0 +1,5 @@ +mtcars$wt + +mtcars$wt + +mtcars$wt diff --git a/tests/testthat/test-spacing.R b/tests/testthat/test-spacing.R index 7fdb6e55a..20ae4c695 100644 --- a/tests/testthat/test-spacing.R +++ b/tests/testthat/test-spacing.R @@ -76,3 +76,10 @@ test_that("spacing around square brackets / braces", { transformer = style_text, strict = TRUE ), NA) }) + +test_that("spacing around dollar", { + expect_warning(test_collection( + "spacing", "dollar", + transformer = style_text, strict = TRUE + ), NA) +}) From 53ce031ddcc442d65174cff99bcb094d7d0ec64c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 03:47:27 +0000 Subject: [PATCH 199/238] Bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.1 to 4.7.2. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.1...v4.7.2) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index cc8ffb62f..91711d445 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.7.1 + uses: JamesIves/github-pages-deploy-action@v4.7.2 with: clean: false branch: gh-pages From 0d4cc5180a32c79afa484fca306087029b1567b0 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 9 Dec 2024 12:05:12 +0530 Subject: [PATCH 200/238] Use `expect_no_warning()` Instead of `expect_warning()` + `NA` combo --- DESCRIPTION | 2 +- tests/testthat/test-curly-curly.R | 4 +- tests/testthat/test-detect-alignment.R | 6 +- tests/testthat/test-escaping.R | 4 +- tests/testthat/test-fun_dec.R | 8 +- tests/testthat/test-indention_curly.R | 24 ++--- tests/testthat/test-indention_fun_calls.R | 4 +- tests/testthat/test-indention_multiple.R | 32 +++---- tests/testthat/test-indention_operators.R | 95 +++++++++---------- .../testthat/test-indention_round_brackets.R | 12 +-- .../test-insertion_comment_interaction.R | 24 ++--- tests/testthat/test-line_breaks_and_other.R | 48 +++++----- tests/testthat/test-line_breaks_fun_call.R | 40 ++++---- tests/testthat/test-math_token_spacing.R | 16 ++-- tests/testthat/test-multiple_expressions.R | 8 +- tests/testthat/test-parse_comments.R | 44 ++++----- tests/testthat/test-parsing.R | 5 +- tests/testthat/test-relocate_eq_assign.R | 16 ++-- tests/testthat/test-rmd.R | 32 +++---- tests/testthat/test-rnw.R | 8 +- .../test-roxygen-examples-complete-01.R | 2 +- .../test-roxygen-examples-complete-02.R | 2 +- .../test-roxygen-examples-complete-03.R | 2 +- .../test-roxygen-examples-complete-04.R | 2 +- .../test-roxygen-examples-complete-05.R | 2 +- .../test-roxygen-examples-complete-06.R | 2 +- .../test-roxygen-examples-complete-07.R | 2 +- .../test-roxygen-examples-complete-08.R | 2 +- .../test-roxygen-examples-complete-09.R | 2 +- .../test-roxygen-examples-complete-10.R | 2 +- .../test-roxygen-examples-complete-11.R | 2 +- .../test-roxygen-examples-complete-12.R | 2 +- .../test-roxygen-examples-complete-13.R | 2 +- .../test-roxygen-examples-complete-14.R | 2 +- .../test-roxygen-examples-complete-15.R | 2 +- .../test-roxygen-examples-complete-16.R | 2 +- .../test-roxygen-examples-complete-17.R | 2 +- .../test-roxygen-examples-complete-18.R | 2 +- .../test-roxygen-examples-complete-19.R | 2 +- .../test-roxygen-examples-complete-20.R | 2 +- .../test-roxygen-examples-complete-21.R | 2 +- .../test-roxygen-examples-complete-22.R | 2 +- .../test-roxygen-examples-complete-24.R | 2 +- .../test-roxygen-examples-complete-25.R | 2 +- .../test-roxygen-examples-complete-26.R | 2 +- .../test-roxygen-examples-complete-27.R | 2 +- .../test-roxygen-examples-complete-28.R | 2 +- .../test-roxygen-examples-complete-29.R | 2 +- .../test-roxygen-examples-complete-30.R | 2 +- tests/testthat/test-scope-AsIs.R | 32 +++---- tests/testthat/test-scope-character.R | 20 ++-- tests/testthat/test-spacing.R | 48 +++++----- tests/testthat/test-square_brackets.R | 4 +- tests/testthat/test-start_line.R | 4 +- tests/testthat/test-strict.R | 16 ++-- tests/testthat/test-stylerignore.R | 20 ++-- tests/testthat/test-tidyeval.R | 12 +-- tests/testthat/test-token_adding_removing.R | 44 ++++----- tests/testthat/test-unary.R | 12 +-- tests/testthat/test-unindention.R | 12 +-- tests/testthat/test-unindention_regex.R | 8 +- 61 files changed, 359 insertions(+), 363 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index a7d401163..3418e39e5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -44,7 +44,7 @@ Suggests: roxygen2, rstudioapi (>= 0.7), tibble (>= 1.4.2), - testthat (>= 3.0.0) + testthat (>= 3.2.1) VignetteBuilder: knitr Encoding: UTF-8 diff --git a/tests/testthat/test-curly-curly.R b/tests/testthat/test-curly-curly.R index 7d1008cf5..48fcc64d1 100644 --- a/tests/testthat/test-curly-curly.R +++ b/tests/testthat/test-curly-curly.R @@ -1,6 +1,6 @@ test_that("curly-culry", { - expect_warning(test_collection("curly-curly", + expect_no_warning(test_collection("curly-curly", "mixed", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-detect-alignment.R b/tests/testthat/test-detect-alignment.R index e0db9a93f..f28ae6b28 100644 --- a/tests/testthat/test-detect-alignment.R +++ b/tests/testthat/test-detect-alignment.R @@ -1,8 +1,8 @@ test_that("does apply spacing rules only if not aligned", { - expect_warning(test_collection("alignment", + expect_no_warning(test_collection("alignment", transformer = style_text - ), NA) + )) text <- "tribble(\n ~x, ~y,\n 11, list(a = 1),\n 2, list(bjj = 2)\n)" - expect_warning(style_text(text), NA) + expect_no_warning(style_text(text)) }) diff --git a/tests/testthat/test-escaping.R b/tests/testthat/test-escaping.R index f9a5c7864..18bc2cebe 100644 --- a/tests/testthat/test-escaping.R +++ b/tests/testthat/test-escaping.R @@ -1,7 +1,7 @@ test_that("escaping of characters works", { - expect_warning(test_collection("escaping", "basic", + expect_no_warning(test_collection("escaping", "basic", transformer = style_text - ), NA) + )) expect_error(test_collection("escaping", "fail-parsing-1", transformer = style_text diff --git a/tests/testthat/test-fun_dec.R b/tests/testthat/test-fun_dec.R index be01c4af6..c2a5b69d9 100644 --- a/tests/testthat/test-fun_dec.R +++ b/tests/testthat/test-fun_dec.R @@ -1,9 +1,9 @@ test_that("reindent function declaration", { - expect_warning(test_collection("fun_dec", "fun_dec_scope_spaces", + expect_no_warning(test_collection("fun_dec", "fun_dec_scope_spaces", transformer = style_text, scope = "spaces" - ), NA) + )) - expect_warning(test_collection("fun_dec", "line_break_fun_dec", + expect_no_warning(test_collection("fun_dec", "line_break_fun_dec", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-indention_curly.R b/tests/testthat/test-indention_curly.R index fe0e1d928..54b7821a9 100644 --- a/tests/testthat/test-indention_curly.R +++ b/tests/testthat/test-indention_curly.R @@ -1,30 +1,30 @@ test_that("indention on one-liner curley only is not changed", { - expect_warning(test_collection("indention_curly_brackets", + expect_no_warning(test_collection("indention_curly_brackets", "one_line_curly", transformer = style_text - ), NA) + )) }) test_that("indention with multi-line curley only is correct", { - expect_warning(test_collection("indention_curly_brackets", + expect_no_warning(test_collection("indention_curly_brackets", "multi_line_curly_only", transformer = style_text_without_curly_curly - ), NA) + )) }) test_that("indention with multi-line curley and round is correct", { - expect_warning(test_collection("indention_curly_brackets", + expect_no_warning(test_collection("indention_curly_brackets", "multi_line_curly_round_only", transformer = style_text - ), NA) + )) }) test_that("custom indention for curly braces is corretct ", { - expect_warning(test_collection("indention_curly_brackets", + expect_no_warning(test_collection("indention_curly_brackets", "custom", transformer = style_text, indent_by = 4 - ), NA) + )) }) @@ -33,13 +33,13 @@ test_that(paste( "complete styling via top-level api is correct", "(round, curly, spacing)" ), { - expect_warning(test_collection("indention_curly_brackets", + expect_no_warning(test_collection("indention_curly_brackets", "multi_line_curly_round_spacing", transformer = style_text - ), NA) + )) - expect_warning(test_collection("indention_curly_brackets", + expect_no_warning(test_collection("indention_curly_brackets", "multi_line_curly_while_for_if_fun", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-indention_fun_calls.R b/tests/testthat/test-indention_fun_calls.R index eddb4e639..643d5ef9e 100644 --- a/tests/testthat/test-indention_fun_calls.R +++ b/tests/testthat/test-indention_fun_calls.R @@ -1,5 +1,5 @@ test_that("edge cases work", { - expect_warning(test_collection("indention_fun_calls", + expect_no_warning(test_collection("indention_fun_calls", transformer = style_text, strict = FALSE - ), NA) + )) }) diff --git a/tests/testthat/test-indention_multiple.R b/tests/testthat/test-indention_multiple.R index c9d68feac..aa1523bba 100644 --- a/tests/testthat/test-indention_multiple.R +++ b/tests/testthat/test-indention_multiple.R @@ -1,57 +1,57 @@ test_that("multiple round brackets don't cause extraindention", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "round_only", transformer = style_text - ), NA) + )) - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "round_closing_on_same_line", transformer = style_text - ), NA) + )) }) test_that("multiple curly brackets don't cause extraindention", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "curly_only", transformer = style_text_without_curly_curly - ), NA) + )) }) test_that("multiple curly and round brackets don't cause extraindention", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "curly_and_round", transformer = style_text_without_curly_curly - ), NA) + )) }) test_that("multiple curly and round brackets overall test", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "overall", transformer = style_text - ), NA) + )) }) test_that("if and ifelse interacting with curly braces works", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "if_else_curly", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("edge cases work", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "edge_strict", transformer = style_text_without_curly_curly - ), NA) + )) }) test_that("token / braces interaction works", { - expect_warning(test_collection("indention_multiple", + expect_no_warning(test_collection("indention_multiple", "fun_for_new_line", transformer = style_text_without_curly_curly - ), NA) + )) }) diff --git a/tests/testthat/test-indention_operators.R b/tests/testthat/test-indention_operators.R index 2e7d1d4ff..fc4971a23 100644 --- a/tests/testthat/test-indention_operators.R +++ b/tests/testthat/test-indention_operators.R @@ -1,155 +1,152 @@ test_that("pipe is indended correctly", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "pipe", transformer = style_text - ), NA) + )) }) test_that("base pipe is indended correctly", { skip_if(getRversion() < "4.1") - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "base_pipe", transformer = style_text - ), NA) + )) }) test_that("mathematical operators are indended correctly", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "plus_minus", transformer = style_op - ), NA) + )) - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "multiply_divide", transformer = style_op - ), NA) + )) }) test_that("while / for / if without curly brackets", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "while_for_if_without_curly_non_strict", transformer = style_text, strict = FALSE - ), NA) - expect_warning(test_collection("indention_operators", + )) + expect_no_warning(test_collection("indention_operators", "while_for_without_curly_same_line_non_strict", transformer = style_text, strict = FALSE - ), NA) + )) - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "if-else-no-braces-not-strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("function multiline without curly brackets", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "function-multiline-no-braces-strict", transformer = style_text, strict = TRUE - ), NA) - expect_warning(test_collection("indention_operators", + )) + expect_no_warning(test_collection("indention_operators", "function-multiline-no-braces-non-strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("while / for / if without curly brackets", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "while_for_if_without_curly_strict", transformer = style_text, strict = TRUE - ), NA) + )) }) test_that("nested for and indention", { - expect_warning( + expect_no_warning( test_collection("indention_operators", "nested-for-spacing-scope-indention", transformer = style_text, scope = "indention" - ), - NA + ) ) - expect_warning( + expect_no_warning( test_collection("indention_operators", "nested-for-spacing-scope-spaces", transformer = style_text, scope = "spaces" - ), - NA + ) ) }) test_that("logical, special EQ_SUB and EQ_ASSIGN tokens are indented correctly", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "logical_special", transformer = style_text, scope = "line_breaks" - ), NA) + )) - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "eq_assign", transformer = style_text - ), NA) - expect_warning(test_collection("indention_operators", + )) + expect_no_warning(test_collection("indention_operators", "eq_formal_simple", transformer = style_text - ), NA) + )) }) test_that("dollar is indented and spaced correctly", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "dollar", transformer = style_text - ), NA) + )) }) test_that( "code is indented correctly if not first pontial trigger causes indention", { - expect_warning( + expect_no_warning( test_collection( "indention_operators", "not_first_trigger", transformer = style_text - ), - NA + ) ) } ) test_that("indents eq_sub correctly with various levels of scope", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "eq_sub_complex_indention", transformer = style_text, scope = "indention" - ), NA) + )) - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "eq_sub_complex_tokens", transformer = style_text, scope = "tokens" - ), NA) + )) }) test_that("indents eq_formals correctly with various levels of scope", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "eq_formals_complex_indention", transformer = style_text, scope = "indention" - ), NA) + )) - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "eq_formals_complex_tokens", transformer = style_text, scope = "tokens" - ), NA) + )) }) test_that("tilde causes indention and is flattened out", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "tilde", transformer = style_text - ), NA) + )) }) test_that("overall", { - expect_warning(test_collection("indention_operators", + expect_no_warning(test_collection("indention_operators", "overall", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-indention_round_brackets.R b/tests/testthat/test-indention_round_brackets.R index 1e01ade44..9257810f1 100644 --- a/tests/testthat/test-indention_round_brackets.R +++ b/tests/testthat/test-indention_round_brackets.R @@ -1,17 +1,17 @@ test_that("one-line function call yields correct indention", { - expect_warning(test_collection("indention_round_brackets", + expect_no_warning(test_collection("indention_round_brackets", "one_line", transformer = style_text - ), NA) + )) }) ## ............................................................................ test_that(paste("multi-line function call yields correct indention"), { - expect_warning(test_collection("indention_round_brackets", + expect_no_warning(test_collection("indention_round_brackets", "multi_line", transformer = style_text - ), NA) + )) }) ## ............................................................................ @@ -22,8 +22,8 @@ test_that(paste("multi-line function call yields correct indention"), { # Does NOT cover indention by operators such as +" test_that("arithmetic grouping with braces yields correctly indention", { - expect_warning(test_collection("indention_round_brackets", + expect_no_warning(test_collection("indention_round_brackets", "arithmetic", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-insertion_comment_interaction.R b/tests/testthat/test-insertion_comment_interaction.R index e9b97cdc4..5a1c08c45 100644 --- a/tests/testthat/test-insertion_comment_interaction.R +++ b/tests/testthat/test-insertion_comment_interaction.R @@ -2,24 +2,24 @@ ## strict = TRUE #### test_that("token are added correctly to conditional statements", { - expect_warning(test_collection( + expect_no_warning(test_collection( "insertion_comment_interaction", "just_if_strict", transformer = style_text - ), NA) + )) }) test_that("token are added correctly to conditional statements", { - expect_warning(test_collection( + expect_no_warning(test_collection( "insertion_comment_interaction", "if_else_strict", transformer = style_text - ), NA) + )) }) test_that("token are added correctly to conditional statements", { - expect_warning(test_collection( + expect_no_warning(test_collection( "insertion_comment_interaction", "if_else_if_else_strict", transformer = style_text - ), NA) + )) }) @@ -27,22 +27,22 @@ test_that("token are added correctly to conditional statements", { ## strict = FALSE #### test_that("token are added correctly to conditional statements", { - expect_warning(test_collection( + expect_no_warning(test_collection( "insertion_comment_interaction", "just_if_non_strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("token are added correctly to conditional statements", { - expect_warning(test_collection( + expect_no_warning(test_collection( "insertion_comment_interaction", "if_else_non_strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("token are added correctly to conditional statements", { - expect_warning(test_collection( + expect_no_warning(test_collection( "insertion_comment_interaction", "if_else_if_else_non_strict", transformer = style_text, strict = FALSE - ), NA) + )) }) diff --git a/tests/testthat/test-line_breaks_and_other.R b/tests/testthat/test-line_breaks_and_other.R index 512f09fe7..da893dc30 100644 --- a/tests/testthat/test-line_breaks_and_other.R +++ b/tests/testthat/test-line_breaks_and_other.R @@ -1,74 +1,74 @@ test_that("line breaks involing curly brackets", { - expect_warning(test_collection("line_breaks_and_other", "curly", + expect_no_warning(test_collection("line_breaks_and_other", "curly", transformer = style_text - ), NA) + )) }) test_that("line breaks involing curly brackets", { - expect_warning(test_collection("line_breaks_and_other", "braces-fun-calls", + expect_no_warning(test_collection("line_breaks_and_other", "braces-fun-calls", transformer = style_text - ), NA) + )) }) test_that("line breaks involing curly brackets", { - expect_warning(test_collection("line_breaks_and_other", "edge_comment_and_curly", + expect_no_warning(test_collection("line_breaks_and_other", "edge_comment_and_curly", transformer = style_text - ), NA) + )) }) test_that("adding and removing line breaks", { - expect_warning(test_collection("line_breaks_and_other", "if", + expect_no_warning(test_collection("line_breaks_and_other", "if", transformer = style_text - ), NA) + )) }) test_that("no line break after %>% if next token is comment", { - expect_warning(test_collection("line_breaks_and_other", "pipe_and", + expect_no_warning(test_collection("line_breaks_and_other", "pipe_and", transformer = style_text - ), NA) + )) }) test_that("line break before comma is removed and placed after comma ", { - expect_warning(test_collection("line_breaks_and_other", "comma", + expect_no_warning(test_collection("line_breaks_and_other", "comma", transformer = style_text - ), NA) + )) }) test_that("line break before comma is removed and placed after comma ", { - expect_warning(test_collection("line_breaks_and_other", "pipe-line", + expect_no_warning(test_collection("line_breaks_and_other", "pipe-line", transformer = style_text - ), NA) + )) }) test_that("Can handle base R pie", { skip_if(getRversion() < "4.1") - expect_warning(test_collection("line_breaks_and_other", "base-pipe-line", + expect_no_warning(test_collection("line_breaks_and_other", "base-pipe-line", transformer = style_text - ), NA) + )) }) test_that("line break added for ggplot2 call", { - expect_warning(test_collection("line_breaks_and_other", "ggplot2", + expect_no_warning(test_collection("line_breaks_and_other", "ggplot2", transformer = style_text - ), NA) + )) }) test_that("drop redundant line breaks in assignments", { - expect_warning(test_collection("line_breaks_and_other", "assignment", + expect_no_warning(test_collection("line_breaks_and_other", "assignment", transformer = style_text, scope = I(c("line_breaks", "tokens")) - ), NA) + )) }) test_that("line is correctly broken around = ", { - expect_warning(test_collection("line_breaks_and_other", "around-eq-sub", + expect_no_warning(test_collection("line_breaks_and_other", "around-eq-sub", transformer = style_text - ), NA) + )) }) test_that("comments are not moved down after {", { - expect_warning(test_collection("line_breaks_and_other", "comment-around-curly", + expect_no_warning(test_collection("line_breaks_and_other", "comment-around-curly", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-line_breaks_fun_call.R b/tests/testthat/test-line_breaks_fun_call.R index 375232630..dd588388b 100644 --- a/tests/testthat/test-line_breaks_fun_call.R +++ b/tests/testthat/test-line_breaks_fun_call.R @@ -1,63 +1,63 @@ test_that("line breaks work in general", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "token_dependent_mixed", transformer = style_text - ), NA) + )) - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "token_dependent_complex_strict", transformer = style_text - ), NA) + )) }) test_that("blank lines in function calls are removed for strict = TRUE", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "blank-strict", transformer = style_text - ), NA) + )) - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "blank-non-strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("line breaks are not applied with non-strict", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "token_dependent_complex_non_strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("line breaks work with comments", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "token_dependent_comments", transformer = style_text - ), NA) - expect_warning(test_collection("line_breaks_fun_call", + )) + expect_no_warning(test_collection("line_breaks_fun_call", "line_breaks_and_comments", transformer = style_text - ), NA) + )) }) test_that("line breaks work with exceptions", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "switch_ifelse", transformer = style_text - ), NA) + )) }) test_that("line breaks work with exceptions", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "named_arguments", transformer = style_text - ), NA) + )) }) test_that("line breaks work with exceptions", { - expect_warning(test_collection("line_breaks_fun_call", + expect_no_warning(test_collection("line_breaks_fun_call", "unindent", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-math_token_spacing.R b/tests/testthat/test-math_token_spacing.R index dd03370f0..4e0c94574 100644 --- a/tests/testthat/test-math_token_spacing.R +++ b/tests/testthat/test-math_token_spacing.R @@ -10,39 +10,39 @@ test_that("invalid tokens return error", { }) test_that("non-strict default: spacing around all", { - expect_warning(test_collection( + expect_no_warning(test_collection( "math_token_spacing", "non_strict_math_spacing_all", transformer = style_text, style = tidyverse_style, scope = "spaces", math_token_spacing = specify_math_token_spacing(), strict = FALSE - ), NA) + )) }) test_that("strict default: spacing around all", { - expect_warning(test_collection( + expect_no_warning(test_collection( "math_token_spacing", "strict_math_spacing_all", transformer = style_text, style = tidyverse_style, scope = "spaces", math_token_spacing = tidyverse_math_token_spacing(), strict = TRUE - ), NA) + )) }) test_that("strict no space around +", { - expect_warning(test_collection( + expect_no_warning(test_collection( "math_token_spacing", "strict_math_spacing_zero_plus", transformer = style_text, style = tidyverse_style, scope = "spaces", math_token_spacing = specify_math_token_spacing(zero = "'+'") - ), NA) + )) }) test_that("strict no space around all but ^", { - expect_warning(test_collection( + expect_no_warning(test_collection( "math_token_spacing", "strict_math_spacing_zero_all_but_power", transformer = style_text, style = tidyverse_style, @@ -50,5 +50,5 @@ test_that("strict no space around all but ^", { math_token_spacing = specify_math_token_spacing(zero = c( "'+'", "'-'", "'/'", "'*'" )) - ), NA) + )) }) diff --git a/tests/testthat/test-multiple_expressions.R b/tests/testthat/test-multiple_expressions.R index 783f012dd..6b8c0ecd3 100644 --- a/tests/testthat/test-multiple_expressions.R +++ b/tests/testthat/test-multiple_expressions.R @@ -2,15 +2,15 @@ library("testthat") test_that("simple multiple expressions are styled correctly", { - expect_warning(test_collection("multiple_expressions", + expect_no_warning(test_collection("multiple_expressions", "two_simple", transformer = style_text - ), NA) + )) }) test_that("complex multiple expressions are styled correctly", { - expect_warning(test_collection("multiple_expressions", + expect_no_warning(test_collection("multiple_expressions", "three_complex", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-parse_comments.R b/tests/testthat/test-parse_comments.R index 53ec3e9b3..99c17a623 100644 --- a/tests/testthat/test-parse_comments.R +++ b/tests/testthat/test-parse_comments.R @@ -1,74 +1,74 @@ test_that("spacing within comments is done correctly", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "within_spacing_with_force", transformer = style_text, style = tidyverse_style, start_comments_with_one_space = TRUE - ), NA) + )) - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "within_spacing_without_force", transformer = style_text, style = tidyverse_style, start_comments_with_one_space = FALSE - ), NA) + )) - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "eol_eof_spaces", transformer = style_text - ), NA) + )) }) test_that("comments are treated corectly", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "mixed", transformer = style_empty - ), NA) + )) - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "just_comments", transformer = style_empty - ), NA) + )) - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "with_indention", transformer = style_text - ), NA) + )) }) test_that("rplumber tags / syntax is handled properly", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "rplumber", transformer = style_text - ), NA) + )) }) test_that("hashbangs are respected", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "shebang", transformer = style_text - ), NA) + )) }) test_that("xaringan markers are respected", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "xaringan", transformer = style_text - ), NA) + )) }) test_that("output prefix markers are respected", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "output-prefix", transformer = style_text - ), NA) + )) }) test_that("code chunk headers for spinning are respected", { - expect_warning(test_collection("parse_comments", + expect_no_warning(test_collection("parse_comments", "spinning_code_chunk_headers", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-parsing.R b/tests/testthat/test-parsing.R index 6f37f806e..6935bac49 100644 --- a/tests/testthat/test-parsing.R +++ b/tests/testthat/test-parsing.R @@ -1,7 +1,6 @@ test_that("long strings are parsed correctly", { - expect_warning( - test_collection("parsing", "long_strings", transformer = style_text), - NA + expect_no_warning( + test_collection("parsing", "long_strings", transformer = style_text) ) }) diff --git a/tests/testthat/test-relocate_eq_assign.R b/tests/testthat/test-relocate_eq_assign.R index 0fbcd40b8..0ea30900f 100644 --- a/tests/testthat/test-relocate_eq_assign.R +++ b/tests/testthat/test-relocate_eq_assign.R @@ -43,35 +43,35 @@ test_that("tree hierarchy is the same no matter whether = or <- is used", { }) test_that("braces are added in the right place in ifelse if eq_assign is in expr", { - expect_warning(test_collection( + expect_no_warning(test_collection( "relocate_eq_assign", "eq_assign_ifelse_scope_tokens", transformer = style_text, style = tidyverse_style - ), NA) + )) }) test_that("complicated reassignment works", { - expect_warning(test_collection( + expect_no_warning(test_collection( "relocate_eq_assign", "eq_assign_multiple_tokens_eq_only", transformer = style_text, scope = "tokens", style = tidyverse_style - ), NA) + )) - expect_warning(test_collection( + expect_no_warning(test_collection( "relocate_eq_assign", "eq_assign_multiple_tokens_mixed", transformer = style_text, scope = "tokens", style = tidyverse_style - ), NA) + )) }) test_that("eq_assign is not replaced", { - expect_warning(test_collection( + expect_no_warning(test_collection( "relocate_eq_assign", "eq_assign_ifelse_scope_line_breaks", transformer = style_text, scope = "line_breaks", style = tidyverse_style - ), NA) + )) }) diff --git a/tests/testthat/test-rmd.R b/tests/testthat/test-rmd.R index 79811ba60..229a0e18a 100644 --- a/tests/testthat/test-rmd.R +++ b/tests/testthat/test-rmd.R @@ -1,57 +1,57 @@ test_that("can style .Rmd files", { - expect_warning(test_collection("rmd", "simple", + expect_no_warning(test_collection("rmd", "simple", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) + )) - expect_warning(test_collection("rmd", "r_and_non_r_code_chunks", + expect_no_warning(test_collection("rmd", "r_and_non_r_code_chunks", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) + )) - expect_warning(test_collection("rmd", "nested", + expect_no_warning(test_collection("rmd", "nested", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) + )) - expect_warning(test_collection("rmd", "invalid", + expect_no_warning(test_collection("rmd", "invalid", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) + )) ## new 3-5 - expect_warning(test_collection("rmd", "random3", + expect_no_warning(test_collection("rmd", "random3", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) - expect_warning(test_collection("rmd", "random5", + )) + expect_no_warning(test_collection("rmd", "random5", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) - expect_warning(test_collection("rmd", "random6", + )) + expect_no_warning(test_collection("rmd", "random6", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) - expect_warning(test_collection("rmd", "random7", + )) + expect_no_warning(test_collection("rmd", "random7", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rmd", write_tree = FALSE - ), NA) + )) }) diff --git a/tests/testthat/test-rnw.R b/tests/testthat/test-rnw.R index 206d63b89..617c4ed4f 100644 --- a/tests/testthat/test-rnw.R +++ b/tests/testthat/test-rnw.R @@ -1,16 +1,16 @@ test_that("can style .Rnw files", { - expect_warning(test_collection( + expect_no_warning(test_collection( "rnw", "008-outdec", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rnw", write_tree = FALSE - ), NA) - expect_warning(test_collection( + )) + expect_no_warning(test_collection( "rnw", "011-conditional-eval", transformer = transform_mixed, transformer_fun = style_text, filetype = "Rnw", write_tree = FALSE - ), NA) + )) }) diff --git a/tests/testthat/test-roxygen-examples-complete-01.R b/tests/testthat/test-roxygen-examples-complete-01.R index 6e6e65c9b..994ef26d3 100644 --- a/tests/testthat/test-roxygen-examples-complete-01.R +++ b/tests/testthat/test-roxygen-examples-complete-01.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 01", { - expect_warning(test_collection("roxygen-examples-complete", "^01-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^01-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-02.R b/tests/testthat/test-roxygen-examples-complete-02.R index b04e9dcb8..a32a2f842 100644 --- a/tests/testthat/test-roxygen-examples-complete-02.R +++ b/tests/testthat/test-roxygen-examples-complete-02.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 02", { - expect_warning(test_collection("roxygen-examples-complete", "^02-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^02-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-03.R b/tests/testthat/test-roxygen-examples-complete-03.R index ce0a3222a..08265d7ac 100644 --- a/tests/testthat/test-roxygen-examples-complete-03.R +++ b/tests/testthat/test-roxygen-examples-complete-03.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 03", { - expect_warning(test_collection("roxygen-examples-complete", "^03-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^03-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-04.R b/tests/testthat/test-roxygen-examples-complete-04.R index cd2b273af..883a90afe 100644 --- a/tests/testthat/test-roxygen-examples-complete-04.R +++ b/tests/testthat/test-roxygen-examples-complete-04.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 04", { - expect_warning(test_collection("roxygen-examples-complete", "^04-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^04-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-05.R b/tests/testthat/test-roxygen-examples-complete-05.R index b6eb4381c..5757c5d76 100644 --- a/tests/testthat/test-roxygen-examples-complete-05.R +++ b/tests/testthat/test-roxygen-examples-complete-05.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 05", { - expect_warning(test_collection("roxygen-examples-complete", "^05-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^05-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-06.R b/tests/testthat/test-roxygen-examples-complete-06.R index 7ea758c03..246be9f85 100644 --- a/tests/testthat/test-roxygen-examples-complete-06.R +++ b/tests/testthat/test-roxygen-examples-complete-06.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 06", { - expect_warning(test_collection("roxygen-examples-complete", "^06-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^06-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-07.R b/tests/testthat/test-roxygen-examples-complete-07.R index e81ad2583..d45cf07ce 100644 --- a/tests/testthat/test-roxygen-examples-complete-07.R +++ b/tests/testthat/test-roxygen-examples-complete-07.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 07", { - expect_warning(test_collection("roxygen-examples-complete", "^07-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^07-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-08.R b/tests/testthat/test-roxygen-examples-complete-08.R index 8b5ed8bd4..ed70c49fa 100644 --- a/tests/testthat/test-roxygen-examples-complete-08.R +++ b/tests/testthat/test-roxygen-examples-complete-08.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 08", { - expect_warning(test_collection("roxygen-examples-complete", "^08-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^08-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-09.R b/tests/testthat/test-roxygen-examples-complete-09.R index 464b937ca..b92ed8791 100644 --- a/tests/testthat/test-roxygen-examples-complete-09.R +++ b/tests/testthat/test-roxygen-examples-complete-09.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 09", { - expect_warning(test_collection("roxygen-examples-complete", "^09-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^09-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-10.R b/tests/testthat/test-roxygen-examples-complete-10.R index 125bee5e2..b13b6efa7 100644 --- a/tests/testthat/test-roxygen-examples-complete-10.R +++ b/tests/testthat/test-roxygen-examples-complete-10.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 10", { - expect_warning(test_collection("roxygen-examples-complete", "^10-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^10-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-11.R b/tests/testthat/test-roxygen-examples-complete-11.R index 041683ea9..d2998cb78 100644 --- a/tests/testthat/test-roxygen-examples-complete-11.R +++ b/tests/testthat/test-roxygen-examples-complete-11.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 11", { - expect_warning(test_collection("roxygen-examples-complete", "^11-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^11-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-12.R b/tests/testthat/test-roxygen-examples-complete-12.R index 7cdb1af67..9d190901d 100644 --- a/tests/testthat/test-roxygen-examples-complete-12.R +++ b/tests/testthat/test-roxygen-examples-complete-12.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 12", { - expect_warning(test_collection("roxygen-examples-complete", "^12-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^12-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-13.R b/tests/testthat/test-roxygen-examples-complete-13.R index 0bd1d9a63..87c9a28d2 100644 --- a/tests/testthat/test-roxygen-examples-complete-13.R +++ b/tests/testthat/test-roxygen-examples-complete-13.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 13", { - expect_warning(test_collection("roxygen-examples-complete", "^13-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^13-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-14.R b/tests/testthat/test-roxygen-examples-complete-14.R index a93c20704..cb675af50 100644 --- a/tests/testthat/test-roxygen-examples-complete-14.R +++ b/tests/testthat/test-roxygen-examples-complete-14.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 14", { - expect_warning(test_collection("roxygen-examples-complete", "^14-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^14-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-15.R b/tests/testthat/test-roxygen-examples-complete-15.R index 243697af7..7878baeab 100644 --- a/tests/testthat/test-roxygen-examples-complete-15.R +++ b/tests/testthat/test-roxygen-examples-complete-15.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 15", { - expect_warning(test_collection("roxygen-examples-complete", "^15-", transformer = style_text, scope = "spaces"), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^15-", transformer = style_text, scope = "spaces")) }) diff --git a/tests/testthat/test-roxygen-examples-complete-16.R b/tests/testthat/test-roxygen-examples-complete-16.R index 40b577824..e2a94fba6 100644 --- a/tests/testthat/test-roxygen-examples-complete-16.R +++ b/tests/testthat/test-roxygen-examples-complete-16.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 16", { - expect_warning(test_collection("roxygen-examples-complete", "^16-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^16-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-17.R b/tests/testthat/test-roxygen-examples-complete-17.R index cd8f2ee19..2593baed5 100644 --- a/tests/testthat/test-roxygen-examples-complete-17.R +++ b/tests/testthat/test-roxygen-examples-complete-17.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 17", { - expect_warning(test_collection("roxygen-examples-complete", "^17-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^17-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-18.R b/tests/testthat/test-roxygen-examples-complete-18.R index 53497fe61..a35120f36 100644 --- a/tests/testthat/test-roxygen-examples-complete-18.R +++ b/tests/testthat/test-roxygen-examples-complete-18.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 18", { - expect_warning(test_collection("roxygen-examples-complete", "^18-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^18-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-19.R b/tests/testthat/test-roxygen-examples-complete-19.R index 26d44dd98..f007ef7be 100644 --- a/tests/testthat/test-roxygen-examples-complete-19.R +++ b/tests/testthat/test-roxygen-examples-complete-19.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 19", { - expect_warning(test_collection("roxygen-examples-complete", "^19-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^19-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-20.R b/tests/testthat/test-roxygen-examples-complete-20.R index 8ea8533b0..1f9f402a9 100644 --- a/tests/testthat/test-roxygen-examples-complete-20.R +++ b/tests/testthat/test-roxygen-examples-complete-20.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 20", { - expect_warning(test_collection("roxygen-examples-complete", "^20-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^20-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-21.R b/tests/testthat/test-roxygen-examples-complete-21.R index 2531a16cb..23f49d568 100644 --- a/tests/testthat/test-roxygen-examples-complete-21.R +++ b/tests/testthat/test-roxygen-examples-complete-21.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 21", { - expect_warning(test_collection("roxygen-examples-complete", "^21-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^21-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-22.R b/tests/testthat/test-roxygen-examples-complete-22.R index 087415675..4295e5b20 100644 --- a/tests/testthat/test-roxygen-examples-complete-22.R +++ b/tests/testthat/test-roxygen-examples-complete-22.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 22", { - expect_warning(test_collection("roxygen-examples-complete", "^22-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^22-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-24.R b/tests/testthat/test-roxygen-examples-complete-24.R index af6550d67..8177615d4 100644 --- a/tests/testthat/test-roxygen-examples-complete-24.R +++ b/tests/testthat/test-roxygen-examples-complete-24.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 24", { - expect_warning(test_collection("roxygen-examples-complete", "^24-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^24-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-25.R b/tests/testthat/test-roxygen-examples-complete-25.R index 88412a341..0c610e2d4 100644 --- a/tests/testthat/test-roxygen-examples-complete-25.R +++ b/tests/testthat/test-roxygen-examples-complete-25.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 25", { - expect_warning(test_collection("roxygen-examples-complete", "^25-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^25-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-26.R b/tests/testthat/test-roxygen-examples-complete-26.R index 6d741da8b..cedbbe026 100644 --- a/tests/testthat/test-roxygen-examples-complete-26.R +++ b/tests/testthat/test-roxygen-examples-complete-26.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 26", { - expect_warning(test_collection("roxygen-examples-complete", "^26-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^26-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-27.R b/tests/testthat/test-roxygen-examples-complete-27.R index ef2beb0fa..4831e133c 100644 --- a/tests/testthat/test-roxygen-examples-complete-27.R +++ b/tests/testthat/test-roxygen-examples-complete-27.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 27", { - expect_warning(test_collection("roxygen-examples-complete", "^27-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^27-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-28.R b/tests/testthat/test-roxygen-examples-complete-28.R index bdc2d75fa..ffcc436c8 100644 --- a/tests/testthat/test-roxygen-examples-complete-28.R +++ b/tests/testthat/test-roxygen-examples-complete-28.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 28", { - expect_warning(test_collection("roxygen-examples-complete", "^28-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^28-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-29.R b/tests/testthat/test-roxygen-examples-complete-29.R index 354b791fd..10873f663 100644 --- a/tests/testthat/test-roxygen-examples-complete-29.R +++ b/tests/testthat/test-roxygen-examples-complete-29.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 29", { - expect_warning(test_collection("roxygen-examples-complete", "^29-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^29-", transformer = style_text)) }) diff --git a/tests/testthat/test-roxygen-examples-complete-30.R b/tests/testthat/test-roxygen-examples-complete-30.R index f81bab588..1e47a7388 100644 --- a/tests/testthat/test-roxygen-examples-complete-30.R +++ b/tests/testthat/test-roxygen-examples-complete-30.R @@ -1,5 +1,5 @@ # NB: DO NOT EDIT. Auto-generated by ./tests/dev/generate_roxygen_tests.R. test_that("analogous to test-roxygen-examples-complete: 30", { - expect_warning(test_collection("roxygen-examples-complete", "^30-", transformer = style_text), NA) + expect_no_warning(test_collection("roxygen-examples-complete", "^30-", transformer = style_text)) }) diff --git a/tests/testthat/test-scope-AsIs.R b/tests/testthat/test-scope-AsIs.R index 5ea573ca2..da1638a32 100644 --- a/tests/testthat/test-scope-AsIs.R +++ b/tests/testthat/test-scope-AsIs.R @@ -1,70 +1,70 @@ test_that("no indention manipulation but spaces manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_spaces-", transformer = style_text, style = tidyverse_style, scope = I("spaces") - ), NA) + )) }) test_that("just indention", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_indention-", transformer = style_text, style = tidyverse_style, scope = I("indention") - ), NA) + )) }) test_that("indention and spaces", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_spaces_indention-", transformer = style_text, style = tidyverse_style, scope = I(c("indention", "spaces")) - ), NA) + )) }) test_that("line-break manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_line_breaks-", transformer = style_text, style = tidyverse_style, scope = I("line_breaks") - ), NA) + )) }) test_that("line-break manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_spaces_line_breaks-", transformer = style_text, style = tidyverse_style, scope = I(c("line_breaks", "spaces")) - ), NA) + )) }) test_that("tokens and indention", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_indention_tokens-", transformer = style_text, style = tidyverse_style, scope = I(c("tokens", "indention")) - ), NA) + )) }) test_that("tokens and indention", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_spaces_tokens-", transformer = style_text, style = tidyverse_style, scope = I(c("spaces", "tokens")) - ), NA) + )) }) test_that("no manipulation at all", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-AsIs", "scope_none-", transformer = style_text, style = tidyverse_style, scope = I("none") - ), NA) + )) }) diff --git a/tests/testthat/test-scope-character.R b/tests/testthat/test-scope-character.R index ef7ee0d2d..3cc82b55c 100644 --- a/tests/testthat/test-scope-character.R +++ b/tests/testthat/test-scope-character.R @@ -1,43 +1,43 @@ test_that("no indention manipulation but spaces manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-character", "scope_spaces", transformer = style_text, style = tidyverse_style, scope = "spaces" - ), NA) + )) }) test_that("no line-break manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-character", "scope_indention", transformer = style_text, style = tidyverse_style, scope = "indention" - ), NA) + )) }) test_that("no token manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-character", "scope_line_breaks", transformer = style_text, style = tidyverse_style, scope = "line_breaks" - ), NA) + )) }) test_that("no space manipulation", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-character", "scope_tokens", transformer = style_text, style = tidyverse_style, scope = "tokens" - ), NA) + )) }) test_that("no manipulation at all", { - expect_warning(test_collection( + expect_no_warning(test_collection( "scope-character", "scope_none", transformer = style_text, style = tidyverse_style, scope = "none" - ), NA) + )) }) diff --git a/tests/testthat/test-spacing.R b/tests/testthat/test-spacing.R index 20ae4c695..aa7bdb997 100644 --- a/tests/testthat/test-spacing.R +++ b/tests/testthat/test-spacing.R @@ -1,85 +1,85 @@ test_that("curly braces", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "round", transformer = style_text - ), NA) + )) }) test_that(":, ::, and :::", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "colon", transformer = style_text - ), NA) + )) }) test_that("comments and strict = FALSE", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "comments", transformer = style_text, stric = FALSE - ), NA) + )) }) test_that("Space placed after 'if' and before '('", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing_if", transformer = style_text - ), NA) + )) }) test_that("space before comma is removed", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing_comma", transformer = style_text - ), NA) + )) }) test_that("two commas are separated by a space", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing_comma2", transformer = style_text - ), NA) + )) }) test_that("spacing between ! and bang is perserved", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "bang_bang_spacing", transformer = style_text - ), NA) + )) }) test_that("spacing around in works", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing_in", transformer = style_text - ), NA) + )) }) test_that("no spaces after token FUNCTION", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing_function", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("spacing around tilde", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing-tilde", transformer = style_text, strict = TRUE - ), NA) + )) }) test_that("spacing around square brackets / braces", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "spacing-square", transformer = style_text, strict = TRUE - ), NA) + )) }) test_that("spacing around dollar", { - expect_warning(test_collection( + expect_no_warning(test_collection( "spacing", "dollar", transformer = style_text, strict = TRUE - ), NA) + )) }) diff --git a/tests/testthat/test-square_brackets.R b/tests/testthat/test-square_brackets.R index 7f4c4d481..7c4ef65a4 100644 --- a/tests/testthat/test-square_brackets.R +++ b/tests/testthat/test-square_brackets.R @@ -1,6 +1,6 @@ test_that("square brackets cause indention", { - expect_warning(test_collection( + expect_no_warning(test_collection( "indention_square_brackets", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-start_line.R b/tests/testthat/test-start_line.R index bb17a2aad..5d96cc2b2 100644 --- a/tests/testthat/test-start_line.R +++ b/tests/testthat/test-start_line.R @@ -1,5 +1,5 @@ test_that("leading spaces are preserved at start of text", { - expect_warning(test_collection("start_line", + expect_no_warning(test_collection("start_line", transformer = style_empty - ), NA) + )) }) diff --git a/tests/testthat/test-strict.R b/tests/testthat/test-strict.R index da8ea93e4..bf6e92a40 100644 --- a/tests/testthat/test-strict.R +++ b/tests/testthat/test-strict.R @@ -1,31 +1,31 @@ test_that("can style example source file with strict = TRUE", { - expect_warning(test_collection( + expect_no_warning(test_collection( "strict", "strict", transformer = style_text, strict = TRUE - ), NA) + )) }) test_that("can style example source file with strict = FALSE", { - expect_warning(test_collection( + expect_no_warning(test_collection( "strict", "non_strict", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("removes space at EOL", { - expect_warning(test_collection( + expect_no_warning(test_collection( "strict", "eol", transformer = style_text, strict = FALSE - ), NA) + )) }) test_that("removes blank lines at EOF", { - expect_warning(test_collection( + expect_no_warning(test_collection( "strict", "eof", transformer = style_text, strict = FALSE - ), NA) + )) }) diff --git a/tests/testthat/test-stylerignore.R b/tests/testthat/test-stylerignore.R index e17fb9adf..925f91143 100644 --- a/tests/testthat/test-stylerignore.R +++ b/tests/testthat/test-stylerignore.R @@ -127,31 +127,31 @@ test_that("works with other markers", { test_that("Simple example works", { - expect_warning(test_collection("stylerignore", "simple", + expect_no_warning(test_collection("stylerignore", "simple", transformer = style_text - ), NA) + )) }) test_that("stylerignore does not need coincidence with top-level expressions", { - expect_warning(test_collection("stylerignore", "crossing", + expect_no_warning(test_collection("stylerignore", "crossing", transformer = style_text - ), NA) + )) }) test_that("token adding or removing works in stylerignore", { - expect_warning(test_collection("stylerignore", "adding-removing", + expect_no_warning(test_collection("stylerignore", "adding-removing", transformer = style_text - ), NA) + )) }) test_that("no token added or removed in complex case", { - expect_warning(test_collection("stylerignore", "braces", + expect_no_warning(test_collection("stylerignore", "braces", transformer = style_text - ), NA) + )) }) test_that("stylerignore sequences are respected in alignment detection", { - expect_warning(test_collection("stylerignore", "alignment", + expect_no_warning(test_collection("stylerignore", "alignment", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-tidyeval.R b/tests/testthat/test-tidyeval.R index 5d1c074f6..45192320c 100644 --- a/tests/testthat/test-tidyeval.R +++ b/tests/testthat/test-tidyeval.R @@ -1,17 +1,17 @@ test_that("no spaces within bang-bang operator !!!", { - expect_warning(test_collection("tidyeval", "bang_bang", + expect_no_warning(test_collection("tidyeval", "bang_bang", transformer = style_text - ), NA) + )) }) test_that(":= has correct spacing", { - expect_warning(test_collection("tidyeval", "setting_var", + expect_no_warning(test_collection("tidyeval", "setting_var", transformer = style_text - ), NA) + )) }) test_that("Space before comma if preceding token is EQ_SUB", { - expect_warning(test_collection("tidyeval", "eq_sub", + expect_no_warning(test_collection("tidyeval", "eq_sub", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-token_adding_removing.R b/tests/testthat/test-token_adding_removing.R index 47ad6703d..584f7f9b9 100644 --- a/tests/testthat/test-token_adding_removing.R +++ b/tests/testthat/test-token_adding_removing.R @@ -1,63 +1,63 @@ test_that("other manipulations are correct (add braces, semi-colon etc.)", { - expect_warning(test_collection("token_adding_removing", "mixed_token", + expect_no_warning(test_collection("token_adding_removing", "mixed_token", transformer = style_text - ), NA) + )) }) test_that("braces in if-else clause are added correctly", { - expect_warning(test_collection("token_adding_removing", "if_else_strict", + expect_no_warning(test_collection("token_adding_removing", "if_else_strict", transformer = style_text - ), NA) - expect_warning(test_collection("token_adding_removing", "if_else_non_strict", + )) + expect_no_warning(test_collection("token_adding_removing", "if_else_non_strict", transformer = style_text, strict = FALSE - ), NA) - expect_warning(test_collection("token_adding_removing", "if-else-comma", + )) + expect_no_warning(test_collection("token_adding_removing", "if-else-comma", transformer = style_text, strict = TRUE - ), NA) + )) }) test_that("double braces are treated correctly", { - expect_warning(test_collection("token_adding_removing", "double_braces", + expect_no_warning(test_collection("token_adding_removing", "double_braces", transformer = style_text - ), NA) + )) }) test_that("double braces are treated correctly", { - expect_warning(test_collection("token_adding_removing", "token_creation_find_pos", + expect_no_warning(test_collection("token_adding_removing", "token_creation_find_pos", transformer = style_text - ), NA) + )) }) test_that("braces only added to pipe if RHS is a symbol", { - expect_warning(test_collection("token_adding_removing", "add_brackets_in_pipe", + expect_no_warning(test_collection("token_adding_removing", "add_brackets_in_pipe", transformer = style_text - ), NA) + )) }) test_that("No braces are added if conditional statement is within pipe", { - expect_warning(test_collection("token_adding_removing", "else-pipe", + expect_no_warning(test_collection("token_adding_removing", "else-pipe", transformer = style_text - ), NA) + )) }) test_that("No brace is added within `substitute()`", { - expect_warning(test_collection("token_adding_removing", "substitute", + expect_no_warning(test_collection("token_adding_removing", "substitute", transformer = style_text - ), NA) + )) }) test_that("stylreignore interacts correctly with wrap_expr_in_curly", { - expect_warning(test_collection("token_adding_removing", "if_else_stylerignore", + expect_no_warning(test_collection("token_adding_removing", "if_else_stylerignore", transformer = style_text - ), NA) + )) }) test_that("stylreignore interacts correctly with wrap_expr_in_curly", { - expect_warning(test_collection("token_adding_removing", "for_while_stylerignore", + expect_no_warning(test_collection("token_adding_removing", "for_while_stylerignore", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-unary.R b/tests/testthat/test-unary.R index 264e58ae7..0c5cc2b30 100644 --- a/tests/testthat/test-unary.R +++ b/tests/testthat/test-unary.R @@ -1,16 +1,16 @@ test_that("no spaces before unary operator", { - expect_warning(test_collection("unary_spacing", + expect_no_warning(test_collection("unary_spacing", "unary_simple", transformer = style_text - ), NA) + )) - expect_warning(test_collection("unary_spacing", + expect_no_warning(test_collection("unary_spacing", "unary_complex", transformer = style_text - ), NA) + )) - expect_warning(test_collection("unary_spacing", + expect_no_warning(test_collection("unary_spacing", "unary_indention", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-unindention.R b/tests/testthat/test-unindention.R index ea48778d1..0d6058d6a 100644 --- a/tests/testthat/test-unindention.R +++ b/tests/testthat/test-unindention.R @@ -1,15 +1,15 @@ test_that("round brackets are unindented correctly", { - expect_warning(test_collection("unindention", + expect_no_warning(test_collection("unindention", "mixed", transformer = style_text_without_curly_curly - ), NA) + )) }) test_that("tokens are not dropped in named vector", { - expect_warning(test_collection("unindention", + expect_no_warning(test_collection("unindention", "vec", transformer = style_text - ), NA) + )) }) @@ -17,8 +17,8 @@ test_that(paste( "if last token is multi-line and no line break precede,", "unindention is correct" ), { - expect_warning(test_collection("unindention", + expect_no_warning(test_collection("unindention", "vec", transformer = style_text - ), NA) + )) }) diff --git a/tests/testthat/test-unindention_regex.R b/tests/testthat/test-unindention_regex.R index 1eace2b0b..e009b67e1 100644 --- a/tests/testthat/test-unindention_regex.R +++ b/tests/testthat/test-unindention_regex.R @@ -1,20 +1,20 @@ test_that("forced regex token-dependent indention", { - expect_warning(test_collection( + expect_no_warning(test_collection( "unindention_regex", "regex_force_with", transformer = style_text, reindention = specify_reindention(c( "^# ", "^## ", "^### " )) - ), NA) + )) }) test_that("do not force regex token-dependent indention without pattern", { - expect_warning(test_collection( + expect_no_warning(test_collection( "unindention_regex", "regex_force_no", transformer = style_text, reindention = specify_reindention(NULL) - ), NA) + )) }) From 9123afe62c582aa9e21ea0a0281be519b92bde15 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Mon, 9 Dec 2024 15:52:42 +0530 Subject: [PATCH 201/238] Improve a few function names We are being unnecessarily terse in some places where we don't need to be. I always feel like I am hitting a little speed bump every time I need to decode these names mentally. --- R/rules-indention.R | 6 ++-- R/rules-line-breaks.R | 2 +- R/rules-spaces.R | 6 ++-- R/rules-tokens.R | 4 +-- R/style-guides.R | 30 +++++++++---------- ...und_op.Rd => set_space_around_operator.Rd} | 6 ++-- ...ec.Rd => unindent_function_declaration.Rd} | 8 ++--- man/update_indention_ref.Rd | 6 ++-- ...while_for_function_multi_line_in_curly.Rd} | 6 ++-- 9 files changed, 37 insertions(+), 37 deletions(-) rename man/{set_space_around_op.Rd => set_space_around_operator.Rd} (65%) rename man/{unindent_fun_dec.Rd => unindent_function_declaration.Rd} (68%) rename man/{wrap_if_else_while_for_fun_multi_line_in_curly.Rd => wrap_if_else_while_for_function_multi_line_in_curly.Rd} (68%) diff --git a/R/rules-indention.R b/R/rules-indention.R index 3e953d76e..1439edb2a 100644 --- a/R/rules-indention.R +++ b/R/rules-indention.R @@ -16,9 +16,9 @@ indent_braces <- function(pd, indent_by) { #' Necessary for consistent indention of the function declaration header. #' @param pd A parse table. #' @inheritParams is_single_indent_function_declaration -#' @seealso set_unindention_child update_indention_ref_fun_dec +#' @seealso set_unindention_child update_indention_reference_function_declaration #' @keywords internal -unindent_fun_dec <- function(pd, indent_by = 2L) { +unindent_function_declaration <- function(pd, indent_by = 2L) { if (is_function_declaration(pd)) { idx_closing_brace <- which(pd$token == "')'") fun_dec_head <- seq2(2L, idx_closing_brace) @@ -133,7 +133,7 @@ NULL #' } #' #' @keywords internal -update_indention_ref_fun_dec <- function(pd_nested) { +update_indention_reference_function_declaration <- function(pd_nested) { if (is_function_declaration(pd_nested) && !is_single_indent_function_declaration(pd_nested)) { seq <- seq2(3L, nrow(pd_nested) - 2L) pd_nested$indention_ref_pos_id[seq] <- pd_nested$pos_id[2L] diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 5a007bdff..b091d37de 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -234,7 +234,7 @@ remove_line_break_before_round_closing_after_curly <- function(pd) { pd } -remove_line_breaks_in_fun_dec <- function(pd) { +remove_line_breaks_in_function_declaration <- function(pd) { if (is_function_declaration(pd)) { is_single_indention <- is_single_indent_function_declaration(pd) round_after <- ( diff --git a/R/rules-spaces.R b/R/rules-spaces.R index 835b25e91..57cc8dfb8 100644 --- a/R/rules-spaces.R +++ b/R/rules-spaces.R @@ -4,7 +4,7 @@ #' @include token-define.R #' @keywords internal #' @include token-define.R -set_space_around_op <- function(pd_flat, strict) { +set_space_around_operator <- function(pd_flat, strict) { # spacing and operator in same function because alternative is # calling token_is_on_aligned_line() twice because comma and operator spacing # depends on it. @@ -122,7 +122,7 @@ style_space_around_tilde <- function(pd_flat, strict) { pd_flat } -remove_space_after_unary_pm_nested <- function(pd) { +remove_space_after_unary_plus_minus_nested <- function(pd) { if (any(pd$token[1L] %in% c("'+'", "'-'"))) { pd$spaces[1L] <- 0L } @@ -349,7 +349,7 @@ remove_space_around_dollar <- function(pd_flat) { pd_flat } -remove_space_after_fun_dec <- function(pd_flat) { +remove_space_after_function_declaration <- function(pd_flat) { fun_after <- (pd_flat$token == "FUNCTION") & (pd_flat$lag_newlines == 0L) pd_flat$spaces[fun_after] <- 0L pd_flat diff --git a/R/rules-tokens.R b/R/rules-tokens.R index 1a2e857a4..ed3d3b361 100644 --- a/R/rules-tokens.R +++ b/R/rules-tokens.R @@ -64,7 +64,7 @@ add_brackets_in_pipe_one <- function(pd, pos) { #' @param indent_by The amount of spaces used to indent an expression in curly #' braces. Used for unindention. #' @keywords internal -wrap_if_else_while_for_fun_multi_line_in_curly <- function(pd, indent_by = 2L) { +wrap_if_else_while_for_function_multi_line_in_curly <- function(pd, indent_by = 2L) { key_token <- NULL if (is_for_expr(pd)) { @@ -88,7 +88,7 @@ wrap_if_else_while_for_fun_multi_line_in_curly <- function(pd, indent_by = 2L) { #' Wrap a multi-line statement in curly braces #' -#' @inheritParams wrap_if_else_while_for_fun_multi_line_in_curly +#' @inheritParams wrap_if_else_while_for_function_multi_line_in_curly #' @inheritParams wrap_subexpr_in_curly #' @param key_token The token that comes right before the token that contains #' the expression to be wrapped (ignoring comments). For if and while loops, diff --git a/R/style-guides.R b/R/style-guides.R index 51e758c2c..6a5366c52 100644 --- a/R/style-guides.R +++ b/R/style-guides.R @@ -76,13 +76,13 @@ tidyverse_style <- function(scope = "tokens", indention_manipulators <- if ("indention" %in% scope) { list( indent_braces = partial(indent_braces, indent_by = indent_by), - unindent_fun_dec = unindent_fun_dec, + unindent_function_declaration = unindent_function_declaration, indent_op = partial(indent_op, indent_by = indent_by), indent_eq_sub = partial(indent_eq_sub, indent_by = indent_by), indent_without_paren = partial(indent_without_paren, indent_by = indent_by ), - update_indention_ref_fun_dec = update_indention_ref_fun_dec + update_indention_reference_function_declaration = update_indention_reference_function_declaration ) } space_manipulators <- if ("spaces" %in% scope) { @@ -102,19 +102,19 @@ tidyverse_style <- function(scope = "tokens", style_space_around_tilde, strict = strict ), - spacing_around_op = purrr::partial(set_space_around_op, + spacing_around_op = purrr::partial(set_space_around_operator, strict = strict ), remove_space_after_opening_paren = remove_space_after_opening_paren, remove_space_after_excl = remove_space_after_excl, set_space_after_bang_bang = set_space_after_bang_bang, remove_space_around_dollar = remove_space_around_dollar, - remove_space_after_fun_dec = remove_space_after_fun_dec, + remove_space_after_function_declaration = remove_space_after_function_declaration, remove_space_around_colons = remove_space_around_colons, start_comments_with_space = partial(start_comments_with_space, force_one = start_comments_with_one_space ), - remove_space_after_unary_pm_nested = remove_space_after_unary_pm_nested, + remove_space_after_unary_plus_minus_nested = remove_space_after_unary_plus_minus_nested, spacing_before_comments = if (strict) { set_space_before_comments } else { @@ -137,8 +137,8 @@ tidyverse_style <- function(scope = "tokens", set_line_break_before_curly_opening = set_line_break_before_curly_opening, remove_line_break_before_round_closing_after_curly = if (strict) remove_line_break_before_round_closing_after_curly, - remove_line_breaks_in_fun_dec = - if (strict) remove_line_breaks_in_fun_dec, + remove_line_breaks_in_function_declaration = + if (strict) remove_line_breaks_in_function_declaration, set_line_breaks_between_top_level_exprs = if (strict) set_line_breaks_between_top_level_exprs, style_line_break_around_curly = partial( @@ -180,10 +180,10 @@ tidyverse_style <- function(scope = "tokens", force_assignment_op = force_assignment_op, resolve_semicolon = resolve_semicolon, add_brackets_in_pipe = add_brackets_in_pipe, - wrap_if_else_while_for_fun_multi_line_in_curly = + wrap_if_else_while_for_function_multi_line_in_curly = if (strict) { purrr::partial( - wrap_if_else_while_for_fun_multi_line_in_curly, + wrap_if_else_while_for_function_multi_line_in_curly, indent_by = indent_by ) } @@ -206,23 +206,23 @@ tidyverse_style <- function(scope = "tokens", remove_space_after_excl = "'!'", set_space_after_bang_bang = "'!'", remove_space_around_dollar = "'$'", - remove_space_after_fun_dec = "FUNCTION", + remove_space_after_function_declaration = "FUNCTION", remove_space_around_colons = c("':'", "NS_GET_INT", "NS_GET"), start_comments_with_space = "COMMENT", - remove_space_after_unary_pm_nested = c("'+'", "'-'"), + remove_space_after_unary_plus_minus_nested = c("'+'", "'-'"), spacing_before_comments = "COMMENT", set_space_in_curly = c("'{'", "'}'") ), indention = list( # indent_braces = c("'('", "'['", "'{'", "')'", "']'", "'}'"), - unindent_fun_dec = "FUNCTION", + unindent_function_declaration = "FUNCTION", indent_eq_sub = c("EQ_SUB", "EQ_FORMALS"), # TODO rename - update_indention_ref_fun_dec = "FUNCTION" + update_indention_reference_function_declaration = "FUNCTION" ), line_breaks = list( set_line_break_before_curly_opening = "'{'", remove_line_break_before_round_closing_after_curly = "'}'", - remove_line_breaks_in_fun_dec = "FUNCTION", + remove_line_breaks_in_function_declaration = "FUNCTION", set_line_break_around_curly_curly = "'{'", style_line_break_around_curly = "'{'", add_line_break_after_pipe = c("SPECIAL-PIPE", "PIPE") @@ -231,7 +231,7 @@ tidyverse_style <- function(scope = "tokens", resolve_semicolon = "';'", add_brackets_in_pipe = c("SPECIAL-PIPE", "PIPE"), force_assignment_op = "EQ_ASSIGN", - wrap_if_else_while_for_fun_multi_line_in_curly = c( + wrap_if_else_while_for_function_multi_line_in_curly = c( "IF", "WHILE", "FOR", "FUNCTION" ) ) diff --git a/man/set_space_around_op.Rd b/man/set_space_around_operator.Rd similarity index 65% rename from man/set_space_around_op.Rd rename to man/set_space_around_operator.Rd index c3a4502e3..f30a8d850 100644 --- a/man/set_space_around_op.Rd +++ b/man/set_space_around_operator.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/rules-spaces.R -\name{set_space_around_op} -\alias{set_space_around_op} +\name{set_space_around_operator} +\alias{set_space_around_operator} \title{Set spaces around operators} \usage{ -set_space_around_op(pd_flat, strict) +set_space_around_operator(pd_flat, strict) } \description{ Alignment is kept, if detected. diff --git a/man/unindent_fun_dec.Rd b/man/unindent_function_declaration.Rd similarity index 68% rename from man/unindent_fun_dec.Rd rename to man/unindent_function_declaration.Rd index f0209be93..49f6fc5c1 100644 --- a/man/unindent_fun_dec.Rd +++ b/man/unindent_function_declaration.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/rules-indention.R -\name{unindent_fun_dec} -\alias{unindent_fun_dec} +\name{unindent_function_declaration} +\alias{unindent_function_declaration} \title{Revert the indention of function declaration header} \usage{ -unindent_fun_dec(pd, indent_by = 2L) +unindent_function_declaration(pd, indent_by = 2L) } \arguments{ \item{pd}{A parse table.} @@ -16,6 +16,6 @@ operators such as '('.} Necessary for consistent indention of the function declaration header. } \seealso{ -set_unindention_child update_indention_ref_fun_dec +set_unindention_child update_indention_reference_function_declaration } \keyword{internal} diff --git a/man/update_indention_ref.Rd b/man/update_indention_ref.Rd index a041faead..0e305ee9c 100644 --- a/man/update_indention_ref.Rd +++ b/man/update_indention_ref.Rd @@ -2,10 +2,10 @@ % Please edit documentation in R/rules-indention.R \name{update_indention_ref} \alias{update_indention_ref} -\alias{update_indention_ref_fun_dec} +\alias{update_indention_reference_function_declaration} \title{Update the indention reference} \usage{ -update_indention_ref_fun_dec(pd_nested) +update_indention_reference_function_declaration(pd_nested) } \arguments{ \item{pd_nested}{A nested parse table.} @@ -15,7 +15,7 @@ Update the indention reference } \section{Functions}{ \itemize{ -\item \code{update_indention_ref_fun_dec()}: Updates the reference pos_id for all +\item \code{update_indention_reference_function_declaration()}: Updates the reference pos_id for all tokens in \code{pd_nested} if \code{pd_nested} contains a function declaration. Tokens inside a function declaration are are re-indented, that is, they are indented up to the level at which the token FUNCTION diff --git a/man/wrap_if_else_while_for_fun_multi_line_in_curly.Rd b/man/wrap_if_else_while_for_function_multi_line_in_curly.Rd similarity index 68% rename from man/wrap_if_else_while_for_fun_multi_line_in_curly.Rd rename to man/wrap_if_else_while_for_function_multi_line_in_curly.Rd index 29b7c06e9..5b95b29d4 100644 --- a/man/wrap_if_else_while_for_fun_multi_line_in_curly.Rd +++ b/man/wrap_if_else_while_for_function_multi_line_in_curly.Rd @@ -1,10 +1,10 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/rules-tokens.R -\name{wrap_if_else_while_for_fun_multi_line_in_curly} -\alias{wrap_if_else_while_for_fun_multi_line_in_curly} +\name{wrap_if_else_while_for_function_multi_line_in_curly} +\alias{wrap_if_else_while_for_function_multi_line_in_curly} \title{Wrap if-else, while and for statements in curly braces} \usage{ -wrap_if_else_while_for_fun_multi_line_in_curly(pd, indent_by = 2L) +wrap_if_else_while_for_function_multi_line_in_curly(pd, indent_by = 2L) } \arguments{ \item{pd}{A parse table.} From c320dc4c9b8c5a050bfb09019794c658ac2e7389 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 10 Dec 2024 14:25:54 +0530 Subject: [PATCH 202/238] Remove unused `extend_if_comment()` --- R/utils-cache.R | 2 +- R/utils-navigate-nest.R | 17 ----------------- man/extend_if_comment.Rd | 19 ------------------- tests/testthat/test-helpers.R | 5 ----- 4 files changed, 1 insertion(+), 42 deletions(-) delete mode 100644 man/extend_if_comment.Rd diff --git a/R/utils-cache.R b/R/utils-cache.R index fdbc2cbe2..97108a63d 100644 --- a/R/utils-cache.R +++ b/R/utils-cache.R @@ -163,7 +163,7 @@ cache_by_expression <- function(text, } else { expressions$stylerignore <- rep(FALSE, length(expressions$text)) } - # TODO base_indention should be set to 0 on write and on read for expressions + # TODO base_indention should be set to 0 on write and on read for expressions # (only) to make it possible to use the cache for expressions with different # indention. when not the whole input text is cached, we go trough all # expressions and check if they are cached, if yes, we take the input (from diff --git a/R/utils-navigate-nest.R b/R/utils-navigate-nest.R index 0ef6cf5da..9aeccf109 100644 --- a/R/utils-navigate-nest.R +++ b/R/utils-navigate-nest.R @@ -83,20 +83,3 @@ next_terminal <- function(pd, } } } - - -#' Find the index of the last comment in the sequence of comments-only tokens -#' after the token that has position `pos` in `pd`. -#' @param pd A parse table. -#' @param pos The position of the token to start the search from. -#' @keywords internal -extend_if_comment <- function(pd, pos) { - if (pos == nrow(pd)) { - return(pos) - } - if (pd$token[pos + 1L] == "COMMENT") { - extend_if_comment(pd, pos + 1L) - } else { - pos - } -} diff --git a/man/extend_if_comment.Rd b/man/extend_if_comment.Rd deleted file mode 100644 index eeaee1f99..000000000 --- a/man/extend_if_comment.Rd +++ /dev/null @@ -1,19 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/utils-navigate-nest.R -\name{extend_if_comment} -\alias{extend_if_comment} -\title{Find the index of the last comment in the sequence of comments-only tokens -after the token that has position \code{pos} in \code{pd}.} -\usage{ -extend_if_comment(pd, pos) -} -\arguments{ -\item{pd}{A parse table.} - -\item{pos}{The position of the token to start the search from.} -} -\description{ -Find the index of the last comment in the sequence of comments-only tokens -after the token that has position \code{pos} in \code{pd}. -} -\keyword{internal} diff --git a/tests/testthat/test-helpers.R b/tests/testthat/test-helpers.R index 139a86314..acded0ce0 100644 --- a/tests/testthat/test-helpers.R +++ b/tests/testthat/test-helpers.R @@ -15,8 +15,3 @@ test_that("can lookup tokens", { lookup_new_special() }) }) - -test_that("can extend non-comment", { - pd <- compute_parse_data_nested(c("if (TRUE) # \n call(34)")) - expect_equal(extend_if_comment(pd$child[[1]], 4), 5) -}) From b18a1cb53590cc41635a66d067ab6ae804887a0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 03:05:37 +0000 Subject: [PATCH 203/238] Bump actions/setup-python from 5.3.0 to 5.4.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.3.0...v5.4.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index c049998ee..5186c3de4 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.3.0 + uses: actions/setup-python@v5.4.0 with: python-version: "3.9" architecture: "x64" From 0accfdab804157e19f84809d55dc893fc9825005 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Fri, 7 Feb 2025 21:48:46 +0000 Subject: [PATCH 204/238] Ensure formatted token is a call before forcing line breaks --- R/rules-line-breaks.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index b091d37de..a88e2cbd1 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -310,7 +310,8 @@ set_line_break_after_opening_if_call_is_multi_line <- function(pd, if (!is_function_call(pd) && !is_subset_expr(pd)) { return(pd) } - has_force_text_before <- last(pd$child[[1L]]$text) %in% force_text_before + idx <- length(pd$child[[1L]]$text) + has_force_text_before <- pd$child[[1L]]$text[idx] %in% force_text_before && pd$child[[1L]]$token[idx] == "SYMBOL_FUNCTION_CALL" if (has_force_text_before) { break_pos <- c( which(lag(pd$token %in% c("','", "COMMENT"))), From c2db3de7b91c389b5d4a09a9f75c88e213e53f8c Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Fri, 7 Feb 2025 21:54:08 +0000 Subject: [PATCH 205/238] simple test --- .../line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R | 3 +++ .../line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R | 3 +++ 2 files changed, 6 insertions(+) diff --git a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R index db6ecd18f..148c0bb39 100644 --- a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R +++ b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R @@ -73,3 +73,6 @@ dplyr::ifelse( x, 1, 32 ) + +# variable name 'switch' is different, #1253 +l$switch[1:3, ] diff --git a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R index f43cd21f8..fcb9d9ed5 100644 --- a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R +++ b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R @@ -75,3 +75,6 @@ dplyr::ifelse( x, 1, 32 ) + +# variable name 'switch' is different, #1253 +l$switch[1:3, ] From c4b7b89e451e5fb7104e359ceb9935ac13ee8aab Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Fri, 7 Feb 2025 21:57:37 +0000 Subject: [PATCH 206/238] narrow line --- R/rules-line-breaks.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index a88e2cbd1..fa801bc27 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -311,7 +311,8 @@ set_line_break_after_opening_if_call_is_multi_line <- function(pd, return(pd) } idx <- length(pd$child[[1L]]$text) - has_force_text_before <- pd$child[[1L]]$text[idx] %in% force_text_before && pd$child[[1L]]$token[idx] == "SYMBOL_FUNCTION_CALL" + has_force_text_before <- + pd$child[[1L]]$text[idx] %in% force_text_before && pd$child[[1L]]$token[idx] == "SYMBOL_FUNCTION_CALL" if (has_force_text_before) { break_pos <- c( which(lag(pd$token %in% c("','", "COMMENT"))), From 311b3f8a087af70d892151858baa9f40ae680278 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 8 Feb 2025 09:55:46 +0100 Subject: [PATCH 207/238] Update styler.Rproj --- styler.Rproj | 1 + 1 file changed, 1 insertion(+) diff --git a/styler.Rproj b/styler.Rproj index 30e02be1a..734d4c4b8 100644 --- a/styler.Rproj +++ b/styler.Rproj @@ -1,4 +1,5 @@ Version: 1.0 +ProjectId: 0778f065-a50f-4f3e-8b43-841eded0d216 RestoreWorkspace: No SaveWorkspace: No From 6ed7331f9545ed8263164fc2e86bdfe1a459041f Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 8 Feb 2025 09:57:31 +0100 Subject: [PATCH 208/238] fix pre-commit workflow --- .github/workflows/pre-commit.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 5186c3de4..5974a6620 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -21,18 +21,23 @@ jobs: uses: styfle/cancel-workflow-action@0.12.1 with: access_token: ${{ github.token }} + - uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Set up Python uses: actions/setup-python@v5.4.0 with: - python-version: "3.9" - architecture: "x64" + python-version: "3.13" + + - uses: r-lib/actions/setup-r@v2 + - name: Run pre-commit uses: pre-commit/action@v3.0.1 env: SKIP: pkgdown + - name: Commit files if: failure() && startsWith(github.ref, 'refs/heads') run: | @@ -42,12 +47,14 @@ jobs: git checkout -- .github/workflows git commit -m "pre-commit" -a fi + - name: Push changes if: failure() && startsWith(github.ref, 'refs/heads') uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} + env: RENV_CONFIG_CACHE_ENABLED: FALSE GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} From 0e2cbafc699791b47fa99ca2c798f0aa8d06fe64 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Mon, 10 Feb 2025 12:07:39 -0800 Subject: [PATCH 209/238] rm issue reference --- .../line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R | 2 +- .../line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R index 148c0bb39..81caa6da5 100644 --- a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R +++ b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-in.R @@ -74,5 +74,5 @@ dplyr::ifelse( 1, 32 ) -# variable name 'switch' is different, #1253 +# variable name 'switch' is different l$switch[1:3, ] diff --git a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R index fcb9d9ed5..4c108e249 100644 --- a/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R +++ b/tests/testthat/line_breaks_fun_call/switch_ifelse_etc_no_line_break-out.R @@ -76,5 +76,5 @@ dplyr::ifelse( 1, 32 ) -# variable name 'switch' is different, #1253 +# variable name 'switch' is different l$switch[1:3, ] From 05eec8fd9dc3d491efab7124a25e7c776df6efb7 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Tue, 1 Apr 2025 21:44:03 +0200 Subject: [PATCH 210/238] Fix lints found with latest lintr version --- .github/workflows/pkgdown.yaml | 2 +- .github/workflows/pre-commit.yaml | 2 +- .pre-commit-config.yaml | 2 +- R/utils-cache.R | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 91711d445..cb6d59131 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -39,7 +39,7 @@ jobs: - name: Deploy to GitHub pages 🚀 if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4.7.2 + uses: JamesIves/github-pages-deploy-action@v4.7.3 with: clean: false branch: gh-pages diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 5974a6620..d6247f338 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.4.0 + uses: actions/setup-python@v5.5.0 with: python-version: "3.13" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0ad306e94..d9e284869 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.3.9003 + rev: v0.4.3.9008 hooks: - id: style-files args: diff --git a/R/utils-cache.R b/R/utils-cache.R index 97108a63d..605975876 100644 --- a/R/utils-cache.R +++ b/R/utils-cache.R @@ -137,7 +137,7 @@ cache_is_activated <- function(cache_name = NULL) { return(cache_name == current_cache) } - return(FALSE) + FALSE } #' Cache text From a3e9f9cd64922e68f35ebe5df6cdec5c0605af1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Apr 2025 03:58:16 +0000 Subject: [PATCH 211/238] Bump actions/setup-python from 5.5.0 to 5.6.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.5.0 to 5.6.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.5.0...v5.6.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 5.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index d6247f338..2318ab9e1 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.5.0 + uses: actions/setup-python@v5.6.0 with: python-version: "3.13" From eb3df41e64cb4d42b266e34b7656cc73ce88bed9 Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 17 May 2025 09:45:41 +0200 Subject: [PATCH 212/238] Update .pre-commit-config.yaml --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d9e284869..15e933f66 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.3.9008 + rev: v0.4.3.9009 hooks: - id: style-files args: From b99c691ba389f6fb7acb8bfef2ba0e6c18f442ea Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Sat, 17 May 2025 09:56:36 +0200 Subject: [PATCH 213/238] Update .lintr --- .lintr | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.lintr b/.lintr index 726a8b596..35fa23b05 100644 --- a/.lintr +++ b/.lintr @@ -11,10 +11,11 @@ linters: all_linters( object_length_linter(70L), object_overwrite_linter = NULL, object_usage_linter = NULL, - todo_comment_linter = NULL, nonportable_path_linter = NULL, + pipe_consistency_linter = NULL, string_boundary_linter = NULL, strings_as_factors_linter = NULL, # since we use R >= 4.0 + todo_comment_linter = NULL, undesirable_function_linter = NULL, undesirable_operator_linter = NULL ) From b7ad523451c85c3b19a6baf429e7846fff0ae865 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Mon, 21 Jul 2025 11:05:19 -0700 Subject: [PATCH 214/238] Give a friendlier failure when lacking knitr --- R/transform-code.R | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/R/transform-code.R b/R/transform-code.R index 7e2cba4ff..b63da362b 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -168,9 +168,12 @@ get_engine_pattern <- function() { #' @inheritParams separate_chunks #' @keywords internal get_knitr_pattern <- function(filetype) { - if (filetype == "Rnw") { - knitr::all_patterns[["rnw"]] - } else if (filetype == "Rmd") { - knitr::all_patterns[["md"]] + if (!filetype %in% c("Rnw", "Rmd")) { + return(NULL) } + stopifnot( + `{knitr} is required to process vignette files (Rmd, Rnw)` = + requireNamespace("knitr", quietly = TRUE) + ) + knitr::all_patterns[[if (filetype == "Rnw") "rnw" else "md"]] } From 2f971a8bc8a7c24ca942e882d9ae86494fca0ed7 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Wed, 23 Jul 2025 09:53:47 -0700 Subject: [PATCH 215/238] Use rlang::is_installed --- R/transform-code.R | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/R/transform-code.R b/R/transform-code.R index b63da362b..bd18d7f11 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -171,9 +171,8 @@ get_knitr_pattern <- function(filetype) { if (!filetype %in% c("Rnw", "Rmd")) { return(NULL) } - stopifnot( - `{knitr} is required to process vignette files (Rmd, Rnw)` = - requireNamespace("knitr", quietly = TRUE) - ) + if (!rlang::is_installed("knitr")) { + rlang::abort("{knitr} is required to process vignette files (Rmd, Rnw)") + } knitr::all_patterns[[if (filetype == "Rnw") "rnw" else "md"]] } From 5e30990dc9d411457e02ec0e0163e72cf9cd1f24 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 27 Jul 2025 12:31:55 +0200 Subject: [PATCH 216/238] don't remove curly curly braces around commas if it leads to 1) unparsable code and 2) asymmetric line breaks around { --- R/rules-line-breaks.R | 26 +++++++++++++++-- tests/testthat/curly-curly/mixed-in.R | 40 ++++++++++++++++++++++++++ tests/testthat/curly-curly/mixed-out.R | 28 ++++++++++++++++++ tests/testthat/test-cache-clean-up.R | 1 + tests/testthat/test-create_token.R | 1 + 5 files changed, 93 insertions(+), 3 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index fa801bc27..7fbf2e856 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -208,19 +208,39 @@ style_line_break_around_curly <- function(strict, pd) { #' @seealso style_text_without_curly_curly set_line_break_around_curly_curly <- function(pd) { if (is_curly_expr(pd)) { + # outer # none after { opening_before <- (pd$token == "'{'") & - (pd$token_before == "'{'" | pd$token_after == "'{'") + (pd$token_after == "'{'") # none before } closing_before <- (pd$token == "'}'") & - (pd$token_after == "'}'" | pd$token_before == "'}'") + (pd$token_before == "'}'") if (any(opening_before) && any(closing_before)) { pos_opening_idx <- lag(opening_before, default = FALSE) & pd$token != "COMMENT" pd$lag_newlines[pos_opening_idx] <- 0L if (any(pos_opening_idx)) { # if line is broken with opening `{`, also break it with closing - pd$lag_newlines[closing_before & pd$token_after != "COMMENT"] <- 0L + pd$lag_newlines[closing_before & pd$token_before != "COMMENT"] <- 0L + } + } + + # inner + # none before { + opening_before <- (pd$token == "'{'") & + (pd$token_before == "'{'") + + # none after } + closing_before <- (pd$token == "'}'") & + (pd$token_after == "'}'") + + if (any(opening_before) && any(closing_before)) { + pos_opening_idx <- lag(opening_before, default = FALSE) & pd$token != "COMMENT" + can_remove_line_break_closing <- closing_before & pd$token_before != "COMMENT" + if (any(pos_opening_idx) && any(can_remove_line_break_closing)) { + pd$lag_newlines[pos_opening_idx] <- 0L + # if line is broken with opening `{`, also break it with closing + pd$lag_newlines[can_remove_line_break_closing] <- 0L } } } diff --git a/tests/testthat/curly-curly/mixed-in.R b/tests/testthat/curly-curly/mixed-in.R index e99eb810c..cae5a280c 100644 --- a/tests/testthat/curly-curly/mixed-in.R +++ b/tests/testthat/curly-curly/mixed-in.R @@ -112,3 +112,43 @@ call({{ {{ # }} + + +call({ + { + 1 + } +}) + +call({ + { + 1 # + } +}) + +call({ + { # + 1 + } +}) + +call({ + { + 1 + } # +}) + + +call({ + { + 1 + } +} # +) + +call({ # + { + 1 + } +} +) diff --git a/tests/testthat/curly-curly/mixed-out.R b/tests/testthat/curly-curly/mixed-out.R index a18134391..c9d54df86 100644 --- a/tests/testthat/curly-curly/mixed-out.R +++ b/tests/testthat/curly-curly/mixed-out.R @@ -111,3 +111,31 @@ call({{ {{ # }} + + +call({{ 1 }}) + +call({{ + 1 # +}}) + +call({{ # + 1 +}}) + +call({ + { + 1 + } # +}) + + +call( + {{ 1 }} # +) + +call({ # + { + 1 + } +}) diff --git a/tests/testthat/test-cache-clean-up.R b/tests/testthat/test-cache-clean-up.R index 66adce823..8137a0503 100644 --- a/tests/testthat/test-cache-clean-up.R +++ b/tests/testthat/test-cache-clean-up.R @@ -21,3 +21,4 @@ test_that("clear Cache", { length(list.dirs(R.cache::getCachePath("styler"))) == 1L ) }) + diff --git a/tests/testthat/test-create_token.R b/tests/testthat/test-create_token.R index bf99b6dcb..272d3bb72 100644 --- a/tests/testthat/test-create_token.R +++ b/tests/testthat/test-create_token.R @@ -57,3 +57,4 @@ test_that("unambiguous pos_id won't be created (up)", { ) expect_error(create_pos_id(pd, 1L, by = 0.4, after = TRUE)) }) + From cbef5a173f4ffa192dd018214e0ae06782d494b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 27 Jul 2025 10:38:07 +0000 Subject: [PATCH 217/238] pre-commit --- tests/testthat/test-cache-clean-up.R | 1 - tests/testthat/test-create_token.R | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/testthat/test-cache-clean-up.R b/tests/testthat/test-cache-clean-up.R index 8137a0503..66adce823 100644 --- a/tests/testthat/test-cache-clean-up.R +++ b/tests/testthat/test-cache-clean-up.R @@ -21,4 +21,3 @@ test_that("clear Cache", { length(list.dirs(R.cache::getCachePath("styler"))) == 1L ) }) - diff --git a/tests/testthat/test-create_token.R b/tests/testthat/test-create_token.R index 272d3bb72..bf99b6dcb 100644 --- a/tests/testthat/test-create_token.R +++ b/tests/testthat/test-create_token.R @@ -57,4 +57,3 @@ test_that("unambiguous pos_id won't be created (up)", { ) expect_error(create_pos_id(pd, 1L, by = 0.4, after = TRUE)) }) - From 2b01f7bbc10975bda0cc20b8acd97d687da4cf88 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 27 Jul 2025 18:33:57 +0200 Subject: [PATCH 218/238] factor out sub-functions for better readability --- R/rules-line-breaks.R | 72 +++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 7fbf2e856..0ced09d49 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -207,43 +207,49 @@ style_line_break_around_curly <- function(strict, pd) { #' @keywords internal #' @seealso style_text_without_curly_curly set_line_break_around_curly_curly <- function(pd) { - if (is_curly_expr(pd)) { - # outer - # none after { - opening_before <- (pd$token == "'{'") & - (pd$token_after == "'{'") - - # none before } - closing_before <- (pd$token == "'}'") & - (pd$token_before == "'}'") - if (any(opening_before) && any(closing_before)) { - pos_opening_idx <- lag(opening_before, default = FALSE) & pd$token != "COMMENT" - pd$lag_newlines[pos_opening_idx] <- 0L - if (any(pos_opening_idx)) { - # if line is broken with opening `{`, also break it with closing - pd$lag_newlines[closing_before & pd$token_before != "COMMENT"] <- 0L - } + if (!is_curly_expr(pd)) { + return(pd) + } + + pd %>% + set_line_break_around_outer_curly_curly() %>% + set_line_break_around_inner_curly_curly() +} + +set_line_break_around_outer_curly_curly <- function(pd) { + # none after { + opening_before <- (pd$token == "'{'") & (pd$token_after == "'{'") + # none before } + closing_before <- (pd$token == "'}'") & (pd$token_before == "'}'") + + if (any(opening_before) && any(closing_before)) { + pos_opening_idx <- lag(opening_before, default = FALSE) & pd$token != "COMMENT" + pd$lag_newlines[pos_opening_idx] <- 0L + if (any(pos_opening_idx)) { + # if line is broken with opening `{`, also break it with closing + pd$lag_newlines[closing_before & pd$token_before != "COMMENT"] <- 0L } + } - # inner - # none before { - opening_before <- (pd$token == "'{'") & - (pd$token_before == "'{'") - - # none after } - closing_before <- (pd$token == "'}'") & - (pd$token_after == "'}'") - - if (any(opening_before) && any(closing_before)) { - pos_opening_idx <- lag(opening_before, default = FALSE) & pd$token != "COMMENT" - can_remove_line_break_closing <- closing_before & pd$token_before != "COMMENT" - if (any(pos_opening_idx) && any(can_remove_line_break_closing)) { - pd$lag_newlines[pos_opening_idx] <- 0L - # if line is broken with opening `{`, also break it with closing - pd$lag_newlines[can_remove_line_break_closing] <- 0L - } + pd +} + +set_line_break_around_inner_curly_curly <- function(pd) { + # none before { + opening_before <- (pd$token == "'{'") & (pd$token_before == "'{'") + # none after } + closing_before <- (pd$token == "'}'") & (pd$token_after == "'}'") + + if (any(opening_before) && any(closing_before)) { + pos_opening_idx <- lag(opening_before, default = FALSE) & pd$token != "COMMENT" + can_remove_line_break_closing <- closing_before & pd$token_before != "COMMENT" + if (any(pos_opening_idx) && any(can_remove_line_break_closing)) { + pd$lag_newlines[pos_opening_idx] <- 0L + # if line is broken with opening `{`, also break it with closing + pd$lag_newlines[can_remove_line_break_closing] <- 0L } } + pd } From e163e20d201d2b78aac26cf6b132f54bb14706bf Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 27 Jul 2025 22:37:27 +0200 Subject: [PATCH 219/238] update news --- NEWS.md | 116 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 93 insertions(+), 23 deletions(-) diff --git a/NEWS.md b/NEWS.md index 62b3d4d5b..517d8d2fb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,76 @@ -# styler 1.10.3 +# {styler} 1.11.0 + +This release fixes a bug related that prevented {styler} to format code with +comments in curly-curly expressions `{{` (#1269). +[@IndrajeetPatil](https://github.com/IndrajeetPatil) is now a package +author. Thanks for your many contributions. + +**New features** + +- Add support for {webr} code chunks in Rmd/qmd documents (#1229). +- Add colored output to R API (#1187). + +**Major changes** + +- Ensure {styler} can format code with comment in curly-curly (#1269). +- Adapt to single indent semantics in style guide (#1235). +- Remove excessive line breaks between top-level expressions (#1239). +- Remove blank lines after opening and before closing braces (#1995). +- Empty curly have no spaces around (#1234). +- Remove spaces around dollar operator (#1246). +- Improve stack trace styler throws on parse error (#1216). +- Use Bootstrap 5 template for pkgdown website (#1209). +- Complete third-party style guide documentation (#1201). +- Document package options (#1193). +- Bump minimum needed R version to 4.0 (#1197). + +**Minor changes** + +- Ensure formatted token is a call before forcing line breaks (#1254). +- Fix lints (#1260), update `.lintr` file. +- Use `all_linters()` instead of using tags (#1207). +- Fix `paste_linter()` lints (#1204). +- Turn off `strings_as_factors_linter()` (#1217). +- Update precommit config (#1205). +- Remove unused `extend_if_comment()` internal (#1250). +- Remove unused internal utility: `calls_sys()` (#1213). +- Remove unused testing helper: `generate_test_samples()` (#1212). +- Improve a few function names (#1249). +- Use `expect_no_warning()` (#1248). +- Update WORDLIST (#1240, #1210). +- Check for warnings in examples and tests (#1219). +- Use stable version of {purrr} (#1215). +- Don't store code tree structures in tests (#1208). +- Update touchstone config (#1203). +- Add non-US locale and use pak to upgrade packages in GHA (#1200). +- Welcome Indrajeet as author (#1198). + +Thanks for everyone who contributed to this release: +[@armenic](https://github.com/armenic), +[@bernt-matthias](https://github.com/bernt-matthias), +[@cicdguy](https://github.com/cicdguy), +[@elgabbas](https://github.com/elgabbas), +[@fh-mthomson](https://github.com/fh-mthomson), +[@IndrajeetPatil](https://github.com/IndrajeetPatil), +[@kevinushey](https://github.com/kevinushey), +[@kongdd](https://github.com/kongdd), +[@krlmlr](https://github.com/krlmlr), +[@lorenzwalthert](https://github.com/lorenzwalthert), +[@maikol-solis](https://github.com/maikol-solis), +[@MichaelChirico](https://github.com/MichaelChirico), +[@nickhir](https://github.com/nickhir), +[@obsaditelnost](https://github.com/obsaditelnost), +[@olivroy](https://github.com/olivroy), +[@rinkjames](https://github.com/rinkjames), +[@SamGG](https://github.com/SamGG), +[@stibu81](https://github.com/stibu81), +[@strengejacke](https://github.com/strengejacke), +[@wiper8](https://github.com/wiper8), and +[@wurli](https://github.com/wurli). + +# {styler} 1.10.3 This release was requested by the CRAN team since parser error messages changed, which were hard-coded in some unit tests (#1180). @@ -32,7 +102,7 @@ We thank everyone who helped making this release possible. [@AshesITR](https://github.com/AshesITR), [@averissimo](https://github.com/averissimo), [@IndrajeetPatil](https://github.com/IndrajeetPatil), [@lorenzwalthert](https://github.com/lorenzwalthert), [@mcanouil](https://github.com/mcanouil), [@moodymudskipper](https://github.com/moodymudskipper), [@olivroy](https://github.com/olivroy), [@sbanville-delfi](https://github.com/sbanville-delfi), [@sorhawell](https://github.com/sorhawell), [@ssh352](https://github.com/ssh352), [@swo](https://github.com/swo), and [@vertesy](https://github.com/vertesy). -# styler 1.10.2 +# {styler} 1.10.2 This release was requested by the CRAN team to fix CRAN warning on invalid numeric version inputs (#1143). @@ -50,7 +120,7 @@ We thank everyone who helped making this release possible. [@krlmlr](https://github.com/krlmlr), [@lorenzwalthert](https://github.com/lorenzwalthert), [@MichaelChirico](https://github.com/MichaelChirico), [@olivroy](https://github.com/olivroy), [@rkrug](https://github.com/rkrug), and [@rossdrucker](https://github.com/rossdrucker). -# styler 1.10.1 +# {styler} 1.10.1 This release was requested by CRAN due to accidentally populating a user cache while building vignettes for R >= 4.3.0. @@ -59,7 +129,7 @@ This release was requested by CRAN due to accidentally populating a user cache w Thanks to everyone who contributed to this release: [@olivroy](https://github.com/olivroy) and [@krlmlr](https://github.com/krlmlr). -# styler 1.10.0 +# {styler} 1.10.0 This release contains speed-ups between 20% and 40% depending on your use case thanks to replacing {base} functionality with {vctrs} (#1114). With the speed @@ -85,7 +155,7 @@ Thanks for everyone contributing to this release: [@IndrajeetPatil](https://github.com/IndrajeetPatil), [@krlmlr](https://github.com/krlmlr), [@kyleam](https://github.com/kyleam), [@MichaelChirico](https://github.com/MichaelChirico), [@mvanaman](https://github.com/mvanaman), [@olivroy](https://github.com/olivroy), and [@vvarik](https://github.com/vvarik). -# styler 1.9.1 +# {styler} 1.9.1 **Bug fixes** @@ -105,7 +175,7 @@ Thanks for everyone who contributed to this release: [@dpprdan](https://github.com/dpprdan), [@flying-sheep](https://github.com/flying-sheep), [@giocomai](https://github.com/giocomai) and [@MichaelChirico](https://github.com/MichaelChirico). -# styler 1.9.0 +# {styler} 1.9.0 **Features** @@ -170,7 +240,7 @@ A big shout out to anyone who contributed to this release: [@juliangrimm225](https://github.com/) and [@krlmlr](https://github.com/krlmlr). -# styler 1.8.1 +# {styler} 1.8.1 **Features** @@ -201,7 +271,7 @@ Dave Jarvis, [@Robinlovelace](https://github.com/Robinlovelace). -# styler 1.8.0 +# {styler} 1.8.0 {styler} 1.8.0 comes with a host of new features, around 40% speed improvement, bug fixes and the removal of 8 recursive dependencies. We also welcome @@ -312,7 +382,7 @@ A big hand to everyone who made this release possible: [@lorenzwalthert](https://github.com/lorenzwalthert), [@MichaelChirico](https://github.com/MichaelChirico), [@moodymudskipper](https://github.com/moodymudskipper), [@RaymondBalise](https://github.com/RaymondBalise), [@Robinlovelace](https://github.com/Robinlovelace), [@sebffischer](https://github.com/sebffischer), [@sgorm123](https://github.com/sgorm123), [@stefanoborini](https://github.com/stefanoborini), and [@wdkrnls](https://github.com/wdkrnls). -# styler 1.7.0 +# {styler} 1.7.0 - if `else` follows directly after `if`, line breaks are removed (#935). @@ -426,11 +496,11 @@ Thanks to all contributors that made this release possible: [\@ssh352](https://github.com/ssh352), and [\@xjtusjtu](https://github.com/xjtusjtu). -# styler 1.6.2 +# {styler} 1.6.2 - clean up cache files older than one week (#842). -# styler 1.6.1 +# {styler} 1.6.1 - Files with `.Rmarkdown` extension are now recognized as an R markdown files in `style_file()` and friends (#824). @@ -465,7 +535,7 @@ We'd like to thank all people who helped making this release possible: [\@lorenzwalthert](https://github.com/lorenzwalthert), and [\@MichaelChirico](https://github.com/MichaelChirico). -# styler 1.5.1 +# {styler} 1.5.1 ## Alignment detection @@ -568,7 +638,7 @@ release of styler through their contributions in issues and pull requests: [\@RoyalTS](https://github.com/RoyalTS), and [\@russHyde](https://github.com/russHyde). -# styler 1.4.1 +# {styler} 1.4.1 - fix interaction between cache and `base_indention`. This also fixes the Addin for styling a selection with base indention repeatedly (#764). @@ -582,7 +652,7 @@ Thanks to everyone who contributed to this release: [\@lorenzwalthert](https://github.com/lorenzwalthert), and [\@renkun-ken](https://github.com/renkun-ken). -# styler 1.4.0 +# {styler} 1.4.0 ## API Changes @@ -726,7 +796,7 @@ Thanks to all the people who made this release possible: [\@swsoyee](https://github.com/swsoyee), and [\@Winterstorm-j](https://github.com/Winterstorm-j). -# styler 1.3.2 +# {styler} 1.3.2 Release upon request by the CRAN team. @@ -739,7 +809,7 @@ Release upon request by the CRAN team. - skip timing tests on CRAN as requested by CRAN team because they did not pass on all machines (#603). -# styler 1.3.1 +# {styler} 1.3.1 Emergency release. In case multiple expressions are on one line and only some of them are cached, styler can remove code. To reach this state, some of the @@ -766,7 +836,7 @@ We thank the people who have contributed to this release: [\@ellessenne](https://github.com/ellessenne) and [\@renkun-ken](https://github.com/renkun-ken). -# styler 1.3.0 +# {styler} 1.3.0 ## Breaking changes @@ -820,7 +890,7 @@ Thanks to all contributors involved, in particular [\@pat-s](https://github.com/pat-s), and [\@programming-wizard](https://github.com). -# styler 1.2.0 +# {styler} 1.2.0 ## Breaking changes @@ -899,7 +969,7 @@ Thanks to all contributors involved, in particular [\@pat-s](https://github.com/pat-s), \@reddy-ia, and [\@russHyde](https://github.com/russHyde) -# styler 1.1.1 +# {styler} 1.1.1 This is primarily a maintenance release upon the request of the CRAN team (#490). @@ -988,7 +1058,7 @@ Thanks to all contributors involved, in particular [\@wdearden](https://github.com/wdearden), [\@wmayner](https://github.com/wmayner), and \@yech1990. -# styler 1.1.0 +# {styler} 1.1.0 This release introduces new features and is fully backward-compatible. It also adapts to changes in the R parser committed into R devel (#419). @@ -1028,7 +1098,7 @@ Thanks to all contributors for patches, issues and the like: @jonmcalder, @krlmlr, @IndrajeetPatil, @kalibera, @Hasnep, @kiranmaiganji, @dirkschumacher, @ClaytonJY, @wlandau, @maurolepore -# styler 1.0.2 +# {styler} 1.0.2 This is a maintenance release without any breaking API changes. @@ -1059,7 +1129,7 @@ Thanks to all contributors for patches, issues and the like: @katrinleinweber, @krlmlr, @dchiu911, @ramnathv, @aedobbyn, @Bio7, @tonytonov, @samhinshaw, @fny, @vnijs, @martin-mfg, @NGaffney, @dchiu911. -# styler 1.0.1 +# {styler} 1.0.1 This is a maintenance release without any breaking API changes. @@ -1099,7 +1169,7 @@ Thanks to all contributors for patches, issues and the like: @devSJR, @klrmlr, @yutannihilation, @samhinshaw, @martin-mfg, @jjramsey, @RMHogervorst, @wlandau, @llrs, @aaronrudkin, @crew102, @jkgrain, @jennybc, @joranE. -# styler 1.0.0 +# {styler} 1.0.0 Initial release. From cad32d1f496adb80c9bc872f18ccdafae360bd69 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 27 Jul 2025 20:43:36 +0000 Subject: [PATCH 220/238] pre-commit --- inst/WORDLIST | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index a6c3937ce..e3fa665a1 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -61,6 +61,7 @@ gadenbuie Gayathri getOption ggplot +GHA Github github gitsum @@ -119,6 +120,7 @@ oneliner ORCID ourself packrat +pak pandoc params parsable @@ -220,9 +222,11 @@ VignetteBuilder Visit'em walthert Walthert +webr winbuilder withr WN +WORDLIST www xaringan xfun From 854edfefbdb8a089d86c0f0ab95c911af678de79 Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Sun, 27 Jul 2025 21:56:45 -0700 Subject: [PATCH 221/238] check installation in transform_mixed instead --- R/transform-code.R | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/R/transform-code.R b/R/transform-code.R index bd18d7f11..929ba8182 100644 --- a/R/transform-code.R +++ b/R/transform-code.R @@ -36,6 +36,9 @@ transform_code <- function(path, fun, ..., dry) { #' @inheritParams separate_chunks #' @keywords internal transform_mixed <- function(lines, transformer_fun, filetype) { + if (filetype %in% c("Rnw", "Rmd") && !rlang::is_installed("knitr")) { + rlang::abort("{knitr} is required to process vignette files (Rmd, Rnw)") + } chunks <- separate_chunks(lines, filetype) chunks$r_chunks <- map(chunks$r_chunks, transform_mixed_non_empty, transformer_fun = transformer_fun @@ -168,11 +171,8 @@ get_engine_pattern <- function() { #' @inheritParams separate_chunks #' @keywords internal get_knitr_pattern <- function(filetype) { - if (!filetype %in% c("Rnw", "Rmd")) { - return(NULL) - } - if (!rlang::is_installed("knitr")) { - rlang::abort("{knitr} is required to process vignette files (Rmd, Rnw)") - } - knitr::all_patterns[[if (filetype == "Rnw") "rnw" else "md"]] + switch(filetype, + Rnw = knitr::all_patterns[["rnw"]], + Rmd = knitr::all_patterns[["md"]] + ) } From 8caaa9aa44670a0f277f167ed04bf82ad317b7dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 05:19:34 +0000 Subject: [PATCH 222/238] Bump actions/checkout from 4 to 5 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-full.yaml | 2 +- .github/workflows/check-no-warnings.yaml | 2 +- .github/workflows/pkgdown.yaml | 2 +- .github/workflows/pre-commit.yaml | 2 +- .github/workflows/test-coverage.yaml | 2 +- .github/workflows/touchstone-receive.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/check-full.yaml b/.github/workflows/check-full.yaml index ae20a0fbf..b5fba797a 100644 --- a/.github/workflows/check-full.yaml +++ b/.github/workflows/check-full.yaml @@ -50,7 +50,7 @@ jobs: sudo locale-gen zh_CN echo "LC_ALL=zh_CN" >> $GITHUB_ENV - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/check-no-warnings.yaml b/.github/workflows/check-no-warnings.yaml index 4b792a68d..872bb3772 100644 --- a/.github/workflows/check-no-warnings.yaml +++ b/.github/workflows/check-no-warnings.yaml @@ -14,7 +14,7 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: r-lib/actions/setup-r@v2 with: diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index cb6d59131..a490fa069 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -20,7 +20,7 @@ jobs: env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: r-lib/actions/setup-pandoc@v2 diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 2318ab9e1..5c8a08ca5 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -22,7 +22,7 @@ jobs: with: access_token: ${{ github.token }} - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index d9d5c3d89..159b5c8bd 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -15,7 +15,7 @@ jobs: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: r-lib/actions/setup-r@v2 with: diff --git a/.github/workflows/touchstone-receive.yaml b/.github/workflows/touchstone-receive.yaml index 361368720..15b79fa1d 100644 --- a/.github/workflows/touchstone-receive.yaml +++ b/.github/workflows/touchstone-receive.yaml @@ -24,7 +24,7 @@ jobs: config: ${{ steps.read_touchstone_config.outputs.config }} steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 From 4db8d657e0f6b4e79c73dd708e1c538dc3ed6b77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 03:04:02 +0000 Subject: [PATCH 223/238] Bump actions/setup-python from 5.6.0 to 6.0.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.6.0 to 6.0.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.6.0...v6.0.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 5c8a08ca5..b3b758db3 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5.6.0 + uses: actions/setup-python@v6.0.0 with: python-version: "3.13" From 0879d069190301f7dab2800a48ba2dc15bed16db Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 19 Sep 2025 19:50:36 +0200 Subject: [PATCH 224/238] Remove Twitter handle from author info and update docs Updated RoxygenNote version and improved consistency in documentation examples and rule descriptions. --- DESCRIPTION | 4 ++-- R/rules-line-breaks.R | 6 +++--- man/alignment_drop_last_expr.Rd | 2 +- man/set_line_break_before_curly_opening.Rd | 8 ++++---- man/style_dir.Rd | 2 +- man/style_pkg.Rd | 2 +- man/styler-package.Rd | 2 +- man/styler_options.Rd | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 3418e39e5..2449065a5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -16,7 +16,7 @@ Authors@R: family = "Patil", role = "aut", email = "patilindrajeet.science@gmail.com", - comment = c(ORCID = "0000-0003-1995-6531", Twitter = "@patilindrajeets"))) + comment = c(ORCID = "0000-0003-1995-6531"))) Description: Pretty-prints R code without changing the user's formatting intent. License: MIT + file LICENSE @@ -52,7 +52,7 @@ Roxygen: list(markdown = TRUE, roclets = c( "rd", "namespace", "collate", if (rlang::is_installed("pkgapi")) "pkgapi::api_roclet" else { warning("Please install r-lib/pkgapi to make sure the file API is kept up to date"); NULL})) -RoxygenNote: 7.3.2 +RoxygenNote: 7.3.3 Language: en-US Config/testthat/edition: 3 Config/testthat/parallel: true diff --git a/R/rules-line-breaks.R b/R/rules-line-breaks.R index 0ced09d49..673bcab41 100644 --- a/R/rules-line-breaks.R +++ b/R/rules-line-breaks.R @@ -3,11 +3,11 @@ #' Rule: #' * Principle: Function arguments that consist of a braced expression always #' need to start on a new line -#' * Exception: [...] unless it's the last argument and all other +#' * Exception: unless it's the last argument and all other #' arguments fit on the line of the function call -#' * Exception: [...] or they are named. +#' * Exception: or they are named #' * Extension: Also, expressions following on braced expressions also cause a -#' line trigger. +#' line trigger #' @keywords internal #' @examplesIf FALSE #' tryCatch( diff --git a/man/alignment_drop_last_expr.Rd b/man/alignment_drop_last_expr.Rd index f67092d76..269b04993 100644 --- a/man/alignment_drop_last_expr.Rd +++ b/man/alignment_drop_last_expr.Rd @@ -12,7 +12,7 @@ an if, while or for statement or a function call. We don't call about that part, in fact it's important to remove it for alignment. See 'Examples'. } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} call( x = 12, y = 3, diff --git a/man/set_line_break_before_curly_opening.Rd b/man/set_line_break_before_curly_opening.Rd index c590b58fc..4f60ca388 100644 --- a/man/set_line_break_before_curly_opening.Rd +++ b/man/set_line_break_before_curly_opening.Rd @@ -11,15 +11,15 @@ Rule: \itemize{ \item Principle: Function arguments that consist of a braced expression always need to start on a new line -\item Exception: \link{...} unless it's the last argument and all other +\item Exception: unless it's the last argument and all other arguments fit on the line of the function call -\item Exception: \link{...} or they are named. +\item Exception: or they are named \item Extension: Also, expressions following on braced expressions also cause a -line trigger. +line trigger } } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} tryCatch( { f(8) diff --git a/man/style_dir.Rd b/man/style_dir.Rd index 62c80e264..ca3060a9b 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -112,7 +112,7 @@ See section 'Warning' for a good strategy to apply styling safely. } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} style_dir("path/to/dir", filetype = c("rmd", ".R")) # the following is identical (because of ... and defaults) diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index 637cbc9a7..bd347adc9 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -110,7 +110,7 @@ styling whether or not it was actually changed (or would be changed when } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} # the following is identical (because of ... and defaults) # but the first is most convenient: style_pkg(strict = TRUE) diff --git a/man/styler-package.Rd b/man/styler-package.Rd index 8774cdba7..d69914d9e 100644 --- a/man/styler-package.Rd +++ b/man/styler-package.Rd @@ -41,7 +41,7 @@ Useful links: Authors: \itemize{ \item Kirill Müller \email{kirill@cynkra.com} (\href{https://orcid.org/0000-0002-1416-3412}{ORCID}) - \item Indrajeet Patil \email{patilindrajeet.science@gmail.com} (\href{https://orcid.org/0000-0003-1995-6531}{ORCID}) (@patilindrajeets) + \item Indrajeet Patil \email{patilindrajeet.science@gmail.com} (\href{https://orcid.org/0000-0003-1995-6531}{ORCID}) } } diff --git a/man/styler_options.Rd b/man/styler_options.Rd index add90dd39..05a3bd2f3 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -42,7 +42,7 @@ If \code{TRUE}, the package tests whether the directory is writable. } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} getOption("styler.ignore_alignment") options( styler.ignore_alignment = TRUE, From 7b6140707cf81c4268e096bd19a87aaff7662af0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 19 Sep 2025 17:57:18 +0000 Subject: [PATCH 225/238] pre-commit --- man/alignment_drop_last_expr.Rd | 2 +- man/set_line_break_before_curly_opening.Rd | 2 +- man/style_dir.Rd | 2 +- man/style_pkg.Rd | 2 +- man/styler_options.Rd | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/man/alignment_drop_last_expr.Rd b/man/alignment_drop_last_expr.Rd index 269b04993..f67092d76 100644 --- a/man/alignment_drop_last_expr.Rd +++ b/man/alignment_drop_last_expr.Rd @@ -12,7 +12,7 @@ an if, while or for statement or a function call. We don't call about that part, in fact it's important to remove it for alignment. See 'Examples'. } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} call( x = 12, y = 3, diff --git a/man/set_line_break_before_curly_opening.Rd b/man/set_line_break_before_curly_opening.Rd index 4f60ca388..8501984dd 100644 --- a/man/set_line_break_before_curly_opening.Rd +++ b/man/set_line_break_before_curly_opening.Rd @@ -19,7 +19,7 @@ line trigger } } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} tryCatch( { f(8) diff --git a/man/style_dir.Rd b/man/style_dir.Rd index ca3060a9b..62c80e264 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -112,7 +112,7 @@ See section 'Warning' for a good strategy to apply styling safely. } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} style_dir("path/to/dir", filetype = c("rmd", ".R")) # the following is identical (because of ... and defaults) diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index bd347adc9..637cbc9a7 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -110,7 +110,7 @@ styling whether or not it was actually changed (or would be changed when } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} # the following is identical (because of ... and defaults) # but the first is most convenient: style_pkg(strict = TRUE) diff --git a/man/styler_options.Rd b/man/styler_options.Rd index 05a3bd2f3..add90dd39 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -42,7 +42,7 @@ If \code{TRUE}, the package tests whether the directory is writable. } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} getOption("styler.ignore_alignment") options( styler.ignore_alignment = TRUE, From 1e74b24d8d6ce03782eada8a59b470b4bd5ac0be Mon Sep 17 00:00:00 2001 From: Indrajeet Patil Date: Fri, 19 Sep 2025 20:03:05 +0200 Subject: [PATCH 226/238] bump hook versions --- .pre-commit-config.yaml | 4 ++-- man/alignment_drop_last_expr.Rd | 2 +- man/set_line_break_before_curly_opening.Rd | 2 +- man/style_dir.Rd | 2 +- man/style_pkg.Rd | 2 +- man/styler_options.Rd | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 15e933f66..efdbc2d34 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.3.9009 + rev: v0.4.3.9014 hooks: - id: style-files args: @@ -101,7 +101,7 @@ repos: )$ - id: pkgdown - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files args: ["--maxkb=200"] diff --git a/man/alignment_drop_last_expr.Rd b/man/alignment_drop_last_expr.Rd index f67092d76..269b04993 100644 --- a/man/alignment_drop_last_expr.Rd +++ b/man/alignment_drop_last_expr.Rd @@ -12,7 +12,7 @@ an if, while or for statement or a function call. We don't call about that part, in fact it's important to remove it for alignment. See 'Examples'. } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} call( x = 12, y = 3, diff --git a/man/set_line_break_before_curly_opening.Rd b/man/set_line_break_before_curly_opening.Rd index 8501984dd..4f60ca388 100644 --- a/man/set_line_break_before_curly_opening.Rd +++ b/man/set_line_break_before_curly_opening.Rd @@ -19,7 +19,7 @@ line trigger } } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} tryCatch( { f(8) diff --git a/man/style_dir.Rd b/man/style_dir.Rd index 62c80e264..ca3060a9b 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -112,7 +112,7 @@ See section 'Warning' for a good strategy to apply styling safely. } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} style_dir("path/to/dir", filetype = c("rmd", ".R")) # the following is identical (because of ... and defaults) diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index 637cbc9a7..bd347adc9 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -110,7 +110,7 @@ styling whether or not it was actually changed (or would be changed when } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} # the following is identical (because of ... and defaults) # but the first is most convenient: style_pkg(strict = TRUE) diff --git a/man/styler_options.Rd b/man/styler_options.Rd index add90dd39..05a3bd2f3 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -42,7 +42,7 @@ If \code{TRUE}, the package tests whether the directory is writable. } \examples{ -\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} +\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} getOption("styler.ignore_alignment") options( styler.ignore_alignment = TRUE, From 8cb9a1da85d5384e4bd5ce636b15086766808ea6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 19 Sep 2025 18:10:30 +0000 Subject: [PATCH 227/238] pre-commit --- man/alignment_drop_last_expr.Rd | 2 +- man/set_line_break_before_curly_opening.Rd | 2 +- man/style_dir.Rd | 2 +- man/style_pkg.Rd | 2 +- man/styler_options.Rd | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/man/alignment_drop_last_expr.Rd b/man/alignment_drop_last_expr.Rd index 269b04993..f67092d76 100644 --- a/man/alignment_drop_last_expr.Rd +++ b/man/alignment_drop_last_expr.Rd @@ -12,7 +12,7 @@ an if, while or for statement or a function call. We don't call about that part, in fact it's important to remove it for alignment. See 'Examples'. } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} call( x = 12, y = 3, diff --git a/man/set_line_break_before_curly_opening.Rd b/man/set_line_break_before_curly_opening.Rd index 4f60ca388..8501984dd 100644 --- a/man/set_line_break_before_curly_opening.Rd +++ b/man/set_line_break_before_curly_opening.Rd @@ -19,7 +19,7 @@ line trigger } } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} tryCatch( { f(8) diff --git a/man/style_dir.Rd b/man/style_dir.Rd index ca3060a9b..62c80e264 100644 --- a/man/style_dir.Rd +++ b/man/style_dir.Rd @@ -112,7 +112,7 @@ See section 'Warning' for a good strategy to apply styling safely. } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} style_dir("path/to/dir", filetype = c("rmd", ".R")) # the following is identical (because of ... and defaults) diff --git a/man/style_pkg.Rd b/man/style_pkg.Rd index bd347adc9..637cbc9a7 100644 --- a/man/style_pkg.Rd +++ b/man/style_pkg.Rd @@ -110,7 +110,7 @@ styling whether or not it was actually changed (or would be changed when } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} # the following is identical (because of ... and defaults) # but the first is most convenient: style_pkg(strict = TRUE) diff --git a/man/styler_options.Rd b/man/styler_options.Rd index 05a3bd2f3..add90dd39 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -42,7 +42,7 @@ If \code{TRUE}, the package tests whether the directory is writable. } \examples{ -\dontshow{if (FALSE) withAutoprint(\{ # examplesIf} +\dontshow{if (FALSE) (if (getRversion() >= "3.4") withAutoprint else force)(\{ # examplesIf} getOption("styler.ignore_alignment") options( styler.ignore_alignment = TRUE, From f2ba56121bcec6cbcfe07be01bb46caade132fba Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 12 Oct 2025 19:36:57 +0200 Subject: [PATCH 228/238] more informative error message on nested dont statements in roxygen code examples --- R/roxygen-examples-find.R | 11 +++++++++++ tests/testthat/test-roxygen-examples-parse.R | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/R/roxygen-examples-find.R b/R/roxygen-examples-find.R index bf61983c9..dde93f586 100644 --- a/R/roxygen-examples-find.R +++ b/R/roxygen-examples-find.R @@ -61,6 +61,17 @@ find_dont_seqs <- function(bare) { find_dont_closings <- function(bare, dont_openings) { opening <- cumsum(bare == "{") closing <- cumsum(bare == "}") + if (sum(closing) == 0L) { + rlang::abort(paste0( + "Failed to find closing braces for a \\dont* statement in a roxygen ", + "code example. This is most likely caused by nested \\donttest, ", + "\\dontrun or \\dontshow statement. These are not supported with ", + "{styler}, not even when {styler} is turned off for these lines as per ", + "the documentation at ", + "https://styler.r-lib.org/articles/styler.html#ignoring-certain-lines. ", + "See also GitHub issue https://github.com/r-lib/styler/issues/498." + )) + } diff <- opening - closing level_dont <- diff[dont_openings] match_closing <- intersect( diff --git a/tests/testthat/test-roxygen-examples-parse.R b/tests/testthat/test-roxygen-examples-parse.R index 5a1a56c96..8c02e6b41 100644 --- a/tests/testthat/test-roxygen-examples-parse.R +++ b/tests/testthat/test-roxygen-examples-parse.R @@ -41,6 +41,19 @@ test_that("donts can be parsed", { ) }) +test_that("Nested dont* statements return informative error message", { + expect_error( + style_roxygen_code_example_one( + c( + "#' @examples", "#' # styler: off", "#' \\donttest{", "#' \\dontshow{", + "#' 1+1", "#' }", "#' }", "#' # styler: on" + ), + transformers = tidyverse_style(scope = "spaces"), base_indention = 2L + ), + regexp = "nested \\\\donttest" + ) +}) + test_that("braces examples can be parsed", { expect_equal( parse_roxygen( From f85468fe511029467bd42327d7c72dbed80cdfd7 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 3 Aug 2025 22:16:28 +0200 Subject: [PATCH 229/238] bump version --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 3418e39e5..0d59720bc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Type: Package Package: styler Title: Non-Invasive Pretty Printing of R Code -Version: 1.10.3.9000 +Version: 1.11.0 Authors@R: c(person(given = "Kirill", family = "Müller", From 5c1e17f65b4d5ec78ad9c75e3e8770103eeb81b6 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 3 Aug 2025 22:48:59 +0200 Subject: [PATCH 230/238] fix broken URLs --- README.Rmd | 2 +- README.md | 3 ++- vignettes/third-party-integrations.Rmd | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.Rmd b/README.Rmd index 1dabfaa36..bfe0ca597 100644 --- a/README.Rmd +++ b/README.Rmd @@ -69,4 +69,4 @@ The following online docs are available: Hex sticker font is [Gayathri](https://fonts.google.com/specimen/Gayathri), and the image is taken from icon made by [Freepik](https://www.freepik.com) and -available at [flaticon.com](https://www.flaticon.com/free-icon/suit). +available at [flaticon.com](https://www.flaticon.com/free-icon/suit-and-tie-outfit_25978?term=suit&page=1&position=2&origin=search&related_id=25978). diff --git a/README.md b/README.md index d2b90ab80..65e47cec2 100644 --- a/README.md +++ b/README.md @@ -58,4 +58,5 @@ The following online docs are available: Hex sticker font is [Gayathri](https://fonts.google.com/specimen/Gayathri), and the image is taken from icon made by [Freepik](https://www.freepik.com) and available -at [flaticon.com](https://www.flaticon.com/free-icon/suit). +at +[flaticon.com](https://www.flaticon.com/free-icon/suit-and-tie-outfit_25978?term=suit&page=1&position=2&origin=search&related_id=25978). diff --git a/vignettes/third-party-integrations.Rmd b/vignettes/third-party-integrations.Rmd index 679ad363f..f405d2447 100644 --- a/vignettes/third-party-integrations.Rmd +++ b/vignettes/third-party-integrations.Rmd @@ -34,7 +34,7 @@ styler functionality is available in other tools, most notably - in the *format-all* command for Emacs in [emacs-format-all-the-code](https://github.com/lassik/emacs-format-all-the-code). -- As a [Jupyterlab code formatter](https://ryantam626.github.io/jupyterlab_code_formatter/index.html). +- As a [Jupyterlab code formatter](https://jupyterlab-code-formatter.readthedocs.io). - for pretty-printing [drake](https://github.com/ropensci/drake) workflow data frames with `drake::drake_plan_source()`. From d5103be4ce13a09878f3c0885efb2bd1dc58b947 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 3 Aug 2025 23:28:58 +0200 Subject: [PATCH 231/238] update CRAN comments --- cran-comments.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index 51dc8188e..a49d3b43b 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -4,14 +4,16 @@ editor_options: wrap: 79 --- -This is a release requested by the CRAN team to comply with new error messages -in the R parser that caused unit tests to fail. +This release fixes a bug related that prevented {styler} to format code with +comments in curly-curly expressions `{{` (#1269). +[@IndrajeetPatil](https://github.com/IndrajeetPatil) is now a package +author. Thanks for your many contributions. ## Test environments -- ubuntu-latest (on GitHub Actions): R devel, R 4.4.0, R 4.3.0, R 4.2.1, 4.1.2, R 4.0.5 -- Windows Server 10 (on GitHub Actions): R devel, R 4.4.0, R 4.3.0, R 4.2.1, R 4.1.2, R 4.0.5 +- ubuntu-latest (on GitHub Actions): R devel, R 4.5.1, R 4.4.0, R 4.3.0, R 4.2.1, 4.1.2 +- Windows Server 10 (on GitHub Actions): R devel, R 4.5.1, R 4.4.0, R 4.3.0, R 4.2.1, R 4.1.2 - win-builder: R devel ## R CMD check results From 63d1e4bb5fd625f68da3d3c790a14bbb0797f486 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 12 Oct 2025 18:56:08 +0200 Subject: [PATCH 232/238] update pre-commit --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 15e933f66..b9515640a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.3.9009 + rev: v0.4.3.9014 hooks: - id: style-files args: From ea091582fb34db4086f180ca4ac7bd7125f6a065 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Sun, 12 Oct 2025 21:34:42 +0200 Subject: [PATCH 233/238] update pre-commit --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b9515640a..7f63c8594 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ default_language_version: repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.3.9014 + rev: v0.4.3.9015 hooks: - id: style-files args: @@ -101,7 +101,7 @@ repos: )$ - id: pkgdown - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files args: ["--maxkb=200"] @@ -119,7 +119,7 @@ repos: tests/testthat/_snaps/.*| )$ - repo: https://github.com/lorenzwalthert/gitignore-tidy - rev: 0.1.2 + rev: 0.1.3 hooks: - id: tidy-gitignore - repo: local From 8242b3cc34ab9d58419809cd7a28b6f1acc7fd96 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 12 Oct 2025 21:24:31 +0000 Subject: [PATCH 234/238] pre-commit --- man/styler_options.Rd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/styler_options.Rd b/man/styler_options.Rd index add90dd39..568af57cc 100644 --- a/man/styler_options.Rd +++ b/man/styler_options.Rd @@ -18,7 +18,7 @@ The name of the style transformer to use in the addins. (default: \code{"styler::tidyverse_style()"}) \item \code{styler.cache_name}: character. The name of the styler cache to use. -(default: 1.10.3.9000) +(default: 1.11.0) \item \code{styler.cache_root}: character. The directory where the cache files are stored. For more, see \code{help("caching")}. (default: \code{NULL}) From dec7e076c24fecc9f8211996fef84323de10536f Mon Sep 17 00:00:00 2001 From: Michael Chirico Date: Mon, 13 Oct 2025 11:13:02 -0700 Subject: [PATCH 235/238] cite DiagrammeR --- DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/DESCRIPTION b/DESCRIPTION index 2c4a61b02..c8d2d32f6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -35,6 +35,7 @@ Imports: vctrs (>= 0.4.1), withr (>= 2.3.0), Suggests: + DiagrammeR, data.tree (>= 0.1.6), digest, here, From 30cd9fef002342bc235dcc2f691268908604e02b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 13 Oct 2025 18:18:37 +0000 Subject: [PATCH 236/238] pre-commit --- inst/WORDLIST | 1 + 1 file changed, 1 insertion(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index e3fa665a1..c36731a1a 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -34,6 +34,7 @@ dec dependabot desc devtools +DiagrammeR dir dont dontrun From 8ae74534785105d241b9b5568de9830f47c49834 Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Thu, 16 Oct 2025 10:42:40 +0200 Subject: [PATCH 237/238] fix: use pkgdown convention required for news to allow rendering --- NEWS.md | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/NEWS.md b/NEWS.md index 517d8d2fb..0354bd517 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,6 @@ -# {styler} 1.11.0 +# styler 1.11.0 This release fixes a bug related that prevented {styler} to format code with comments in curly-curly expressions `{{` (#1269). @@ -70,7 +70,7 @@ Thanks for everyone who contributed to this release: [@wiper8](https://github.com/wiper8), and [@wurli](https://github.com/wurli). -# {styler} 1.10.3 +# styler 1.10.3 This release was requested by the CRAN team since parser error messages changed, which were hard-coded in some unit tests (#1180). @@ -102,7 +102,7 @@ We thank everyone who helped making this release possible. [@AshesITR](https://github.com/AshesITR), [@averissimo](https://github.com/averissimo), [@IndrajeetPatil](https://github.com/IndrajeetPatil), [@lorenzwalthert](https://github.com/lorenzwalthert), [@mcanouil](https://github.com/mcanouil), [@moodymudskipper](https://github.com/moodymudskipper), [@olivroy](https://github.com/olivroy), [@sbanville-delfi](https://github.com/sbanville-delfi), [@sorhawell](https://github.com/sorhawell), [@ssh352](https://github.com/ssh352), [@swo](https://github.com/swo), and [@vertesy](https://github.com/vertesy). -# {styler} 1.10.2 +# styler 1.10.2 This release was requested by the CRAN team to fix CRAN warning on invalid numeric version inputs (#1143). @@ -120,7 +120,7 @@ We thank everyone who helped making this release possible. [@krlmlr](https://github.com/krlmlr), [@lorenzwalthert](https://github.com/lorenzwalthert), [@MichaelChirico](https://github.com/MichaelChirico), [@olivroy](https://github.com/olivroy), [@rkrug](https://github.com/rkrug), and [@rossdrucker](https://github.com/rossdrucker). -# {styler} 1.10.1 +# styler 1.10.1 This release was requested by CRAN due to accidentally populating a user cache while building vignettes for R >= 4.3.0. @@ -129,7 +129,7 @@ This release was requested by CRAN due to accidentally populating a user cache w Thanks to everyone who contributed to this release: [@olivroy](https://github.com/olivroy) and [@krlmlr](https://github.com/krlmlr). -# {styler} 1.10.0 +# styler 1.10.0 This release contains speed-ups between 20% and 40% depending on your use case thanks to replacing {base} functionality with {vctrs} (#1114). With the speed @@ -155,7 +155,7 @@ Thanks for everyone contributing to this release: [@IndrajeetPatil](https://github.com/IndrajeetPatil), [@krlmlr](https://github.com/krlmlr), [@kyleam](https://github.com/kyleam), [@MichaelChirico](https://github.com/MichaelChirico), [@mvanaman](https://github.com/mvanaman), [@olivroy](https://github.com/olivroy), and [@vvarik](https://github.com/vvarik). -# {styler} 1.9.1 +# styler 1.9.1 **Bug fixes** @@ -175,7 +175,7 @@ Thanks for everyone who contributed to this release: [@dpprdan](https://github.com/dpprdan), [@flying-sheep](https://github.com/flying-sheep), [@giocomai](https://github.com/giocomai) and [@MichaelChirico](https://github.com/MichaelChirico). -# {styler} 1.9.0 +# styler 1.9.0 **Features** @@ -240,7 +240,7 @@ A big shout out to anyone who contributed to this release: [@juliangrimm225](https://github.com/) and [@krlmlr](https://github.com/krlmlr). -# {styler} 1.8.1 +# styler 1.8.1 **Features** @@ -271,7 +271,7 @@ Dave Jarvis, [@Robinlovelace](https://github.com/Robinlovelace). -# {styler} 1.8.0 +# styler 1.8.0 {styler} 1.8.0 comes with a host of new features, around 40% speed improvement, bug fixes and the removal of 8 recursive dependencies. We also welcome @@ -382,7 +382,7 @@ A big hand to everyone who made this release possible: [@lorenzwalthert](https://github.com/lorenzwalthert), [@MichaelChirico](https://github.com/MichaelChirico), [@moodymudskipper](https://github.com/moodymudskipper), [@RaymondBalise](https://github.com/RaymondBalise), [@Robinlovelace](https://github.com/Robinlovelace), [@sebffischer](https://github.com/sebffischer), [@sgorm123](https://github.com/sgorm123), [@stefanoborini](https://github.com/stefanoborini), and [@wdkrnls](https://github.com/wdkrnls). -# {styler} 1.7.0 +# styler 1.7.0 - if `else` follows directly after `if`, line breaks are removed (#935). @@ -496,11 +496,11 @@ Thanks to all contributors that made this release possible: [\@ssh352](https://github.com/ssh352), and [\@xjtusjtu](https://github.com/xjtusjtu). -# {styler} 1.6.2 +# styler 1.6.2 - clean up cache files older than one week (#842). -# {styler} 1.6.1 +# styler 1.6.1 - Files with `.Rmarkdown` extension are now recognized as an R markdown files in `style_file()` and friends (#824). @@ -535,7 +535,7 @@ We'd like to thank all people who helped making this release possible: [\@lorenzwalthert](https://github.com/lorenzwalthert), and [\@MichaelChirico](https://github.com/MichaelChirico). -# {styler} 1.5.1 +# styler 1.5.1 ## Alignment detection @@ -638,7 +638,7 @@ release of styler through their contributions in issues and pull requests: [\@RoyalTS](https://github.com/RoyalTS), and [\@russHyde](https://github.com/russHyde). -# {styler} 1.4.1 +# styler 1.4.1 - fix interaction between cache and `base_indention`. This also fixes the Addin for styling a selection with base indention repeatedly (#764). @@ -652,7 +652,7 @@ Thanks to everyone who contributed to this release: [\@lorenzwalthert](https://github.com/lorenzwalthert), and [\@renkun-ken](https://github.com/renkun-ken). -# {styler} 1.4.0 +# styler 1.4.0 ## API Changes @@ -796,7 +796,7 @@ Thanks to all the people who made this release possible: [\@swsoyee](https://github.com/swsoyee), and [\@Winterstorm-j](https://github.com/Winterstorm-j). -# {styler} 1.3.2 +# styler 1.3.2 Release upon request by the CRAN team. @@ -809,7 +809,7 @@ Release upon request by the CRAN team. - skip timing tests on CRAN as requested by CRAN team because they did not pass on all machines (#603). -# {styler} 1.3.1 +# styler 1.3.1 Emergency release. In case multiple expressions are on one line and only some of them are cached, styler can remove code. To reach this state, some of the @@ -836,7 +836,7 @@ We thank the people who have contributed to this release: [\@ellessenne](https://github.com/ellessenne) and [\@renkun-ken](https://github.com/renkun-ken). -# {styler} 1.3.0 +# styler 1.3.0 ## Breaking changes @@ -890,7 +890,7 @@ Thanks to all contributors involved, in particular [\@pat-s](https://github.com/pat-s), and [\@programming-wizard](https://github.com). -# {styler} 1.2.0 +# styler 1.2.0 ## Breaking changes @@ -969,7 +969,7 @@ Thanks to all contributors involved, in particular [\@pat-s](https://github.com/pat-s), \@reddy-ia, and [\@russHyde](https://github.com/russHyde) -# {styler} 1.1.1 +# styler 1.1.1 This is primarily a maintenance release upon the request of the CRAN team (#490). @@ -1058,7 +1058,7 @@ Thanks to all contributors involved, in particular [\@wdearden](https://github.com/wdearden), [\@wmayner](https://github.com/wmayner), and \@yech1990. -# {styler} 1.1.0 +# styler 1.1.0 This release introduces new features and is fully backward-compatible. It also adapts to changes in the R parser committed into R devel (#419). @@ -1098,7 +1098,7 @@ Thanks to all contributors for patches, issues and the like: @jonmcalder, @krlmlr, @IndrajeetPatil, @kalibera, @Hasnep, @kiranmaiganji, @dirkschumacher, @ClaytonJY, @wlandau, @maurolepore -# {styler} 1.0.2 +# styler 1.0.2 This is a maintenance release without any breaking API changes. @@ -1129,7 +1129,7 @@ Thanks to all contributors for patches, issues and the like: @katrinleinweber, @krlmlr, @dchiu911, @ramnathv, @aedobbyn, @Bio7, @tonytonov, @samhinshaw, @fny, @vnijs, @martin-mfg, @NGaffney, @dchiu911. -# {styler} 1.0.1 +# styler 1.0.1 This is a maintenance release without any breaking API changes. @@ -1169,7 +1169,7 @@ Thanks to all contributors for patches, issues and the like: @devSJR, @klrmlr, @yutannihilation, @samhinshaw, @martin-mfg, @jjramsey, @RMHogervorst, @wlandau, @llrs, @aaronrudkin, @crew102, @jkgrain, @jennybc, @joranE. -# {styler} 1.0.0 +# styler 1.0.0 Initial release. From 6908f14ff4db8f41cc8727cc7d1d048d408e364d Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Thu, 16 Oct 2025 10:51:04 +0200 Subject: [PATCH 238/238] fix: update old external links --- _pkgdown.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_pkgdown.yaml b/_pkgdown.yaml index 012acf7e2..68416a7f2 100644 --- a/_pkgdown.yaml +++ b/_pkgdown.yaml @@ -66,9 +66,9 @@ news: - text: "Version 1.2.0" href: https://www.tidyverse.org/blog/2019/11/styler-1-2-0/ - text: "Version 1.3.0" - href: https://lorenzwalthert.netlify.com/post/styler-1-3-0/ + href: https://lorenzwalthert.com/post/styler-1-3-0/ - text: "Version 1.4.0" - href: https://lorenzwalthert.netlify.app/post/styler-1-4-0/ + href: https://lorenzwalthert.com/post/styler-1-4-0/ articles: - title: Get started