Content * [YAML sketcher file grammar](#yaml-sketcher-file-grammar) * [Libraries, Pysketcher Object creation, Styles, Transform](#libraries-pysketcher-object-creation-styles-transform) * [Example](#example) * [Code to read or write a yaml sketcher file](#code-to-read-or-write-a-yaml-sketcher-file) ## YAML sketcher file grammar Sketcher file EBNF Grammar is ```EBNF Sketch::= Sketch_Name Parts Sketch_Name::= "-" " " "name: " Identifier Comment? "\n" Parts::= "-" " " "parts:\n" Comment? Part+ Part::= Part_Name Shapes Part_Name::= INDENT "-" " " "name: " Identifier Comment? "\n" DEDENT Shapes::= INDENT " " " " "shapes:\n" Comment? Shape+ DEDENT Shape::= Simple | DoAction | SketchObject Simple::= INDENT Identifier ":" PyRightHandExpression Comment? "\n" DEDENT DoAction::= INDENT Identifier ":" Comment? "\n" Action DEDENT Action::= INDENT "action:" PyExpression Comment? "\n" DEDENT Identifier::= [A-Za-z][_A-Za-z0-9]+ Comment::= "#" STRING ``` Here is the railroad grammar diagram: Yaml Sketcher Definition