protected override bool ConstraintsEqual(Allomorph other)
        {
            var otherAllo = other as RootAllomorph;

            if (otherAllo == null)
            {
                return(false);
            }

            return(base.ConstraintsEqual(other) && IsBound == otherAllo.IsBound);
        }
Exemple #2
0
        internal Annotation <ShapeNode> MarkMorph(IEnumerable <ShapeNode> nodes, Allomorph allomorph)
        {
            ShapeNode[]            nodeArray = nodes.ToArray();
            Annotation <ShapeNode> ann       = null;

            if (nodeArray.Length > 0)
            {
                ann = new Annotation <ShapeNode>(Range <ShapeNode> .Create(nodeArray[0], nodeArray[nodeArray.Length - 1]),
                                                 FeatureStruct.New()
                                                 .Symbol(HCFeatureSystem.Morph)
                                                 .Feature(HCFeatureSystem.Allomorph).EqualTo(allomorph.ID).Value);
                ann.Children.AddRange(nodeArray.Select(n => n.Annotation));
                _shape.Annotations.Add(ann, false);
            }
            _allomorphs[allomorph.ID] = allomorph;
            return(ann);
        }
 protected override Morpheme GetMorphObject(Allomorph morph)
 {
     return(morph.Morpheme);
 }
 protected abstract T GetMorphObject(Allomorph morph);
Exemple #5
0
        internal Annotation <ShapeNode> MarkSubsumedMorph(Annotation <ShapeNode> morph, Allomorph allomorph)
        {
            Annotation <ShapeNode> ann = new Annotation <ShapeNode>(morph.Range, FeatureStruct.New()
                                                                    .Symbol(HCFeatureSystem.Morph)
                                                                    .Feature(HCFeatureSystem.Allomorph).EqualTo(allomorph.ID).Value);

            morph.Children.Add(ann, false);
            _allomorphs[allomorph.ID] = allomorph;
            return(ann);
        }