summaryrefslogtreecommitdiff
path: root/src/parse.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse.h')
-rw-r--r--src/parse.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/parse.h b/src/parse.h
new file mode 100644
index 0000000..c6e76ec
--- /dev/null
+++ b/src/parse.h
@@ -0,0 +1,32 @@
+#ifndef PARSE
+#define PARSE
+#include "proposition.h"
+typedef struct Scope {
+ int id;
+ int depth;
+ struct Scope* parent;
+} scope_t;
+scope_t init_scope(int id, int depth, scope_t* parent);
+typedef struct Line {
+ scope_t scope;
+ prop_t proposition;
+ just_t justification;
+} line_t;
+line_t init_line(scope_t scope, prop_t proposition, just_t justification);
+typedef struct LineSet {
+ line_t* lines;
+ int count;
+} lineSet_t;
+lineSet_t init_lineset(line_t* lines, int count);
+int count_lines(char* content);
+lineSet_t parse_lines(char* content, int lineCount);
+line_t parse_line(char* content);
+prop_t parse_proposition(tokenSet_t tokenSet, int* seek, char isNegative);
+just_t parse_justification(tokenSet_t tokenSet);
+/* proposition equal */
+char peq(prop_t prop1, prop_t prop2);
+/* scope is lesser than in depth and ID */
+char slt(scope_t scope1, scope_t scope2);
+/* scope is equal to or lesser than in depth and ID */
+char seqlt(scope_t scope1, scope_t scope2);
+#endif