Pelzini

This is the code documentation for the Pelzini project

source of /processor/parser_interface.php

Contains the ParserInterface class
  1. <?php
  2. /*
  3. Copyright 2008 Josh Heidenreich
  4.  
  5. This file is part of Pelzini.
  6.  
  7. Pelzini is free software: you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation, either version 3 of the License, or
  10. (at your option) any later version.
  11.  
  12. Pelzini is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with Pelzini. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20.  
  21. /**
  22.  * Contains the {@link ParserInterface} class
  23.  *
  24.  * @package Parser model
  25.  * @author Josh Heidenreich
  26.  * @since 0.1
  27.  **/
  28.  
  29. /**
  30.  * Represents an interface
  31.  **/
  32. class ParserInterface extends CodeParserItem {
  33. public $name;
  34. public $functions;
  35. public $extends;
  36. public $visibility;
  37. public $description;
  38.  
  39. public function __construct()
  40. {
  41. parent::__construct();
  42.  
  43. $this->functions = array ();
  44. $this->variables = array ();
  45. $this->visibility = 'public';
  46. }
  47.  
  48.  
  49. /**
  50.   * Processes Javadoc tags that are specific to this PaserItem
  51.   **/
  52. protected function processSpecificDocblockTags($docblock_tags)
  53. {
  54. $this->description = htmlify_text(@$docblock_tags['@summary']);
  55. }
  56.  
  57.  
  58. /**
  59.   * Cascades Docblock tags into the children that do not have any tags, and then
  60.   * runs processTags() for all of the children items.
  61.   **/
  62. public function treeWalk($function_name, ParserItem $parent_item = null)
  63. {
  64. call_user_func($function_name, $this, $parent_item);
  65.  
  66. foreach ($this->functions as $item) {
  67. $item->treeWalk($function_name, $this);
  68. }
  69. }
  70.  
  71.  
  72. /**
  73.   * Debugging use only
  74.   **/
  75. public function dump()
  76. {
  77. echo '<div style="border: 1px orange solid;">';
  78. echo $this->visibility . ' ';
  79. echo $this->name;
  80. echo '<br>' . $this->description;
  81. foreach ($this->variables as $a) $a->dump();
  82. foreach ($this->functions as $a) $a->dump();
  83.  
  84. parent::dump();
  85. echo '</div>';
  86. }
  87.  
  88.  
  89. }
  90.  
  91.  
  92. ?>
  93.