예제 #1
0
 public static string Format(Definitions definitions)
 {
     var f = new WebIDLFormatter();
     f.Visit(definitions);
     return f._sb.ToString();
 }
예제 #2
0
 private void Visit(Definitions definitions)
 {
     foreach (var def in definitions.Items) {
         Visit(def);
         _sb.AppendLine().AppendLine();
     }
 }
예제 #3
0
파일: Program.cs 프로젝트: n9/SaltarelleWeb
 private static Tuple<IReadOnlyList<Definitions>, IReadOnlyList<string>> Parse(IReadOnlyList<string> files)
 {
     var errors = new ConcurrentStack<string>();
     var allParts = new Definitions[files.Count];
     Parallel.ForEach(files, (file, _, i) => {
         try {
             allParts[i] = WebIDLParser.Parse(new StreamReader(file, Encoding.UTF8));
         }
         catch (IOException ex) {
             errors.Push("Error reading file " + file + ": " + ex.Message);
         }
         catch (RecognitionException ex) {
             errors.Push(file + "(" + ex.Line + ":" + ex.CharPositionInLine + "): " + ex.GetType().Name + ": " + ex.Message);
         }
     });
     return Tuple.Create<IReadOnlyList<Definitions>, IReadOnlyList<string>>(allParts, errors.ToList());
 }