Browsable Rascal Figure Grammar

CC-BY

Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: api/rascal/figure/extracted
Source used for this grammar: Paul Klint, vis::Figure, 2009–2013 [Explore]

Summary

Syntax

Color ::=
	[gray]::⟨gray⟩:integer
Color ::=
	[gray]::(gray⟩:integeralpha⟩:integer)
Color ::=
	[gray]::⟨perc⟩:integer
Color ::=
	[gray]::(perc⟩:integeralpha⟩:integer)
Color ::=
	[color]::⟨colorName⟩:string
Color ::=
	[color]::(colorName⟩:stringalpha⟩:integer)
list[str] ::=
	[colorNames]::ε
Color ::=
	[rgb]::(r⟩:integerg⟩:integerb⟩:integer)
Color ::=
	[rgb]::(r⟩:integerg⟩:integerb⟩:integeralpha⟩:integer)
Color ::=
	[interpolateColor]::(from⟩:Colorto⟩:Colorpercentage⟩:integer)
list[Color] ::=
	[colorSteps]::(from⟩:Colorto⟩:Colorsteps⟩:integer)
Color(&T <: num) ::=
	[colorScale]::(values⟩:φ*from⟩:Colorto⟩:Color)
str ::=
	[palette]::⟨n⟩:integer
Color ::=
	[arbColor]::ε
list[str] ::=
	[fontNames]::ε
FProperty ::=
	[left]::ε
FProperty ::=
	[hcenter]::ε
FProperty ::=
	[right]::ε
FProperty ::=
	[top]::ε
FProperty ::=
	[vcenter]::ε
FProperty ::=
	[bottom]::ε
FProperty ::=
	[center]::ε
str ::=
	[getDir]::⟨or⟩:Orientation
bool ::=
	[getHMajor]::⟨or⟩:Orientation
bool ::=
	[getHMirror]::⟨or⟩:Orientation
bool ::=
	[getVMirror]::⟨or⟩:Orientation
FProperty ::=
	[orientation]::⟨or⟩:Orientation
FProperty ::=
	[onMouseOver]::⟨fig⟩:Figure
FProperty ::=
	[resizable]::⟨b⟩:boolean
FProperty ::=
	[resizable]::⟨cb⟩:boolean
FProperty ::=
	[resizable]::⟨mv⟩:Measure
FProperty ::=
	[zoomable]::⟨b⟩:boolean
FProperty ::=
	[zoomable]::⟨cb⟩:boolean
FProperty ::=
	[zoomable]::⟨mv⟩:Measure
FProperty ::=
	[startGap]::⟨b⟩:boolean
FProperty ::=
	[startGap]::⟨cb⟩:boolean
FProperty ::=
	[startGap]::⟨mv⟩:Measure
FProperty ::=
	[endGap]::⟨b⟩:boolean
FProperty ::=
	[endGap]::⟨cb⟩:boolean
FProperty ::=
	[endGap]::⟨mv⟩:Measure
FProperty ::=
	[mirror]::⟨b⟩:boolean
FProperty ::=
	[mirror]::⟨cb⟩:boolean
FProperty ::=
	[mirror]::⟨mv⟩:Measure
FProperty ::=
	[pos]::⟨r⟩:integer
FProperty ::=
	[pos]::⟨cr⟩:integer
FProperty ::=
	[pos]::⟨mv⟩:Measure
FProperty ::=
	[size]::⟨r⟩:integer
FProperty ::=
	[size]::⟨cr⟩:integer
FProperty ::=
	[size]::⟨mv⟩:Measure
FProperty ::=
	[gap]::⟨r⟩:integer
FProperty ::=
	[gap]::⟨cr⟩:integer
FProperty ::=
	[gap]::⟨mv⟩:Measure
FProperty ::=
	[shadowPos]::⟨r⟩:integer
FProperty ::=
	[shadowPos]::⟨cr⟩:integer
FProperty ::=
	[shadowPos]::⟨mv⟩:Measure
FProperty ::=
	[shrink]::⟨r⟩:integer
FProperty ::=
	[shrink]::⟨cr⟩:integer
