Search code examples
parsingcompiler-construction

why we need both Look Ahead symbol and read ahead symbol in Compiler


well i was reading some common concepts regarding parsing in compiler..i came across look ahead and read ahead symbol i search and read about them but i am stuck like why we need both of them ? would be grateful for any kind suggestion

Lookahead symbol: when node being considered in parse tree is for a terminal, and the terminal matches lookahead symbol,then we advance in both parse and input

read aheadsymbol: lexical analyzer may need to read some character before it can decide on the token to be returned


Solution

  • One of these is about parsing and refers to the next token to be produced by the lexical scanner. The other one, which is less formal, is about lexical analysis and refers to the next character in the input stream. It should be clear which is which.

    Note that while most parsers only require a single lookahead token, it is not uncommon for lexical analysis to have to backtrack, which is equivalent to examining several unconsumed input characters.