Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the bibtex Reference Manual, version 1.1, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 12:05:13 2020 GMT+0.
• Introduction | What bibtex is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
A BibTeX system in Common Lisp ****************************** CL-BibTeX is a replacement for the BibTeX program, written in Common Lisp. The aim is to enable the user to format bibliographic entries using Common Lisp programs, rather than using the stack language of BibTeX style files. It is released under the terms of version 2.1 of the GNU Lesser General Public License as published by the Free Software Foundation (see file COPYING) or any later version, as clarified by the preamble found in COPYING-preamble.txt. (Note: run-lisp is included from CLOCC and has its own license.) Development now takes place on GitHub at https://github.com/mkoeppe/cl-bibtex A project home page is at http://www.nongnu.org/cl-bibtex/ (The old development pages at http://savannah.nongnu.org/projects/cl-bibtex/ are obsolete.) There is a mailing list `cl-bibtex-users@nongnu.org'. You can subscribe to the list at http://lists.nongnu.org/mailman/listinfo/cl-bibtex-users Reasons ======= A powerful tool is needed for dealing with citations in scientific documents. BibTeX is good for formatting bibliographies, but customizing the format is a pain because it requires writing/changing a program in BAFLL (BibTeX Anonymous Forth-Like Language -- Drew McDermott in comp.lang.lisp), which looks like this: FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } Other citation-related processing like producing a list of authors and citation indices is usually done with a combination of BibTeX, TeX macros, and ad-hoc scripting with Perl or AWK. The new CL-BibTeX system aims to replace all this. Status ====== CL-BibTeX is a compatible and stable re-implementation of the BibTeX program, which was written by Oren Patashnik in the WEB language. It consists of the following components: * A reader for BibTeX style files (.bst), * a reader and a writer for bibliography databases (.bib), * a reader for .aux files, * an implementation of BibTeX's built-in functions (like for parsing and formatting names, etc.), * an interpreter for the stack language of BibTeX style files. Thus CL-BibTeX allows to both use existing BibTeX style files, and to write new BibTeX styles in Common Lisp. In addition to this, CL-BibTeX contains: * A compiler that transforms BibTeX style files into comprehensible Common Lisp programs (using type analysis). The resulting Common Lisp programs can serve as a starting point for the customization of the style. Future directions of CL-BibTeX's development can be found in the TODO file. Where to start ============== Compile and load all Lisp files, using ASDF or bibtex.system. The function BIBTEX is like the bibtex program. Pass the file name STEM; BIBTEX will read STEM.aux, interpret a BST file, and write STEM.bbl: (bibtex-compiler:bibtex "example") In fact, when the STEM.aux file requests a bibliography style, BIBTEX first looks whether a Lisp function that implements the style has been defined using DEFINE-BIBTEX-STYLE. Otherwise, it tries to find (using kpathsearch) and load a Lisp file named "STYLE.lbst"; it is supposed to define the style using DEFINE-BIBTEX-STYLE. Finally, BIBTEX tries to find "STYLE.bst" and interpret it. A BibTeX style implemented in Lisp is supposed to read all bibliography files in *BIB-FILES* and to write the formatted bibliography to the stream *BBL-OUTPUT*. The package BIBTEX-RUNTIME contains useful routines for reading AUX files, formatting names, etc. An important function is READ-ALL-BIB-FILES-AND-COMPUTE-BIB-ENTRIES. You can invoke the BST-to-Common-Lisp compiler with the function COMPILE-BST-FILE: (bibtex-compiler:compile-bst-file (kpathsea:find-file "amsabbrv.bst") "amsabbrv.lbst") The resulting Lisp file is a readable Common Lisp version of the BST file, which can be run on the AUX file to produce a BBL file, without using the BST interpreter: (compile-file "amsabbrv.lbst") (load "amsabbrv.lbst") ; calls DEFINE-BIBTEX-STYLE (bibtex-compiler:bibtex "example") ; now uses the Lisp style There is also a little shell script "bibtex" for invoking CL-BIBTEX from the shell; it uses the "run-lisp" script from CLOCC. Restrictions of the compiler ============================ The BST->CL compiler works by analyzing the type of the wizard-defined functions (i.e., those defined by a FUNCTION command in the BST file). The compiler tries to find out how many "literals" (values) a function pops from the stack and how many it pushes and determines their types (BOOLEAN, INTEGER, STRING). * If a wizard-defined function tries to pop a function literal that it hasn't pushed, or leaves a function literal on the stack, you lose. (In other words, you can't define higher-order BST functions.) * The two branches of an IF$ function must deliver the same net number of values. (As a special exception, the type of IF$ within a WHILE$ body which occurs in the FORMAT.NAMES function of the standard styles is also supported. This is reported with a warning message.) On the compilation of a language that no-one can read or write ============================================================== The language of BibTeX style files (BAFLL) is expected to be read or written by "wizards" only. (This is how the original BibTeX calls the authors of BibTeX style files.) In fact, when casual users try to customize a BibTeX style file, they often come up with slightly broken styles that appear to work but which fail in corner cases. The reason is that programs written in BAFLL can hardly be read, written, or even debugged. This causes an extra difficulty for the compiler, because broken corner cases tend to misbehave on the stack, rendering the function unanalyzable, hence uncompilable. The compiler now contains a heuristic that tries to fix these situations, but it may fail. In this case, you should try to understand the error messages, fix the BibTeX style file accordingly, and try compiling it again. Implementation dependencies =========================== It does not run on some 0.7.? version of SBCL because it does not like (COPY-READTABLE NIL). SBCL 0.7.9 seems to be fine. I noticed that CMUCL 3.0.8 18c+ does not like (PEEK-CHAR T STREAM NIL #\Space); it won't skip over whitespace when the EOF character is whitespace? (I don't use this any more in CL-BibTeX.) CLISP 2.30: 1. When I invoke COMPILE-BST-FILE, CLISP says "Lisp stack overflow. RESET"; this seems to be caused by the pprint-dispatch function for DEFINE-BIBTEX-STYLE. 2. The format directive ~<...~:> (logical block) does not seem to work properly. (I have used reader conditionalization to make CL-BibTeX work with CLISP.) Have fun! -- Matthias Koeppe
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The bibtex system |
Matthias Koeppe <mkoeppe@math.ucdavis.edu>
LGPL 2.1+
Compatible re-implementation of the BibTeX program, with a BST-to-CL compiler.
1.1
split-sequence
bibtex.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
Next: The bibtex/cmp․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
bibtex.asd
bibtex (system)
Next: The bibtex/packages․lisp file, Previous: The bibtex․asd file, Up: Lisp files [Contents][Index]
bibtex (system)
cmp.lisp
Next: The bibtex/kpathsea․lisp file, Previous: The bibtex/cmp․lisp file, Up: Lisp files [Contents][Index]
Next: The bibtex/bibtex-runtime․lisp file, Previous: The bibtex/packages․lisp file, Up: Lisp files [Contents][Index]
packages.lisp (file)
bibtex (system)
kpathsea.lisp
find-file (function)
Next: The bibtex/lisp-form-builder․lisp file, Previous: The bibtex/kpathsea․lisp file, Up: Lisp files [Contents][Index]
packages.lisp (file)
bibtex (system)
bibtex-runtime.lisp
Next: The bibtex/bst-functions․lisp file, Previous: The bibtex/bibtex-runtime․lisp file, Up: Lisp files [Contents][Index]
packages.lisp (file)
bibtex (system)
lisp-form-builder.lisp
Next: The bibtex/interpreter․lisp file, Previous: The bibtex/lisp-form-builder․lisp file, Up: Lisp files [Contents][Index]
bibtex (system)
bst-functions.lisp
Next: The bibtex/bibtex-compiler․lisp file, Previous: The bibtex/bst-functions․lisp file, Up: Lisp files [Contents][Index]
bst-functions.lisp (file)
bibtex (system)
interpreter.lisp
Next: The bibtex/bst-reader․lisp file, Previous: The bibtex/interpreter․lisp file, Up: Lisp files [Contents][Index]
bibtex (system)
bibtex-compiler.lisp
Next: The bibtex/bst-builtins․lisp file, Previous: The bibtex/bibtex-compiler․lisp file, Up: Lisp files [Contents][Index]
bibtex (system)
bst-reader.lisp
Next: The bibtex/bibtex․lisp file, Previous: The bibtex/bst-reader․lisp file, Up: Lisp files [Contents][Index]
bibtex (system)
bst-builtins.lisp
Next: The bibtex/bibtex-program․lisp file, Previous: The bibtex/bst-builtins․lisp file, Up: Lisp files [Contents][Index]
bibtex (system)
bibtex.lisp
Previous: The bibtex/bibtex․lisp file, Up: Lisp files [Contents][Index]
bibtex.lisp (file)
bibtex (system)
bibtex-program.lisp
quit (function)
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The bibtex-system package | ||
• The cmp package | ||
• The bibtex-program package | ||
• The kpathsea package | ||
• The bibtex-compiler package | ||
• The bibtex-runtime package |
Next: The cmp package, Previous: Packages, Up: Packages [Contents][Index]
bibtex.asd
Next: The bibtex-program package, Previous: The bibtex-system package, Up: Packages [Contents][Index]
cmp.lisp (file)
common-lisp
Next: The kpathsea package, Previous: The cmp package, Up: Packages [Contents][Index]
packages.lisp (file)
quit (function)
Next: The bibtex-compiler package, Previous: The bibtex-program package, Up: Packages [Contents][Index]
packages.lisp (file)
common-lisp
find-file (function)
Next: The bibtex-runtime package, Previous: The kpathsea package, Up: Packages [Contents][Index]
packages.lisp (file)
Previous: The bibtex-compiler package, Up: Packages [Contents][Index]
packages.lisp (file)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported constants | ||
• Exported special variables | ||
• Exported macros | ||
• Exported compiler macros | ||
• Exported functions | ||
• Exported generic functions | ||
• Exported structures |
Next: Exported special variables, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Next: Exported macros, Previous: Exported constants, Up: Exported definitions [Contents][Index]
Non-nil if a Lisp BibTeX style is allowed to be located via KPSEARCH and loaded into the Lisp image. (This might be seen as a security risk, because Lisp programs are much more powerful than BST scripts.)
bibtex.lisp (file)
Maximum .bbl line length. BBL-PRINT breaks lines so that no more than this many characters apear on each output line. If nil, BBL-PRINT will not break lines.
bibtex-runtime.lisp (file)
Minimum line length in the formatted bibliography (BBL) file.
bibtex-runtime.lisp (file)
The stream corresponding to the formatted bibliography (BBL) file.
bibtex-runtime.lisp (file)
A hashtable associating BibTeX keys with entries
bibtex-runtime.lisp (file)
A list containing all requested BibTeX entries
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
An alist mapping BibTeX entry types to formatter functions
bibtex-runtime.lisp (file)
List of BibTeX database files to be read.
bibtex-runtime.lisp (file)
A hashtable associating macro names with their definitions
bibtex-runtime.lisp (file)
A string accumulating all BibTeX @PREAMBLEs
bibtex-runtime.lisp (file)
The requested BibTeX style.
bibtex-runtime.lisp (file)
A BibTeX name component is considered ‘long’ when it has at least this many text characters.
bibtex-runtime.lisp (file)
A BibTeX name token is considered ‘long’ when it has at least this many text characters.
bibtex-runtime.lisp (file)
If non-nil, BibTeX understands that there are two abbreviated first names in names like ‘Padberg, M.W.’. The original BibTeX 0.99c, written by Oren Patashnik in the WEB language, thinks that ‘M.W.’ is a single first name; hence, in abbreviated format, the name becomes ‘M. Padberg’ instead of ‘M. W. Padberg’.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
An alist mapping BibTeX styles (strings) to thunk designators that implement the BibTeX style. Use REGISTER-BIBTEX-STYLE to put items here.
bibtex.lisp (file)
Non-nil if all BibTeX entries are cited.
bibtex-runtime.lisp (file)
List of cited BibTeX keys.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
When a crossref’d entry is referenced at
least *MIN-CROSSREFS* times, it is included as a separate entry as
well.
bibtex-runtime.lisp (file)
Next: Exported compiler macros, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
bibtex.lisp (file)
bibtex-runtime.lisp (file)
Next: Exported functions, Previous: Exported macros, Up: Exported definitions [Contents][Index]
Next: Exported generic functions, Previous: Exported compiler macros, Up: Exported definitions [Contents][Index]
Add a period to STRING unless it is empty, or its last non-right-brace character is a period, question mark or exclamation mark.
bibtex-runtime.lisp (file)
Add STRING to the BBL output buffer. If there are enough characters present in the output buffer, it writes one or more lines out to the *BBL-OUTPUT* stream. It may break a line at any whitespace character it likes, but if it does, it will add two spaces to the next output line. If there’s no whitespace character to break the line at, we break it just before *BBL-MAX-PRINT-LINE*, append a comment character (%), and don’t indent the next line.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
When there’s a serious error parsing a BIB file, we flush everything up to the beginning of the next entry.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Emit a warning.
bibtex-runtime.lisp (file)
Emit a warning consisting of the concatenation of STRINGS.
bibtex-runtime.lisp (file)
The BibTeX program. Read citation commands, a list of
bibliographic databases and the name of the bibliography style from
TeX commands in the file ‘FILE-STEM.aux’. Find the named bibliography
style via ‘find-bibtex-style’; it can be overridden programmatically
using the :STYLE argument (a string or a function designator). Print the
formatted bibliography to the file ‘FILE-STEM.bbl’.
Return two values, the values of *history* and *err-count*.
bibtex.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Convert to lower case all letters in STRING at brace-level 0. Also handle special characters in a very complicated way.
bibtex-runtime.lisp (file)
The BibTeX TEXT.PREFIX$ function.
bibtex-runtime.lisp (file)
Remove nonalphanumeric characters except for whitespace and sep-char characters (these get converted to a space) and removes certain alphabetic characters contained in the control sequences associated with a special character.
bibtex-runtime.lisp (file)
Convert to lower case all letters except the very first character in the STRING, which it leaves alone, and except the first character following any ‘:’ and then non-null whitespace, which it also leaves alone. Only those letters at brace-level 0 are affected. Also handle special characters in a very complicated way.
bibtex-runtime.lisp (file)
Convert to upper case all letters in STRING at brace-level 0. Also handle special characters in a very complicated way.
bibtex-runtime.lisp (file)
The BibTeX WIDTH$ function.
Compute the approximate width of STRING by summing the WIDTHS of the
individual characters. BibTeX special characters are handled
specially.
bibtex-runtime.lisp (file)
A substring function compatible with BibTeX’s substring$.
bibtex-runtime.lisp (file)
Return a vector of the entries in *BIB-DATABASE* whose keys are given in the list CITE-KEYS (if CITE-KEYS is the symbol T, return a vector of all database entries. When a crossref’d entry is referenced at least :MIN-CROSSREFS times, it is included as a separate entry as well.
bibtex-runtime.lisp (file)
Returns T if no two of its arguments are equal according to CMP; NIL otherwise.
Returns T if its arguments are in strictly increasing order according to CMP; NIL otherwise.
Returns T if its arguments are in strictly non-decreasing order according to CMP; NIL otherwise.
Returns T if all of its arguments are equal according to CMP; NIL otherwise.
Returns T if its arguments are in strictly decreasing order according to CMP; NIL otherwise.
Returns T if its arguments are in strictly non-increasing order according to CMP; NIL otherwise.
Compile the BibTeX style file BST-FILE to a Common Lisp BibTeX style file LISP-FILE. If :MAKE-VARIABLES-LEXICAL or :MAKE-VARIABLES-CONSTANT is true (the default), make a second compiler pass, where some variables are turned into lexical variables or constant variables.
bibtex.lisp (file)
bibtex-program.lisp (file)
bibtex-runtime.lisp (file)
bibtex-program.lisp (file)
Find the named BibTeX STYLE.
* First try the styles registered using REGISTER-BIBTEX-STYLE.
* Then, if *ALLOW-LOAD-LISP-BIBTEX-STYLE* is true, try to find and
load a Lisp BibTeX style file named "STYLE.lbst".
* Finally try to find a BibTeX style file named "STYLE.bst".
Return a thunk that implements the BibTeX style. Signal an error
if no style of the requested name has been found.
bibtex.lisp (file)
kpathsea.lisp (file)
bibtex-runtime.lisp (file)
Parse NAMES-STRING as an ‘and’-separated list of BibTeX names, pick the name of given 1-based INDEX and format it to STREAM according to the BibTeX-style FORMAT-STRING.
bibtex-runtime.lisp (file)
Return a thunk that implements the BibTeX style of the BST-FILE by running the BST interpreter.
bibtex.lisp (file)
Return a thunk that implements the Lisp BibTeX style of LBST-FILE.
bibtex.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Break a BibTeX name into its components, returning a BIBTEX-NAME structure.
bibtex-runtime.lisp (file)
Parse a string containing BibTeX names, separated by the word ‘and’ surrounded by non-null whitespace, and return a list of BIBTEX-NAME structures.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Read an AUX file, modifying *CITE-KEYS*, *CITE-ALL-ENTRIES*, *BIB-FILES*, and *BIB-STYLE*.
bibtex-runtime.lisp (file)
Read a BibTeX database from STREAM, storing the entries in the hash-table *BIB-DATABASE* and using/updating the macro hash-table *BIB-MACROS*.
bibtex-runtime.lisp (file)
Register a BibTeX style, implemented as THUNK (a function designator), under NAME.
bibtex.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Next: Exported structures, Previous: Exported functions, Up: Exported definitions [Contents][Index]
Compare A and B; return -1 if A<B, 0 if A=B, +1 if A>B. May return NIL if A and B are not equal and have no meaningful order relation.
cmp.lisp (file)
bibtex-runtime.lisp (file)
Hash such that (cmp= A B) => (= (hash A) (hash B))
cmp.lisp (file)
bibtex-runtime.lisp (file)
Previous: Exported generic functions, Up: Exported definitions [Contents][Index]
BibTeX name, broken down into its components. Each component is a list of name tokens (SEP-CHAR TOKEN-STRING).
bibtex-runtime.lisp (file)
structure-object (structure)
bibtex-name-first (function)
(setf bibtex-name-first) (function)
bibtex-name-von (function)
(setf bibtex-name-von) (function)
bibtex-name-last (function)
(setf bibtex-name-last) (function)
bibtex-name-jr (function)
(setf bibtex-name-jr) (function)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal special variables | ||
• Internal macros | ||
• Internal functions | ||
• Internal generic functions | ||
• Internal conditions | ||
• Internal structures | ||
• Internal classes |
Next: Internal macros, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
The stream corresponding to the current AUX file.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
The name of the lexical variable in *main-lisp-body* that stores the bib entries.
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
Non-nil if a bibdata command has been seen in an AUX file.
bibtex-runtime.lisp (file)
bibtex.lisp (file)
The list of VARIABLEs borrowed from the stack.
bibtex-compiler.lisp (file)
bst-reader.lisp (file)
Non-nil if we are compiling a Common Lisp program from the BST program, rather than interpreting the BST program.
bibtex-compiler.lisp (file)
A list of strings (comments) and BST-FUNCTION structures. It records the definition order in the BST file.
bibtex-compiler.lisp (file)
A list of BST-FUNCTION structures. It records the call order in the BST file in reverse order.
bibtex-compiler.lisp (file)
bst-functions.lisp (file)
bibtex-compiler.lisp (file)
A temporary package where the BST compiler puts the symbols generated for the BibTeX style file
bst-functions.lisp (file)
bst-reader.lisp (file)
A hashtable, mapping BST function symbols to thunks that implement special forms by directly manipulating the current compiler data.
bibtex-compiler.lisp (file)
bst-reader.lisp (file)
bst-functions.lisp (file)
If true, perform the following extension of BibTeX behavior: The attribute EQUIVALENT-ENTRIES of a bibliographic entry specifies the keys of other bibliographic entries that are to be considered equivalent. We compute the equivalence classes spanned by these equivalences, and warn if multiple equivalent keys are used in one document (we warn because both we and the original BibTeX will produce a bibliography that contains several copies of that entry).
bibtex-runtime.lisp (file)
Non-nil if a citation command has been seen in an AUX file.
bibtex-runtime.lisp (file)
True if compiling the body of a while$ function.
bibtex-compiler.lisp (file)
Only used for reporting errors.
bibtex-compiler.lisp (file)
Only used for reporting errors.
bibtex-compiler.lisp (file)
Only used for reporting errors.
bibtex-compiler.lisp (file)
Non-nil if the BST ENTRY command has been seen.
bst-reader.lisp (file)
A list of FOREIGN-CHARACTER structures.
bibtex-runtime.lisp (file)
A list of BINDINGs that keeps track of all forms that cannot be collected functionally because they are side-effecting or their values are needed more than one time.
bibtex-compiler.lisp (file)
The list of MVFORMs delivering the values on the stack.
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
An alist mapping strings designating BST variables to Lisp VARIABLEs.
bibtex-compiler.lisp (file)
A hack until detection of lexicals works.
bibtex-compiler.lisp (file)
The stack of BibTeX literals during interpretation of a BST program.
interpreter.lisp (file)
A list collecting the forms corresponding to EXECUTE, ITERATE, READ, REVERSE, and SORT commands in reverse order.
bibtex-compiler.lisp (file)
Non-nil if the BST READ command has been seen.
bst-reader.lisp (file)
bibtex.lisp (file)
If non-nil, try to compile the BST program even if it is slightly broken. In an IF$ with bad stack use, fill up one of the branches and signal a runtime error from there.
bibtex-compiler.lisp (file)
interpreter.lisp (file)
If non-nil, don’t issue compiler warnings.
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
An alist associating characters with their widths. The widths here are taken from Stanford’s June ’87 cmr10 font and represent hundredths of a point (rounded), but since they’re used only for relative comparisons, the units have no meaning.
bibtex-runtime.lisp (file)
bibtex.lisp (file)
bst-functions.lisp (file)
Next: Internal functions, Previous: Internal special variables, Up: Internal definitions [Contents][Index]
bst-reader.lisp (file)
bst-functions.lisp (file)
bibtex-compiler.lisp (file)
Perform BODY on every token in the given TeX string (a string or a TeX-group).
bibtex-runtime.lisp (file)
Next: Internal generic functions, Previous: Internal macros, Up: Internal definitions [Contents][Index]
bibtex-compiler.lisp (file)
For every borrowed variable, pop a form off the stack. Push a PSETQ form that assigns the values of the popped forms to the borrowed variables. If there are not as many values on the stack as borrowed variables, return :NOT-BALANCED; in this case the current computation is left corrupted. Otherwise return the number of assignments (this can be lower than the number of borrowed variables).
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
Process an AUX-file \bibstyle command.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Process an AUX-file \@input command.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
interpreter.lisp (file)
bst-reader.lisp (file)
bst-reader.lisp (file)
bst-reader.lisp (file)
Compile a BST wizard-defined function of given NAME and FUNCTION-DEFINITION. If NAME is nil, build a lambda expression, rather than a defun form. Return four values: DEFUN-OR-LAMBDA-FORM, ARGUMENT-TYPES, RESULT-TYPES, SIDE-EFFECTS.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Compile a BST function LITERAL, which is a symbol, designating a BST function, or a list (a function body). Return five values: a Lisp FORM, ARGUMENT-TYPES, RESULT-TYPES, SIDE-EFFECTS-P, and FREE-VARIABLES.
bibtex-compiler.lisp (file)
Compile a BST function LITERAL, which is a symbol, designating a BST function, or a list (a function body). Return five values: a Lisp BODY, LOOP-VARS, LOOP-VAR-TYPES, INIT-TYPES and SIDE-EFFECTS.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Build a Lisp form for calling the BST function named BST-NAME.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
interpreter.lisp (file)
interpreter.lisp (file)
interpreter.lisp (file)
interpreter.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bibtex-compiler.lisp (file)
Intern NAME into *BST-PACKAGE*, shadowing imported symbols.
bst-functions.lisp (file)
bst-functions.lisp (file)
interpreter.lisp (file)
bst-reader.lisp (file)
Build the form ‘(,@OPERATORS FORM1 FORM2) but if FORM1 and FORM2 are of this form, use the associativity of the operation to build ‘(,@OPERATORS FORMS...) instead.
lisp-form-builder.lisp (file)
Build a Lisp form equivalent to ‘(IF ,VAL-FORM ,THEN-FORM ,ELSE-FORM) but try to beautify the result by using COND, UNLESS, and WHEN, rather than IF in certain cases.
lisp-form-builder.lisp (file)
Build the form ‘(not ,@FORM) but simplify that if possible.
lisp-form-builder.lisp (file)
Build a Lisp form equivalent to ‘(progn ,@BODY). For the special case of an empty body, use ‘(values).
lisp-form-builder.lisp (file)
Build a Lisp body containing one form, ‘(values ,@RESULT-LIST). For zero or one values, make simpler constructions.
lisp-form-builder.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bibtex-runtime.lisp (file)
Return a Lisp form that computes the coercion of LISP-FORM from AVAILABLE-TYPE to REQUESTED-TYPE. As a secondary value, return the effective type.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
A debugging aid.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Compile a BST function LITERAL, which is a symbol, designating a BST function, or a list (a function body). Record the computation in the usual special variables.
bibtex-compiler.lisp (file)
Compress non-null whitespace to a single space.
bibtex-runtime.lisp (file)
Return a list of lists of equivalent keys.
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bst-reader.lisp (file)
bst-functions.lisp (file)
bst-reader.lisp (file)
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Pop all value forms off the stack, collect them in a list suitable for VALUES and push them again onto the stack. Return two values: a list of forms and a list of their types.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
TOKEN is a string, designating a TeX control sequence. Return a list of tokens that are the lowercase replacement.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Return the index of the first ‘and’ surrounded by non-null whitespace at brace level 0 in STRING, bounded by :START and :END. If none found, return nil.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Call FUNCTION for every token in the given TeX string (a string or a TeX-group). The second argument passed to FUNCTION is the bracelevel.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Read a TeX control sequence from *AUX-STREAM*. If the sequence is found in *AUX-FILE-COMMANDS*, call the associated function.
bibtex-runtime.lisp (file)
bst-reader.lisp (file)
bibtex-compiler.lisp (file)
Check whether NAME is the name of a BST function, whose type is one contained in TYPE-LIST. If so, return that function. Otherwise, signal an error and don’t return.
bst-functions.lisp (file)
Compute a bib entry where all crossrefs have been merged in.
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
Make a binding for all values delivered by MVFORM and push the bound variables onto *FORM-STACK*.
bibtex-compiler.lisp (file)
bst-reader.lisp (file)
bst-functions.lisp (file)
bibtex.lisp (file)
bibtex-runtime.lisp (file)
bibtex.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Return two lists that are collecting the two values of PROCEDURE, applied to the parallel elements in LISTS.
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Compute the maximum of the side-effects EFFECTSS.
bibtex-compiler.lisp (file)
Return a fresh bib entry that merges A and B.
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Build a Lisp body corresponding to the computation captured in *FORM-BINDINGS* and *FORM-STACK*. The Lisp body contains free variables corresponding to *BORROWED-VARIABLES*. Return five values: BODY, ARGUMENT-TYPES, RESULT-TYPES, SIDE-EFFECTS, and FREE-VARIABLES.
bibtex-compiler.lisp (file)
Build a Lisp form corresponding to the computation captured in *FORM-BINDINGS* and *FORM-STACK*. The Lisp form contains free variables corresponding to *BORROWED-VARIABLES*. Return five values: LISP-FORM, ARGUMENT-TYPES, RESULT-TYPES, SIDE-EFFECTS, and FREE-VARIABLES.
bibtex-compiler.lisp (file)
Build a DEFUN NAME form from *FORM-BINDINGS*, *BORROWED-VARIABLES* and *FORM-STACK*. If NAME is nil, build a LAMBDA form instead. Return four values: DEFUN-OR-LAMBDA-FORM, ARGUMENT-TYPES, RESULT-TYPES, SIDE-EFFECTS.
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
Parse the STRING containing TeX {groups} and \controlsequences. Return a list whose elements are characters, strings representing control sequences or sub-lists representing groups.
bibtex-runtime.lisp (file)
Pop a Lisp form delivering a single value of given TYPE from
*FORM-STACK*. If the stack is empty, borrow a variable instead if
:WHEN-EMPTY is :BORROW, or return nil,nil,nil,t if :WHEN-EMPTY is nil. If
:NEED-VARIABLE is nil, POP-FORM may return a side-effecting
single-value form (which should only be called once, in order). If
:NEED-VARIABLE is :IF-SIDE-EFFECTS, POP-FORM will introduce a variable
for side-effecting forms. Otherwise, POP-FORM will introduce a
variable for all non-atom forms. A variable will also be introduced
if the form uses one of the variables in the list :ASSIGNED-VARIABLES.
Return four values: the Lisp form,
the actual type of the delivered value, SIDE-EFFECTS, and EMPTY-P.
bibtex-compiler.lisp (file)
Pop a literal from *FORM-STACK*.
bibtex-compiler.lisp (file)
Like pop-form, but package the return values in a MVFORM object.
bibtex-compiler.lisp (file)
Print information on arity and side effects of BST-FUNCTION to STREAM as Lisp comments.
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Push MVFORM onto *FORM-STACK*.
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-program.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Return two values, the name and the value.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Read a list of field tokens from *BIB-STREAM* that define the field value string and return the concatenation of all field tokens, compressing non-null whitespace to a single space. If FIELD-P is non-nil, remove any leading or trailing whitespace.
bibtex-runtime.lisp (file)
Read an identifier from *BIB-STREAM*, returning it as a string, or nil if no identifier could be read.
bibtex-runtime.lisp (file)
Read a TeX control sequence from STREAM, assuming that the escape character (\) has already been read. In the case of a control word, trailing whitespace is flushed if :SKIP-WHITESPACE is non-nil.
bibtex-runtime.lisp (file)
Read TeX tokens from STREAM until a ‘}’ character or end-of-file is found. Return a list of the tokens, where characters represent ordinary characters, strings represent control sequences (without the escape character) and nested lists represent TeX groups.
bibtex-runtime.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
bst-functions.lisp (file)
VARIABLES is a list of strings or symbols to be removed from any mention in SIDE-EFFECTS. Return the resulting side effects.
bibtex-compiler.lisp (file)
Scan STREAM for the RIGHT-DELIMITER character, skipping balanced pairs of braces. Return a string of everything read, except for the right delimiter.
bibtex-runtime.lisp (file)
Read characters from STREAM until a character in the list DELIMITERS is found. Return a string of these characters, excluding the delimiter, which is left in the stream.
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
Non-nil if ARG is a list consisting of one symbol.
bst-reader.lisp (file)
Copy top-level comments; replace N leading % signs with N+1 semicola
bst-reader.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
bibtex-runtime.lisp (file)
Break a BibTeX name into name tokens.
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
TOKEN is a string, designating a TeX control sequence. Return a list of tokens that are the uppercase replacement.
bibtex-runtime.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-compiler.lisp (file)
bibtex-runtime.lisp (file)
Write the TeX GROUP to STREAM. If a control word occurs at the end of the group, terminate it with whitespace unless NO-TERMINATE-P is true.
bibtex-runtime.lisp (file)
Next: Internal conditions, Previous: Internal functions, Up: Internal definitions [Contents][Index]
bibtex-compiler.lisp (file)
automatically generated reader method
bst-functions.lisp (file)
automatically generated writer method
bst-functions.lisp (file)
automatically generated reader method
bst-functions.lisp (file)
automatically generated writer method
bst-functions.lisp (file)
automatically generated reader method
bst-functions.lisp (file)
automatically generated writer method
bst-functions.lisp (file)
automatically generated reader method
bst-functions.lisp (file)
automatically generated writer method
bst-functions.lisp (file)
automatically generated reader method
bst-functions.lisp (file)
automatically generated writer method
bst-functions.lisp (file)
Next: Internal structures, Previous: Internal generic functions, Up: Internal definitions [Contents][Index]
bibtex-compiler.lisp (file)
bst-compiler-warning (condition)
bibtex-compiler.lisp (file)
condition (condition)
bst-compiler-error (condition)
bst-compiler-error-message (method)
:message
bst-compiler-error-message (generic function)
Next: Internal classes, Previous: Internal conditions, Up: Internal definitions [Contents][Index]
bibtex-runtime.lisp (file)
structure-object (structure)
bib-entry-type (function)
(setf bib-entry-type) (function)
""
bib-entry-cite-key (function)
(setf bib-entry-cite-key) (function)
bib-entry-sort-key% (function)
(setf bib-entry-sort-key%) (function)
(make-hash-table :size 16 :test (quote equalp))
bib-entry-dict (function)
(setf bib-entry-dict) (function)
A multiple-value binding frame
bibtex-compiler.lisp (file)
structure-object (structure)
binding-variables (function)
(setf binding-variables) (function)
binding-mvform (function)
(setf binding-mvform) (function)
bst-reader.lisp (file)
structure-object (structure)
bst-command-function (function)
(setf bst-command-function) (function)
bst-command-args (function)
(setf bst-command-args) (function)
bst-functions.lisp (file)
structure-object (structure)
bst-function-name (function)
(setf bst-function-name) (function)
bst-function-type (function)
(setf bst-function-type) (function)
bst-function-ignore-redefinition-p (function)
(setf bst-function-ignore-redefinition-p) (function)
bst-function-lisp-name (function)
(setf bst-function-lisp-name) (function)
bst-function-argument-types (function)
(setf bst-function-argument-types) (function)
bst-function-result-types (function)
(setf bst-function-result-types) (function)
bst-function-pop-form-args (function)
(setf bst-function-pop-form-args) (function)
bst-function-lisp-form-maker (function)
(setf bst-function-lisp-form-maker) (function)
bibtex-compiler::null-side-effects
bst-function-side-effects (function)
(setf bst-function-side-effects) (function)
bst-function-setter-form-maker (function)
(setf bst-function-setter-form-maker) (function)
bst-function-defun-form (function)
(setf bst-function-defun-form) (function)
bst-function-lexical-p (function)
(setf bst-function-lexical-p) (function)
bst-function-constant-p (function)
(setf bst-function-constant-p) (function)
0
bst-function-num-assignments (function)
(setf bst-function-num-assignments) (function)
bst-function-assigned-value-form (function)
(setf bst-function-assigned-value-form) (function)
bst-function-value (function)
(setf bst-function-value) (function)
bst-function-body (function)
(setf bst-function-body) (function)
bst-function-setter (function)
(setf bst-function-setter) (function)
bibtex-runtime.lisp (file)
structure-object (structure)
foreign-character-name (function)
(setf foreign-character-name) (function)
foreign-character-uppercase (function)
(setf foreign-character-uppercase) (function)
foreign-character-lowercase (function)
(setf foreign-character-lowercase) (function)
foreign-character-purification (function)
(setf foreign-character-purification) (function)
A multiple-values-delivering form on the stack
bibtex-compiler.lisp (file)
structure-object (structure)
mvform-literal-p (function)
(setf mvform-literal-p) (function)
mvform-form (function)
(setf mvform-form) (function)
mvform-literal (function)
(setf mvform-literal) (function)
mvform-types (function)
(setf mvform-types) (function)
bibtex-compiler::null-side-effects
mvform-side-effects (function)
(setf mvform-side-effects) (function)
A typed Lisp variable
bibtex-compiler.lisp (file)
structure-object (structure)
variable-name (function)
(setf variable-name) (function)
variable-type (function)
(setf variable-type) (function)
Previous: Internal structures, Up: Internal definitions [Contents][Index]
A description of the side-effects of a computation
bst-functions.lisp (file)
standard-object (class)
:side-effects-p
side-effects-side-effects-p (generic function)
(setf side-effects-side-effects-p) (generic function)
:used-variables
side-effects-used-variables (generic function)
(setf side-effects-used-variables) (generic function)
:assigned-variables
side-effects-assigned-variables (generic function)
(setf side-effects-assigned-variables) (generic function)
:unconditionally-assigned-variables
side-effects-unconditionally-assigned-variables (generic function)
(setf side-effects-unconditionally-assigned-variables) (generic function)
:variables-used-before-assigned
side-effects-variables-used-before-assigned (generic function)
(setf side-effects-variables-used-before-assigned) (generic function)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | B F L |
---|
Jump to: | B F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | (
A B C D E F G H I L M N P Q R S T U V W |
---|
Jump to: | (
A B C D E F G H I L M N P Q R S T U V W |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
+
A B C D F I J L M N P R S T U V |
---|
Jump to: | *
+
A B C D F I J L M N P R S T U V |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | B C F K M P S V |
---|
Jump to: | B C F K M P S V |
---|