Language Specification
<nozzle placement> ::= (For <equipment class> nozzles {<placement rule>}+ )The ordered list of rules for an equipment class. The nozzles are matched in order, taking the first match; therefore, more specific rules should precede more general rules.
There need not be any rules--the default rule is to just use the nozzle
offset.
<placement rule> ::= [<condition clause>] LOCATE nozzle with element = <element name> <location clause> [alignment = <alignment expression>] [x-rotation = <expression>] [y-rotation = <expression>] [z-rotation = <expression>] [and [<condition clause>] OFFSET next nozzle [offset-direction = <offset keyword>] <location clause> <offset location clause> ] <condition clause> ::= WHEN <expression> <location clause> ::= <box location clause> | <cylinder location clause> | <head location clause> <box location clause> ::= <box face location> u-distance = <expression> v-distance = <expression> <box face location> ::= face = <box face name> | <box face selection keyword> [face-choices = ( {<box face name>}+)] <box face name> ::= left | right | front | back | top | bottom <box face selection keyword> ::= near-pipeway | away-from-pipeway | parallel-to-pipeway-near-other-end | near-other-end <cylinder location clause> ::= face = <cylinder-face-name> distance = <expression>;; on the body, from the bottom face ;; on the top or bottom, from center angle = <angle-expression> <cylinder-face-name> ::= TOP | BOTTON | BODY <angle-expression> ::= up | down | near-pipeway | away-from-pipeway | parallel-to-pipeway-near-other-end | <expression> <head location clause> ::= face = bottom distance = <expression> ;; radius on a bottom face angle = <angle-expression> <offset keyword> ::= toward-other-end | alternating <offset location clause> ::= offset-u-distance = <expression> | offset-v-distance = <expression> | offset-distance = <expression> | offset-angle = <expression> <alignment expression> ::= routing-plane ;; routing plane in the direction of the nozzle, if possible. near-routing-plane ;; routing plane only if the nozzle is within 2 long-radius elbows.