public function interpret(Node $node){
		$link = $node->getAttribute('@0');
		$text = $node->getAttribute('@1');
		$theme = $node->getAttribute('@2');
		$template = $node->getAttribute('template');
		$id = $node->getAttribute('id');
		
		
		$ret = '<a data-role="button"';
		if($link != '#'){
			$ret .= 'href="'.$link.'"';
		}
		if($id != ''){
			$ret .= ' id="'.$id.'"';
		}
		if(strpos($link, 'ttp://')){
			$ret .= ' rel="external"';
		}
		if($theme != ''){
			$ret .= ' data-theme="'.$theme.'"';
		}
		if($template != ''){
			$ret .= $this->$template($node);
		}
		$ret .='>'.$text.'</a>';
		
		return $ret;
	}
Beispiel #2
0
	public function interpret(Node $node){
		$name = $node->getAttribute('#');
				
		$ret = '';
		if($name == 'html'){
			return $node->getAttribute('[]');
		}else if(in_array($name, $this->htmlTokens)){
			$ret .= '<'.$name;
			foreach ($this->htmlAttrType as $htmlAttr){
				if($node->hasAttribute($htmlAttr)){
					$v = $node->getAttribute($htmlAttr);
					$ret .= ' '.$htmlAttr.'="'.$v.'"';		
				}
			}
			if(in_array($name, $this->specialAttr)){
				$atAttrs = $node->getAtAttributes();
				$i = 0;
				foreach($this->specialAttr[$name] as $attr){
					$ret .= ' '.$attr.'="'.$atAttrs[$i++].'"';
				}
			}
			$ret .= '>';
			$ret .= $this->iterate($node);
			$ret .= '</'.$name.'>';
		}
		
		return $ret;
	}
 /**
  * @dataProvider provideNodes
  */
 public function testGetDocComment(array $attributes, Node $node)
 {
     $this->assertSame('/** doc comment */', $node->getDocComment()->getText());
     array_pop($node->getAttribute('comments'));
     // remove doc comment
     $this->assertNull($node->getDocComment());
     array_pop($node->getAttribute('comments'));
     // remove comment
     $this->assertNull($node->getDocComment());
 }
Beispiel #4
0
	function textarea(Node $node){
		$id = $node->getAttribute('id');
		$text = $node->getAttribute('@0');
		$style = $node->getAttribute('style');
		
		$ret = '<label for="'.$id.'">'.$text.'</label>';
		$ret .= '<textarea name="'.$id.'" id="'.$id.'" style="'.$style.'" >';
		$ret .= '</textarea>';
		return $ret;	
	}
	public function interpret(Node $node){
		$template = $node->getAttribute('template');
		$script = $node->getAttribute('[]');
		
		$ret = '<script ';
		if($template != ''){
			$ret .= $this->$template($node);
		}
		$ret .= '>'.$script."</script>";
		
		return $ret;
	}
Beispiel #6
0
	public function interpret(Node $node){
		$link = $node->getAttribute('@0');
		$text = $node->getAttribute('@1');
		$target = $node->getAttribute('@2');

		$ret = '<a href="'.$link.'"';
		if($target != ''){
			$ret .= ' target="'.$target.'"';
		}
		$ret .= '>'.$text.'</a>';

		return $ret;
	}
Beispiel #7
0
	public function interpret(Node $node){
		$text = $node->getAttribute('@0');
		
		$ret = '<h1>'.$text.'</h1>';
		
		return $ret;
	}
Beispiel #8
0
	public function interpret(Node &$node){
		$name = $node->getAttribute('#');
		$childs = $node->getChilds();
		
		if($name != ''){
			$ret = '<'.$name;
		}else{
			$ret = '<Node noname="true"';
		}
		
		foreach ($node->attrs as $k => $v){
			if(!in_array($k[0], array('#', '>', '@'))){
				$ret .= ' '.$k.'="'.$v.'"';
			}
		}
		
		for($i=0; $i<$node->atidx; ++$i){
			$ret .= ' attr'.$i.'="'.$node->attrs['@'.$i].'"';
		}
		$ret .='>';
		
		foreach ($childs as $child){			
			$ret .= $this->interpret($child);
		}
		
		if($name != ''){
			$ret .= '</'.$name.'>';
		}else{
			$ret .= '</Node>';
		}
		return $ret;
	}
 public function attributeAccessors()
 {
     $n = new Node('node');
     $n->setAttribute('id', 1);
     $this->assertTrue($n->hasAttribute('id'));
     $this->assertFalse($n->hasAttribute('href'));
     $this->assertEquals(1, $n->getAttribute('id'));
 }
