From f4645e05986813d692d55dce3b7f879365f12caa Mon Sep 17 00:00:00 2001 From: Kyle Isom Date: Fri, 28 Dec 2018 20:46:51 -0800 Subject: [PATCH] Add GEB pq checker. --- geb/02-meaning-and-form/pq.c | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 geb/02-meaning-and-form/pq.c diff --git a/geb/02-meaning-and-form/pq.c b/geb/02-meaning-and-form/pq.c new file mode 100644 index 0000000..77fdf49 --- /dev/null +++ b/geb/02-meaning-and-form/pq.c @@ -0,0 +1,54 @@ +#include + +int +is_theorem_valid(char *candidate) +{ + int x = 0; + int y = 0; + int z = 0; + int l = 0; + char *p = candidate; + + while (*p != 0) { + if (*p == '-') { + switch (l) { + case 0: + x++; + break; + case 1: + y++; + break; + case 2: + z++; + break; + default: + return 0; + } + } + else if (*p == 'p') { + l = 1; + } + else if (*p == 'q') { + l = 2; + } + p++; + } + + if ((x + y) == z) { + return 1; + } + return 0; +} + +int +main(int argc, char *argv[]) +{ + for (int i = 1; i < argc; i++) { + if (is_theorem_valid(argv[i])) { + printf(" VALID: %s\n", argv[i]); + } + else { + printf("INVALID: %s\n", argv[i]); + } + } +}