segmentation.dat
2.18 KB
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
83
84
85
86
87
88
89
[options]
aggl=strict permissive isolated
praet=split composite
[combinations]
#define wsz_interp (interp|kropka|przecinek|dywiz)*
#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
# Segmenty występujące samodzielnie:
#
# domyślny typ segmentu samodzielnego:
moze_interp(samodz)
# Pojedyncze znaki interpunkcyjne
moze_interp(interp|kropka|przecinek|dywiz)
# Liczba zapisana jako ciąg cyfr:
moze_interp( dig>* dig )
### LICZBY RZYMSKIE - reguły - START
# TODO - zrobić z tego makro romandigI>{0,3}
#define one_to_three(rdig) (rdig>{0,2} rdig)
#define rzymskie1 ( (romandigI> romandigX) | (romandigV> one_to_three(romandigI)) | (romandigI> romandigV) | one_to_three(romandigI) )
#define rzymskie10 ( (romandigX> romandigC) | (romandigL> one_to_three(romandigX)) | (romandigX> romandigL) | one_to_three(romandigX) )
#define rzymskie100 ( (romandigC> romandigM) | (romandigD> one_to_three(romandigC)) | (romandigC> romandigD) | one_to_three(romandigC) )
#define rzymskie1_shift ( (romandigI> romandigX>) | (romandigV> romandigI>{0,3}) | (romandigI> romandigV>) | romandigI>{1,3} )
#define rzymskie10_shift ( (romandigX> romandigC>) | (romandigL> romandigX>{0,3}) | (romandigX> romandigL>) | romandigX>{1,3} )
#define rzymskie100_shift ( (romandigC> romandigM>) | (romandigD> romandigC>{0,3}) | (romandigC> romandigD>) | romandigC>{1,3} )
#define rzymskie1000 ( one_to_three(romandigM) )
#define rzymskie1000_shift ( romandigM>{1,3} )
#define liczba_rzymska ((rzymskie1000_shift? rzymskie100_shift? rzymskie10_shift? rzymskie1) | (rzymskie1000_shift? rzymskie100_shift? rzymskie10) | (rzymskie1000_shift? rzymskie100) | rzymskie1000)
# Liczby rzymskie
liczba_rzymska
### LICZBY RZYMSKIE - reguły - KONIEC
[segment types]
interp
kropka
przecinek
dywiz
dig
romandigI
romandigV
romandigX
romandigL
romandigC
romandigD
romandigM
samodz
[lexemes]
kropka . interp
przecinek , interp
dywiz - interp
### LICZBY RZYMSKIE - Leksemy - START
romandigI I romandig
romandigV V romandig
romandigX X romandig
romandigL L romandig
romandigC C romandig
romandigD D romandig
romandigM M romandig
### LICZBY RZYMSKIE - Leksemy - KONIEC
[tags]
dig dig
interp interp
samodz %
[separator chars]
# ,
44
# .
46
# ;
59