File: spell.h

package info (click to toggle)
mmorph 2.3.4.2-9
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 920 kB
  • ctags: 904
  • sloc: ansic: 4,992; yacc: 1,215; lex: 417; makefile: 295; sh: 48; sed: 33; csh: 26
file content (59 lines) | stat: -rw-r--r-- 1,686 bytes parent folder | download | duplicates (8)
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
/*
    mmorph, MULTEXT morphology tool
    Version 2.3, October 1995
    Copyright (c) 1994,1995 ISSCO/SUISSETRA, Geneva, Switzerland
    Dominique Petitpierre, <petitp@divsun.unige.ch>
*/
#ifndef spell_h
#define spell_h

#define LETTER_MAX	    ((t_letter) ((1L << BITS(t_letter)) -1))
#define LETTER_ANY	    LETTER_MAX
#define LETTER_MAP_SIZE	    (1L << BITS(char))
#define NUL_LETTER	    ((t_letter) 0)

#define SURFACE_FLAG	(1L)
#define LEXICAL_FLAG	(1L << 1)

/* if all lexical focus width are 1, then the stack size is equal to
   the lexical word length; so a good rule of the thumb is:
*/
#define POS_STACK_SIZE	CONCAT_SIZE

typedef struct {
    int         lexical_pos;
    int         surface_pos;
    int         spell_index;
}           s_pos_stack;

extern t_letter *surface_letter_map;
extern t_letter *lexical_letter_map;
extern unsigned char *letter_to_char_map;
extern t_letter letter_any[];
extern t_letter empty_string[];
extern t_letter *morpheme_boundary;
extern t_letter *word_boundary;
extern s_pair *morpheme_boundary_pair;
extern s_pair *word_boundary_pair;
extern t_letter first_lexical_letter;

extern t_letter *current_letter_map;
extern e_symbol_kind current_letter_kind;
extern int  alphabet_size;
extern int  lexical_alphabet_size;
extern t_card max_spell_length;
extern t_card max_left_context_length;
extern t_card max_rest_length;

extern void add_pair();
extern void add_explicit_pair();
extern t_boolean map_letter();
extern t_letter *find_letter();
extern s_pair *new_pair();
extern int  lexical_width();
extern void fill_applicability_map();
extern void prepare_spell();
extern void do_spell();
extern void is_pair_concrete();

#endif	/* spell_h */