package transdb import ( "git.mleku.dev/iskra" "git.smesh.lol/iskradb/lattice" ) // MorphState constants — re-exported from iskra. const ( MorphPresAffPlain = iskra.MorphPresAffPlain MorphPresAffPolite = iskra.MorphPresAffPolite MorphPresNegPlain = iskra.MorphPresNegPlain MorphPresNegPolite = iskra.MorphPresNegPolite MorphPresProgPlain = iskra.MorphPresProgPlain MorphPresProgPolite = iskra.MorphPresProgPolite MorphPresProgNeg = iskra.MorphPresProgNeg MorphPastAffPlain = iskra.MorphPastAffPlain MorphPastAffPolite = iskra.MorphPastAffPolite MorphPastNegPlain = iskra.MorphPastNegPlain MorphPastNegPolite = iskra.MorphPastNegPolite MorphPastProgPlain = iskra.MorphPastProgPlain MorphPastProgPolite = iskra.MorphPastProgPolite MorphPastProgNeg = iskra.MorphPastProgNeg MorphPresReported = iskra.MorphPresReported MorphPastReported = iskra.MorphPastReported MaskJA = iskra.MaskJA MaskEN = iskra.MaskEN MaskBG = iskra.MaskBG ) // Register/domain/filter constants — re-exported from iskra. const ( RegNeutral = iskra.RegNeutral RegFormal = iskra.RegFormal RegInformal = iskra.RegInformal RegVulgar = iskra.RegVulgar DomGeneral = iskra.DomGeneral DomTechnical = iskra.DomTechnical DomMedical = iskra.DomMedical DomLegal = iskra.DomLegal SpecNormal = iskra.SpecNormal SpecHonorific = iskra.SpecHonorific SpecArchaic = SpecNormal SpecHumble = RegFormal FilterNone = iskra.FilterNone FilterFormal = iskra.FilterFormal FilterNeutral = iskra.FilterNeutral FilterCasual = iskra.FilterCasual ) // Encoding protocol functions delegated to iskra. func SetMorphState(rec *lattice.Record, state uint8) { iskra.SetMorphState(rec, state) } func GetMorphState(rec *lattice.Record) uint8 { return iskra.GetMorphState(rec) } func SetSemanticInDataFile(rec *lattice.Record, flags uint64) { iskra.SetSemanticInDataFile(rec, flags) } func GetSemanticFromDataFile(rec *lattice.Record) uint64 { return iskra.GetSemanticFromDataFile(rec) } func PackBranch(pos uint8, reg, dom, spec uint8) uint8 { return iskra.PackBranch(pos, reg, dom, spec) } func POSFromBranch(b uint8) uint8 { return iskra.POSFromBranch(b) } func RegFromBranch(b uint8) uint8 { return iskra.RegFromBranch(b) } func DomFromBranch(b uint8) uint8 { return iskra.DomFromBranch(b) } func SpecFromBranch(b uint8) uint8 { return iskra.SpecFromBranch(b) } func BranchWeirdness(b uint8) uint32 { return iskra.BranchWeirdness(b) } func MatchesFilter(b uint8, filter uint8) bool { return iskra.MatchesFilter(b, filter) } // MiscToRegSpec maps JMdict entity names to (register, special) values. func MiscToRegSpec(misc string) (reg, spec uint8) { switch misc { case "col", "fam": return RegInformal, SpecNormal case "sl": return RegInformal, SpecNormal case "vulg", "derog": return RegVulgar, SpecNormal case "pol", "litf": return RegFormal, SpecNormal case "hon": return RegFormal, SpecHonorific case "hum": return RegFormal, SpecHumble case "arch": return RegNeutral, SpecArchaic } return RegNeutral, SpecNormal } // FieldToDomain maps JMdict entity names to domain values. func FieldToDomain(field string) uint8 { switch field { case "med", "anat", "biol", "bot", "zool", "pharm": return DomMedical case "law": return DomLegal case "comp", "engr", "math", "phys", "chem", "astron", "elec": return DomTechnical } return DomGeneral }