Skip to content

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.