EnyoFriend subclass: #Eris instanceVariableNames: '' category: 'Eris'! !Eris methodsFor: 'actions'! doIt | result | [ result := self eval: self dollar richText getValue ] on: Error do: [:ex | ^self warn: ex messageText title: 'Error' button: 'Ooops...']. ^result ! clear self dollar richText setValue: '' ! eval: aString | compiler node | compiler := Compiler new. node := compiler parseExpression: aString. node isParseFailure ifTrue: [ ^self warn: 'Ehrm, you are a Smalltalk n00b, right? That is not valid syntax.' title: 'Parsing Error' button: 'Okidoki...']. ^compiler loadExpression: aString. ! printString ^'' ! warn: aString title: aTitle button: caption | block popup | block := [popup close]. . popup := enyo create: props. popup openAtCenter ! print: aString self dollar richText setValue: (self dollar richText getValue), ' ', aString ! quack "(self kind: 'Sound'; src: 'DuckQwaq.wav'; create) play" (enyo create: (Dictionary new at: 'kind' put: 'Sound'; at: 'src' put: 'DuckQwaq.wav'; yourself)) play ! printIt self print: self doIt printString ! ! !Eris methodsFor: 'initialization'! initialize | props doItBlock printItBlock quackBlock clearBlock | super initialize. doItBlock := [self doIt]. printItBlock := [self printIt]. quackBlock := [self quack]. clearBlock := [self clear]. . ui := enyo create: props. ! !