예제 #1
0
 public virtual void ScanChildren(GrammarNode node)
 {
     foreach (KeyValuePair <GrammarNode, GrammarNodeInfo> g in node.Children)
     {
         ++level;
         ChildInfo = g.Value;
         Scan(g.Key);
         --level;
     }
 }
예제 #2
0
        public virtual void Scan(GrammarNode node)
        {
            //DebugWrite(node);

            //Sometimes in lists we can have null items when grammar can't process the node, returns null
            if (node != null)
            {
                StatusReporter.ReportProgress(node);

                CallAction(node, CallActionType.PreActionType);
                if (CallAction(node, CallActionType.ActionType))
                {
                    ScanChildren(node);
                }
                CallAction(node, CallActionType.PostActionType);
            }

            ChildInfo = null;
        }