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).

"{ Package: 'stx:goodies/petitparser/analyzer' }"

"{ NameSpace: Smalltalk }"

Object subclass:#PPProcessor
	instanceVariableNames:'searches context'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitAnalyzer-Core'
!


!PPProcessor class methodsFor:'instance creation'!

new
	^ self basicNew initialize
! !

!PPProcessor methodsFor:'initialization'!

initialize
	super initialize.
	searches := OrderedCollection new.
	context := Dictionary new
! !

!PPProcessor methodsFor:'private'!

context
	^ context
!

performRule: aRule on: aParser
	context := Dictionary new.
	^ aRule performOn: aParser
!

performRulesOn: aParser
	| result |
	searches do: [ :rule |
		result := self performRule: rule on: aParser.
		result notNil ifTrue: [ ^ result ] ].
	^ nil
! !

!PPProcessor methodsFor:'rules'!

addRule: aGrammarRule
	searches add: (aGrammarRule setOwner: self)
! !

!PPProcessor class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPProcessor.st,v 1.2 2014-03-04 20:27:44 cg Exp $'
!

version_CVS
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/analyzer/PPProcessor.st,v 1.2 2014-03-04 20:27:44 cg Exp $'
!

version_HG

    ^ '$Changeset: <not expanded> $'
! !