Buffers
Objects are manipulated in a collection of named buffers. Buffers are created by new and are deleted by delete-buffer. List-buffers lists all buffers and their properties. In general, buffers are named by arbitrary strings; predefined special purpose buffers have names that begin and end with asterisks, e.g., *clipped*.
Some buffers are associated with external files being edited; commands relating to files are described in files. Buffers can be displayed in windows; commands relating to windows are described in windows.
Each buffer has a write permission, which is either read-write, read-only, or immutable-read-only. Only read-write buffers can be modified. The write permission of a buffer can be changed using commands write-permission-on, write-permission-off, and write-permission-toggle unless its write permission is immutable-read-only.
Each buffer has an associated syntactic category. that controls the applicable language sensitivity. Buffers of mode TEXT support standard text editing and have no language sensitivity. Command coerce-buffer changes the syntactic mode of a buffer.
Each object consists of 0 or more phrases of unparsed text embedded within a parsed superstructure. With the exception of its unparsed constituents, the structure contained in a buffer of syntactic category p is a syntactically well-formed object of that syntactic category, and is prettyprinted accordingly. The unparsed phrases, known as text buffers, arise from textual editing operations. Upon textual entry or modification, a subphrase of the parsed structure becomes an unparsed text buffer. In general, text buffers are arbitrary substrings possibly containing syntax errors. Parsing of text buffers by a built-in syntax analyzer can be invoked manually or automatically, and is discussed in Parsing.
Commands for buffers are: