module php/reflect/version4/php4-environment
imports
  php/reflect/oo/classes

signature
  constructors
    PHP4Environment : ClassName

strategies
  /**
   * Succeeds if the current term is an instance of PHP Environment.
   * This class is iself a abstract class. So it has no instance.
   * subclasses have to implement this.
   */
  instanceof-PHPEnvironment =
    instanceof-PHP4Environment

  instanceof-PHP4Environment =
    classes_instanceof(|PHP4Environment())

/**
 * Stratego class support for PHP Environment
 */
strategies

  /**
   * Constructs a new PHP4 Environment.
   *
   * @type  _ -> Environment Object
   */
  new-php4-environment =
      <classes_get-class> PHP4Environment()
    ; classes_new-instance
    ; classes_set-instance-field(|"function-table", <new-hashtable>)
    ; classes_set-instance-field(|"classes-table" , <new-hashtable>)
    ; classes_set-instance-field(|"files-table" , <new-hashtable>)
    ; classes_set-instance-field(|"filenames-table", <new-hashtable>)