A Data Modeling Programming Language
TreeCode is a little more than a markup language, tending toward a programming language. In fact, it can be used for a programming language. It is a way to model information and computation in an easy to read and write format, suitable for hierarchical note taking and other means of capturing data down into structured form.
There are two types of TreeCode:
TreeFlow
: Simple tree structure, non-circular, expanded interpolations. This is "simple form" of TreeCode, which can be used to construct serializable data like JSON.TreeMesh
: Code tree structure, possibly circular, linked interpolations. This is the "complex form" of TreeCode, which can be used to write complex code.
Upon parsing, we should be able to say whether or not the TreeCode
passes the threshold for being called TreeFlow
, otherwise it is by
default considered TreeMesh
.
In principle, two separate parsers can be developed for these two forms,
TreeFlow
being optimized for not handling all the complex cases of
circular reasoning and interpolation, just sticking to basic expanding
data structures like JSON.
pnpm add @termsurf/tree
import makeTree from '@termsurf/tree'
const file = './base.tree'
const text = `deck <@termsurf/wolf>
bear ./code
test ./test
mark <0.0.1>`
const tree = makeTree({ file, text })
Install the syntax highlighter VSCode extension and get aworkin!
Tests pass for positive cases (pnpm test
), but fail on some crazy
error cases it should handle nicely. So still have some work to do on
making this robust, but it should parse the basic structures fine, just
not commplicated interpolation styles with nesting.
MIT
This is being developed by the folks at TermSurf, a California-based project for helping humanity master information and computation. Find us on X, LinkedIn, and Facebook. Check out our other GitHub projects as well!