public PreprocessingInputStream(TextReader reader, IPreprocessor preprocessor)
 {
     this.preprocessor = preprocessor;
     this.positions = new Stack<PrimitiveStream>();
     this.unreadLines = new LinkedArrayList<string>();
     PrimitiveStream newData = new PrimitiveStream(reader);
     positions.Push(newData);
 }
 public void OpenSourceFile(string path)
 {
     if (unreadLines.Count > 0)
     {
         throw new InvalidOperationException();
     }
     PrimitiveStream newData = new PrimitiveStream(File.ReadAllLines(path), Path.GetFileName(path));
     positions.Push(newData);
 }
 public void OpenSourceFile(string path)
 {
     if (unreadLines.Count > 0)
     {
         throw new InvalidOperationException();
     }
     PrimitiveStream newData = new PrimitiveStream(new StreamReader(path));
     positions.Push(newData);
 }