SYNOPSYS

     import "clive/cmd/wr/refs"

     const Dir = "/zx/lib/bib" ...  var BibTexOk = true func  Load(dir
     string) (*Bib, error) type Bib struct { ... }
         func Load(dir string) (*Bib, error) type Ref struct { ... }

     DESCRIPTION

     References for wr using the refer format

         A   Author's name
         B   Title of book containing item
         C   City of publication
         D   Date
         E   Editor(s) of book containing item
         F   Caption
         G   Government (NTIS) ordering number
         I   Issuer (publisher)
         J   Journal name
         K   Keys for searching
         N   Issue number
         O   Other information
         P   Page(s) of article
         R   Technical report number
         S   Series title
         T   Title
         V   Volume number
         W   Where the item can be found locally
         X   Annotations (not in all macro styles)

         Books
         %A  R. E. Griswold
         %A  J. F. Poage
         %A  I. P. Polonsky
         %T  The SNOBOL4 Programming Language
         %I  PRHALL
         %D  second edition 1971

         Journal article
         %A  M. A. Harrison
         %A  W. L. Ruzzo
         %A  J. D. Ullman
         %T  Protection in Operating Systems
         %J  CACM
         %V  19
         %N  8
         %P  461-471
         %D  AUG 1976
         %K  hru

         Article in conference proceedings
         %A  M. Bishop
         %A  L. Snyder
         %T  The Transfer of Information and Authority
         in  a Protection System
         %J  Proceedings of the 7th SOSP
         %P  45-54
         %D  1979

         Article in book
         %A  John B. Goodenough
         %T  A Survey of Program Testing Issues
         %B  Research Directions in Software Technology
         %E  Peter Wegner
         %I  MIT Press
         %P  316-340
         %D  1979

         Technical Reports
         %A  T. A. Budd
         %T  An APL Complier
         %R  University of Arizona Techical Report 81-17
         %C  Tucson, Arizona
         %D  1981

         PhD Thesis
         %A  Martin Brooks
         %T  Automatic Generation of Test Data for
         Recursive   Programs Having Simple Errors
         %I  PhD Thesis, Stanford University
         %D  1980

         Miscellaneous
         %F  BHS--
         %A  Timothy A. Budd
         %A  Robert Hess
         %A  Frederick G. Sayward
         %T  User's Guide for the EXPER Mutation Analysis system
         %O  (Yale university, memo)

     CONSTANTS

     const (         Dir  = "/zx/lib/bib" // default bib  dir  (should
     become /u/bib)         Keys = "ATBSJPRVNEFGICDOWX" )

     TYPES

     type Bib struct {         All []*Ref // once loaded, can be  used
     to  iterate over the references.          // contains filtered or
     unexported fields }
         A bib maps from words found in references to references

     func Load(dir string) (*Bib, error)
         Load the files at the given dir into a Bib set.

     func (b *Bib) Cite(keys ...string) *Ref
         Search bib for keys and return at most one reference

     func (b *Bib) Cites(keys ...string) []*Ref
         Search bib for keys and return all matching references

     func (b *Bib) WriteTo(w io.Writer)

     type Ref struct {         Keys map[rune][]string }
         A reference maps from  the  key  (eg.  'A')  to  values  (eg.
     authors)

     func (r *Ref) Authors() string
         return authors separated by "," and terminated with a "."

     func (r *Ref) Reference() []string
         Return text lines or sentences for a reference.  The  strings
     might be written
         in a single paragraph. The first two strings are usually  the
     title and
         author list, but that depends on the existence of such keys.

     func (r *Ref) String() string

     func (r *Ref) Title() string
         return title terminated in "."

     FUNCTIONS

     VARIABLES

     var BibTexOk = true
         When true, Load() reads .bib files containing "bib2ref ok" in
     the first line
         (with this line  being  discarded).  Parsing  of  the  bibtex
     entries is naive and
         assumes that each field is described in a single line.

     User's manual, 2nd ed. Section 2 Copyright © LSUB 2014-2016