FProperty ::=
	[shrink]::⟨mv⟩:Measure
FProperty ::=
	[align]::⟨r⟩:integer
FProperty ::=
	[align]::⟨cr⟩:integer
FProperty ::=
	[align]::⟨mv⟩:Measure
FProperty ::=
	[grow]::⟨r⟩:integer
FProperty ::=
	[grow]::⟨cr⟩:integer
FProperty ::=
	[grow]::⟨mv⟩:Measure
FProperty ::=
	[connect]::⟨r⟩:integer
FProperty ::=
	[connect]::⟨cr⟩:integer
FProperty ::=
	[connect]::⟨mv⟩:Measure
FProperty ::=
	[resizable]::(b00⟩:booleanb200⟩:boolean)
FProperty ::=
	[resizable]::(b01⟩:booleancb201⟩:boolean)
FProperty ::=
	[resizable]::(b02⟩:booleanmv202⟩:Measure)
FProperty ::=
	[resizable]::(cb10⟩:booleanb210⟩:boolean)
FProperty ::=
	[resizable]::(cb11⟩:booleancb211⟩:boolean)
FProperty ::=
	[resizable]::(cb12⟩:booleanmv212⟩:Measure)
FProperty ::=
	[resizable]::(mv20⟩:Measureb220⟩:boolean)
FProperty ::=
	[resizable]::(mv21⟩:Measurecb221⟩:boolean)
FProperty ::=
	[resizable]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[zoomable]::(b00⟩:booleanb200⟩:boolean)
FProperty ::=
	[zoomable]::(b01⟩:booleancb201⟩:boolean)
FProperty ::=
	[zoomable]::(b02⟩:booleanmv202⟩:Measure)
FProperty ::=
	[zoomable]::(cb10⟩:booleanb210⟩:boolean)
FProperty ::=
	[zoomable]::(cb11⟩:booleancb211⟩:boolean)
FProperty ::=
	[zoomable]::(cb12⟩:booleanmv212⟩:Measure)
FProperty ::=
	[zoomable]::(mv20⟩:Measureb220⟩:boolean)
FProperty ::=
	[zoomable]::(mv21⟩:Measurecb221⟩:boolean)
FProperty ::=
	[zoomable]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[startGap]::(b00⟩:booleanb200⟩:boolean)
FProperty ::=
	[startGap]::(b01⟩:booleancb201⟩:boolean)
FProperty ::=
	[startGap]::(b02⟩:booleanmv202⟩:Measure)
FProperty ::=
	[startGap]::(cb10⟩:booleanb210⟩:boolean)
FProperty ::=
	[startGap]::(cb11⟩:booleancb211⟩:boolean)
FProperty ::=
	[startGap]::(cb12⟩:booleanmv212⟩:Measure)
FProperty ::=
	[startGap]::(mv20⟩:Measureb220⟩:boolean)
FProperty ::=
	[startGap]::(mv21⟩:Measurecb221⟩:boolean)
FProperty ::=
	[startGap]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[endGap]::(b00⟩:booleanb200⟩:boolean)
FProperty ::=
	[endGap]::(b01⟩:booleancb201⟩:boolean)
FProperty ::=
	[endGap]::(b02⟩:booleanmv202⟩:Measure)
FProperty ::=
	[endGap]::(cb10⟩:booleanb210⟩:boolean)
FProperty ::=
	[endGap]::(cb11⟩:booleancb211⟩:boolean)
FProperty ::=
	[endGap]::(cb12⟩:booleanmv212⟩:Measure)
FProperty ::=
	[endGap]::(mv20⟩:Measureb220⟩:boolean)
FProperty ::=
	[endGap]::(mv21⟩:Measurecb221⟩:boolean)
FProperty ::=
	[endGap]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[mirror]::(b00⟩:booleanb200⟩:boolean)
FProperty ::=
	[mirror]::(b01⟩:booleancb201⟩:boolean)
FProperty ::=
	[mirror]::(b02⟩:booleanmv202⟩:Measure)
FProperty ::=
	[mirror]::(cb10⟩:booleanb210⟩:boolean)
