private static List<int> GetHvoOfMsaPartOfSpeech(IMoMorphSynAnalysis msa)
{
var result = new List<int>();
ICmPossibility pos;
if (msa is IMoInflAffMsa)
{
pos = ((IMoInflAffMsa) msa).PartOfSpeechRA;
if (pos != null)
result.Add(pos.Hvo);
}
if (msa is IMoStemMsa)
{
pos = ((IMoStemMsa) msa).PartOfSpeechRA;
if (pos != null)
result.Add(pos.Hvo);
}
if (msa is IMoDerivAffMsa)
{
var derivMsa = ((IMoDerivAffMsa) msa);
pos = derivMsa.ToPartOfSpeechRA;
if (pos != null)
result.Add(pos.Hvo);
pos = derivMsa.FromPartOfSpeechRA;
if (pos != null)
result.Add(pos.Hvo);
}
if (msa is IMoDerivStepMsa)
{
pos = ((IMoDerivStepMsa)msa).PartOfSpeechRA;
if (pos != null)
result.Add(pos.Hvo);
}
if (msa is IMoUnclassifiedAffixMsa)
{
pos = ((IMoUnclassifiedAffixMsa)msa).PartOfSpeechRA;
if (pos != null)
result.Add(pos.Hvo);
}
return result;
}