Appendix A Glossary

BNF

In semantic 1.4, a BNF file represented “Bovine Normal Form”, the grammar file used for the 1.4 parser generator. This was a play on Backus-Naur Form which proved too confusing.

bovinate

A verb representing what happens when a bovine parser parses a file.

bovine lambda

In a bovine, or LL parser, the bovine lambda is a function to execute when a specific set of match rules has succeeded in matching text from the buffer.

bovine parser

A parser using the bovine parser generator. It is an LL parser suitable for small simple languages.

context
LALR
lexer

A program which converts text into a stream of tokens by analyzing them lexically. Lexers will commonly create strings, symbols, keywords and punctuation, and strip whitespaces and comments.

LL
nonterminal

A nonterminal symbol or simply a nonterminal stands for a class of syntactically equivalent groupings. A nonterminal symbol name is used in writing grammar rules.

overloadable

Some functions are defined via define-overload. These can be overloaded via ....

parser

A program that converts tokens to tags.

tag

A tag is a representation of some entity in a language file, such as a function, variable, or include statement. In semantic, the word tag is used the same way it is used for the etags or ctags tools.

A tag is usually bound to a buffer region via overlay, or it just specifies character locations in a file.

token

A single atomic item returned from a lexer. It represents some set of characters found in a buffer.

token stream

The output of the lexer as well as the input to the parser.

wisent parser

A parser using the wisent parser generator. It is a port of bison to Emacs Lisp. It is an LALR parser suitable for complex languages.