Common Lisp Package: GRAYLEX

README:

FUNCTION

Private

EOF-WATCHDOG-FILTER (STRING STREAM)

eof-watchdog-filter string stream => lambda position => position To be used as a CL-PPCRE filter; evaluates to function that takes one argument POSITION and signals LEXING-BUFFER-EOF if end of STRING to scan is reached and no more input is to come from STREAM.

GENERIC-FUNCTION

Public

FILL-BUFFER (BUFFERED-INPUT-STREAM)

Fill the input buffer

FLUSH-BUFFER (BUFFERED-INPUT-STREAM)

Flush the input buffer

LEXER-UNREAD-SEQUENCE (LEXER-INPUT-STREAM SEQ)

Unread a sequence by feeding it into the double buffer

STREAM-READ-CHAR (STREAM)

Read one character from the stream. Return either a character object, or the symbol :EOF if the stream is at end-of-file. Every subclass of FUNDAMENTAL-CHARACTER-INPUT-STREAM must define a method for this function.

STREAM-READ-TOKEN (LEXER-INPUT-STREAM &OPTIONAL PEEK)

Read lexical tokens from the input stream

Undocumented

STREAM-READ-SEQUENCE (STREAM SEQUENCE START END &ALLOW-OTHER-KEYS)

UNMATCHED-SEQUENCE (CONDITION)

UNMATCHED-SEQUENCE-COLUMN (CONDITION)

UNMATCHED-SEQUENCE-ROW (CONDITION)

SLOT-ACCESSOR

Public

BUFFERED-INPUT-BUFFER (OBJECT)

Wrapped input buffer

SETFBUFFERED-INPUT-BUFFER (NEW-VALUE OBJECT)

Wrapped input buffer

BUFFERED-INPUT-POSITION (OBJECT)

Reading position of the wrapped buffer

SETFBUFFERED-INPUT-POSITION (NEW-VALUE OBJECT)

Reading position of the wrapped buffer

BUFFERED-INPUT-SIZE (OBJECT)

Size of the input buffer

SETFBUFFERED-INPUT-SIZE (NEW-VALUE OBJECT)

Size of the input buffer

BUFFERED-STREAM (OBJECT)

Wrapped input stream that is to be buffered

LEXER-COLUMN (OBJECT)

Current column in lexer stream

SETFLEXER-COLUMN (NEW-VALUE OBJECT)

Current column in lexer stream

LEXER-DOUBLE-BUFFER (OBJECT)

Double buffer

SETFLEXER-DOUBLE-BUFFER (NEW-VALUE OBJECT)

Double buffer

LEXER-NON-STREAM-POSITION (OBJECT)

Position in unread sequence

SETFLEXER-NON-STREAM-POSITION (NEW-VALUE OBJECT)

Position in unread sequence

LEXER-ROW (OBJECT)

Current row in lexer stream

SETFLEXER-ROW (NEW-VALUE OBJECT)

Current row in lexer stream

LEXER-RULES (OBJECT)

List of regexp/keyword conses

SETFLEXER-RULES (NEW-VALUE OBJECT)

List of regexp/keyword conses

Private

BUFFERED-EOF-P (OBJECT)

Whether EOF in stream has been reached

SETFBUFFERED-EOF-P (NEW-VALUE OBJECT)

Whether EOF in stream has been reached

CLASS

Public

BUFFERED-INPUT-STREAM

Base class for buffered input streams. The default buffer size is 1024 bytes.

LEXER-INPUT-STREAM

Lexer input streams provide lexical analysis, tracking of input row and column and a dynamic second buffer for input tokens longer than the primary BUFFERED-INPUT-STREAM buffer size.

CONDITION

Public

UNMATCHED-LEXING-SEQUENCE

Condition signaling that no lexer rule matches.

Private

LEXING-BUFFER-EOF

Signal that a regex tries to scan beyond the internal buffer.