public static TabTableSection Parse(TextReader input) { _TabTableHead tableHead = new _TabTableHead(); TabTableSection root = new TabTableSection("root"); _TabTableRow tableRow = new _TabTableRow(tableHead); eStatus state = eStatus.ReadHead; while (true) { string row = input.ReadLine(); if (row == null) { break; } if (row.Trim().Length == 0) { continue; } char c = row[0]; if (c == '#' || c == ';') { continue; // ignore comment } switch (state) { case eStatus.ReadHead: tableHead.initHeads(row); state = eStatus.ReadType; break; case eStatus.ReadType: tableHead.initTypeDef(row); state = eStatus.ReadDefault; break; case eStatus.ReadDefault: tableHead.initDefaultValues(row); state = eStatus.ReadBody; break; case eStatus.ReadBody: tableRow.read(row); tableRow.convertToSection(root); break; default: break; } } return(root); }
public _TabTableRow(_TabTableHead head) { m_tableHead = head; }