Syntax Grammar

Return to Introduction  Previous page  Next page

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