FProperty ::=
	[mirror]::(cb11⟩:booleancb211⟩:boolean)
FProperty ::=
	[mirror]::(cb12⟩:booleanmv212⟩:Measure)
FProperty ::=
	[mirror]::(mv20⟩:Measureb220⟩:boolean)
FProperty ::=
	[mirror]::(mv21⟩:Measurecb221⟩:boolean)
FProperty ::=
	[mirror]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[pos]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[pos]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[pos]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[pos]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[pos]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[pos]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[pos]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[pos]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[pos]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[size]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[size]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[size]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[size]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[size]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[size]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[size]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[size]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[size]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[gap]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[gap]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[gap]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[gap]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[gap]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[gap]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[gap]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[gap]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[gap]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[shadowPos]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[shadowPos]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[shadowPos]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[shadowPos]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[shadowPos]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[shadowPos]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[shadowPos]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[shadowPos]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[shadowPos]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[shrink]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[shrink]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[shrink]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[shrink]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[shrink]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[shrink]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[shrink]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[shrink]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[shrink]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[align]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[align]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[align]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[align]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[align]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[align]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[align]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[align]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[align]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[grow]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[grow]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[grow]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[grow]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[grow]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[grow]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[grow]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[grow]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[grow]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[connect]::(r00⟩:integerr200⟩:integer)
FProperty ::=
	[connect]::(r01⟩:integercr201⟩:integer)
FProperty ::=
	[connect]::(r02⟩:integermv202⟩:Measure)
FProperty ::=
	[connect]::(cr10⟩:integerr210⟩:integer)
FProperty ::=
	[connect]::(cr11⟩:integercr211⟩:integer)
FProperty ::=
	[connect]::(cr12⟩:integermv212⟩:Measure)
FProperty ::=
	[connect]::(mv20⟩:Measurer220⟩:integer)
FProperty ::=
	[connect]::(mv21⟩:Measurecr221⟩:integer)
FProperty ::=
	[connect]::(mv22⟩:Measuremv222⟩:Measure)
FProperty ::=
	[width]::⟨w⟩:integer
FProperty ::=
	[height]::⟨h⟩:integer
FProperty ::=
	[child]::⟨props⟩:FProperty
FProperty ::=
	[grandChild]::⟨props⟩:FProperty
Edge ::=
	[edge]::(from⟩:stringto⟩:stringprops⟩:FProperty)
Edge ::=
	[edge]::(from⟩:stringto⟩:stringtoArrowP⟩:Figureprops⟩:FProperty)
Edge ::=
	[edge]::(from⟩:stringto⟩:stringfromArrowP⟩:FiguretoArrowP⟩:Figureprops⟩:FProperty)
Figure ::=
	[text]::(s⟩:stringprops⟩:FProperty)
Figure ::=
	[text]::(sv⟩:computedStrprops⟩:FProperty)
Figure ::=
	[outline]::(lineInfo⟩:LineDecoration*maxLine⟩:integerprops⟩:FProperty)
Figure ::=
	[box]::⟨props⟩:FProperty
Figure ::=
	[box]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[ellipse]::⟨props⟩:FProperty
Figure ::=
	[ellipse]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[wedge]::⟨props⟩:FProperty
Figure ::=
	[wedge]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[space]::⟨props⟩:FProperty
