public ConcretePattern(Source source, string name,
     ParseGraphNode parseGraph)
         : base(source, name)
 {
     SetParseGraph(parseGraph);
     
     recursionBehaviour = RecursionBehaviour.Recursive;
     
     OptionsNode options = ParseGraph as OptionsNode;
     
     while (options != null)
     {
         if (options.RecursionBehaviour.HasValue)
         {
             recursionBehaviour = options.RecursionBehaviour.Value;
             break;
         }
         
         options = options.Body as OptionsNode;
     }
     
     recurseNode = new PatternNode(source, this, true);
 }
Exemple #2
0
        public ConcretePattern(Source source, string name,
                               ParseGraphNode parseGraph)
            : base(source, name)
        {
            SetParseGraph(parseGraph);

            recursionBehaviour = RecursionBehaviour.Recursive;

            OptionsNode options = ParseGraph as OptionsNode;

            while (options != null)
            {
                if (options.RecursionBehaviour.HasValue)
                {
                    recursionBehaviour = options.RecursionBehaviour.Value;
                    break;
                }

                options = options.Body as OptionsNode;
            }

            recurseNode = new PatternNode(source, this, true);
        }
 private void AddNode(TreeIter parent, PatternNode patternNode)
 {
     store.AppendValues(parent, patternNode.Pattern.Type.Name, patternNode);
 }