コード例 #1
0
ファイル: BufferTest.php プロジェクト: gunderjt/MtHaml
 public function testSimple()
 {
     $buffer = new Buffer("  abc\n    def\nghi");
     $this->assertTrue($buffer->nextLine());
     $this->assertSame("  abc", $buffer->getLine());
     $this->assertTrue($buffer->match('~z*~A', $match));
     $this->assertSame(array('', 'pos' => array(array('lineno' => 1, 'column' => 0))), $match);
     $this->assertSame("  abc", $buffer->getLine());
     $this->assertTrue($buffer->match('~(\\s*)(a)~A', $match));
     $this->assertSame(array('  a', '  ', 'a', 'pos' => array(array('lineno' => 1, 'column' => 0), array('lineno' => 1, 'column' => 0), array('lineno' => 1, 'column' => 2))), $match);
     $this->assertSame("bc", $buffer->getLine());
     $this->assertTrue($buffer->nextLine());
     $this->assertSame("    def", $buffer->getLine());
     $this->assertSame(2, $buffer->getLineno());
     $this->assertSame(' ', $buffer->peekChar());
     $this->assertSame("    def", $buffer->getLine());
     $this->assertSame(1, $buffer->getColumn());
     $this->assertSame(' ', $buffer->eatChar());
     $this->assertSame("   def", $buffer->getLine());
     $this->assertSame(2, $buffer->getColumn());
     $buffer->skipWs();
     $this->assertSame('def', $buffer->getLine());
     $this->assertSame(5, $buffer->getColumn());
     $this->assertTrue($buffer->nextLine());
     $this->assertSame('ghi', $buffer->getLine());
     $this->assertSame(3, $buffer->getLineno());
     $this->assertFalse($buffer->nextLine());
 }
コード例 #2
0
ファイル: Parser.php プロジェクト: gunderjt/MtHaml
 protected function parseTagFlags(Buffer $buf)
 {
     $flags = 0;
     while (null !== ($char = $buf->peekChar())) {
         switch ($char) {
             case '<':
                 $flags |= Tag::FLAG_REMOVE_INNER_WHITESPACES;
                 $buf->eatChar();
                 break;
             case '>':
                 $flags |= Tag::FLAG_REMOVE_OUTER_WHITESPACES;
                 $buf->eatChar();
                 break;
             case '/':
                 $flags |= Tag::FLAG_SELF_CLOSE;
                 $buf->eatChar();
                 break;
             default:
                 break 2;
         }
     }
     return $flags;
 }