mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-08 15:52:26 +01:00
Author:halw
Date:2011-05-11T20:47:35.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@889 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -20,5 +20,12 @@ The important classes here are <code>DEGREE_5</code>, <code>EIFFEL_PARSER_POOL</
|
||||
|
||||
When <code>DEGREE_5</code> creates the <code>EIFFEL_PARSER_POOL</code>, it provides a maximum number of parsers to be held in the pool and a function agent which the pool can use to create a new parser instance. Then when <code>DEGREE_5</code> asks the pool to parse a file, it provides references to the file itself and two procedure agents: one for pre-parse processing and one for post-parse processing.
|
||||
|
||||
The pre-parse processing gives the <code>EIFFEL_PARSER_POOL</code> an agent that can be used to set up a parser before asking it to parse a file.
|
||||
|
||||
When an <code>EIFFEL_PARSER</code> finishes with a file, it calls the agent for post-parse processing. In this way, it notifies the instance of <code>DEGREE_5</code> that it is done with that file.
|
||||
|
||||
So, it is here that elements of the observer pattern are shown. In more typical observer pattern examples, there is one observed object an a set of one or more observers. But here, there is one observer, the instance of <code>DEGREE_5</code>, and many observable objects, the parsers. Also, instead of making calls directly to the observer, the observed objects apply the agents that have been provided by the observer.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user