-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnominal.h
82 lines (67 loc) · 1.47 KB
/
nominal.h
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
80
81
82
#ifndef _NOMINAL_H_
#define _NOMINAL_H_
typedef int decl_type;
typedef int genus_type;
typedef struct
{
int num;
int casus;
} noun_det;
typedef struct
{
int gradus;
genus_type genus;
int num;
int casus;
} adj_det;
typedef struct
{
int gradus;
} adv_det;
#define DECL_INFO 7
#define DECL1 1
#define DECL2 2
#define DECL2_0 8
#define DECL2_ER 16
#define DECL3 3
#define DECL3_I1 8 /* Csak plur. gen-ban. */
#define DECL3_I2 16 /* Sing. abl-ban is. */
#define DECL3_I (DECL3_I1 | DECL3_I2)
#define DECL4 4
#define DECL5 5
#define END_INFO 7
#define END3 1
#define END3_0 8
#define END3_ER 16
#define DECL3_END3 2
#define DECL3_END3_ER 8
#define DECL3_END2 3
#define DECL3_END1 4
#define DECL3_NOT_I 8
#define COMP_IRREG 32
#define SUPER_IRREG 1024
#define SUPER_IRREG_L 64
#define ADV_IRREG 128
#define NO_COMP 256
#define NO_SUPER 512
#define MASC 0
#define FEMI 1
#define NEUT 2
#define ADV 10
#define SING 0
#define PLUR 1
#define NOM 0
#define ACC 1
#define GEN 2
#define DAT 3
#define ABL 4
#define POSIT 0
#define COMPAR 1
#define SUPERLAT 2
noun_det **noun_match(char *sword, char *nroot, decl_type typ, genus_type gen,
...);
adj_det **adj_match(char *aword, char *aroot, decl_type typ, ...);
char *noun_form(char *nroot, decl_type typ, genus_type genus, ...);
char *adj_form(char *aroot, decl_type typ, ...);
adv_det *adv_match(char *aword, char *aroot, decl_type typ);
#endif