Exemplo n.º 1
0
        public Token Parse(ref Lexer lexer)
        {
            bool esc = false;

            bool ok = lexer.Advance(Start);

            if (!ok)
            {
                return(lexer.Capture(false));
            }

            do
            {
                if (!esc && lexer.Current == End)
                {
                    break;
                }
                esc = (lexer.Current == Escape);
                ok  = lexer.AdvanceWhile();
            }while (ok);
            ok = lexer.Advance(End);
            return(lexer.Capture(ok));
        }
Exemplo n.º 2
0
        public Token Parse(ref Lexer lexer)
        {
            var ok = lexer.Advance(literal, ignoreCase);

            return(lexer.Capture(ok));
        }
Exemplo n.º 3
0
 public Token Parse(ref Lexer lexer)
 {
     lexer.AdvanceWhile(c => c >= 'a' && c <= 'z');
     return(lexer.Capture(lexer.Consumable > 0));
 }