🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::BaseParser类 参考

#include <BaseParser.hpp>

+ 类 ast::BaseParser 继承关系图:

Public 成员函数

 BaseParser (StringView filepath)
 
void open (StringView filepath)
 
bool isOpen () const
 
void close ()
 
void seek (std::streamoff pos, std::ios::seekdir dir)
 
std::streamoff tell ()
 
bool eof () const
 
size_t read (void *buffer, size_t size, size_t pos) const
 
StringView getLineWithNewline ()
 
StringView getLine ()
 
StringView getLineTrim ()
 
StringView getLineSkipHashComment ()
 
int getLineNumber ()
 
std::string getFilePath () const
 
void setBorrowedFile (FILE *file)
 
void setOwnedFile (FILE *file)
 
FILE * getFile () const
 

Protected 属性

FILE * file_ {nullptr}
 
bool fileBorrowed_ {false}
 
std::vector< char > lineBuffer_
 

详细描述

解析器基类

成员函数说明

◆ close()

void ast::BaseParser::close ( )

关闭文件

关闭当前打开的文件。

◆ eof()

bool ast::BaseParser::eof ( ) const
inline

是否到达文件末尾

判断当前文件指针是否到达文件末尾。

返回
如果到达文件末尾则返回 true,否则返回 false。

◆ getFilePath()

std::string ast::BaseParser::getFilePath ( ) const

获取当前文件路径

获取当前打开文件的路径。

返回
当前文件路径

◆ getLine()

StringView ast::BaseParser::getLine ( )

获取当前行

获取当前行的内容,不包含行结束符。

返回
当前行的内容

◆ getLineNumber()

int ast::BaseParser::getLineNumber ( )

获取当前行号

获取当前解析器所在的行号。

返回
当前行号

◆ getLineSkipHashComment()

StringView ast::BaseParser::getLineSkipHashComment ( )

获取当前非#注释行(跳过#注释行)

获取当前行的内容,不包含行结束符,跳过以井号 '#' 开头的行。

返回
当前行的内容(跳过#注释行)

◆ getLineTrim()

StringView ast::BaseParser::getLineTrim ( )

获取当前行(去除首尾空格)

获取当前行的内容,不包含行结束符。

返回
当前行的内容(去除首尾空格)

◆ getLineWithNewline()

StringView ast::BaseParser::getLineWithNewline ( )

获取当前行(包含行结束符)

获取当前行的内容,包含行结束符。

返回
当前行的内容(包含行结束符)

◆ isOpen()

bool ast::BaseParser::isOpen ( ) const
inline

是否打开文件

判断当前是否有文件打开。

返回
如果有文件打开则返回 true,否则返回 false。

◆ open()

void ast::BaseParser::open ( StringView filepath)

打开文件

打开指定路径的文件,用于后续的解析操作。

参数
filepath文件路径视图,指定要打开的文件路径。

◆ read()

size_t ast::BaseParser::read ( void * buffer,
size_t size,
size_t pos ) const

读取文件内容

从当前文件指针位置读取指定数量的字节到缓冲区。

参数
buffer用于存储读取内容的缓冲区。
size要读取的字节数。
pos读取的起始位置,从文件开头开始计算。
返回
实际读取的字节数。
待办事项
当前的函数实现未考虑线程安全问题,该接口需要线程安全的实现,考虑在linux下使用pread函数

◆ seek()

void ast::BaseParser::seek ( std::streamoff pos,
std::ios::seekdir dir )

移动文件指针

移动当前打开文件的指针到指定位置。

参数
pos偏移量,指定要移动的字节数。
dir方向,指定移动的方向(如 std::ios::beg, std::ios::cur, std::ios::end)。

◆ setBorrowedFile()

void ast::BaseParser::setBorrowedFile ( FILE * file)

设置外部借用的文件指针,不转移文件指针的所有权。

警告
外部借用的文件指针必须在解析器生命周期内有效,否则会导致未定义行为 文件的打开模式必须与所使用解析器的打开模式一致,否则会导致未定义行为

设置当前解析器使用的文件指针为外部借用的文件指针。

参数
file外部借用的文件指针

◆ setOwnedFile()

void ast::BaseParser::setOwnedFile ( FILE * file)

设置文件指针,将文件指针的所有权转移给解析器。

警告
调用该方法后,解析器将接管文件指针的所有权,外部不应再操作该文件指针 文件的打开模式必须与所使用解析器的打开模式一致,否则会导致未定义行为

设置当前解析器使用的文件指针,并将文件指针的所有权转移给解析器。

参数
file文件指针

◆ tell()

std::streamoff ast::BaseParser::tell ( )

获取当前文件指针位置

获取当前打开文件的指针位置。

返回
当前文件指针位置

该类的文档由以下文件生成: