当前位置: 首页>>代码示例>>C#>>正文


C# Pattern.Freeze方法代码示例

本文整理汇总了C#中Pattern.Freeze方法的典型用法代码示例。如果您正苦于以下问题:C# Pattern.Freeze方法的具体用法?C# Pattern.Freeze怎么用?C# Pattern.Freeze使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Pattern的用法示例。


在下文中一共展示了Pattern.Freeze方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SynthesisMetathesisRuleSpec

        public SynthesisMetathesisRuleSpec(SpanFactory<ShapeNode> spanFactory, Pattern<Word, ShapeNode> pattern, string leftGroupName, string rightGroupName)
        {
            _spanFactory = spanFactory;
            _leftGroupName = leftGroupName;
            _rightGroupName = rightGroupName;

            _pattern = new Pattern<Word, ShapeNode>();
            foreach (PatternNode<Word, ShapeNode> node in pattern.Children)
            {
                var group = node as Group<Word, ShapeNode>;
                if (group != null)
                {
                    var newGroup = new Group<Word, ShapeNode>(group.Name);
                    foreach (Constraint<Word, ShapeNode> constraint in group.Children.Cast<Constraint<Word, ShapeNode>>())
                    {
                        Constraint<Word, ShapeNode> newConstraint = constraint.DeepClone();
                        newConstraint.FeatureStruct.AddValue(HCFeatureSystem.Modified, HCFeatureSystem.Clean);
                        newGroup.Children.Add(newConstraint);
                    }
                    _pattern.Children.Add(newGroup);
                }
                else
                {
                    _pattern.Children.Add(node.DeepClone());
                }
            }
            _pattern.Freeze();
        }
开发者ID:sillsdev,项目名称:hermitcrab,代码行数:28,代码来源:SynthesisMetathesisRuleSpec.cs

示例2: AnalysisMetathesisRuleSpec

        public AnalysisMetathesisRuleSpec(Pattern<Word, ShapeNode> pattern, string leftGroupName, string rightGroupName)
        {
            _leftGroupName = leftGroupName;
            _rightGroupName = rightGroupName;

            Group<Word, ShapeNode>[] groupOrder = pattern.Children.OfType<Group<Word, ShapeNode>>().ToArray();
            Dictionary<string, Group<Word, ShapeNode>> groups = groupOrder.ToDictionary(g => g.Name);
            _pattern = new Pattern<Word, ShapeNode>();
            foreach (PatternNode<Word, ShapeNode> node in pattern.Children.TakeWhile(n => !(n is Group<Word, ShapeNode>)))
                _pattern.Children.Add(node.DeepClone());

            AddGroup(groups, leftGroupName);
            AddGroup(groups, rightGroupName);

            foreach (PatternNode<Word, ShapeNode> node in pattern.Children.GetNodes(Direction.RightToLeft).TakeWhile(n => !(n is Group<Word, ShapeNode>)).Reverse())
                _pattern.Children.Add(node.DeepClone());
            _pattern.Freeze();
        }
开发者ID:sillsdev,项目名称:hermitcrab,代码行数:18,代码来源:AnalysisMetathesisRuleSpec.cs

示例3: LoadPhoneticTemplate

        private Pattern<Word, ShapeNode> LoadPhoneticTemplate(XElement ptempElem, Dictionary<string, Tuple<string, SymbolicFeature>> variables,
			CharacterDefinitionTable defaultTable = null, Dictionary<string, string> groupNames = null)
        {
            var pattern = new Pattern<Word, ShapeNode>();
            if (ptempElem != null)
            {
                if ((string) ptempElem.Attribute("initialBoundaryCondition") == "true")
                    pattern.Children.Add(new Constraint<Word, ShapeNode>(HCFeatureSystem.LeftSideAnchor));
                foreach (PatternNode<Word, ShapeNode> node in LoadPatternNodes(ptempElem.Element("PhoneticSequence"), variables, defaultTable, groupNames))
                    pattern.Children.Add(node);
                if ((string) ptempElem.Attribute("finalBoundaryCondition") == "true")
                    pattern.Children.Add(new Constraint<Word, ShapeNode>(HCFeatureSystem.RightSideAnchor));
            }
            pattern.Freeze();
            return pattern;
        }
开发者ID:sillsdev,项目名称:hermitcrab,代码行数:16,代码来源:XmlLanguageLoader.cs

示例4: LoadPhoneticSequence

        private Pattern<Word, ShapeNode> LoadPhoneticSequence(XElement pseqElem, Dictionary<string, Tuple<string, SymbolicFeature>> variables,
			CharacterDefinitionTable defaultTable = null, string name = null)
        {
            if (pseqElem == null)
                return Pattern<Word, ShapeNode>.New().Value;
            var pattern = new Pattern<Word, ShapeNode>(name, LoadPatternNodes(pseqElem, variables, defaultTable, null));
            pattern.Freeze();
            return pattern;
        }
开发者ID:sillsdev,项目名称:hermitcrab,代码行数:9,代码来源:XmlLanguageLoader.cs


注:本文中的Pattern.Freeze方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。