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

#include <BKVParser.hpp>

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

Public 类型

enum  EToken {
  eBlockBegin , eBlockEnd , eKeyValue , eError ,
  eEOF =EOF
}
 

Public 成员函数

 BKVParser (StringView filepath)
 
void setAllowComment (bool allow)
 
bool allowComment () const
 
EToken getNext (StringView &key, ValueView &value)
 
EToken getNext (BKVItemView &item)
 
StringView getLineSkipComment ()
 
errc_t parseFile (StringView filepath, BKVSax &sax)
 
errc_t parse (BKVSax &sax)
 
- Public 成员函数 继承自 ast::BaseParser
 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 属性

bool allowComment_
 
std::vector< char > keyBuffer_
 
std::vector< char > valueBuffer_
 
- Protected 属性 继承自 ast::BaseParser
FILE * file_ {nullptr}
 
bool fileBorrowed_ {false}
 
std::vector< char > lineBuffer_
 

详细描述

键值对解析器(BlockKeyValueParser)

本类实现了键值对解析器,用于解析键值对格式的文本。 该类可以用于解析STK的配置文件,例如对象配置文件、数据文件等。 同时也可以用于解析CelesTrak网站上的一些数据文件。

成员枚举类型说明

◆ EToken

枚举值
eBlockBegin 

块开始

eBlockEnd 

块结束

eKeyValue 

键值对

eError 

错误

eEOF 

文件结束

成员函数说明

◆ allowComment()

bool ast::BKVParser::allowComment ( ) const
inline

是否允许注释

是否允许解析注释行。

返回
是否允许注释

◆ getLineSkipComment()

StringView ast::BKVParser::getLineSkipComment ( )
inline

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

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

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

◆ getNext() [1/2]

BKVParser::EToken ast::BKVParser::getNext ( BKVItemView & item)

获取下一个键值对项

获取下一个键值对项,将键值对项的键和值存储在指定的视图中。

参数
item键值对项视图,用于存储键值对项的键和值。
返回
键值对项的类型(EToken)。

◆ getNext() [2/2]

BKVParser::EToken ast::BKVParser::getNext ( StringView & key,
ValueView & value )

获取下一个键值对项

获取下一个键值对项,将键值对项的键和值存储在指定的视图中。

参数
key键视图,用于存储键值对项的键。
value值视图,用于存储键值对项的值。
返回
键值对项的类型(EToken)。

◆ parse()

errc_t ast::BKVParser::parse ( BKVSax & sax)

解析当前打开的文件

解析当前打开的文件,将解析结果传递给指定的 sax 解析器。

参数
saxsax 解析器,用于处理解析结果。
返回
解析错误码(errc_t)。

◆ parseFile()

errc_t ast::BKVParser::parseFile ( StringView filepath,
BKVSax & sax )

解析文件

解析指定路径的文件,将解析结果传递给指定的 sax 解析器。

参数
filepath文件路径视图,指定要解析的文件路径。
saxsax 解析器,用于处理解析结果。
返回
解析错误码(errc_t)。

◆ setAllowComment()

void ast::BKVParser::setAllowComment ( bool allow)
inline

设置是否允许注释

设置是否允许解析注释行。

参数
allow是否允许注释

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