ast | ||
cmd | ||
formatter/html | ||
internal/stack | ||
parser | ||
scanner | ||
.gitignore | ||
amu.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
README.md | ||
test.amu |
AMU
AMU is a human readable markup language I made for my own uses and to learn. It is the first lexer and parser that I have written by hand.
Purpose
The purpose of this project is to create a markup language for my own use. I will use this primarily for quickly writing simple documents, for example, taking notes in class or doing some quick homework. It fulfills all my needs and I will add things as I need them. There are functions for extensibility when adding a new thing to parse is not justified.
Usage
This repo is a library for parsing AMU. It can be imported and used like any other go library. In cmd
, there are binaries for interacting with AMU. cmd/amu
contains a command line program that takes a file with AMU or reads from stdin and outputs HTML. In cmd/amulive
, there is a Gtk app that provides a real-time preview of the document on the right with a text box on the left.
Syntax
The syntax for most of AMU's features can be seen in test.amu in this repo.
Performance
Timing this program using the test file, I consistently get 4ms run time on my XPS 13. This is much faster than the projects I have made before for a similar purpose, although it is likely unnoticeable for most people.