register.mx raw
1 package transdb
2
3 import (
4 "git.mleku.dev/iskra"
5 "git.smesh.lol/iskradb/lattice"
6 )
7
8 // MorphState constants — re-exported from iskra.
9 const (
10 MorphPresAffPlain = iskra.MorphPresAffPlain
11 MorphPresAffPolite = iskra.MorphPresAffPolite
12 MorphPresNegPlain = iskra.MorphPresNegPlain
13 MorphPresNegPolite = iskra.MorphPresNegPolite
14 MorphPresProgPlain = iskra.MorphPresProgPlain
15 MorphPresProgPolite = iskra.MorphPresProgPolite
16 MorphPresProgNeg = iskra.MorphPresProgNeg
17 MorphPastAffPlain = iskra.MorphPastAffPlain
18 MorphPastAffPolite = iskra.MorphPastAffPolite
19 MorphPastNegPlain = iskra.MorphPastNegPlain
20 MorphPastNegPolite = iskra.MorphPastNegPolite
21 MorphPastProgPlain = iskra.MorphPastProgPlain
22 MorphPastProgPolite = iskra.MorphPastProgPolite
23 MorphPastProgNeg = iskra.MorphPastProgNeg
24 MorphPresReported = iskra.MorphPresReported
25 MorphPastReported = iskra.MorphPastReported
26
27 MaskJA = iskra.MaskJA
28 MaskEN = iskra.MaskEN
29 MaskBG = iskra.MaskBG
30 )
31
32 // Register/domain/filter constants — re-exported from iskra.
33 const (
34 RegNeutral = iskra.RegNeutral
35 RegFormal = iskra.RegFormal
36 RegInformal = iskra.RegInformal
37 RegVulgar = iskra.RegVulgar
38
39 DomGeneral = iskra.DomGeneral
40 DomTechnical = iskra.DomTechnical
41 DomMedical = iskra.DomMedical
42 DomLegal = iskra.DomLegal
43
44 SpecNormal = iskra.SpecNormal
45 SpecHonorific = iskra.SpecHonorific
46 SpecArchaic = SpecNormal
47 SpecHumble = RegFormal
48
49 FilterNone = iskra.FilterNone
50 FilterFormal = iskra.FilterFormal
51 FilterNeutral = iskra.FilterNeutral
52 FilterCasual = iskra.FilterCasual
53 )
54
55 // Encoding protocol functions delegated to iskra.
56
57 func SetMorphState(rec *lattice.Record, state uint8) { iskra.SetMorphState(rec, state) }
58 func GetMorphState(rec *lattice.Record) uint8 { return iskra.GetMorphState(rec) }
59
60 func SetSemanticInDataFile(rec *lattice.Record, flags uint64) {
61 iskra.SetSemanticInDataFile(rec, flags)
62 }
63 func GetSemanticFromDataFile(rec *lattice.Record) uint64 {
64 return iskra.GetSemanticFromDataFile(rec)
65 }
66
67 func PackBranch(pos uint8, reg, dom, spec uint8) uint8 { return iskra.PackBranch(pos, reg, dom, spec) }
68 func POSFromBranch(b uint8) uint8 { return iskra.POSFromBranch(b) }
69 func RegFromBranch(b uint8) uint8 { return iskra.RegFromBranch(b) }
70 func DomFromBranch(b uint8) uint8 { return iskra.DomFromBranch(b) }
71 func SpecFromBranch(b uint8) uint8 { return iskra.SpecFromBranch(b) }
72 func BranchWeirdness(b uint8) uint32 { return iskra.BranchWeirdness(b) }
73 func MatchesFilter(b uint8, filter uint8) bool { return iskra.MatchesFilter(b, filter) }
74
75 // MiscToRegSpec maps JMdict <misc> entity names to (register, special) values.
76 func MiscToRegSpec(misc string) (reg, spec uint8) {
77 switch misc {
78 case "col", "fam":
79 return RegInformal, SpecNormal
80 case "sl":
81 return RegInformal, SpecNormal
82 case "vulg", "derog":
83 return RegVulgar, SpecNormal
84 case "pol", "litf":
85 return RegFormal, SpecNormal
86 case "hon":
87 return RegFormal, SpecHonorific
88 case "hum":
89 return RegFormal, SpecHumble
90 case "arch":
91 return RegNeutral, SpecArchaic
92 }
93 return RegNeutral, SpecNormal
94 }
95
96 // FieldToDomain maps JMdict <field> entity names to domain values.
97 func FieldToDomain(field string) uint8 {
98 switch field {
99 case "med", "anat", "biol", "bot", "zool", "pharm":
100 return DomMedical
101 case "law":
102 return DomLegal
103 case "comp", "engr", "math", "phys", "chem", "astron", "elec":
104 return DomTechnical
105 }
106 return DomGeneral
107 }
108