
I ::=   "title:    Object-oriented Design Patterns\n"
      ^ "author:   Dimitri De Franciscis &lt;megadix@yahoo.it&gt;\n"
      ^ "language: english\n"
      ^ "status:   refinable\n"
      ^ "topic:    misc\n"
      ^ "audience: poor OO programmers\n"
      ^ "created:  26/03/2004"
;

S ::= Adjective Noun;

Adjective ::= "Business" | "Data Access" | "Fast Lane" | "Composite"
            | "Front" | "Intercepting" | "Session" | "Transfer" | "Value List"
            | "View" | "Half" | "Immutable" | "Dynamic" | "Virtual"
            | "Model" | "Layered" | "Null" | "Template";
            
Noun ::= "Delegate" | "Abstract" | "Entity" | "View" | "Object" | "Reader"
       | "Controller" | "Filter" | "Locator" | "Facade" | "Handler" | "Helper" | "Call" | "Interface" | "Proxy"
       | "Builder" | "Method" | "Prototype" | "Singleton" | "Pool" | "Marker" | "Factory"
       | "Bridge" | "Flyweight" | "Service" | "Adapter" | "Listener" | "Decorator"
       | "Cache" | "Command" | "Strategy" | "Producer" | "Consumer";
