# gcode v1.0.2 - Table of Contents

> A G-code parser and generator.

## Pages

- [G-code](readme.md)
- [Change Log](changelog.md)

## Modules

- [Gcode](Gcode.md): Gcode - a library for parsing and serialising G-code.
- [Gcode.Model.Block](Gcode.Model.Block.md): A sequence of G-code words on a single line.

- [Gcode.Model.Comment](Gcode.Model.Comment.md): A G-code comment.

- [Gcode.Model.Describe](Gcode.Model.Describe.md): A protocol which is used to describe the model for human consumption.

- [Gcode.Model.Expr](Gcode.Model.Expr.md): A protocol for evaluating expressions.

- [Gcode.Model.Expr.Binary](Gcode.Model.Expr.Binary.md): Represents a binary (or infix) expression in G-code, consisting of two
operands (`lhs` and `rhs`) and an operator to apply.

- [Gcode.Model.Expr.Boolean](Gcode.Model.Expr.Boolean.md): Represents a boolean expression in G-code.  Can be either `true` or `false`.

- [Gcode.Model.Expr.Constant](Gcode.Model.Expr.Constant.md): Represents a number of special constant values defined by some G-code
controllers
- [Gcode.Model.Expr.Float](Gcode.Model.Expr.Float.md): Represents a floating-point number expression in G-code.

- [Gcode.Model.Expr.Helpers](Gcode.Model.Expr.Helpers.md): Helpers for working with expressions.

- [Gcode.Model.Expr.Integer](Gcode.Model.Expr.Integer.md): Represents an integer number expression in G-code.

- [Gcode.Model.Expr.List](Gcode.Model.Expr.List.md): Represents an array expression in G-code.

- [Gcode.Model.Expr.String](Gcode.Model.Expr.String.md): Represents a string expression in G-code.

- [Gcode.Model.Expr.Unary](Gcode.Model.Expr.Unary.md): Represents a unary (or prefix) expression in G-code.  A unary consists of a
single operand and an operator.

- [Gcode.Model.Program](Gcode.Model.Program.md): A G-code program is the high level object which contains each of the G-code
blocks, comments, etc.
- [Gcode.Model.Serialise](Gcode.Model.Serialise.md): A protocol which is used to serialise the model into G-code output.

- [Gcode.Model.Skip](Gcode.Model.Skip.md): A G-code skip.

- [Gcode.Model.Tape](Gcode.Model.Tape.md): The tape (`%`) denotes the beginning and end of the program and is not needed
by most controllers.  Can optionally contain a comment, called a "leader".

- [Gcode.Model.Word](Gcode.Model.Word.md): A G-code word.

- [Gcode.Option](Gcode.Option.md): A helper which represents an optional type.

- [Gcode.Parser](Gcode.Parser.md): A parser for G-code programs.
- [Gcode.Parser.Engine](Gcode.Parser.Engine.md): A parser for G-code programs using Parsec.

- [Gcode.Result](Gcode.Result.md): A helper which represents a result type.
- [Gcode.Result.Enum](Gcode.Result.Enum.md): Common enumerableish functions on results.

- Exceptions
  - [Gcode.Parser.Error](Gcode.Parser.Error.md): Parser's streaming outputs have no way to return a result type, so we are
forced to rely on exceptions.  These are those exceptions.

