3.1 Parser code

Semantic parsing code is spread across a range of files.

semantic.el

The core infrastructure sets up buffers for parsing, and has all the core parsing routines. Most parsing routines are overloadable, so the actual implementation may be somewhere else.

semantic/edit.el

Incremental reparse based on user edits.

semantic/grammar.el
semantic-grammar.wy

Parser for the different grammar languages, and a major mode for editing grammars in Emacs.

semantic/lex.el

Infrastructure for implementing lexical analyzers. Provides macros for creating individual analyzers for specific features, and a way to combine them together.

semantic/lex-spp.el

Infrastructure for a lexical symbolic preprocessor. This was written to implement the C preprocessor, but could be used for other lexical preprocessors.

semantic/grammar.el
semantic/bovine/grammar.el

The “bovine” grammar. This is the first grammar mode written for Semantic and is useful for creating simple parsers.

semantic/wisent.el
semantic/wisent/wisent.el
semantic/wisent/grammar.el

A port of bison to Emacs. This infrastructure lets you create LALR based parsers for Semantic.

semantic/debug.el

Infrastructure for debugging grammars.

semantic/util.el

Various utilities for manipulating tags, such as describing the tag under point, adding labels, and the all important semantic-something-to-tag-table.