Beispiel #1
0
 public function testEatChars()
 {
     $buffer = new Buffer("abcdef");
     $buffer->nextLine();
     $chars = $buffer->eatChars(2);
     $this->assertSame("ab", $chars);
     $this->assertSame("cdef", $buffer->getLine());
     $this->assertSame(3, $buffer->getColumn());
     $chars = $buffer->eatChars(5);
     $this->assertSame("cdef", $chars);
     $this->assertSame("", $buffer->getLine());
     $this->assertSame(7, $buffer->getColumn());
 }
Beispiel #2
0
 public function testInjectLines()
 {
     $buffer = new Buffer("    abc\n    def\nghi");
     $buffer->injectLines(["  jkl", "  mop"], 1);
     $this->assertTrue($buffer->nextLine());
     //this skip magic comment
     $this->assertSame("  jkl", $buffer->getLine());
     $this->assertSame(1, $buffer->getLineno());
     $this->assertSame(1, $buffer->getColumn());
     $this->assertTrue($buffer->nextLine());
     $this->assertSame("  mop", $buffer->getLine());
     $this->assertSame(2, $buffer->getLineno());
     $this->assertTrue($buffer->nextLine());
     $this->assertSame("    abc", $buffer->getLine());
     $this->assertSame(3, $buffer->getLineno());
     $this->assertTrue($buffer->nextLine());
     $this->assertSame("    def", $buffer->getLine());
     $this->assertSame(4, $buffer->getLineno());
     $this->assertTrue($buffer->nextLine());
     $this->assertSame("ghi", $buffer->getLine());
     $this->assertSame(5, $buffer->getLineno());
     $this->assertFalse($buffer->nextLine());
 }
Beispiel #3
0
 protected function syntaxError(Buffer $buf, $msg)
 {
     $this->column = $buf->getColumn();
     $this->lineno = $buf->getLineno();
     $msg = sprintf('%s in %s on line %d, column %d', $msg, $this->filename, $this->lineno, $this->column);
     return new SyntaxErrorException($msg);
 }