public void Visit <T>(int cut, Antlr4.Runtime.Tree.IParseTreeVisitor <T> visitor) { var script = this.Script(); script.File = this.File.FullName.Substring(cut).Trim(' ', '\\'); //if (script.InError) //{ //} //else //{ if (script.Content.Length > 0) { script.Visit <T>(visitor); } else { } //} }
/// <summary> /// Parse all scripts if the filter return true /// </summary> /// <typeparam name="T"></typeparam> /// <param name="filter"> function return true or false when the script must to be parsed.</param> /// <param name="scripts">List of scripts</param> /// <param name="visitor">visitor that must parse the script's list</param> /// <returns>return count of parsed scripts</returns> protected int Process <T>(Func <ScriptFileInfo, bool> filter, List <ScriptFileInfo> scripts, Antlr4.Runtime.Tree.IParseTreeVisitor <T> visitor) { int count = 0; int cut = this._Current_context._cut; List <ScriptFileInfo> _scripts = new List <ScriptFileInfo>(); foreach (ScriptFileInfo script in scripts) { if (filter(script)) { count++; try { script.Visit <T>(cut, visitor); _scripts.Add(script); } catch (Exception e) { if (System.Diagnostics.Debugger.IsAttached) { System.Diagnostics.Debugger.Break(); } throw e; } } } return(count); }
/// <summary> /// Evaluate all script file in the visitor /// </summary> /// <typeparam name="T"></typeparam> /// <param name="visitor"></param> public abstract void Visit <T>(Antlr4.Runtime.Tree.IParseTreeVisitor <T> visitor);