devtools/PPDebugger.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 11 Jan 2013 16:17:28 +0100
changeset 127 18f560ebccaa
parent 75 11f265240739
child 642 77d5fddb6462
permissions -rw-r--r--
class: PPDebugger changed: #enterParser:stream: #leaveParser:stream:result:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/devtools' }"
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Object subclass:#PPDebugger
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'indent'
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'PetitParser-Debugging'
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!PPDebugger class methodsFor:'instance creation'!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
new
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
    "return an initialized instance"
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    ^ self basicNew initialize.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
! !
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
!PPDebugger methodsFor:'events'!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
enterParser: aPPParser stream: aStream
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    indent timesRepeat:[Transcript nextPutAll:'    '].
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    Transcript nextPutAll:'{ '.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    Transcript nextPutAll: aPPParser name ? aPPParser printString.
127
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    26
    [
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    27
        Transcript nextPutAll: ' pos = '; nextPutAll: aStream position printString.
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    28
    ] on: Error do:[:ex|
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    29
        Debugger enter.
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    30
    ].
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    Transcript cr.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    indent := indent + 1.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    "Created: / 12-03-2012 / 16:41:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
127
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    35
    "Modified: / 11-01-2013 / 15:16:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
leaveParser: aPPParser stream: aStream result: result
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    indent := indent - 1.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    indent timesRepeat:[Transcript nextPutAll:'    '].
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    Transcript nextPutAll:'} '.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    Transcript nextPutAll: aPPParser name ? aPPParser printString.
127
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    44
    Transcript nextPutAll: ' pos = '; nextPutAll: aStream position printString.
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    Transcript nextPutAll: ' result = '.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    result isPetitFailure ifTrue:[
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
        Transcript nextPutAll: 'FAILURE '.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    ].
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    Transcript nextPutAll: result printString.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    Transcript cr.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    "Created: / 12-03-2012 / 16:41:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
127
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    53
    "Modified: / 11-01-2013 / 15:17:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
! !
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
!PPDebugger methodsFor:'initialization'!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
initialize
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    "Invoked when a new instance is created."
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    "/ please change as required (and remove this comment)
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    indent := 0.
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "/ super initialize.   -- commented since inherited method does nothing
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    "Modified: / 12-03-2012 / 16:41:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
! !
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
!PPDebugger class methodsFor:'documentation'!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
version
127
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    72
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/devtools/PPDebugger.st,v 1.2 2013-01-11 15:17:28 vrany Exp $'
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
version_CVS
127
18f560ebccaa class: PPDebugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
    76
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/devtools/PPDebugger.st,v 1.2 2013-01-11 15:17:28 vrany Exp $'
75
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
!
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
version_SVN
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    ^ '§Id: PPDebugger.st 10 2012-05-04 18:54:13Z vranyj1 §'
11f265240739 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
! !