The document discusses transforming left recursive grammar rules to non-left recursive rules. It defines left recursion as a nonterminal that can derive itself as the leftmost symbol. It presents a formal technique to eliminate left recursion by introducing a new nonterminal and rewriting the rules. An example C code segment is provided that takes a left recursive expression as input and outputs a non-left recursive expression by using functions like sprintf() and strtok().