Example #1
0
        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);
        }
Example #2
0
 public _TabTableRow(_TabTableHead head)
 {
     m_tableHead = head;
 }