analyzer/PPProcessor.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jul 2015 08:37:37 +0100
changeset 510 869853decf31
parent 459 4751c407bb40
permissions -rw-r--r--
Tests refactoring - use generated test cases to make sure all posibilities are tested. Do not generate resource for all combinations, use PPCSetUpBeforeTearDownAfterResource instead that delegates parser compilation to the testcase itself (it calls it's #setUpBefore method).
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