The left-corner transformation (Rosenkrantz and Lewis, 1970) is used to remove left recursion from context-free grammars, which is an important step towards making the grammar parsable top-down with simple techniques. This paper generalizes prior left-corner transformations to support semiring-weighted production rules and to provide finer-grained control over which left corners may be moved. Our generalized left-corner transformation (GLCT) arose from unifying the left-corner transformation and speculation transformation (Eisner and Blatz, 2007), originally for logic programming. Our new transformation and speculation define equivalent weighted languages. Yet, their derivation trees are structurally different in an important way: GLCT replaces left recursion with right recursion, and speculation does not. We also provide several technical results regarding the formal relationships between the outputs of GLCT, speculation, and the original grammar. Lastly, we empirically investigate the efficiency of GLCT for left-recursion elimination from grammars of nine languages.The transformation creates two kinds of new nonterminals using α and X /α. 13In Def. 3, we see that GLCT introduces new nonterminals of two varieties: slashed nonterminals (denoted Y /α) and frozen 14 nonterminals (denoted 11 A generalized right-corner transformation can be defined analogously-applications of such a transformation are given in Schuler et al. (2010) and Amini and Cotterell (2022).12 N ′ = N ∪ { X | X ∈ N } ∪ { α /β | α, β ∈ (N ∪ V)} 13 This notation works as follows: we associate a unique