ConstraintBlocks:ConstraintBlock ConstraintBlocksRest
![]()
ConstraintBlocksRest:
, ConstraintBlocks
ConstraintBlock:
Constraints
![]()
Constraints:
Constraint ConstraintsRest
![]()
ConstraintsRest:
; Constraints
![]()
Constraint:
ConstraintFactor CompositeConstraintRest
![]()
ConstraintFactor
ForConstraint
ConstraintFactor:
Name in Range
ArithmeticConstraint
ConstraintCall
ConstraintBlock
( Constraint )
ArithmeticConstraint:
DJExpression ArithmeticConstraintRest
ArithmeticConstraintRest:
== DJExpression
DJExpression
<= DJExpression
< DJExpression
>= DJExpression
> DJExpression
ConstraintCall:
Identifier ( ConstraintArgumentList )
ConstraintArgumentList:
ConstraintArgument ConstraintArgumentListRest
![]()
ConstraintArgumentListRest:
, ConstraintArgumentList
ConstraintArgument:
AnonymousArray
Expression
AnonymousArray:
AnonymousArrayElements
AnonymousArrayElements:
ConstraintArgument AnonymousArrayElementsRest
![]()
AnonymousArrayElementsRest:
, AnonymousArrayElements
ForConstraint:
for ( EnumeratorConditionList ) Constraint
CompositeConstraintRest:
-> Constraint
|| Constraint
&& Constraint