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

#include <MarkdownTableParser.hpp>

Public 成员函数

 MarkdownTableParser (MarkdownSax &sax)
 
void feed (StringView chunk)
 
void feedChar (char c)
 
void finish ()
 
void reset ()
 
bool isIdle () const
 
bool isCharConsumed () const
 

详细描述

Markdown 表格流式解析状态机

MarkdownBlockParser 配合使用:

  1. BlockSM 在行首检测到 | 时调用 feedChar('|')
  2. 后续逐字符 feedChar(c),直到 isIdle() 为 true
  3. 内部自动完成 header/separator/body 行判定与 SAX 事件发射

表格语法(GFM):

Header 1 Header 2
Cell 1 Cell 2

解析流程:

  • eHeaderRow: 缓冲第一行 cell 原始文本
  • eSeparator: 解析分隔行,提取列对齐;确认后发射 startTable + 表头
  • eBodyRow: 逐行解析 cell,委托 inlineSM 处理后发射 SAX 事件

若表头行后未跟随有效分隔行,自动回退为段落文本输出。

成员函数说明

◆ feedChar()

void ast::MarkdownTableParser::feedChar ( char c)

逐字符输入

参数
c当前字符
注解
当表格结束时(遇到非表格行),当前字符可能未被消费; 调用方应在 isIdle() 为 true 后检查 isCharConsumed()

◆ isCharConsumed()

bool ast::MarkdownTableParser::isCharConsumed ( ) const
inline

feedChar 返回后,最近一次输入的字符是否已被消费

若为 false,调用方需用同一字符重新进行行首分类


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