5 ms·
Indentation is handled by the lexer, not the parser. The parser is context free-- LL(1), actually. The lexer maintains one extra stack to track indentations,
by Scaevolus 14y ago
Indentation is handled by the lexer, not the parser.
The parser is context free-- LL(1), actually.
The lexer maintains one extra stack to track indentations, meaning it's more of a PDA than a DFA, but the actual complication is mild.
- peterwoo 14y agoThe language is not context free, although I agree there is a parsing solution which is not terribly complex.
- lucian1900 14y agoIt is context free. INDENT and OUTDENT are directly equivalent to { and } in other grammars.
- peterwoo 14y agoThe difference is that INDENT and OUTDENT have to be defined by context-sensitive productions. Even if this occurs in what would otherwise be the "lexing" stage of the parser.