You've already forked MyDSL
StringReader部分
This commit is contained in:
@ -17,13 +17,42 @@ namespace JerryYan\DSL\Reader;
|
||||
*/
|
||||
abstract class ReaderInterface
|
||||
{
|
||||
protected $currentLine = 0;
|
||||
protected $currentLine = 1;
|
||||
protected $currentPosition = 0;
|
||||
protected $currentLinePosition = 0;
|
||||
#abstract public function getNextChar(): ?string;
|
||||
#abstract public function getCurrentToken(): ?string;
|
||||
#abstract public function getNextToken(): ?string;
|
||||
#abstract public function moveToNextToken(): ?string;
|
||||
protected $nextPosition = 0;
|
||||
|
||||
/**
|
||||
* 获取下一个字符
|
||||
* @return string
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/18 12:06
|
||||
*/
|
||||
abstract public function getNextChar(): string;
|
||||
|
||||
/**
|
||||
* 获取当前识别符
|
||||
* @return string
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/18 12:06
|
||||
*/
|
||||
abstract public function getCurrentToken(): string;
|
||||
|
||||
/**
|
||||
* 获取下一个识别符
|
||||
* @return string
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/18 12:06
|
||||
*/
|
||||
abstract public function getNextToken(): string;
|
||||
|
||||
/**
|
||||
* 移动至下一个识别符
|
||||
* @return bool
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/18 12:06
|
||||
*/
|
||||
abstract public function moveToNextToken(): bool;
|
||||
|
||||
/**
|
||||
* 跳过当前行
|
||||
@ -31,7 +60,7 @@ abstract class ReaderInterface
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/17 15:43
|
||||
*/
|
||||
#abstract public function skipCurrentLine(): bool;
|
||||
abstract public function skipCurrentLine(): bool;
|
||||
|
||||
/**
|
||||
* 从当前位置跳到结束位置
|
||||
@ -40,5 +69,28 @@ abstract class ReaderInterface
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/17 15:43
|
||||
*/
|
||||
#abstract public function skipUntil(string $end="*/"): bool;
|
||||
abstract public function skipUntil(string $end="*/"): bool;
|
||||
|
||||
/**
|
||||
* 重置读取器
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/18 12:01
|
||||
*/
|
||||
public function reset(): void
|
||||
{
|
||||
$this->currentLine = 1;
|
||||
$this->currentPosition = 0;
|
||||
$this->nextPosition = 0;
|
||||
$this->moveToNextToken();
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置读取器
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2020/12/18 12:01
|
||||
*/
|
||||
public function resetCursor(): void
|
||||
{
|
||||
$this->reset();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user