XmlImportAstMath.php 1.29 KB
Newer Older
imac's avatar
imac committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
<?php
/**
 * @author Olexandr Zanichkovsky <olexandr.zanichkovsky@zophiatech.com>
 * @package AST
 */

require_once dirname(__FILE__) . '/XmlImportAstExpression.php';

/**
 * Represents a function
 */
class XmlImportAstMath extends XmlImportAstExpression
{
  /**
   * Function arguments
   *
   * @var array
   */
  private $arguments = array();

  /**
   * Creates new instance
   *
   * @param string $name
   */
  public function  __construct($name)
  {
    $this->name = $name;
  }

  /**
   * Adds argument to a function
   *
   * @param XmlImportAstExpression $argument
   */
  public function addArgument(XmlImportAstExpression $argument)
  {
    $this->arguments[] = $argument;
  }

  /**
   * Gets function arguments
   *
   * @return array
   */
  public function getArguments()
  {
    return $this->arguments;
  }

  /**
   * String representation of a function
   *
   * @return string
   */
  public function __toString()
  {
    $result = "--> begin " . get_class($this) . "\n";
    foreach ($this->getArguments() as $argument)
    {
      $array = explode("\n", $argument);
      for ($i = 0; $i < count($array); $i++)
      {
        $array[$i] = '  ' . $array[$i];
      }
      $result .= implode("\n", $array) . "\n";
    }

    $result .= "--> end " . get_class($this);

    return $result;
  }
}