This document summarizes some of the key features of ANTLR 4 including:
1) Recursive rules that allow expressions to reference themselves, precedence and associativity to control order of operations, and actions to insert code during parsing.
2) Attributes and semantic predicates that allow customizing rule behavior and conditional logic during parsing.
3) Lexer commands like type, channel, mode, and more that control token properties and lexer states.