Beispiel #10
0
	public function interpret(Node $node){
		$name = $node->getAttribute('#');
		$theme = $node->getAttribute('@0');
		
		$ret = '<div data-role="page" id="'.$node->getAttribute('id').'"';
		
		if($theme != ''){
			$ret .= ' data-theme="'.$theme.'" ';
		}
		$ret .='>';
		
		$ret .= parent::interpret($node);
		
		$ret .='</div>';
		
		return $ret;
	}
Beispiel #11
0
	public function interpret(Node $node){
		$name = $node->getAttribute('#');
		$subinterpreter = $this->getInterpreter($name);	
		$ret = '';
		if(NULL != $subinterpreter){
			$ret .= $subinterpreter->interpret($node);
		}
		
		return $ret;
	}
Beispiel #12
0
	public function interpret(Node &$node, $intent = 0){				
		$name = $node->getAttribute('#');
		$childs = $node->getChilds();
		
		if($name != ''){
			$ret = $this->getIntent($intent).$name;
		}else{
			$ret = $this->getIntent($intent);
		}
		
		$hasAttr = false;	
		for($i=0; $i<$node->atidx; ++$i){
			if(!$hasAttr){
				$hasAttr = true;
				$ret .= '(';
			}
			
			$ret .= '"'.$node->attrs['@'.$i].'", ';
		}
		
		foreach ($node->attrs as $k => $v){
			if(!in_array($k[0], array('#', '>', '@'))){
				if(!$hasAttr){
					$hasAttr = true;
					$ret .= '(';
				}
				$ret .= $k.'="'.$v.'", ';
			}
		}
		
		if($hasAttr){
			$ret .= ')';
		}
		
		$hasChild = false;		
		foreach ($childs as $child){
			if(!$hasChild){
				$ret .= '{'.chr(10);
				$hasChild = true;
			}
			$ret .= $this->interpret($child, $intent+1);
		}		
		if($hasChild){
			$ret .= $this->getIntent($intent).'}';
		}
		$ret.=chr(10);
		
		return $ret;
	}
Beispiel #13
0
 /**
  * Dumps a node or array.
  *
  * @param array|Node $node Node or array to dump
  *
  * @return string Dumped value
  */
 public function dump($node)
 {
     if ($node instanceof Node) {
         $r = $node->getType() . '(';
         foreach ($node->getSubNodeNames() as $key) {
             $r .= "\n    " . $key . ': ';
             $value = $node->{$key};
             if (null === $value) {
                 $r .= 'null';
             } elseif (false === $value) {
                 $r .= 'false';
             } elseif (true === $value) {
                 $r .= 'true';
             } elseif (is_scalar($value)) {
                 $r .= $value;
             } else {
                 $r .= str_replace("\n", "\n    ", $this->dump($value));
             }
         }
         if ($this->dumpComments && ($comments = $node->getAttribute('comments'))) {
             $r .= "\n    comments: " . str_replace("\n", "\n    ", $this->dump($comments));
         }
     } elseif (is_array($node)) {
         $r = 'array(';
         foreach ($node as $key => $value) {
             $r .= "\n    " . $key . ': ';
             if (null === $value) {
                 $r .= 'null';
             } elseif (false === $value) {
                 $r .= 'false';
             } elseif (true === $value) {
                 $r .= 'true';
             } elseif (is_scalar($value)) {
                 $r .= $value;
             } else {
                 $r .= str_replace("\n", "\n    ", $this->dump($value));
             }
         }
     } elseif ($node instanceof Comment) {
         return $node->getReformattedText();
     } else {
         throw new \InvalidArgumentException('Can only dump nodes and arrays.');
     }
     return $r . "\n)";
 }
	function li(Node $node, Node $parent){
		$text = $node->getAttribute('@0');
		$style = $node->getAttribute('style');
		if($text == ''){
			$text = $node->getAttribute('[]');
		}
		
		$ret = '<li data-icon="false"';
		if($style != ''){
			$ret .= ' style="'.$style.'"';
		}
		$ret .= '>';
		
		if($text != ''){
			$ret .= $text;
		}else{
			$ret .=parent::interpret($node);
		}
		$ret .= '</li>';
		return $ret;
	}
Beispiel #15
0
	public function interpret(Node $node){
		$text = $node->getAttribute('@0');
		
		return $text;
	}