To a significant degree, the arrow of causality runs LALR(1) -> practical languages, not the other direction!
The languages and formats we use have been heavily shaped by the practical parsing algorithms of the 20th century. An example: you can't have a struct field called "while" in C, because once the lexer declares a token to be a keyword, that's that.