Awesome
GCode Parser
This crate aims at providing a gcode parser to the rusty printer project (and other if it can fit).
The minimal footprint is achieved with all features disabled and is in the order of ~80B of
RAM and around 2kB of Flash memory. The typical set of features
["parse-trailing-comment", "parse-checksum", "optional-value"]
has a footprint of around 4kB
of flash memory for around 80B of RAM.
Finally with all features, the memory footprint reaches around 7kB in flash and around 170B
in RAM.
Features
std
: Enabled by defaultparse-comments
: enables the parser to returnGCode::Comment(String)
; requires an allocator.parse-trailing-comment
: allows line to end with a; comment
.parse-checksum
: Enables the use of xorsum.parse-parameters
: Enables the use of#
parameters ; requires an allocator. Ifstring-value
is enabled then parameters may use string index. Ifoptional-value
is enabled then parameters value may be omitted but NOT the indices.parse-expressions
: Enables parsing infix expressions ; requires an allocator.optional-value
: Allows to omit inRealValue
in word and parameter value positions. Parameter indices cannot be omitted nor can be literals in expressions.string-value
: AllowsRealValue
to be a string. Any character preceded with\
will be used as is (useful for"
,)
or new line).
Design
Constraints
- No recursion.
- Reduced RAM footprint
- Reduced ROM footprint