Extension { #name : 'PEGFsa' } { #category : '*PetitCompiler-GUI' } PEGFsa >> gtGraphViewIn: composite [ composite roassal2 title: 'Graph'; initializeView: [ RTMondrian new ]; painting: [ :view | self viewGraphOn: view. ]. ] { #category : '*PetitCompiler-GUI' } PEGFsa >> gtStringViewIn: composite [ composite text title: 'Textual Representation'; display: [ :fsa | fsa asString ] ] { #category : '*PetitCompiler-GUI' } PEGFsa >> viewGraphOn: b [ b shape circle size: 50. b shape color: Color gray muchLighter muchLighter. b shape withText: #gtName. b nodes: (self nonFinalStates). b shape circle size: 50. b shape color: Color gray muchLighter. b shape withText: #gtName. b nodes: (self finalStates). b shape arrowedLine. b edges connectToAll: [ :state | state transitions select: [:t | (self isBackTransition:t) not] thenCollect: #destination ] labelled: [ :t | (self transitionFrom: t key to: t value) gtName ]. b shape arrowedLine. b shape color: Color red. b edges connectToAll: [ :state | state transitions select: [:t | (self isBackTransition: t) ] thenCollect: #destination ] labelled: [ :t | (self transitionFrom: t key to: t value) gtName ]. b layout horizontalTree . b layout layout horizontalGap: 30. ^ b ]