From 28d0c85771ab8bbeab7c70dd776d2213ead61c17 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Thu, 13 Feb 2025 07:41:10 -0500 Subject: [PATCH] preogress on sanity_tests.c, NodeFlags -> MD_NodeFlags (somehow not renamed) --- old_source/md.c | 12 +++---- old_source/md.h | 12 +++---- source/mdesk/mdesk.c | 12 +++---- source/mdesk/mdesk.h | 38 ++++++++++---------- tests/sanity_tests.c | 83 ++++++++++++++++++++++---------------------- 5 files changed, 79 insertions(+), 78 deletions(-) diff --git a/old_source/md.c b/old_source/md.c index d6e842f..8576725 100644 --- a/old_source/md.c +++ b/old_source/md.c @@ -1881,9 +1881,9 @@ MD_StringFromNodeKind(NodeKind kind) } MD_FUNCTION MD_String8List -MD_StringListFromNodeFlags(MD_Arena *arena, NodeFlags flags) +MD_StringListFromNodeFlags(MD_Arena *arena, MD_NodeFlags flags) { - // NOTE(rjf): @maintenance Must be kept in sync with NodeFlags enum. + // NOTE(rjf): @maintenance Must be kept in sync with MD_NodeFlags enum. static char *flag_cstrs[] = { "HasParenLeft", @@ -2375,7 +2375,7 @@ MD_ParseNodeSet(MD_Arena *arena, MD_String8 string, MD_u64 offset, Node *parent, //- rjf: fill data from set opener Token initial_token = MD_TokenFromString(MD_S8Skip(string, offset)); MD_u8 set_opener = 0; - NodeFlags set_opener_flags = 0; + MD_NodeFlags set_opener_flags = 0; MD_b32 close_with_brace = 0; MD_b32 close_with_paren = 0; MD_b32 close_with_separator = 0; @@ -2441,7 +2441,7 @@ MD_ParseNodeSet(MD_Arena *arena, MD_String8 string, MD_u64 offset, Node *parent, MD_u64 parsed_child_count = 0; if(set_opener != 0 || close_with_separator || parse_all) { - NodeFlags next_child_flags = 0; + MD_NodeFlags next_child_flags = 0; for(;off < string.size;) { @@ -2571,7 +2571,7 @@ MD_ParseNodeSet(MD_Arena *arena, MD_String8 string, MD_u64 offset, Node *parent, } //- rjf: check trailing separator - NodeFlags trailing_separator_flags = 0; + MD_NodeFlags trailing_separator_flags = 0; if(!close_with_separator) { off += MD_LexAdvanceFromSkips(MD_S8Skip(string, off), TokenFlagGroup_Irregular); @@ -3157,7 +3157,7 @@ MD_NodeAtIndex(Node *first, int n) } MD_FUNCTION Node * -MD_FirstNodeWithFlags(Node *first, NodeFlags flags) +MD_FirstNodeWithFlags(Node *first, MD_NodeFlags flags) { Node *result = MD_NilNode(); for(Node *n = first; !MD_NodeIsNil(n); n = n->next) diff --git a/old_source/md.h b/old_source/md.h index 934f306..6b87a84 100644 --- a/old_source/md.h +++ b/old_source/md.h @@ -570,7 +570,7 @@ typedef enum NodeKind } NodeKind; -typedef MD_u64 NodeFlags; +typedef MD_u64 MD_NodeFlags; #define NodeFlag_AfterFromBefore(f) ((f) << 1) enum { @@ -629,7 +629,7 @@ struct Node // Node info. NodeKind kind; - NodeFlags flags; + MD_NodeFlags flags; MD_String8 string; MD_String8 raw_string; @@ -729,7 +729,7 @@ typedef struct Token Token; struct Token { MD_TokenKind kind; - NodeFlags node_flags; + MD_NodeFlags node_flags; MD_String8 string; MD_String8 raw_string; }; @@ -852,7 +852,7 @@ struct MD_ExprParseCtx struct { MD_ExprOpr *postfix_set_ops[MD_POSTFIX_SETLIKE_OP_COUNT]; - NodeFlags postfix_set_flags[MD_POSTFIX_SETLIKE_OP_COUNT]; + MD_NodeFlags postfix_set_flags[MD_POSTFIX_SETLIKE_OP_COUNT]; } accel; #undef MD_POSTFIX_SETLIKE_OP_COUNT @@ -1061,7 +1061,7 @@ MD_FUNCTION MD_String8 MD_CStyleHexStringFromU64(MD_Arena *arena, MD_u64 x, MD_b //~ Enum/Flag Strings MD_FUNCTION MD_String8 MD_StringFromNodeKind(NodeKind kind); -MD_FUNCTION MD_String8List MD_StringListFromNodeFlags(MD_Arena *arena, NodeFlags flags); +MD_FUNCTION MD_String8List MD_StringListFromNodeFlags(MD_Arena *arena, MD_NodeFlags flags); //~ Map Table Data Structure @@ -1129,7 +1129,7 @@ MD_FUNCTION Node *MD_PushNewReference(MD_Arena *arena, Node *list, Node *target) MD_FUNCTION Node * MD_FirstNodeWithString(Node *first, MD_String8 string, MD_MatchFlags flags); MD_FUNCTION Node * MD_NodeAtIndex(Node *first, int n); -MD_FUNCTION Node * MD_FirstNodeWithFlags(Node *first, NodeFlags flags); +MD_FUNCTION Node * MD_FirstNodeWithFlags(Node *first, MD_NodeFlags flags); MD_FUNCTION int MD_IndexFromNode(Node *node); MD_FUNCTION Node * MD_RootFromNode(Node *node); MD_FUNCTION Node * MD_ChildFromString(Node *node, MD_String8 child_string, MD_MatchFlags flags); diff --git a/source/mdesk/mdesk.c b/source/mdesk/mdesk.c index eaa577c..31d2630 100644 --- a/source/mdesk/mdesk.c +++ b/source/mdesk/mdesk.c @@ -639,7 +639,7 @@ struct MD_ParseWorkNode MD_Node* parent; MD_Node* first_gathered_tag; MD_Node* last_gathered_tag; - NodeFlags gathered_node_flags; + MD_NodeFlags gathered_node_flags; MD_S32 counted_newlines; }; @@ -734,7 +734,7 @@ md_parse_from_text_tokens__ainfo(MD_AllocatorInfo ainfo, MD_String8 filename, MD MD_B32 reserved_token = token->flags & MD_TokenFlag_Reserved; - NodeFlags separator = ( + MD_NodeFlags separator = ( MD_NodeFlag_IsBeforeComma *!! md_str8_match(md_token_string, md_str8_lit(","), 0) | MD_NodeFlag_IsBeforeSemicolon *!! md_str8_match(md_token_string, md_str8_lit(";"), 0) ); @@ -819,7 +819,7 @@ md_parse_from_text_tokens__ainfo(MD_AllocatorInfo ainfo, MD_String8 filename, MD { MD_String8 md_node_string_raw = md_token_string; MD_String8 md_node_string = content_string_from_token_flags_str8(token->flags, md_node_string_raw); - NodeFlags flags = md_node_flags_from_token_flags(token->flags)|work_top->gathered_node_flags; + MD_NodeFlags flags = md_node_flags_from_token_flags(token->flags)|work_top->gathered_node_flags; work_top->gathered_node_flags = 0; @@ -837,7 +837,7 @@ md_parse_from_text_tokens__ainfo(MD_AllocatorInfo ainfo, MD_String8 filename, MD goto end_consume; } - NodeFlags opening_delimiter = ( + MD_NodeFlags opening_delimiter = ( MD_NodeFlag_HasBraceLeft *!! md_str8_match(md_token_string, md_str8_lit("{"), 0) | MD_NodeFlag_HasBracketLeft *!! md_str8_match(md_token_string, md_str8_lit("["), 0) | MD_NodeFlag_HasParenLeft *!! md_str8_match(md_token_string, md_str8_lit("("), 0) @@ -847,7 +847,7 @@ md_parse_from_text_tokens__ainfo(MD_AllocatorInfo ainfo, MD_String8 filename, MD //- rjf: [main] {s, [s, and (s -> create new main if (work_top->kind == ParseWorkKind_Main && found_opening_delimiter) { - NodeFlags + MD_NodeFlags flags = md_node_flags_from_token_flags(token->flags) | work_top->gathered_node_flags; flags |= opening_delimiter; @@ -923,7 +923,7 @@ md_parse_from_text_tokens__ainfo(MD_AllocatorInfo ainfo, MD_String8 filename, MD goto end_consume; } - NodeFlags closing_delimiter = ( + MD_NodeFlags closing_delimiter = ( MD_NodeFlag_HasBraceRight *!! md_str8_match(md_token_string, md_str8_lit("}"), 0) | MD_NodeFlag_HasBracketRight *!! md_str8_match(md_token_string, md_str8_lit("]"), 0) | MD_NodeFlag_HasParenRight *!! md_str8_match(md_token_string, md_str8_lit(")"), 0) diff --git a/source/mdesk/mdesk.h b/source/mdesk/mdesk.h index 205ca21..5e17951 100644 --- a/source/mdesk/mdesk.h +++ b/source/mdesk/mdesk.h @@ -128,7 +128,7 @@ enum MD_NodeKind MD_NodeKind_COUNT }; -typedef MD_U32 NodeFlags; +typedef MD_U32 MD_NodeFlags; enum { MD_NodeFlag_MaskSetDelimiters = (0x3F << 0), @@ -175,7 +175,7 @@ struct MD_Node // rjf: node info MD_NodeKind kind; - NodeFlags flags; + MD_NodeFlags flags; MD_String8 string; MD_String8 raw_string; @@ -316,8 +316,8 @@ MD_API MD_String8 content_string_from_token_flags_str8(MD_TokenFlags flags, MD_S MD_String8List md_string_list_from_token_flags__arena(MD_Arena* arena, MD_TokenFlags flags); MD_API MD_String8List md_string_list_from_token_flags__ainfo(MD_AllocatorInfo ainfo, MD_TokenFlags flags); -MD_API void md_token_chunk_list_push__arena (MD_Arena* arena, MD_TokenChunkList* list, MD_U64 cap, MD_Token token); -MD_API void md_token_chunk_list_push__ainfo (MD_AllocatorInfo ainfo, MD_TokenChunkList* list, MD_U64 cap, MD_Token token); +MD_API void md_token_chunk_list_push__arena (MD_Arena* arena, MD_TokenChunkList* list, MD_U64 cap, MD_Token token); +MD_API void md_token_chunk_list_push__ainfo (MD_AllocatorInfo ainfo, MD_TokenChunkList* list, MD_U64 cap, MD_Token token); MD_API MD_TokenArray md_token_array_from_chunk_list__arena (MD_Arena* arena, MD_TokenChunkList* chunks); MD_API MD_TokenArray md_token_array_from_chunk_list__ainfo (MD_AllocatorInfo ainfo, MD_TokenChunkList* chunks); @@ -347,10 +347,10 @@ md_token_match(MD_Token a, MD_Token b) { //- rjf: flag conversions -inline NodeFlags +inline MD_NodeFlags md_node_flags_from_token_flags(MD_TokenFlags flags) { - NodeFlags result = 0; + MD_NodeFlags result = 0; result |= MD_NodeFlag_Identifier *!! (flags & MD_TokenFlag_Identifier ); result |= MD_NodeFlag_Numeric *!! (flags & MD_TokenFlag_Numeric ); result |= MD_NodeFlag_StringLiteral *!! (flags & MD_TokenFlag_StringLiteral ); @@ -377,21 +377,21 @@ MD_API MD_NodeRec md_node_rec_depth_first(MD_Node* node, MD_Node* subtree_root, //- rjf: tree building -MD_Node* md_push_node__arena(MD_Arena* arena, MD_NodeKind kind, NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset); -MD_Node* md_push_node__ainfo(MD_AllocatorInfo ainfo, MD_NodeKind kind, NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset); +MD_Node* md_push_node__arena(MD_Arena* arena, MD_NodeKind kind, MD_NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset); +MD_Node* md_push_node__ainfo(MD_AllocatorInfo ainfo, MD_NodeKind kind, MD_NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset); #define md_push_node(allocator, kind, flags, string, raw_string, src_offset) _Generic(allocator, MD_Arena*: md_push_node__arena, MD_AllocatorInfo: md_push_node__ainfo, default: md_assert_generic_sel_fail) md_generic_call(allocator, kind, flags, string, raw_string, src_offset) -void md_node_insert_tag (MD_Node* parent, MD_Node* prev_child, MD_Node* node); -void md_node_insert_child(MD_Node* parent, MD_Node* prev_child, MD_Node* node); -void md_node_push_child (MD_Node* parent, MD_Node* node); -void md_node_push_tag (MD_Node* parent, MD_Node* node); -void md_unhook (MD_Node* node); +void md_node_insert_tag (MD_Node* parent, MD_Node* prev_child, MD_Node* node); +void md_node_insert_child(MD_Node* parent, MD_Node* prev_child, MD_Node* node); +void md_node_push_child (MD_Node* parent, MD_Node* node); +void md_node_push_tag (MD_Node* parent, MD_Node* node); +void md_unhook (MD_Node* node); -inline MD_Node* md_push_node__arena(MD_Arena* arena, MD_NodeKind kind, NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset) { md_push_node__ainfo(md_arena_allocator(arena), kind, flags, string, raw_string, src_offset); } +inline MD_Node* md_push_node__arena(MD_Arena* arena, MD_NodeKind kind, MD_NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset) { md_push_node__ainfo(md_arena_allocator(arena), kind, flags, string, raw_string, src_offset); } inline MD_Node* -md_push_node__ainfo(MD_AllocatorInfo ainfo, MD_NodeKind kind, NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset) { +md_push_node__ainfo(MD_AllocatorInfo ainfo, MD_NodeKind kind, MD_NodeFlags flags, MD_String8 string, MD_String8 raw_string, MD_U64 src_offset) { MD_Node* node = md_alloc_array(ainfo, MD_Node, 1); node->first = node->last = node->parent = node->next = node->prev = node->first_tag = node->last_tag = md_nil_node(); node->kind = kind; @@ -432,7 +432,7 @@ md_node_push_tag(MD_Node* parent, MD_Node* node) { MD_Node* md_node_from_chain_string(MD_Node* first, MD_Node* opl, MD_String8 string, MD_StringMatchFlags flags); MD_Node* md_node_from_chain_index (MD_Node* first, MD_Node* opl, MD_U64 index); -MD_Node* md_node_from_chain_flags (MD_Node* first, MD_Node* opl, NodeFlags flags); +MD_Node* md_node_from_chain_flags (MD_Node* first, MD_Node* opl, MD_NodeFlags flags); MD_U64 md_index_from_node (MD_Node* node); MD_Node* md_root_from_node (MD_Node* node); MD_Node* md_child_from_string (MD_Node* node, MD_String8 child_string, MD_StringMatchFlags flags); @@ -482,7 +482,7 @@ md_node_from_chain_index(MD_Node* first, MD_Node* opl, MD_U64 index) { } inline MD_Node* -md_node_from_chain_flags(MD_Node* first, MD_Node* opl, NodeFlags flags) { +md_node_from_chain_flags(MD_Node* first, MD_Node* opl, MD_NodeFlags flags) { MD_Node* result = md_nil_node(); for (MD_Node* n = first; !md_node_is_nil(n) && n != opl; n = n->next) { @@ -514,8 +514,8 @@ md_root_from_node(MD_Node* node) { inline MD_Node* md_child_from_string(MD_Node* node, MD_String8 child_string, MD_StringMatchFlags flags) { return md_node_from_chain_string(node->first, md_nil_node(), child_string, flags); } inline MD_Node* md_tag_from_string (MD_Node* node, MD_String8 tag_string, MD_StringMatchFlags flags) { return md_node_from_chain_string(node->first_tag, md_nil_node(), tag_string, flags); } -inline MD_Node* md_child_from_index (MD_Node* node, MD_U64 index) { return md_node_from_chain_index (node->first, md_nil_node(), index); } -inline MD_Node* md_tag_from_index (MD_Node* node, MD_U64 index) { return md_node_from_chain_index (node->first_tag, md_nil_node(), index); } +inline MD_Node* md_child_from_index (MD_Node* node, MD_U64 index) { return md_node_from_chain_index (node->first, md_nil_node(), index); } +inline MD_Node* md_tag_from_index (MD_Node* node, MD_U64 index) { return md_node_from_chain_index (node->first_tag, md_nil_node(), index); } inline MD_Node* md_tag_arg_from_index(MD_Node* node, MD_String8 tag_string, MD_StringMatchFlags flags, MD_U64 index) { diff --git a/tests/sanity_tests.c b/tests/sanity_tests.c index c62b8e1..7cb91ce 100644 --- a/tests/sanity_tests.c +++ b/tests/sanity_tests.c @@ -63,9 +63,9 @@ end_test(void) #define test(name) for(int _i_ = (begin_test(name), 0); !_i_; _i_ += 1, end_test()) static MD_Node* -make_test_node(MD_NodeKind kind, MD_String8 string) +make_test_node(MD_NodeKind kind, MD_NodeFlags flags, MD_String8 string) { - return MD_MakeNode(arena, kind, string, string, 0); + return md_push_node(arena, kind, flags, string, string, 0); } static MD_B32 @@ -79,7 +79,7 @@ match_parsed_with_node(MD_Arena* arena, MD_String8 string, MD_Node* tree) static MD_B32 token_match(MD_String8 text, MD_Token token, MD_String8 string, MD_TokenFlags flags) { - return md_str8_match(string, md_str8_substr(text, token.range), 0) &&& token.flags == flags + return md_str8_match(string, md_str8_substr(text, token.range), 0) &&& token.flags == flags; // return MD_S8Match(string, token.string, 0) && token.kind == kind; } @@ -113,37 +113,37 @@ int main(void) test("Empty Sets") { - test_result(matched_parsed_with_node(md_str8_lit("{}"), make_test_node(MD_NodeKind_Main, md_str8_lit("")))); - test_result(matched_parsed_with_node(md_str8_lit("()"), make_test_node(MD_NodeKind_Main, md_str8_lit("")))); - test_result(matched_parsed_with_node(md_str8_lit("[]"), make_test_node(MD_NodeKind_Main, md_str8_lit("")))); - test_result(matched_parsed_with_node(md_str8_lit("[)"), make_test_node(MD_NodeKind_Main, md_str8_lit("")))); - test_result(matched_parsed_with_node(md_str8_lit("(]"), make_test_node(MD_NodeKind_Main, md_str8_lit("")))); + test_result(matched_parsed_with_node(md_str8_lit("{}"), make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")))); + test_result(matched_parsed_with_node(md_str8_lit("()"), make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")))); + test_result(matched_parsed_with_node(md_str8_lit("[]"), make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")))); + test_result(matched_parsed_with_node(md_str8_lit("[)"), make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")))); + test_result(matched_parsed_with_node(md_str8_lit("(]"), make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")))); } test("Simple Unnamed Sets") { { MD_String8 string = md_str8_lit("{a, b, c}"); - MD_Node* tree = make_test_node(MD_NodeKind_Main, md_str8_lit("")); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("a"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("b"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("c"))); + MD_Node* tree = make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("a"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("b"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("c"))); test_result(matched_parsed_with_node(string, tree)); } { MD_String8 string = md_str8_lit("(1 2 3 4 5)"); - MD_Node *tree = make_test_node(MD_NodeKind_Main, md_str8_lit("")); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("1"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("2"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("3"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("4"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("5"))); + MD_Node* tree = make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("1"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("2"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("3"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("4"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("5"))); test_result(matched_parsed_with_node(string, tree)); } { MD_String8 string = md_str8_lit("{a}"); - MD_Node* tree = make_test_node(MD_NodeKind_Main, md_str8_lit("")); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("a"))); + MD_Node* tree = make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("a"))); test_result(matched_parsed_with_node(string, tree)); } } @@ -151,10 +151,10 @@ int main(void) test("Simple Named Sets") { MD_String8 string = md_str8_lit("simple_set: {a, b, c}"); - MD_Node* tree = make_test_node(MD_NodeKind_Main, md_str8_lit("simple_set")); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("a"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("b"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("c"))); + MD_Node* tree = make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("simple_set")); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("a"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("b"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("c"))); test_result(matched_parsed_with_node(string, tree)); } @@ -162,13 +162,13 @@ int main(void) { { MD_String8 string = md_str8_lit("{a b:{1 2 3} c}"); - MD_Node* tree = make_test_node(MD_NodeKind_Main, md_str8_lit("")); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("a"))); + MD_Node* tree = make_test_node(MD_NodeKind_Main, 0, md_str8_lit("")); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("a"))); { - MD_Node* sub = make_test_node(MD_NodeKind_Main, md_str8_lit("b")); - md_node_push_child(sub, make_test_node(MD_NodeKind_Main, md_str8_lit("1"))); - md_node_push_child(sub, make_test_node(MD_NodeKind_Main, md_str8_lit("2"))); - md_node_push_child(sub, make_test_node(MD_NodeKind_Main, md_str8_lit("3"))); + MD_Node* sub = make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("b")); + md_node_push_child(sub, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("1"))); + md_node_push_child(sub, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("2"))); + md_node_push_child(sub, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("3"))); md_node_push_child(tree, sub); } MD_PushChild(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("c"))); @@ -177,30 +177,31 @@ int main(void) { MD_String8 string = md_str8_lit("foo: { (size: u64) -> *void }"); - MD_Node* tree = make_test_node(MD_NodeKind_Main, md_str8_lit("foo")); - MD_Node* params = make_test_node(MD_NodeKind_Main, md_str8_lit("")); - MD_Node* size = make_test_node(MD_NodeKind_Main, md_str8_lit("size")); - md_node_push_child(size, make_test_node(MD_NodeKind_Main, md_str8_lit("u64"))); + MD_Node* tree = make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("foo")); + MD_Node* params = make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("")); + MD_Node* size = make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("size")); + md_node_push_child(size, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier md_str8_lit("u64"))); md_node_push_child(params, size); md_node_push_child(tree, params); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("->"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("*"))); - md_node_push_child(tree, make_test_node(MD_NodeKind_Main, md_str8_lit("void"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("->"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("*"))); + md_node_push_child(tree, make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("void"))); test_result(matched_parsed_with_node(string, tree)); } } test("Non-Sets") { - test_result(matched_parsed_with_node(md_str8_lit("foo"), make_test_node(MD_NodeKind_Main, md_str8_lit("foo")))); - test_result(matched_parsed_with_node(md_str8_lit("123"), make_test_node(MD_NodeKind_Main, md_str8_lit("123")))); - test_result(matched_parsed_with_node(md_str8_lit("+"), make_test_node(MD_NodeKind_Main, md_str8_lit("+")))); + test_result(matched_parsed_with_node(md_str8_lit("foo"), make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("foo")))); + test_result(matched_parsed_with_node(md_str8_lit("123"), make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("123")))); + test_result(matched_parsed_with_node(md_str8_lit("+"), make_test_node(MD_NodeKind_Main, MD_NodeFlag_Identifier, md_str8_lit("+")))); } test("Set Border Flags") { { - MD_ParseResult parse = MD_ParseOneNode(arena, md_str8_lit("(0, 100)"), 0); + MD_TokenizeResult lexed = md_token_array_from_chunk_list() + MD_ParseResult parse = md_parse MD_ParseOneNode(arena, md_str8_lit("(0, 100)"), 0); test_result(parse.root->flags & MD_NodeFlag_HasParenLeft && parse.root->flags & MD_NodeFlag_HasParenRight); }