/// <summary> /// ソースファイルを追加する /// </summary> /// <param name="path">ソースファイルのパス</param> public void AddSource(string path) { if (File.Exists(path)) { var file = new SourceFile(path); _source_queue.Enqueue(file); } else { throw new MError("ソースファイル " + path + " が見つかりません。"); } }
/// <summary> /// 次の文字を取り出す /// </summary> public void NextChar() { while (true) { if (_current_source != null) { _current_source.NextChar(); } if (IsEof()) { if (_source_queue.Count > 0) { _current_source = _source_queue.Dequeue(); continue; } } break; } }