blob: 06a305ec06ed9896e8189780c4d44ddac2dc2ec6 (
plain) (
blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
#include "include/test.h"
#include "../src/include/pp.h"
#include "../src/include/lexer.h"
#include "../src/include/tree.h"
#include "../src/include/parser.h"
unsigned int TESTS_RUN = 0, TESTS_PASSED = 0;
int main(int argc, char** argv) {
tree_t* tree_0;
pp_t* pp;
lexer_t* lexer;
parser_t* parser;
tree_0 = tree_init(TREE_TYPE_BLOCK);
tree_t* treep_00 = tree_0->data.block.val = tree_init(TREE_TYPE_EXPR);
tree_t* treep_01 = treep_00->data.expr.val = tree_init(TREE_TYPE_DEF);
tree_t* treep_02 = treep_01->data.def.tag = tree_init(TREE_TYPE_TAG);
treep_02->data.tag.val = "int";
tree_t* treep_03 = treep_02->data.tag.nxt = tree_init(TREE_TYPE_TAG);
treep_03->data.tag.val = "f";
treep_03->data.tag.nxt = NULL;
treep_01->data.def.arg = NULL;
tree_t* treep_04 = treep_01->data.def.val = tree_init(TREE_TYPE_EXPR);
tree_t* treep_05 = treep_04->data.expr.val = tree_init(TREE_TYPE_BLOCK);
tree_t* treep_06 = treep_05->data.block.val = tree_init(TREE_TYPE_EXPR);
tree_t* treep_07 = treep_06->data.expr.val = tree_init(TREE_TYPE_CALL);
treep_07->data.call.target = "a";
tree_t* treep_08 = treep_07->data.call.arg = tree_init(TREE_TYPE_CARG);
tree_t* treep_09 = treep_08->data.carg.val = tree_init(TREE_TYPE_EXPR);
tree_t* treep_10 = treep_09->data.expr.val = tree_init(TREE_TYPE_CALL);
treep_10->data.call.target = "b";
treep_10->data.call.arg = NULL;
treep_08->data.carg.nxt = NULL;
tree_t* treep_11 = treep_05->data.block.nxt = tree_init(TREE_TYPE_BLOCK);
tree_t* treep_12 = treep_11->data.block.val = tree_init(TREE_TYPE_EXPR);
tree_t* treep_13 = treep_12->data.expr.val = tree_init(TREE_TYPE_CALL);
treep_13->data.call.target = "c";
tree_t* treep_14 = treep_13->data.call.arg = tree_init(TREE_TYPE_CARG);
tree_t* treep_15 = treep_14->data.carg.val = tree_init(TREE_TYPE_EXPR);
tree_t* treep_16 = treep_15->data.expr.val = tree_init(TREE_TYPE_CALL);
treep_16->data.call.target = "d";
treep_16->data.call.arg = NULL;
treep_14->data.carg.nxt = NULL;
treep_11->data.block.nxt = NULL;
tree_0->data.block.nxt = NULL;
/*
[block]
*/
char src_0[] = "" \
":int:f = {" \
"a.b;" \
"c.d"
"}";
pp = pp_init(src_0);
pp_run(pp);
lexer = lexer_init(pp->psrc);
lexer_run(lexer);
parser = parser_init(lexer->tokenl);
parser_run(parser);
ASSERT(tree_cmp(tree_0, parser->tree));
pp_destroy(pp);
parser_destroy(parser);
lexer_destroy(lexer);
TEST_REPORT;
return 0;
}
|