node flags seeking helper

This commit is contained in:
Ryan Fleury
2021-04-24 12:56:02 -06:00
parent 5629c0c995
commit 9c0babe0a6
3 changed files with 77 additions and 14 deletions
+25 -1
View File
@@ -2356,6 +2356,14 @@ MD_TagArgFromIndex(MD_Node *node, MD_String8 tag_string, int n)
return MD_ChildFromIndex(tag, n);
}
MD_FUNCTION_IMPL MD_Node *
MD_TagArgFromString(MD_Node *node, MD_String8 tag_string, MD_String8 arg_string)
{
MD_Node *tag = MD_TagFromString(node, tag_string);
MD_Node *arg = MD_ChildFromString(tag, arg_string);
return arg;
}
MD_FUNCTION_IMPL MD_b32
MD_NodeHasTag(MD_Node *node, MD_String8 tag_string)
{
@@ -2412,7 +2420,8 @@ MD_TagCountFromNodeAndString(MD_Node *node, MD_String8 string, MD_MatchFlags fla
return result;
}
MD_FUNCTION_IMPL MD_Node * MD_Deref(MD_Node *node)
MD_FUNCTION_IMPL MD_Node *
MD_Deref(MD_Node *node)
{
MD_Node *result = node;
while(result->kind == MD_NodeKind_Reference)
@@ -2422,6 +2431,21 @@ MD_FUNCTION_IMPL MD_Node * MD_Deref(MD_Node *node)
return result;
}
MD_FUNCTION MD_Node *
MD_SeekNodeWithFlags(MD_Node *start, MD_NodeFlags one_past_last_flags)
{
MD_Node *result = start;
for(MD_EachNode(it, start->next))
{
if(it->flags & one_past_last_flags)
{
break;
}
result = it;
}
return result;
}
MD_FUNCTION_IMPL void
MD_NodeMessage(MD_Node *node, MD_MessageKind kind, MD_String8 str)
{