From c3720d0951b756ccfab2b2dcedddcb61702196b1 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 30 Apr 2023 00:47:58 -0400 Subject: [PATCH] step: save progress with mpc integration --- mumble | Bin 99460 -> 99668 bytes src/mumble.c | 23 +++++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/mumble b/mumble index d8dc66c8822b9f083d0f5ff0468c86735063e636..ef4774aefe47ddfac9cfac79a0f440049cac35e4 100755 GIT binary patch delta 27555 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 delta 27519 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 diff --git a/src/mumble.c b/src/mumble.c index 09aaf78..3975f59 100644 --- a/src/mumble.c +++ b/src/mumble.c @@ -7,14 +7,14 @@ int main(int argc, char** argv) { - puts("Mumble version 0.0.1\n"); + puts("Mumble version 0.0.2\n"); puts("Press Ctrl+C/Ctrl+D to exit\n"); /* Create Some Parsers */ mpc_parser_t* Number = mpc_new("number"); mpc_parser_t* Operator = mpc_new("operator"); mpc_parser_t* Expr = mpc_new("expr"); - mpc_parser_t* Lispy = mpc_new("lispy"); + mpc_parser_t* Mumble = mpc_new("mumble"); /* Define them with the following Language */ mpca_lang(MPCA_LANG_DEFAULT, @@ -22,9 +22,9 @@ int main(int argc, char** argv) number : /-?[0-9]+/ ; \ operator : '+' | '-' | '*' | '/' ; \ expr : | '(' + ')' ; \ - lispy : /^/ + /$/ ; \ + mumble : /^/ + /$/ ; \ ", - Number, Operator, Expr, Lispy); + Number, Operator, Expr, Mumble); int loop = 1; while (loop) { @@ -34,7 +34,18 @@ int main(int argc, char** argv) loop = 0; puts(""); } else { - printf("Did you say \"%s\"?\n", input); + /* Attempt to Parse the user Input */ + mpc_result_t r; + if (mpc_parse("", input, Mumble, &r)) { + /* On Success Print the AST */ + mpc_ast_print(r.output); + mpc_ast_delete(r.output); + } else { + /* Otherwise Print the Error */ + mpc_err_print(r.error); + mpc_err_delete(r.error); + } + // printf("Did you say \"%s\"?\n", input); add_history(input); // can't add if input is NULL } @@ -42,7 +53,7 @@ int main(int argc, char** argv) } /* Undefine and Delete our Parsers */ - mpc_cleanup(4, Number, Operator, Expr, Lispy); + mpc_cleanup(4, Number, Operator, Expr, Mumble); return 0; }