mirror of
https://github.com/Ed94/metadesk.git
synced 2026-08-02 12:48:13 +00:00
Parsing errors for unbalanced sets and text literals.
This commit is contained in:
@@ -16,7 +16,7 @@ int main(int argument_count, char **arguments)
|
||||
" f: ([4 + 5]S32),\n"
|
||||
" g: ([FOO + BAR]I32),\n"
|
||||
"}\n\n");
|
||||
MD_Node *code = MD_ParseWholeString(MD_S8Lit("Generated Test Code"), example_code);
|
||||
MD_Node *code = MD_ParseWholeString(MD_S8Lit("Generated Test Code"), example_code).node;
|
||||
|
||||
printf("Source Metadesk Code:\n");
|
||||
printf("%.*s\n\n", MD_StringExpand(example_code));
|
||||
|
||||
@@ -10,7 +10,7 @@ int main(int argument_count, char **arguments)
|
||||
MD_Node *last = MD_NilNode();
|
||||
for(int i = 1; i < argument_count; i += 1)
|
||||
{
|
||||
MD_Node *root = MD_ParseWholeFile(MD_S8CString(arguments[i]));
|
||||
MD_Node *root = MD_ParseWholeFile(MD_S8CString(arguments[i])).node;
|
||||
MD_PushSibling(&first, &last, MD_NilNode(), root);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ int main(int argument_count, char **arguments)
|
||||
MD_Node *last = MD_NilNode();
|
||||
for(int i = 1; i < argument_count; i += 1)
|
||||
{
|
||||
MD_Node *root = MD_ParseWholeFile(MD_S8CString(arguments[i]));
|
||||
MD_Node *root = MD_ParseWholeFile(MD_S8CString(arguments[i])).node;
|
||||
MD_PushSibling(&first, &last, MD_NilNode(), root);
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ int main(int argument_count, char **arguments)
|
||||
MD_Node *last = MD_NilNode();
|
||||
for(int i = 1; i < argument_count; i += 1)
|
||||
{
|
||||
MD_Node *root = MD_ParseWholeFile(MD_S8CString(arguments[i]));
|
||||
MD_Node *root = MD_ParseWholeFile(MD_S8CString(arguments[i])).node;
|
||||
MD_PushSibling(&first, &last, MD_NilNode(), root);
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ int main(int argument_count, char **arguments)
|
||||
SiteInfo site_info = {0};
|
||||
{
|
||||
printf("Parsing site metadata at \"%.*s\"...\n", MD_StringExpand(site_info_path));
|
||||
MD_Node *site_info_file = MD_ParseWholeFile(site_info_path);
|
||||
MD_Node *site_info_file = MD_ParseWholeFile(site_info_path).node;
|
||||
site_info = ParseSiteInfo(site_info_file);
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ int main(int argument_count, char **arguments)
|
||||
MD_String8 path = MD_PushStringF("%.*s/%.*s",
|
||||
MD_StringExpand(folder),
|
||||
MD_StringExpand(file_info.filename));
|
||||
MD_PushSibling(&first_root, &last_root, MD_NilNode(), MD_ParseWholeFile(path));
|
||||
MD_PushSibling(&first_root, &last_root, MD_NilNode(), MD_ParseWholeFile(path).node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{
|
||||
@@ -0,0 +1 @@
|
||||
(
|
||||
@@ -0,0 +1 @@
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
'
|
||||
@@ -0,0 +1,25 @@
|
||||
// Sample code to demonstrate syntax error detection and reporting
|
||||
|
||||
#include "md.h"
|
||||
#include "md.c"
|
||||
|
||||
int main(int argument_count, char **arguments)
|
||||
{
|
||||
for(int i = 1; i < argument_count; i += 1)
|
||||
{
|
||||
MD_ParseResult parse = MD_ParseWholeFile(MD_S8CString(arguments[i]));
|
||||
if(parse.first_error)
|
||||
{
|
||||
for(MD_Error *error = parse.first_error; error; error = error->next)
|
||||
{
|
||||
MD_OutputError(stderr, error);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("No error in file %s\n", arguments[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user