Semantic is a suite of Emacs libraries and utilities for parsing source code.
At its core is a lexical analyzer and two parser generators (bovinator and wisent) written in Emacs Lisp. Semantic provides a variety of tools for making use of the parser output, including user commands for code navigation and completion, as well as enhancements for imenu, speedbar, whichfunc, eldoc, hippie-expand, and several other parts of Emacs.