Published unlisted
Edited
Aug 26, 2021
Insert cell
Insert cell
String.raw`main -> "#nexus\n" block
# TODO - block_name and block_content should match
block -> "begin" _ block_name ";\n" block_content "end;" _
block_name -> "trees"
block_content -> _ "tree one = " newick "\n"
newick -> newick_name ";" # | [^]:+
newick_name -> [-/a-zA-Z0-9]:+

# [^]:+ - is the same as .:+ but matches newlines
# and is equivalent to .+ in regexps

# whitespace matcher that returns nothing
_ -> [\s]:* {% function(d) {return null } %}`
Insert cell
`main -> "#nexus\n" block
# TODO - block_name and block_content should match
block -> "begin" _ block_name ";\n" block_content "end;" _
block_name -> "trees"
block_content -> _ "tree one = " newick "\n"
newick -> newick_name ";" # | [^]:+
newick_name -> [-/a-zA-Z0-9]:+

# [^]:+ - is the same as .:+ but matches newlines
# and is equivalent to .+ in regexps

# whitespace matcher that returns nothing
_ -> [\s]:* {% function(d) {return null } %}`
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more