Derleyici Tasarımı
Yüklüyor...
Arıyor...
Eşleşme Yok
include
rdesc-parser.h
Bu dosyanın dokümantasyonuna git.
1
6
#ifndef RDESC_PARSER_H
7
#define RDESC_PARSER_H
8
9
10
#include <stdio.h>
11
13
#include <rdesc/grammar.h>
14
16
/* toplam nonterminal sayısı */
17
#define NT_COUNT 6
19
/* bir nonterminal'deki maksimum alternatif sayısı */
20
#define MAX_ALT_COUNT 2
22
/* bir alternatifdeki maksimum sembol sayısı */
23
#define MAX_ALT_SIZE 3
24
26
enum
tk_id
{
27
TK_MINUS,
28
TK_STAR,
29
TK_SEMI,
30
/* TK_INT'i tokenizer tanımlıyor. */
31
};
32
34
enum
nt_id
{
35
NT_STMT,
36
NT_EXPR, NT_EXPR_REST,
37
NT_TERM, NT_TERM_REST,
38
NT_ATOM,
39
};
40
42
/* Gramer tanımını tutacak struct'ı declare ediyoruz.*/
43
extern
struct
rdesc_grammar_symbol
production_rules
44
[
NT_COUNT
][
MAX_ALT_COUNT
+ 1][
MAX_ALT_SIZE
+ 1];
46
47
48
void
node_printer
(FILE *out,
struct
rdesc_node node);
49
50
51
#endif
production_rules
struct rdesc_grammar_symbol production_rules[NT_COUNT][MAX_ALT_COUNT+1][MAX_ALT_SIZE+1]
MAX_ALT_SIZE
#define MAX_ALT_SIZE
Definition
rdesc-parser.h:23
tk_id
tk_id
Token ID.
Definition
rdesc-parser.h:26
NT_COUNT
#define NT_COUNT
[Gramer declaration]
Definition
rdesc-parser.h:17
MAX_ALT_COUNT
#define MAX_ALT_COUNT
Definition
rdesc-parser.h:20
node_printer
void node_printer(FILE *out, struct rdesc_node node)
[Gramer declaration]
nt_id
nt_id
Nonterminal ID.
Definition
rdesc-parser.h:34
Oluşturan
1.9.8