Figure ::=
	[space]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[haxis]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[vaxis]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[hscreen]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[vscreen]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[leftAxis]::(name⟩:stringi⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[rightAxis]::(name⟩:stringi⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[topAxis]::(name⟩:stringi⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[bottomAxis]::(name⟩:stringi⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[leftAxis]::(i⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[rightAxis]::(i⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[topAxis]::(i⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[bottomAxis]::(i⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[projection]::(fig⟩:Figureid⟩:stringproject⟩:Figureprops⟩:FProperty)
Figure ::=
	[scrollable]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[hscrollable]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[vscrollable]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[place]::(fig⟩:Figureat⟩:stringbase⟩:Figureprops⟩:FProperty)
Figure ::=
	[use]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[overlap]::(under⟩:Figureover⟩:Figureprops⟩:FProperty)
Figure ::=
	[hcat]::(figs⟩:Figuresprops⟩:FProperty)
Figure ::=
	[tree]::(root⟩:Figurechildren⟩:Figuresprops⟩:FProperty)
Figure ::=
	[vcat]::(figs⟩:Figuresprops⟩:FProperty)
Figure ::=
	[hvcat]::(figs⟩:Figuresprops⟩:FProperty)
Figure ::=
	[fswitch]::(choice⟩:integerfigs⟩:Figuresprops⟩:FProperty)
Figure ::=
	[overlay]::(figs⟩:Figuresprops⟩:FProperty)
Figure ::=
	[grid]::(figs⟩:Figure**props⟩:FProperty)
Figure ::=
	[pack]::(figs⟩:Figuresprops⟩:FProperty)
Figure ::=
	[graph]::(nodes⟩:Figuresedges⟩:Edgesprops⟩:FProperty)
Figure ::=
	[treemap]::(nodes⟩:Figuresprops⟩:FProperty)
Figure ::=
	[rotate]::(angle⟩:integerfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[boolControl]::(name⟩:stringfigOn⟩:FigurefigOff⟩:Figureprops⟩:FProperty)
Figure ::=
	[controlOn]::(name⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[controlOff]::(name⟩:stringfig⟩:Figureprops⟩:FProperty)
Figure ::=
	[strControl]::(name⟩:stringinitial⟩:stringprops⟩:FProperty)
Figure ::=
	[intControl]::(name⟩:stringinitial⟩:integerprops⟩:FProperty)
Figure ::=
	[colorControl]::(name⟩:stringinitial⟩:integerprops⟩:FProperty)
Figure ::=
	[colorControl]::(name⟩:stringinitial⟩:stringprops⟩:FProperty)
Figure ::=
	[computeFigure]::(computeFig⟩:Figureprops⟩:FProperty)
Figure ::=
	[computeFigure]::(recomp⟩:booleancomputeFig⟩:Figureprops⟩:FProperty)
Figure ::=
	[button]::(label⟩:stringcallback⟩:εprops⟩:FProperty)
Figure ::=
	[textfield]::(text⟩:stringcallback⟩:stringprops⟩:FProperty)
Figure ::=
	[textfield]::(text⟩:stringcallback⟩:stringvalidate⟩:stringprops⟩:FProperty)
Figure ::=
	[combo]::(choices⟩:string*callback⟩:stringprops⟩:FProperty)
Figure ::=
	[choice]::(choices⟩:string*ccallback⟩:s⟩:stringprops⟩:FProperty)
Figure ::=
	[checkbox]::(text⟩:stringchecked⟩:booleanvcallback⟩:booleanprops⟩:FProperty)
Figure ::=
	[checkbox]::(text⟩:stringvcallback⟩:booleanprops⟩:FProperty)
Figure ::=
	[scaleSlider]::(low⟩:integerhigh⟩:integervcallback⟩:integerprops⟩:FProperty)
Figure ::=
	[scaleSlider]::(low⟩:integerhigh⟩:integerselection⟩:integervcallback⟩:integerprops⟩:FProperty)
Figure ::=
	[normalize]::⟨f⟩:Figure
Figure ::=
	[palleteKey]::(name⟩:stringkey⟩:stringprops⟩:FProperty)
Figure ::=
	[hPalleteKey]::(name⟩:stringkey⟩:stringprops⟩:FProperty)
Figure ::=
	[title]::(name⟩:stringinner⟩:Figureprops⟩:FProperty)
Color ::=
	[rrgba]::(r⟩:integerg⟩:integerb⟩:integera⟩:integer)
Color ::=
	[randomColor]::ε
Color ::=
	[randomColorAlpha]::ε
Figure ::=
	[point]::⟨props⟩:FProperty
Figure ::=
	[colorIntervalKey]::(name⟩:stringkey⟩:stringlowc⟩:Colorhighc⟩:Colorprops⟩:FProperty)
Figure ::=
	[triangle]::(side⟩:integerprops⟩:FProperty)
Figure ::=
	[headNormal]::⟨props⟩:FProperty
Figure ::=
	[headInv]::⟨props⟩:FProperty
Figure ::=
	[headDot]::⟨props⟩:FProperty
Figure ::=
	[headBox]::⟨props⟩:FProperty
Figure ::=
	[headDiamond]::⟨props⟩:FProperty
Figure ::=
	[shapeEllipse]::⟨props⟩:FProperty
Figure ::=
	[shapeDoubleEllipse]::⟨props⟩:FProperty
Figure ::=
	[shapeBox]::⟨props⟩:FProperty
Figure ::=
	[shapeDiamond]::⟨props⟩:FProperty
Figure ::=
	[shapeParallelogram]::⟨props⟩:FProperty
Figure ::=
	[shapeEllipse]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[shapeDoubleEllipse]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[shapeBox]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[shapeDiamond]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[shapeParallelogram]::(fig⟩:Figureprops⟩:FProperty)
Figure ::=
	[ifFig]::(cond⟩:booleanonTrue⟩:Figureprops⟩:FProperty)
Figure ::=
	[boolFig]::(cond⟩:booleanonTrue⟩:FigureonFalse⟩:Figureprops⟩:FProperty)
Color ::=
	integer
LineDecoration ::=
	[info]::(lineNumber⟩:integermsg⟩:string)
	[warning]::(lineNumber⟩:integermsg⟩:string)
	[error]::(lineNumber⟩:integermsg⟩:string)
	[highlight]::(lineNumber⟩:integermsg⟩:string)
	[highlight]::(lineNumber⟩:integermsg⟩:stringlevel⟩:integer)
FontProperties ::=
	FontProperty*
FontProperty ::=
	[bold]::ε
	[italic]::ε
	[font]::(name⟩:stringsize⟩:integer)
	[foregroundColor]::⟨color⟩:Color
	[backgroundColor]::⟨color⟩:Color
Like ::=
	[like]::⟨id⟩:string
Measure ::=
	[measure]::(quantity⟩:αaxisId⟩:string)
FProperties ::=
	FProperty*
computedBool ::=
	boolean
computedInt ::=
	integer
computedReal ::=
	integer
computedNum ::=
	integer
computedStr ::=
	string
computedColor ::=
	Color
computedFigure ::=
	Figure
TimerInfo ::=
	[stopped]::⟨timeSinceLast⟩:integer
	[running]::⟨timeLeft⟩:integer
TimerAction ::=
	[restart]::⟨delay⟩:integer
	[stop]::ε
	[noChange]::ε
Convert ::=
	[convert]::(v⟩:αid⟩:string)
Orientation ::=
	[leftRight]::ε
	[rightLeft]::ε
	[topDown]::ε
	[downTop]::ε
FProperty ::=
	[mouseOver]::⟨fig⟩:Figure
	[std]::⟨property⟩:FProperty
	[timer]::(ti⟩:TimerInfocbb⟩:ε)
	[project]::(f0⟩:Figurep0⟩:string)
	[_child]::⟨props⟩:FProperties
	[unpack]::⟨props⟩:FProperties
	[shapeClosed]::⟨b⟩:boolean
	[shapeClosed]::⟨cb⟩:boolean
	[shapeClosed]::⟨mv⟩:Measure
	[shapeConnected]::⟨b⟩:boolean
	[shapeConnected]::⟨cb⟩:boolean
	[shapeConnected]::⟨mv⟩:Measure
	[shapeCurved]::⟨b⟩:boolean
	[shapeCurved]::⟨cb⟩:boolean
	[shapeCurved]::⟨mv⟩:Measure
	[hstartGap]::⟨b⟩:boolean
	[hstartGap]::⟨cb⟩:boolean
	[hstartGap]::⟨mv⟩:Measure
	[hendGap]::⟨b⟩:boolean
	[hendGap]::⟨cb⟩:boolean
	[hendGap]::⟨mv⟩:Measure
	[vstartGap]::⟨b⟩:boolean
	[vstartGap]::⟨cb⟩:boolean
	[vstartGap]::⟨mv⟩:Measure
	[vendGap]::⟨b⟩:boolean
	[vendGap]::⟨cb⟩:boolean
	[vendGap]::⟨mv⟩:Measure
	[hresizable]::⟨b⟩:boolean
	[hresizable]::⟨cb⟩:boolean
	[hresizable]::⟨mv⟩:Measure
	[vresizable]::⟨b⟩:boolean
	[vresizable]::⟨cb⟩:boolean
	[vresizable]::⟨mv⟩:Measure
	[hzoomable]::⟨b⟩:boolean
	[hzoomable]::⟨cb⟩:boolean
	[hzoomable]::⟨mv⟩:Measure
	[vzoomable]::⟨b⟩:boolean
	[vzoomable]::⟨cb⟩:boolean
	[vzoomable]::⟨mv⟩:Measure
	[allAngles]::⟨b⟩:boolean
	[allAngles]::⟨cb⟩:boolean
	[allAngles]::⟨mv⟩:Measure
	[shadow]::⟨b⟩:boolean
	[shadow]::⟨cb⟩:boolean
	[shadow]::⟨mv⟩:Measure
	[justify]::⟨b⟩:boolean
	[justify]::⟨cb⟩:boolean
	[justify]::⟨mv⟩:Measure
	[manhattan]::⟨b⟩:boolean
	[manhattan]::⟨cb⟩:boolean
	[manhattan]::⟨mv⟩:Measure
	[hmajor]::⟨b⟩:boolean
	[hmajor]::⟨cb⟩:boolean
	[hmajor]::⟨mv⟩:Measure
	[hmirror]::⟨b⟩:boolean
	[hmirror]::⟨cb⟩:boolean
	[hmirror]::⟨mv⟩:Measure
	[vmirror]::⟨b⟩:boolean
	[vmirror]::⟨cb⟩:boolean
	[vmirror]::⟨mv⟩:Measure
	[fontItalic]::⟨b⟩:boolean
	[fontItalic]::⟨cb⟩:boolean
	[fontItalic]::⟨mv⟩:Measure
	[fontBold]::⟨b⟩:boolean
	[fontBold]::⟨cb⟩:boolean
	[fontBold]::⟨mv⟩:Measure
	[fillColor]::⟨c⟩:Color
	[fillColor]::⟨cc⟩:Color
	[fillColor]::⟨mv⟩:Measure
	[fillColor]::⟨ds⟩:string
	[fontColor]::⟨c⟩:Color
	[fontColor]::⟨cc⟩:Color
	[fontColor]::⟨mv⟩:Measure
	[fontColor]::⟨ds⟩:string
	[lineColor]::⟨c⟩:Color
	[lineColor]::⟨cc⟩:Color
	[lineColor]::⟨mv⟩:Measure
	[lineColor]::⟨ds⟩:string
	[shadowColor]::⟨c⟩:Color
	[shadowColor]::⟨cc⟩:Color
	[shadowColor]::⟨mv⟩:Measure
	[shadowColor]::⟨ds⟩:string
	[area]::⟨r⟩:integer
	[area]::⟨cr⟩:integer
	[area]::⟨mv⟩:Measure
	[aspectRatio]::⟨r⟩:integer
	[aspectRatio]::⟨cr⟩:integer
	[aspectRatio]::⟨mv⟩:Measure
	[ialign]::⟨r⟩:integer
	[ialign]::⟨cr⟩:integer
	[ialign]::⟨mv⟩:Measure
	[hsize]::⟨r⟩:integer
	[hsize]::⟨cr⟩:integer
	[hsize]::⟨mv⟩:Measure
	[vsize]::⟨r⟩:integer
	[vsize]::⟨cr⟩:integer
	[vsize]::⟨mv⟩:Measure
	[hgap]::⟨r⟩:integer
	[hgap]::⟨cr⟩:integer
	[hgap]::⟨mv⟩:Measure
	[vgap]::⟨r⟩:integer
	[vgap]::⟨cr⟩:integer
	[vgap]::⟨mv⟩:Measure
	[hshadowPos]::⟨r⟩:integer
	[hshadowPos]::⟨cr⟩:integer
	[hshadowPos]::⟨mv⟩:Measure
	[vshadowPos]::⟨r⟩:integer
	[vshadowPos]::⟨cr⟩:integer
	[vshadowPos]::⟨mv⟩:Measure
	[hconnect]::⟨r⟩:integer
	[hconnect]::⟨cr⟩:integer
	[hconnect]::⟨mv⟩:Measure
	[vconnect]::⟨r⟩:integer
	[vconnect]::⟨cr⟩:integer
	[vconnect]::⟨mv⟩:Measure
	[hshrink]::⟨r⟩:integer
	[hshrink]::⟨cr⟩:integer
	[hshrink]::⟨mv⟩:Measure
	[vshrink]::⟨r⟩:integer
	[vshrink]::⟨cr⟩:integer
	[vshrink]::⟨mv⟩:Measure
	[halign]::⟨r⟩:integer
	[halign]::⟨cr⟩:integer
	[halign]::⟨mv⟩:Measure
	[valign]::⟨r⟩:integer
	[valign]::⟨cr⟩:integer
	[valign]::⟨mv⟩:Measure
	[hpos]::⟨r⟩:integer
	[hpos]::⟨cr⟩:integer
	[hpos]::⟨mv⟩:Measure
	[vpos]::⟨r⟩:integer
	[vpos]::⟨cr⟩:integer
	[vpos]::⟨mv⟩:Measure
	[hgrow]::⟨r⟩:integer
	[hgrow]::⟨cr⟩:integer
	[hgrow]::⟨mv⟩:Measure
	[vgrow]::⟨r⟩:integer
	[vgrow]::⟨cr⟩:integer
	[vgrow]::⟨mv⟩:Measure
	[lineWidth]::⟨r⟩:integer
	[lineWidth]::⟨cr⟩:integer
	[lineWidth]::⟨mv⟩:Measure
	[textAngle]::⟨r⟩:integer
	[textAngle]::⟨cr⟩:integer
	[textAngle]::⟨mv⟩:Measure
	[toArrow]::⟨f⟩:Figure
	[toArrow]::⟨cf⟩:Figure
	[toArrow]::⟨mv⟩:Measure
	[fromArrow]::⟨f⟩:Figure
	[fromArrow]::⟨cf⟩:Figure
	[fromArrow]::⟨mv⟩:Measure
	[label]::⟨f⟩:Figure
	[label]::⟨cf⟩:Figure
	[label]::⟨mv⟩:Measure
	[fontSize]::⟨i⟩:integer
	[fontSize]::⟨ci⟩:integer
	[fontSize]::⟨mv⟩:Measure
	[lineStyle]::⟨s⟩:string
	[lineStyle]::⟨cs⟩:string
	[lineStyle]::⟨mv⟩:Measure
	[hint]::⟨s⟩:string
	[hint]::⟨cs⟩:string
	[hint]::⟨mv⟩:Measure
	[id]::⟨s⟩:string
	[id]::⟨cs⟩:string
	[id]::⟨mv⟩:Measure
	[fontBaseline]::⟨s⟩:string
	[fontBaseline]::⟨cs⟩:string
	[fontBaseline]::⟨mv⟩:Measure
	[layer]::⟨s⟩:string
	[layer]::⟨cs⟩:string
	[layer]::⟨mv⟩:Measure
	[font]::⟨s⟩:string
	[font]::⟨cs⟩:string
	[font]::⟨mv⟩:Measure
	[dir]::⟨s⟩:string
	[dir]::⟨cs⟩:string
	[dir]::⟨mv⟩:Measure
	[onMouseDown]::⟨h0⟩:(integer (KeyModifier boolean)*)
	[onMouseUp]::⟨h1⟩:(integer (KeyModifier boolean)*)
	[onMouseEnter]::⟨h2⟩:ε
	[onMouseExit]::⟨h3⟩:ε
	[onKeyDown]::⟨h4⟩:(KeySym (KeyModifier boolean)*)
	[onKeyUp]::⟨h5⟩:(KeySym (KeyModifier boolean)*)
Edge ::=
	[_edge]::(from⟩:stringto⟩:stringprop⟩:FProperties)
Edges ::=
	Edge*
Figures ::=
	Figure*
Figure ::=
	[_text]::(s⟩:stringprops⟩:FProperties)
	[_text]::(sv⟩:computedStrprops⟩:FProperties)
	[_outline]::(lineInfo⟩:LineDecoration*maxLine⟩:integerprops⟩:FProperties)
	[_widthDepsHeight]::(inner⟩:Figureprops⟩:FProperties)
	[_box]::⟨props⟩:FProperties
	[_box]::(inner⟩:Figureprops⟩:FProperties)
	[_ellipse]::⟨props⟩:FProperties
	[_ellipse]::(inner⟩:Figureprops⟩:FProperties)
	[_wedge]::⟨props⟩:FProperties
	[_wedge]::(inner⟩:Figureprops⟩:FProperties)
	[_space]::⟨props⟩:FProperties
	[_space]::(inner⟩:Figureprops⟩:FProperties)
	[_screen]::(inner⟩:Figureprops⟩:FProperties)
	[_leftAxis]::(name⟩:stringinner⟩:Figureprops⟩:FProperties)
	[_rightAxis]::(name⟩:stringinner⟩:Figureprops⟩:FProperties)
	[_topAxis]::(name⟩:stringinner⟩:Figureprops⟩:FProperties)
	[_bottomAxis]::(name⟩:stringinner⟩:Figureprops⟩:FProperties)
	[_projection]::(fig⟩:Figureid⟩:stringproject⟩:Figureprops⟩:FProperties)
	[_projection]::(fig⟩:Figurecid⟩:stringproject⟩:Figureprops⟩:FProperties)
	[_scrollable]::(hscroll⟩:booleanvscroll⟩:booleanfig⟩:Figureprops⟩:FProperties)
	[_timer]::(timerInit⟩:TimerInfocallBack⟩:integerinner⟩:Figureprops⟩:FProperties)
	[_withDependantWidthHeight]::(widthMajor⟩:booleaninnder⟩:Figureprops⟩:FProperties)
	[_mouseOver]::(under⟩:Figureover⟩:Figureprops⟩:FProperties)
	[_fswitch]::(choice⟩:integerfigs⟩:Figuresprops⟩:FProperties)
	[_overlap]::(under⟩:Figureover⟩:Figureprops⟩:FProperties)
	[_hvcat]::(figs⟩:Figuresprops⟩:FProperties)
	[_overlay]::(figs⟩:Figuresprops⟩:FProperties)
	[_grid]::(figMatrix⟩:Figure**props⟩:FProperties)
	[_pack]::(figs⟩:Figuresprops⟩:FProperties)
	[_graph]::(nodes⟩:Figuresedges⟩:Edgesprops⟩:FProperties)
	[_tree]::(figs⟩:Figuresprops⟩:FProperties)
	[_treemap]::(nodes⟩:Figuresprops⟩:FProperties)
	[_nominalKey]::(possibilities⟩:α*whole⟩:α*props⟩:FProperties)
	[_intervalKey]::(interpolate⟩:part⟩:integerexplain⟩:(low⟩:αhigh⟩:α)props⟩:FProperties)
	[_computeFigure]::(recomp⟩:booleancomputeFig⟩:Figureprops⟩:FProperties)
	[_button]::(label⟩:stringvcallback⟩:εprops⟩:FProperties)
	[_textfield]::(text⟩:stringscallback⟩:stringprops⟩:FProperties)
	[_textfield]::(text⟩:stringscallback⟩:stringvalidate⟩:stringprops⟩:FProperties)
	[_combo]::(choices⟩:string*scallback⟩:stringprops⟩:FProperties)
	[_choice]::(choices⟩:string*ccallback⟩:s⟩:stringprops⟩:FProperties)
	[_checkbox]::(text⟩:stringchecked⟩:booleanvbcallback⟩:booleanprops⟩:FProperties)
	[_scale]::(low⟩:integerhigh⟩:integerselection⟩:integerssdfcallback⟩:integerprops⟩:FProperties)
KeyHandler ::=
	KeySym (KeyModifier boolean)*

GrammarLabMaintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated in September 2015. []