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