@termsurf/tree
v1.1.3
Published
<br/> <br/> <br/> <br/> <br/> <br/> <br/>
Downloads
7
Readme
Welcome
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.
Theory
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.
Installation
pnpm add @termsurf/tree
Usage
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 })
VSCode Integration
Install the syntax highlighter VSCode extension and get aworkin!
State of Library
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.
License
MIT
TermSurf
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!