Pikchr Grammar
Not logged in

This file describes the grammar of the input files to Pikchr. Keywords and operators are shown in bold. Non-terminal symbols are shown in italic. Special token classes are shown in ALL-CAPS. A grammar symbol followed by "*" means zero-or-more. A grammar symbol followed by "?" means zero-or-one. Parentheses are used for grouping. Two grammar symbols within "(..|..)" means one or the other. Marks of the form "▶info" are links to more information and are not part of the grammar.

The following special token classes are recognized:

There are many non-terminals in the grammar, but a few are more important. If you are new to the Pikchr language, begin by focusing on these six:

A complete input file to Pikchr consists of a single statement-list.

statement-list: ▶info

statement: ▶info

direction:

assignment-op:

print-argument:

object-definition:

object-class:

attribute:

color-expr: ▶info

new-property-value: ▶info

numeric-property: ▶info

text-attribute: ▶info

path-attribute: ▶info

line-length: ▶info

compass-angle: ▶info

compass-direction:

location-attribute: ▶info

position: ▶info

fraction:

distance

which-way-from:

place: ▶info

object:

nth-object:

dot-edgename:

edgename:

expr:

dot-property: