From 7f844711d95148a87e9f5f68ba640b7e4e736e99 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 28 Feb 2023 20:53:31 -0500 Subject: [PATCH] Start on more of the user guide --- doc/user_guide.md | 71 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/doc/user_guide.md b/doc/user_guide.md index 42585c7..3d7f12a 100644 --- a/doc/user_guide.md +++ b/doc/user_guide.md @@ -1,3 +1,10 @@ +${remove} +WARNING: This user guide is meant to be preprocessed and rendered by a custom +script. +The markdown source file is not intended to be viewed directly and will not +include all intended content. +${/remove} + #> Overview Propane is an LR Parser Generator (LPG) which: @@ -8,10 +15,62 @@ Propane is an LR Parser Generator (LPG) which: * generates a table-driven parser to parse input in linear time * is MIT-licensed * is distributable as a standalone Ruby script + * supports D language -${remove} -WARNING: This user guide is meant to be preprocessed and rendered by a custom -script. -The markdown source file is not intended to be viewed directly and will not -include all intended content. -${/remove} +#> Installation + +Propane is designed to be distributed as a stand-alone single file script that +can be copied into and versioned in a project's source tree. +The only requirement to run Propane is that the system has a Ruby interpreter +installed. +The latest release can be downloaded from [https://github.com/holtrop/propane/releases](https://github.com/holtrop/propane/releases). +Simply copy the `propane` executable script into the desired location within +the project to be built (typically the root of the repository) and mark it +executable. + +#> Command Line Usage + +Propane is typically invoked from the command-line as `./propane`. + + Usage: ./propane [options] + Options: + --log LOG Write log file + --version Show program version and exit + -h, --help Show this usage and exit + +The user must specify the path to a Propane input grammar file and a path to an +output file. +The generated source code will be written to the output file. +If a log file path is specified, Propane will write a log file containing +detailed information about the parser states and transitions. + +#> Propane Grammar File + +A Propane grammar file provides Propane with the patterns, tokens, grammar +rules, and user code blocks from which to build the generated lexer and parser. + +#> License + +Propane is licensed under the terms of the MIT License: + +``` +${include LICENSE.txt} +``` + +#> Contributing + +Propane is developed on [github](https://github.com/holtrop/propane). + +Issues may be submitted to [https://github.com/holtrop/propane/issues](https://github.com/holtrop/propane/issues). + +Pull requests may be submitted as well: + + 1. Fork it + 2. Create your feature branch (`git checkout -b my-new-feature`) + 3. Commit your changes (`git commit -am 'Add some feature'`) + 4. Push to the branch (`git push origin my-new-feature`) + 5. Create new Pull Request + +#> Change Log + +${changelog}