# Variables are stored in a hash. Variable names follow the normal
# identifier rules with less restrictions (can start with number)
# To set the value of a variable, use: put var value
put myvar {Hello world!\n}
# Referencing the variable is done by using its name
print myvar
# In most context arguments are data; data can be both string literal and
# variable reference:
print {Hello universe! } myvar
# the second var of put is just data, can be string or variable; copying
# a variable:
put str {cats raining from the sky}
put tmp str
print str {==} tmp {\n}
# the ? prefix results in empty string if a variable doesnt exist, instead
# of throwing a runtime error
print {safe get: '} ?nonexist {'\n}
# the & prefix evaluates to "true" or "false" depending on whether the node
# exists in the tree or not
print {exists (no): } &nonexist {\n}
print {exists (yes): } &myvar {\n}