Go to file
2021-10-02 15:12:57 -07:00
ast Initial Commit 2021-10-02 15:12:57 -07:00
cmd Initial Commit 2021-10-02 15:12:57 -07:00
formatter/html Initial Commit 2021-10-02 15:12:57 -07:00
internal/stack Initial Commit 2021-10-02 15:12:57 -07:00
parser Initial Commit 2021-10-02 15:12:57 -07:00
scanner Initial Commit 2021-10-02 15:12:57 -07:00
.gitignore Initial Commit 2021-10-02 15:12:57 -07:00
amu.go Initial Commit 2021-10-02 15:12:57 -07:00
go.mod Initial Commit 2021-10-02 15:12:57 -07:00
go.sum Initial Commit 2021-10-02 15:12:57 -07:00
LICENSE Initial Commit 2021-10-02 15:12:57 -07:00
README.md Initial Commit 2021-10-02 15:12:57 -07:00
test.amu Initial Commit 2021-10-02 15:12:57 -07:00

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.