blob: a02a99eaff14af93fb9161e28f84ad64867dc81f (
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 GRAMMAR_H
#define GRAMMAR_H
extern struct production {
symbol LHS;
symbol *RHS;
size_t nRHS;
} *grammar;
extern size_t total_productions;
void grammar_print()
{
for(size_t i = 0; i < total_productions; i++) {
printf("%d --> ", grammar[i].LHS);
for(size_t j = 0; j < grammar[i].nRHS; j++)
printf("%d ", grammar[i].RHS[j]);
printf("\n");
}
}
void grammar_print_cstyle()
{
for(size_t i = 0; i < total_productions; i++) {
printf("{%d, (symbol[]){", grammar[i].LHS);
for(size_t j = 0; j < grammar[i].nRHS; j++)
printf("%d, ", grammar[i].RHS[j]);
printf("}, %zu},\n", grammar[i].nRHS);
}
}
#endif
|