Пример #1
0
 void InitVars()
 {
     _error          = MorkErrors.NoError;
     _morkPos        = 0;
     _nowParsing     = NowParsing.NPValues;
     _currentCells   = null;
     _columns        = new MorkDict();
     _values         = new MorkDict();
     _mork           = new TableScopeMap();
     _nextAddValueId = 0x7fffffff;
 }
Пример #2
0
        //	=============================================================
        //	parseRow

        bool ParseRow(int tableId, int tableScope)
        {
            var result = true;
            var textId = string.Empty;
            var id     = 0;
            var scope  = 0;
            var cur    = NextChar();

            _nowParsing = NowParsing.NPRows;

            // Get id
            while (cur != '(' && cur != ']' && cur != '[' && cur != 0)
            {
                if (!IsWhiteSpace(cur))
                {
                    textId += cur;
                }

                cur = NextChar();
            }

            ParseScopeId(textId, ref id, ref scope);
            SetCurrentRow(tableScope, tableId, scope, id);

            // Parse the row
            while (result && cur != ']' && cur != 0)
            {
                if (!IsWhiteSpace(cur))
                {
                    switch (cur)
                    {
                    case '(':
                        result = ParseCell();
                        break;

                    case '[':
                        result = ParseMeta(']');
                        break;

                    default:
                        result = false;
                        break;
                    }
                }

                cur = NextChar();
            }

            return(result);
        }
Пример #3
0
        bool ParseDict()
        {
            var cur    = NextChar();
            var result = true;

            _nowParsing = NowParsing.NPValues;

            while (result && cur != '>' && cur != 0)
            {
                if (!IsWhiteSpace(cur))
                {
                    switch (cur)
                    {
                    case '<':
                    {
                        if (_morkData.Substring(_morkPos - 1, MorkDictColumnMeta.Length) == MorkDictColumnMeta)
                        {
                            _nowParsing = NowParsing.NPColumns;
                            _morkPos   += MorkDictColumnMeta.Length - 1;
                        }


                        break;
                    }

                    case '(':
                        result = ParseCell();
                        break;

                    case '/':
                        result = ParseComment();
                        break;
                    }
                }

                cur = NextChar();
            }

            return(result);
        }