[examples] rearrange; add hello_world.mdesk example file

This commit is contained in:
Allen Webster
2021-09-10 15:54:39 -07:00
parent 39b30d9276
commit ba372c135f
7 changed files with 34 additions and 8 deletions
+5 -3
View File
@@ -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
+22
View File
@@ -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 !
}
@@ -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
+3 -1
View File
@@ -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):