Chapter 31 in Programming in Scala introduces parser combinators as an internal DSL for parsing, eliminating the need for standalone parser generators like Yacc or Bison.
The chapter demonstrates creating parsers for arithmetic expressions using Scala's combinator parsers, leveraging features like parameterized types, abstract types, functions as objects, and operator overloading.