
Show HN: CopyPaster – let's make web forms copy/pasteable - breck
https://github.com/treenotation/copypaster
======
djyde
Hi, Breck.

I found your Tree Notation in this post and read through the website and the
papers on the Github repo. It seems like a tool for creating a new DSL (or
language). But I am not quite understand how to do it (even though I watched
the YouTube video).

Could you write some document for how to create a DSL using the Tree Notation?

Thank you.

~~~
breck
> It seems like a tool for creating a new DSL (or language)

Yes.

> But I am not quite understand how to do it (even though I watched the
> YouTube video).

I'm sorry for the poor documentation. This is helpful feedback, thanks.

Any suggestions on how to improve? I'm thinking about doing a live 1 hour
office hours each week on YouTube or Twitch, where I'd be available to help
people create new Tree languages, and then could record those sessions, and
learn what the common problems are. Do you think that might be helpful? I do
that in person a lot, and seems to be very helpful, so perhaps could scale
that.

> Could you write some document for how to create a DSL using the Tree
> Notation?

I started a document here:
[https://github.com/treenotation/jtree/blob/master/languageCh...](https://github.com/treenotation/jtree/blob/master/languageChecklist.md)

It looks a tiny bit out of date (the older version of Grammar allowed you to
not specify the "keyword" that matched a word, so you now need to specify
that). The bulk of it is correct. In general, I like to start by writing
sample programs, and then working on the Grammar file after that.

In the Tree Language Designer
([https://jtree.treenotation.org/designer/](https://jtree.treenotation.org/designer/)),
you type a sample program in the right box, and then click "Infer Prefix
Grammar" for that class of grammars, and it will generate the start of a
Grammar for you. That currently only works (partially) for prefix grammars. If
you want to design a postfix language, or omnifix language, or something more
esoteric, then it probably won't be so helpful.

Can you share some more about the language you want to create? I could help
you get it started.

