Exemplo n.º 1
0
        private void ParseValue()
        {
            var p = _lineState.CurrentPair;

            if (p.Assignment != AssignmentEnum.E && p.Assignment != AssignmentEnum.EE)
            {
                //No literal value
                _lineState.State = ParserStateEnum.PairDelimiter;
                return;
            }
            _input.ConsumeSpaces();
            if (_input.ConsumeComments(_pairFactory, _pairStack.Peek().Pair))
            {
                AssignValueToCurrentPair(CharLocation.Empty, CharLocation.Empty);
            }
            else if (_input.Next == '\'' || _input.Next == '"')
            {
                ParseQuotedValue(_input.Next);
            }
            else if (p.Assignment == AssignmentEnum.E && _wsaStack.Count == 0)
            {
                ParseFreeOpenString();
            }
            else
            {
                ParseOpenString();
            }

            if (_lineState.State != ParserStateEnum.IndentMLS)
            {
                _lineState.State = ParserStateEnum.PairDelimiter;
            }
        }