Você não precisa separá-los. As pessoas as combinam em analisadores sem scanner .
A principal desvantagem dos analisadores sem scanner parece ser que as gramáticas resultantes são bastante complicadas - mais complicadas do que a combinação correspondente de uma expressão regular fazendo lexing e uma gramática sem contexto fazendo análise no fluxo de token. Em particular, gramáticas para análise sem scanner tendem a ambiguidade. É mais fácil remover a ambiguidade das gramáticas que trabalham em um fluxo de token.
Um benefício pragmático do uso de uma fase de lexing inicial dedicada é que você não associa o analisador subsequente a detalhes lexicais. Isso é útil durante o desenvolvimento inicial da linguagem de programação, quando os detalhes lexicais e sintáticos ainda estão mudando com frequência.