public IEnumerable <EphemerisEntry> Parse(int year) { index = 0; for (int i = 0; i < Months.Length; i++) { GotoMonth(Months[i]); string line = GetNextLine(); while (line != null) { var entry = RowParser.Parse(year, i + 1, line, previousEntry); previousEntry = entry; yield return(entry); line = GetNextLine(); } } }
public static EphemerisEntry Parse(int year, int month, string line, EphemerisEntry previousEntry) { var parser = new TokenParser(line); parser.ReadDayLetter(); int dayOfMonth = parser.ReadNumber(); double siderealTime = ReadSiderealTime(parser); var sun = ReadSunPosition(parser, previousEntry.Sun); var moon = ReadPlanetPosition(parser, previousEntry.Moon); var mercury = ReadPlanetPosition(parser, previousEntry.Mercury); var venus = ReadPlanetPosition(parser, previousEntry.Venus); var mars = ReadPlanetPosition(parser, previousEntry.Mars); var jupiter = ReadPlanetPosition(parser, previousEntry.Jupiter); var saturn = ReadPlanetPosition(parser, previousEntry.Saturn); var uranus = ReadPlanetPosition(parser, previousEntry.Uranus); var neptune = ReadPlanetPosition(parser, previousEntry.Neptune); var pluto = ReadPlanetPosition(parser, previousEntry.Pluto); var trueNode = ReadPlanetPosition(parser, previousEntry.TrueNode); var meanNode = ReadPlanetPosition(parser, previousEntry.MeanNone); var blackMoonLilith = ReadPlanetPosition(parser, previousEntry.BlackMoonLilith); var chiron = ReadPlanetPosition(parser, previousEntry.Chiron); return(new EphemerisEntry( new DateTime(year, month, dayOfMonth, 0, 0, 0, DateTimeKind.Utc), siderealTime, sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto, trueNode, meanNode, blackMoonLilith, chiron)); }
public Parser(string text, EphemerisEntry previousEntry) { lines = Regex.Split(text, "\r\n|\r|\n"); this.previousEntry = previousEntry; }