# HG changeset patch # User Claus Gittinger # Date 1393967677 -3600 # Node ID 33ef8249a32b6f7e1e554485812da8f907cff479 # Parent d807737e23f82fff12de218984f7108fea5727f1 initial checkin diff -r d807737e23f8 -r 33ef8249a32b gui/PPParserDebuggerResult.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gui/PPParserDebuggerResult.st Tue Mar 04 22:14:37 2014 +0100 @@ -0,0 +1,116 @@ +"{ Package: 'stx:goodies/petitparser/gui' }" + +Object subclass:#PPParserDebuggerResult + instanceVariableNames:'parser result children parent start end' + classVariableNames:'' + poolDictionaries:'' + category:'PetitGui-Core' +! + + +!PPParserDebuggerResult class methodsFor:'instance creation'! + +parse: aStream with: parser + | root newParser | + root := self new. + newParser := parser transform: [:each | + each name isNil + ifTrue: [ each ] + ifFalse: [ + each >=> [:stream :continuation | + | result child | + child := PPParserDebuggerResult new + parser: each; + parent: root. + root := root children add: child. + child start: stream position + 1. + result := continuation value. + child end: stream position. + root result: result. + root := root parent. + result ]]]. + newParser parse: aStream. + ^ root children first +! ! + +!PPParserDebuggerResult methodsFor:'accessing'! + +children + ^ children +! + +children: anObject + children := anObject +! + +end + ^ end +! + +end: anObject + end := anObject +! + +parent + ^ parent +! + +parent: anObject + parent := anObject +! + +parser + ^ parser +! + +parser: anObject + parser := anObject +! + +result + ^ result +! + +result: anObject + result := anObject +! + +start + ^ start +! + +start: anObject + start := anObject +! ! + +!PPParserDebuggerResult methodsFor:'initialization'! + +initialize + children := OrderedCollection new +! ! + +!PPParserDebuggerResult methodsFor:'printing'! + +formattedText + ^ self result isPetitFailure + ifTrue: [ Text string: self printString attribute: TextColor gray ] + ifFalse: [ self printString] +! + +printOn: aStream + aStream + nextPutAll: self parser name; + nextPutAll: ' - '; + nextPutAll: self result printString +! ! + +!PPParserDebuggerResult class methodsFor:'documentation'! + +version + ^ '$Header: /cvs/stx/stx/goodies/petitparser/gui/PPParserDebuggerResult.st,v 1.1 2014-03-04 21:14:37 cg Exp $' +! + +version_CVS + ^ '$Header: /cvs/stx/stx/goodies/petitparser/gui/PPParserDebuggerResult.st,v 1.1 2014-03-04 21:14:37 cg Exp $' +! ! +