Syntax Grammar
Grammar symbols:
· | * = zero or more |
· | + = one or more |
· | | = or |
· | ; = terminator |
ShapeScript |
::= |
<Shape>*; |
Shape |
::= |
<ShapeDeclaration> <ShapeBody>; |
ShapeDeclaration |
::= |
<ShapeType> <ShapeName>; |
ShapeType |
::= |
"shape" | "decoration"; |
ShapeName |
::= |
<ReservedShapeName> | <stringliteral>; |
ReservedShapeName |
::= |
See Reserved Names for fulled reserved shape listing |
ShapeBody |
::= |
"{" <InitialisationAttributeAssignment>* <DrawingStatement>* <SubShape>* "}"; |
InitialisationAttributeAssignment |
::= |
<Attribute> "=" <Value> ";"; |
Attribute |
::= |
See Shape Attributes for full listing of attribute names |
DrawingStatement |
::= |
<IfElseSection> | <Method>; |
IfElseSection |
::= |
"if" "(" <QueryExpression> ")" <TrueSection> [<ElseSection>]; |
QueryExpression |
::= |
<QueryName> "(" <ParameterList> ")"; |
QueryName |
::= |
See Query Methods for a full listing of Query names |
TrueSection |
::= |
"{" <DrawingStatement>* "}" |
ElseSection |
::= |
"else" "{" <DrawingStatement>* "}" |
Method |
::= |
<MethodName> "(" <ParameterList> ")" ";"; |
MethodName |
::= |
See Drawing Methods for a full listing of method names |