YAMP.ParseEngine.Skip C# (CSharp) Method

Skip() private method

Skips to the next significant character avoiding line comments, block comments, whitespaces or new lines.
private Skip ( ) : ParseEngine
return ParseEngine
        internal ParseEngine Skip()
        {
            while (_ptr < _characters.Length)
            {
                if (IsWhiteSpace(_characters[_ptr]))
                {
                    _ptr++;
                    _currentColumn++;
                }
                else if (IsNewLine(_characters[_ptr]))
                {
                    _ptr++;
                    _currentColumn = 1;
                    _currentLine++;
                }
                else if (_ptr < _characters.Length - 1 && IsComment(_characters[_ptr], _characters[_ptr + 1]))
                {
                    if (IsLineComment(_characters[_ptr], _characters[_ptr + 1]))
                    {
                        AdvanceToNextLine();
                    }
                    else
                    {
                        AdvanceTo("*/");
                    }
                }
                else
                {
                    break;
                }
            }

            return this;
        }

Usage Example

Exemplo n.º 1
0
        public override Expression Scan(ParseEngine engine)
        {
            var start = engine.Pointer;
            var kw = new LetKeyword(engine.CurrentLine, engine.CurrentColumn, engine.Query);
            engine.Advance(Token.Length);
            kw.Length = engine.Pointer - start;
            engine.Skip();
            start = engine.Pointer;
            kw.name = engine.Elements.FindExpression<SymbolExpression>().Scan(engine) as SymbolExpression;

            if (kw.name == null)
            {
                engine.AddError(new YAMPVariableNameMissing(engine), kw);
                return kw;
            }

            engine.SetPointer(start);
            return kw;
        }
All Usage Examples Of YAMP.ParseEngine::Skip