Nothing
source("helpers.R")
# one constraint ----------------------------------------------------
temp_rule <- tempfile(fileext = ".yml")
cat(
"rule:
pattern: print($VAR)
constraints:
VAR:
has:
kind: identifier
",
file = temp_rule
)
src <- "
print(1)
print(a)
print(x)
"
root <- src |>
tree_new() |>
tree_root()
expect_equal(
root |>
node_find(files = temp_rule) |>
node_text(),
list(rule_1 = "print(a)")
)
expect_equal(
root |>
node_find_all(files = temp_rule) |>
node_text_all(),
list(rule_1 = list(node_1 = "print(a)", node_2 = "print(x)"))
)
# several constraints ----------------------------------------------------
temp_rule <- tempfile(fileext = ".yml")
cat(
"rule:
pattern: $VAR + $FLOAT
constraints:
VAR:
kind: identifier
FLOAT:
kind: float
",
file = temp_rule
)
src <- "
1 + 1
x+2
y+a
y + 1
"
root <- src |>
tree_new() |>
tree_root()
expect_equal(
root |>
node_find(files = temp_rule) |>
node_text(),
list(rule_1 = "x+2")
)
expect_equal(
root |>
node_find_all(files = temp_rule) |>
node_text_all(),
list(rule_1 = list(node_1 = "x+2", node_2 = "y + 1"))
)
# several rules and several constraints ------------------------------------------
temp_rule <- tempfile(fileext = ".yml")
cat(
"rule:
pattern: $VAR + $FLOAT
constraints:
VAR:
kind: identifier
FLOAT:
kind: float
",
file = temp_rule
)
cat(
"
---
rule:
pattern: any(duplicated($VAR))
message: foo
",
file = temp_rule,
append = TRUE
)
src <- "
1 + 1
x+2
y+a
y + 1
any(duplicated(x))
"
root <- src |>
tree_new() |>
tree_root()
expect_equal(
root |>
node_find(files = temp_rule) |>
node_text(),
list(rule_1 = "x+2", rule_2 = "any(duplicated(x))")
)
expect_equal(
root |>
node_find_all(files = temp_rule) |>
node_text_all(),
list(
rule_1 = list(node_1 = "x+2", node_2 = "y + 1"),
rule_2 = list(node_1 = "any(duplicated(x))")
)
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.