-- main.mcl --
# escaping examples

test "A: \${test}" {}

test "B: \$" {}

$c1 = "This is c1"
test "C: ${c1}" {}

test "D: \\\$" {}

test "E: {}" {}

test "F: hello" {}

$g1 = "This is g1"
test "G: ${g1} EOF" {}

test "H: {hhh} EOF" {}

$i_i = "This is ii"
test "I: ${i_i} EOF" {}

# is this okay?
test "J: $ is a dollar sign" {}

test "K: $ {zzz} EOF" {}

$l1 = "This is l1"
test "L: $$${l1} EOF" {}

test "M: $ $$" {}

test "N: hello \" world" {}

test "O: hello \"\" world" {}

test "P: hello \\ world" {}

test "Q: hello \\\\ world" {}

$r1 = "This is r1"
test "R: \\${r1} EOF" {}

test "S: \\$ EOF" {}

test "T: newline\nEOF" {}

test "U: tab\t\\\ttabEOF" {}

# test "V: " {}

test "W: \\$" {}

$x1 = "This is x1"
test "X: $${x1} EOF" {}

$unused = "i am unused"
$y1 = "{unused}"
test "Y: $${y1} EOF" {} # check there isn't double parsing

test "Z: $$$" {}
-- OUTPUT --
Vertex: test[A: ${test}]
Vertex: test[B: $]
Vertex: test[C: This is c1]
Vertex: test[D: \$]
Vertex: test[E: {}]
Vertex: test[F: hello]
Vertex: test[G: This is g1 EOF]
Vertex: test[H: {hhh} EOF]
Vertex: test[I: This is ii EOF]
Vertex: test[J: $ is a dollar sign]
Vertex: test[K: $ {zzz} EOF]
Vertex: test[L: $$This is l1 EOF]
Vertex: test[M: $ $$]
Vertex: test[N: hello " world]
Vertex: test[O: hello "" world]
Vertex: test[P: hello \ world]
Vertex: test[Q: hello \\ world]
Vertex: test[R: \This is r1 EOF]
Vertex: test[S: \$ EOF]
Vertex: test[T: newline
EOF]
Vertex: test[U: tab	\	tabEOF]
Vertex: test[W: \$]
Vertex: test[X: $This is x1 EOF]
Vertex: test[Y: ${unused} EOF]
Vertex: test[Z: $$$]
