添加ast生成时间签名

This commit is contained in:
codeboss 2024-06-23 14:30:30 +08:00
parent 6a655ff47f
commit 78b7d60abf
1 changed files with 13 additions and 0 deletions

View File

@ -564,11 +564,13 @@ VisitMode printer::AstGenerate::mode() const {
return VisitMode::FirstParent; return VisitMode::FirstParent;
} }
#include <QDateTime>
bool printer::AstGenerate::visit(std::shared_ptr<const ast_gen::ElementAccess> syntax_element) { bool printer::AstGenerate::visit(std::shared_ptr<const ast_gen::ElementAccess> syntax_element) {
switch ((NovelNode)syntax_element->element()->typeMark()) { switch ((NovelNode)syntax_element->element()->typeMark()) {
case NovelNode::GlobalElement:{ case NovelNode::GlobalElement:{
auto body = doc.createElement(u8"ast"); auto body = doc.createElement(u8"ast");
doc.appendChild(body); doc.appendChild(body);
body.setAttribute(u8"time", QDateTime::currentDateTime().toString(u8"yyyyMMdd_hhmmss"));
element_stack.append(body); element_stack.append(body);
}break; }break;
case NovelNode::Document: break; case NovelNode::Document: break;
@ -665,6 +667,17 @@ bool printer::AstGenerate::visit(std::shared_ptr<const ast_gen::ElementAccess> s
append_tokens(dom_article, article_node); append_tokens(dom_article, article_node);
}break; }break;
case NovelNode::RankDeclaration:{
auto ast_element = element_stack.first();
auto rank_node = std::dynamic_pointer_cast<const example_novel::RankDeclare>(syntax_element->element());
auto dom_rank = doc.createElement(u8"rank");
ast_element.appendChild(dom_rank);
dom_rank.setAttribute(u8"rank", rank_node->rankNumber());
dom_rank.setAttribute(u8"doc-path", rank_node->filePath());
append_tokens(dom_rank, rank_node);
}break;
default: default:
break; break;
} }