summaryrefslogtreecommitdiff
path: root/parse.h
blob: c6e76ec5352d97e75e79dfed68d23d57de6b78b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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