From ba372c135fab7bb9ffca62be0f1108b11ee2ea9a Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Fri, 10 Sep 2021 15:54:39 -0700 Subject: [PATCH] [examples] rearrange; add hello_world.mdesk example file --- bin/build_examples.sh | 8 ++++--- examples/mdesk_files/hello_world.mdesk | 22 +++++++++++++++++++ .../node_errors.mdesk | 0 .../datadesk_like_template.c | 0 .../node_errors.c | 0 examples/{ => metaprograms}/parse_check.c | 8 +++---- intro_notes.txt | 4 +++- 7 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 examples/mdesk_files/hello_world.mdesk rename examples/{node_errors => mdesk_files}/node_errors.mdesk (100%) rename examples/{ => metaprograms}/datadesk_like_template.c (100%) rename examples/{node_errors => metaprograms}/node_errors.c (100%) rename examples/{ => metaprograms}/parse_check.c (95%) diff --git a/bin/build_examples.sh b/bin/build_examples.sh index 8cf281e..79cbe0a 100755 --- a/bin/build_examples.sh +++ b/bin/build_examples.sh @@ -9,9 +9,11 @@ cd .. echo "~~~ Build All Exampes ~~~" bin/bld_core.sh show_ctx -bin/bld_core.sh unit datadesk_like examples/datadesk_like_template.c -bin/bld_core.sh unit node_errors examples/node_errors/node_errors.c -bin/bld_core.sh unit parse_check examples/parse_check.c +metasrc="examples/metaprograms" + +bin/bld_core.sh unit datadesk_like $metasrc/datadesk_like_template.c +bin/bld_core.sh unit node_errors $metasrc/node_errors.c +bin/bld_core.sh unit parse_check $metasrc/parse_check.c echo diff --git a/examples/mdesk_files/hello_world.mdesk b/examples/mdesk_files/hello_world.mdesk new file mode 100644 index 0000000..892a4f4 --- /dev/null +++ b/examples/mdesk_files/hello_world.mdesk @@ -0,0 +1,22 @@ +/* the hello world file */ + +hello world! +"hello world!" + +// sets +(hello world!) +[hello world!] +{hello world!} + +// sets with labels +hello: world! +hello: (world!) + +// tags +@exclaim "hello world" +@message +{ + @recipient world + @contents hello + @punctuate ! +} diff --git a/examples/node_errors/node_errors.mdesk b/examples/mdesk_files/node_errors.mdesk similarity index 100% rename from examples/node_errors/node_errors.mdesk rename to examples/mdesk_files/node_errors.mdesk diff --git a/examples/datadesk_like_template.c b/examples/metaprograms/datadesk_like_template.c similarity index 100% rename from examples/datadesk_like_template.c rename to examples/metaprograms/datadesk_like_template.c diff --git a/examples/node_errors/node_errors.c b/examples/metaprograms/node_errors.c similarity index 100% rename from examples/node_errors/node_errors.c rename to examples/metaprograms/node_errors.c diff --git a/examples/parse_check.c b/examples/metaprograms/parse_check.c similarity index 95% rename from examples/parse_check.c rename to examples/metaprograms/parse_check.c index 50f43c0..35c6804 100644 --- a/examples/parse_check.c +++ b/examples/metaprograms/parse_check.c @@ -35,7 +35,7 @@ int main(int argument_count, char **arguments) // parse all files passed to the command line MD_Node *list = MD_MakeList(arena); - for(int i = 1; i < argument_count; i += 1) + for (int i = 1; i < argument_count; i += 1) { // parse the file @@ -66,7 +66,7 @@ int main(int argument_count, char **arguments) // can easily check the severity of a entire parse by looking at the // `max_message_kind` field on the errors from the parse result. Here // only push the parse result onto our list if there were no errors. - if (parse_result.errors.max_message_kind >= MD_MessageKind_Error) + if (parse_result.errors.max_message_kind < MD_MessageKind_Error) { MD_PushNewReference(arena, list, parse_result.node); } @@ -85,9 +85,9 @@ int main(int argument_count, char **arguments) // of roots from the parses we have built. Underneath the surface this // macro automatically resolves the reference at the beginning of each // loop step. - for(MD_EachNodeRef(root, list->first_child)) + for (MD_EachNodeRef(root, list->first_child)) { - for(MD_EachNode(node, root->first_child)) + for (MD_EachNode(node, root->first_child)) { // @notes The Metadesk library likes to use MD_String8List for // functions that build and return big strings. This simplifies diff --git a/intro_notes.txt b/intro_notes.txt index d9adb3b..d8f0c7a 100644 --- a/intro_notes.txt +++ b/intro_notes.txt @@ -18,7 +18,9 @@ Example Programs: [ ] Example multi-threaded parsing Example Metadesk Files: -[ ] Hello world +[x] Hello world +[ ] identifiers, numbers, strings, and symbols +[ ] sets, seperators, labels, and tags Allen's Final Tweak Notes (September 10th 2021):