analyzer/PPProcessor.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 12 May 2015 01:24:03 +0100
changeset 459 4751c407bb40
parent 285 e475ffd31c4b
permissions -rw-r--r--
Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201 Name: PetitCompiler-JanKurs.20150510144201 Author: JanKurs Time: 10-05-2015, 04:42:29.192 PM UUID: 58a4786b-1182-4904-8b44-a13d3918f244 Name: PetitCompiler-Tests-JanKurs.20150510144201 Author: JanKurs Time: 10-05-2015, 04:32:12.870 PM UUID: 2a8fd41a-331b-4dcf-a7a3-752a50ce86e7 Name: PetitCompiler-Extras-Tests-JanKurs.20150510144201 Author: JanKurs Time: 10-05-2015, 04:59:25.308 PM UUID: ef43bd1a-be60-4e88-b749-8b635622c969 Name: PetitCompiler-Benchmarks-JanKurs.20150510144201 Author: JanKurs Time: 10-05-2015, 05:04:54.561 PM UUID: d8e764fd-016b-46e2-9fc1-17c38c18f0e5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
200
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/analyzer' }"
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
459
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
     3
"{ NameSpace: Smalltalk }"
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
     4
200
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
Object subclass:#PPProcessor
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'searches context'
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'PetitAnalyzer-Core'
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
!PPProcessor class methodsFor:'instance creation'!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
new
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	^ self basicNew initialize
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
! !
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!PPProcessor methodsFor:'initialization'!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
initialize
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	super initialize.
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	searches := OrderedCollection new.
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	context := Dictionary new
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
! !
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!PPProcessor methodsFor:'private'!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
context
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	^ context
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
performRule: aRule on: aParser
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
	context := Dictionary new.
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
	^ aRule performOn: aParser
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
performRulesOn: aParser
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	| result |
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	searches do: [ :rule |
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
		result := self performRule: rule on: aParser.
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
		result notNil ifTrue: [ ^ result ] ].
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ nil
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!PPProcessor methodsFor:'rules'!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
addRule: aGrammarRule
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	searches add: (aGrammarRule setOwner: self)
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
! !
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
!PPProcessor class methodsFor:'documentation'!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
version
285
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
    55
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPProcessor.st,v 1.2 2014-03-04 20:27:44 cg Exp $'
200
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
version_CVS
285
Claus Gittinger <cg@exept.de>
parents: 200
diff changeset
    59
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPProcessor.st,v 1.2 2014-03-04 20:27:44 cg Exp $'
459
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    60
!
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    61
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    62
version_HG
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    63
4751c407bb40 Merged with PetitCompiler-JanKurs.20150510144201, PetitCompiler-Tests-JanKurs.20150510144201, PetitCompiler-Extras-Tests-JanKurs.20150510144201, PetitCompiler-Benchmarks-JanKurs.20150510144201
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 285
diff changeset
    64
    ^ '$Changeset: <not expanded> $'
200
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
4c2367c19e67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66