summaryrefslogtreecommitdiff
path: root/devel/semantic/pkg/DESCR
blob: 30a69003f626bbe8f3d3472cff1a86b6d6ac5e3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
The Semantic Bovinator is a lexer, parser-generator, and parser. It is
written in Emacs Lisp and is customized to the way Emacs thinks about
language files, and is optimized to use Emacs' parsing capabilities.

The Semantic Bovinator's goal is to provide an intermediate API for
authors of language agnostic tools who want to deal with languages in
a generic way. It also provides a simple way for Mode Authors who are
experts in their language to provide a parser for those tool
authors, without knowing anything about those tools.

The Semantic Bovinator is made up of these important pieces:

    1. lexer: Converts a language into a token stream

    2. parser: Converts a token stream into a stream of nonterminals
       defined by the language.

    3. parser-generator: Converts a language definition into a table
       usable by the parser. (Written using the Semantic Bovinator)

    4. language definitions: Parsers already existing for the parser
       generator language (Bovine Normal Form), Emacs Lisp, and C.

    5. navigator: Senator is a navigator that permits simple
       navigation through the parsed language.

    6. speedbar browser: Code for browsing a generated nonterminal
       list with Speedbar.

    7. Documentation generator: Identifies inline documentation in
       source code, and can convert it to texinfo. It can also create
       inline documenation.