The parser-combinators Reference Manual

This is the parser-combinators Reference Manual, version 0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Feb 15 05:09:31 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 parser-combinators

An implementation of parser combinators for Common Lisp

Maintainer

Jakub Higersberger <>

Author

Jakub Higersberger <>

License

BSD-style

Version

0

Dependencies
  • iterate (system).
  • alexandria (system).
Source

parser-combinators.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 parser-combinators/parser-combinators.asd

Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

ASDF Systems

parser-combinators.


3.1.2 parser-combinators/package.lisp

Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Packages

3.1.3 parser-combinators/queue.lisp

Dependency

package.lisp (file).

Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Internals

3.1.4 parser-combinators/contexts.lisp

Dependency

package.lisp (file).

Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

3.1.5 parser-combinators/lazy.lisp

Dependency

package.lisp (file).

Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Internals

3.1.6 parser-combinators/cache.lisp

Dependency

package.lisp (file).

Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

*parser-cache* (special variable).


3.1.7 parser-combinators/basic.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

3.1.8 parser-combinators/ensure-parser.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

3.1.9 parser-combinators/combinators.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

3.1.10 parser-combinators/primitives.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

cut? (function).


3.1.11 parser-combinators/parsers.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

3.1.12 parser-combinators/memoize.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface

memoize? (function).


3.1.13 parser-combinators/recurse.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface

curtail? (macro).

Internals

*curtail* (special variable).


3.1.14 parser-combinators/greedy.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface
Internals

3.1.15 parser-combinators/token-parsers.lisp

Dependencies
Source

parser-combinators.asd.

Parent Component

parser-combinators (system).

Public Interface

4 Packages

Packages are listed by definition order.


4.1 parser-combinators

Source

package.lisp.

Use List
  • alexandria.
  • common-lisp.
  • iterate.
Used By List

parser-combinators-debug.

Public Interface
Internals

4.2 parser-combinators-debug

Source

package.lisp.

Use List

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *default-context-cache*
Package

parser-combinators.

Source

contexts.lisp.


5.1.2 Macros

Macro: cached-arguments? (parser label &rest arguments)

Parser modifier macro: cache parser as label with argument list equal under equal in global cache.

Package

parser-combinators.

Source

cache.lisp.

Macro: cached? (parser label)

Parser modifier macro: cache parser as label in global cache.

Package

parser-combinators.

Source

cache.lisp.

Macro: copy-context (context class &rest additional-arguments)
Package

parser-combinators.

Source

contexts.lisp.

Macro: curtail? (name &body body)

Parser modifier: add recursion curtailing to PARSER, naming the curtailed parser NAME. Left recursive parser parser will only be nested once per remaining length of the input string. Note: this is only necessary for a limited class of left recursive parsers. Non-left recursive parsers should be implemented using just ‘named?‘, and most left-recursive parsers using that in combination with ‘chainl1?‘. Also see ‘expression?‘.

Package

parser-combinators.

Source

recurse.lisp.

Macro: def-cached-arg-parser (name arguments &body body)

Define cached parser with arguments.

Package

parser-combinators.

Source

cache.lisp.

Macro: def-cached-parser (name &body body)

Define cached parser of no arguments.

Package

parser-combinators.

Source

cache.lisp.

Macro: define-oneshot-result (inp is-unread &body body)
Package

parser-combinators.

Source

ensure-parser.lisp.

Macro: delayed? (parser)

Parser modifier macro: parser will be built when called. This is necessary for left-recursive parsers.

Package

parser-combinators.

Source

primitives.lisp.

Macro: mdo (&body spec)

Combinator: use do-like notation to sequentially link parsers. (<- name parser) allows capturing of return values.

Package

parser-combinators.

Source

basic.lisp.

Macro: mdo* (&body spec)

Like NAMED-SEQ*, but with MDO syntax: the last element must be a parser.

Package

parser-combinators.

Source

greedy.lisp.

Macro: named-seq* (&rest parser-descriptions)

Non-backtracking parser: This is similar to MDO, except that constructed parsers cannot depend on the results of previous ones and the final form is not used as a parser, but is automatically used to construct the result. All names bound using the (<- name parser) construct are only available in that final form.

This parser generator is useful when full generality of MDO is not necessary, as it is implemented non-recursively and has better memory performance.

Package

parser-combinators.

Source

greedy.lisp.

Macro: named-seq? (&rest parser-descriptions)

Parser: This is similar to MDO, except that constructed parsers cannot depend on the results of previous ones and the final form is not used as a parser, but is automatically used to construct the result. All names bound using the (<- name parser) construct are only available in that final form.

This parser generator is useful when full generality of MDO is not necessary, as it is implemented non-recursively and has better memory performance.

Package

parser-combinators.

Source

parsers.lisp.

Macro: named? (name &body body)

Parser macro: give BODY a NAME, so it can refer to itself without causing generator recursion.

Package

parser-combinators.

Source

parsers.lisp.


5.1.3 Ordinary functions

Function: alphanum? ()

Parser: accept alphanumeric character

Package

parser-combinators.

Source

token-parsers.lisp.

Function: atleast* (parser count)

Non-backtracking parser: accept as many as possible and at least count of parser

Package

parser-combinators.

Source

greedy.lisp.

Function: atleast? (parser count)

Parser: accept at least count expressions accepted by parser

Package

parser-combinators.

Source

parsers.lisp.

Function: atmost* (parser count)

Non-backtracking parser: accept as many as possible but at most count of parser

Package

parser-combinators.

Source

greedy.lisp.

Function: atmost? (parser count)

Parser: accept at most count expressions accepted by parser

Package

parser-combinators.

Source

parsers.lisp.

Function: before* (p q)

Non-backtracking parser: Find a p before q, doesn’t consume q.

Package

parser-combinators.

Source

greedy.lisp.

Function: between* (parser min max &optional result-type)

Non-backtracking parser: find the first, longest chain of expression accepted by parser of length between min and max

Package

parser-combinators.

Source

greedy.lisp.

Function: between? (parser min max &optional result-type)

Parser: accept between min and max expressions accepted by parser

Package

parser-combinators.

Source

parsers.lisp.

Function: bracket? (parser-open parser-center parser-close)

Parser: accept parser-center bracketed by parser-open and parser-close

Package

parser-combinators.

Source

parsers.lisp.

Function: breadth? (parser min max &optional result-type)

Parser: like between? but breadth first (shortest matches first)

Package

parser-combinators.

Source

parsers.lisp.

Function: chainl* (p op v)

Non-backtracking parser: like chainl1*, but will return v if no p can be parsed

Package

parser-combinators.

Source

greedy.lisp.

Function: chainl1* (p op)

Non-backtracking parser: accept as many as possible, but at least one of p, reduced by result of op with left associativity

Package

parser-combinators.

Source

greedy.lisp.

Function: chainl1? (p op)

Parser: accept one or more p reduced by result of op with left associativity

Package

parser-combinators.

Source

parsers.lisp.

Function: chainl? (p op v)

Parser: like chainl1?, but will return v if no p can be parsed

Package

parser-combinators.

Source

parsers.lisp.

Function: chainr* (p op v)

Non-backtracking parser: like chainr1*, but will return v if no p can be parsed

Package

parser-combinators.

Source

greedy.lisp.

Function: chainr1* (p op)

Non-backtracking parser: accept as many as possible, but at least one of p, reduced by result of op with right associativity

Package

parser-combinators.

Source

greedy.lisp.

Function: chainr1? (p op)

Parser: accept one or more p reduced by result of op with right associativity

Package

parser-combinators.

Source

parsers.lisp.

Function: chainr? (p op v)

Parser: like chainr1?, but will return v if no p can be parsed

Package

parser-combinators.

Source

parsers.lisp.

Function: char? (character)

Parser: accept token eql to argument

Package

parser-combinators.

Source

ensure-parser.lisp.

Function: choice (parser1 parser2)

Combinator: all alternatives from two parsers

Package

parser-combinators.

Source

combinators.lisp.

Function: choice1 (parser1 parser2)

Combinator: one alternative from two parsers

Package

parser-combinators.

Source

combinators.lisp.

Function: choices (&rest parser-list)

Combinator: all alternatives from multiple parsers

Package

parser-combinators.

Source

combinators.lisp.

Function: choices1 (&rest parser-list)

Combinator: one alternative from multiple parsers

Package

parser-combinators.

Source

combinators.lisp.

Function: chook? (result p)

Parser: return result if p matches

Package

parser-combinators.

Source

parsers.lisp.

Function: chookahead? (result p)

Parser: return result if p matches, but do no advance

Package

parser-combinators.

Source

parsers.lisp.

Function: context? ()

Parser: return current context without consuming any input

Package

parser-combinators.

Source

parsers.lisp.

Function: current-result (parse-result)
Package

parser-combinators.

Source

basic.lisp.

Function: cut-tag? (parser format-control &rest format-arguments)

Parser modifier: add formatted string to tag stack for given parser, suppressing all lower level parsers.

Package

parser-combinators.

Source

parsers.lisp.

Function: digit? ()

Parser: accept digit character

Package

parser-combinators.

Source

token-parsers.lisp.

Function: drop-parser-cache ()
Package

parser-combinators.

Source

cache.lisp.

Function: end? ()

Parser: matches end of input, returns t

Package

parser-combinators.

Source

parsers.lisp.

Function: except? (p q)

Parser: match p unless q matches.

Package

parser-combinators.

Source

parsers.lisp.

Function: expression* (term operators &optional bracket-left bracket-right)

Non-backtracking parser: Reduce a sequence of terms with unary/binary operators with precedence. OPERATORS is a list of (op-parser :left/:right/:unary), where OP-PARSER is a parser consuming an operator and returning a reduction function. Highest precedence first.

Package

parser-combinators.

Source

greedy.lisp.

Function: expression? (term operators &optional bracket-left bracket-right)

Parser: Reduce a sequence of terms with unary/binary operators with precedence.
OPERATORS is a list of (op-parser :left/:right/:unary), where OP-PARSER is a parser consuming an operator and returning a reduction function. Highest precedence first.

Package

parser-combinators.

Source

parsers.lisp.

Function: find* (q)

Non-backtracking parser: Find first q

Package

parser-combinators.

Source

greedy.lisp.

Function: find-after* (p q)

Non-backtracking parser: Find first q after some sequence of p.

Package

parser-combinators.

Source

greedy.lisp.

Function: find-after-collect* (p q &optional result-type)

Non-backtracking parser: Find first q after some sequence of p. Return cons of list of p-results and q

Package

parser-combinators.

Source

greedy.lisp.

Function: find-after-collect? (p q &optional result-type)

Parser: Find q after some sequence of p, earliest match first. Return cons of list of p-results and q

Package

parser-combinators.

Source

parsers.lisp.

Function: find-after? (p q)

Parser: Find q after some sequence of p, earliest matches first.

Package

parser-combinators.

Source

parsers.lisp.

Function: find-before* (p q &optional result-type)

Non-backtracking parser: Find a sequence of p terminated by q, doesn’t consume q.

Package

parser-combinators.

Source

greedy.lisp.

Function: find-before-token* (p token &key result-type test)

Non-backtracking parser: Find a sequence of p terminated by single token q, which is not consumed.

Package

parser-combinators.

Source

greedy.lisp.

Function: find-before? (p q &optional result-type)

Parser: Find a sequence of p terminated by q, doesn’t consume q.

Package

parser-combinators.

Source

parsers.lisp.

Function: find? (q)

Parser: Find q, earliest match first.

Package

parser-combinators.

Source

parsers.lisp.

Function: force? (parser)

Parser modifier: fully realize result from parser

Package

parser-combinators.

Source

primitives.lisp.

Function: gather-before-token* (token &key result-type test accept-end accept-empty)

Non-backtracking parser: Find a sequence of tokens terminated by single token, which is not consumed.

Package

parser-combinators.

Source

greedy.lisp.

Function: gather-if-not* (predicate &key result-type accept-end accept-empty)

Non-backtracking parser: Find a sequence of tokens terminated by one for which predicate returns true, which is not consumed.

Package

parser-combinators.

Source

greedy.lisp.

Function: gather-results (parse-result)

Obtain all of the results within PARSE-RESULT, starting with the current one, potentially realising the non-realised ones in the backing store.

Package

parser-combinators.

Source

basic.lisp.

Function: hook? (function p)

Parser: apply function to result of p

Package

parser-combinators.

Source

parsers.lisp.

Function: int* (&optional radix)

Non-backtracking parser: accept integer, consuming as many digits as possible

Package

parser-combinators.

Source

greedy.lisp.

Function: int? (&optional radix)

Parser: accept an integer, return as integer.

Package

parser-combinators.

Source

token-parsers.lisp.

Function: item ()

Primitive parser: consume item from input and return it.

Package

parser-combinators.

Source

primitives.lisp.

Function: letter? ()

Parser: accept alphabetic character

Package

parser-combinators.

Source

token-parsers.lisp.

Function: lower? ()

Parser: accept lowercase character

Package

parser-combinators.

Source

token-parsers.lisp.

Function: make-parse-result (continuation)

Document all potential results of CONTINUATION as a PARSE-RESULT object.

Package

parser-combinators.

Source

basic.lisp.

Function: many* (parser)

Non-backtracking parser: collect as many of first result of parser as possible

Package

parser-combinators.

Source

greedy.lisp.

Function: many1* (parser)

Non-backtracking parser: accept as many as possible, and at least one, of parser

Package

parser-combinators.

Source

greedy.lisp.

Function: many1? (parser)

Parser: accept one or more of expression accepted by parser

Package

parser-combinators.

Source

parsers.lisp.

Function: many? (parser)

Parser: accept zero or more repetitions of expression accepted by parser

Package

parser-combinators.

Source

parsers.lisp.

Function: memoize? (parser &optional label)

Parser modifier: memoizes the parser, which if called again at a given position it will return a result immediately. LABEL is used for memoization key, use explicit one if the parser is used in multiple places.

Package

parser-combinators.

Source

memoize.lisp.

Function: nat* (&optional radix)

Non-backtracking parser: accept natural number, consuming as many digits as possible

Package

parser-combinators.

Source

greedy.lisp.

Function: nat? (&optional radix)

Parser: accept natural numbers

Package

parser-combinators.

Source

token-parsers.lisp.

Function: nested? (p &key min max result-type bracket-left bracket-right)

Parser: parse a sequence of p, like between?, but with p possibly nested in brackets.

Package

parser-combinators.

Source

parsers.lisp.

Function: next-result (parse-result)
Package

parser-combinators.

Source

basic.lisp.

Function: opt* (p)

Non-backtracking parser: result of p or nil

Package

parser-combinators.

Source

greedy.lisp.

Function: opt? (p)

Parser: result of p or nil

Package

parser-combinators.

Source

parsers.lisp.

Function: parse-sequence (parser sequence)

Parse a sequence (where a sequence is any object which implementes CONTEXT interface), return a PARSE-RESULT object. All returned values may share structure.

Package

parser-combinators.

Source

basic.lisp.

Function: parse-sequence* (parser sequence &key complete)

Parse a sequence (where a sequence is any object which implementes CONTEXT interface) and
return as multiple values the first result, whether the parse was incomplete, whether it was successful, the context front and the position frequency table. The context front is an object containing the context which most advances the input sequence and a list of lists of parser
tags which were current at that point, which allows approximate error reporting. It will be
NIL if the parse is successful and complete. The position frequency table serves profiling needs and maps sequence positions to the number of times a new context was created at that position – which should provide a rough hint at how problematic that particular spot is.

If COMPLETE is T, return the first parse to consume the input
completely. If COMPLETE is :FIRST return the first result only when it the whole input was consumed, or immediately return nil.

Package

parser-combinators.

Source

basic.lisp.

Function: parse-string (parser string)

Synonym for parse-sequence. Parse a string, return a PARSE-RESULT object. All returned values may share structure.

Package

parser-combinators.

Source

basic.lisp.

Function: parse-string* (parser string &key complete)

Synonym for parse-sequence*. Parse a string and return as multiple values the first result, whether the parse was incomplete, whether it was successful, the context front, and the
position frequency table. The context front is an object containing the context which most advances the input sequence and a list of lists of parser tags which were current at that
point, which allows approximate error reporting. It will be NIL if the parse is successful and complete. The position frequency table serves profiling needs and maps sequence positions to the number of times a new context was created at that position – which should provide a rough hint at how problematic that particular spot is.

If COMPLETE is T, return the first parse to consume the input
completely. If COMPLETE is :FIRST return the first result only when it the whole input was consumed, or immediately return nil.

Package

parser-combinators.

Source

basic.lisp.

Function: pure-word* ()

Parser: accept a string of alphabetic characters

Package

parser-combinators.

Source

greedy.lisp.

Function: pure-word? ()

Parser: accept a string of alphabetic characters

Package

parser-combinators.

Source

token-parsers.lisp.

Function: quoted? (&key quote-char left-quote-char right-quote-char escape-char include-quotes)

Parser: accept a string delimited with quote-char, possibly escaped by escape-char, possibly including quotation chars.

Package

parser-combinators.

Source

token-parsers.lisp.

Function: result (v)

Primitive parser: return v, leaves input unmodified.

Package

parser-combinators.

Source

primitives.lisp.

Function: sat (predicate)

Parser: return a token satisfying a predicate.

Package

parser-combinators.

Source

ensure-parser.lisp.

Function: sepby* (parser-item parser-separator)

Non-backtracking parser: accept as many as possible of parser-item separated by parser-separator.

Package

parser-combinators.

Source

greedy.lisp.

Function: sepby1* (parser-item parser-separator)

Non-backtracking parser: accept as many as possible of parser-item separated by parser-separator, but at least one.

Package

parser-combinators.

Source

greedy.lisp.

Function: sepby1-cons? (p op)

Parser: as sepby1, but returns a list of a result of p and pairs (op p). Mainly a component parser for chains

Package

parser-combinators.

Source

parsers.lisp.

Function: sepby1? (parser-item parser-separator)

Parser: accept at least one of parser-item separated by parser-separator

Package

parser-combinators.

Source

parsers.lisp.

Function: sepby? (parser-item parser-separator)

Parser: accept zero or more of parser-item separated by parser-separator

Package

parser-combinators.

Source

parsers.lisp.

Function: seq-list* (&rest parsers)

Non-backtracking parser: Return a list of result of PARSERS.

Package

parser-combinators.

Source

greedy.lisp.

Function: seq-list? (&rest parsers)

Parser: Return a list of results of PARSERS.

Package

parser-combinators.

Source

parsers.lisp.

Function: string? (sequence &key test result-type)

Non-backtracking parser: accept a sequence of elements with equality tested by TEST.

Package

parser-combinators.

Source

ensure-parser.lisp.

Function: tag? (parser format-control &rest format-arguments)

Parser modifier: add formatted string to tag stack for given parser.

Package

parser-combinators.

Source

parsers.lisp.

Function: times? (parser count)

Parser: accept exactly count expressions accepted by parser

Package

parser-combinators.

Source

parsers.lisp.

Function: upper? ()

Parser: accept uppercase character

Package

parser-combinators.

Source

token-parsers.lisp.

Function: validate? (p validation-function &optional pre-hook)

Parser: call validation-function on result of (funcall pre-hook p), fail if it returns nil, otherwhise return it as a result

Package

parser-combinators.

Source

parsers.lisp.

Function: whitespace* (&key result-type accept-empty)

Non-backtracking parser: accept a sequence of whitespace characters.

Package

parser-combinators.

Source

greedy.lisp.

Function: whitespace? (&key result-type accept-empty)

Parser: accept a sequence of whitespace characters.

Package

parser-combinators.

Source

token-parsers.lisp.

Function: word* ()

Parser: accept a string of alphanumeric characters

Package

parser-combinators.

Source

greedy.lisp.

Function: word? ()

Parser: accept a string of alphanumeric characters

Package

parser-combinators.

Source

token-parsers.lisp.

Function: zero ()

Primitive parser: parsing failure

Package

parser-combinators.

Source

primitives.lisp.


5.1.4 Generic functions

Generic Reader: common-of (object)
Package

parser-combinators.

Methods
Reader Method: common-of ((context context))

automatically generated reader method

Source

contexts.lisp.

Target Slot

common.

Generic Writer: (setf common-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf common-of) ((context context))

automatically generated writer method

Source

contexts.lisp.

Target Slot

common.

Generic Function: context-equal (context1 context2)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: context-equal ((context1 context) (context2 context))
Generic Function: context-interval (context1 context2 &optional result-type)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: context-interval ((context1 vector-context) (context2 end-context) &optional result-type)
Method: context-interval ((context1 vector-context) (context2 vector-context) &optional result-type)
Method: context-interval :before ((context1 context) (context2 context) &optional result-type)
Method: context-interval ((context1 context) (context2 context) &optional result-type)
Generic Reader: context-of (object)
Package

parser-combinators.

Methods
Reader Method: context-of ((context-front context-front))

automatically generated reader method

Source

contexts.lisp.

Target Slot

context.

Generic Writer: (setf context-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf context-of) ((context-front context-front))

automatically generated writer method

Source

contexts.lisp.

Target Slot

context.

Generic Function: end-context-p (context)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: end-context-p (context)
Method: end-context-p ((context end-context))
Generic Function: gather-if-not*-using-context (input predicate accept-end accept-empty)

Parser gather-if-not* specialized on context type

Package

parser-combinators.

Source

greedy.lisp.

Methods
Method: gather-if-not*-using-context ((input end-context) predicate accept-end accept-empty)
Method: gather-if-not*-using-context ((input context) predicate accept-end accept-empty)
Method: gather-if-not*-using-context ((input vector-context) predicate accept-end accept-empty)
Generic Function: make-context (sequence &optional cache-type)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: make-context ((vector vector) &optional cache-type)
Method: make-context ((list list) &optional cache-type)
Generic Function: make-context-at-position (base-context position)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: make-context-at-position ((base-context vector-context) position)
Method: make-context-at-position ((base-context list-context) position)
Method: make-context-at-position :around ((context context) position)
Generic Function: position-of (object)
Package

parser-combinators.

Methods
Method: position-of ((context-front context-front))
Source

contexts.lisp.

Reader Method: position-of ((context context))

automatically generated reader method

Source

contexts.lisp.

Target Slot

position.

Generic Writer: (setf position-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf position-of) ((context context))

automatically generated writer method

Source

contexts.lisp.

Target Slot

position.

Generic Function: storage-of (object)
Package

parser-combinators.

Methods
Reader Method: storage-of ((parse-result-store parse-result-store))

automatically generated reader method

Source

basic.lisp.

Target Slot

storage.

Method: storage-of ((context vector-context))
Source

contexts.lisp.

Reader Method: storage-of ((vector-context-common vector-context-common))

automatically generated reader method

Source

contexts.lisp.

Target Slot

storage.

Reader Method: storage-of ((list-context list-context))

automatically generated reader method

Source

contexts.lisp.

Target Slot

storage.

Generic Writer: (setf storage-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf storage-of) ((parse-result-store parse-result-store))

automatically generated writer method

Source

basic.lisp.

Target Slot

storage.

Writer Method: (setf storage-of) ((vector-context-common vector-context-common))

automatically generated writer method

Source

contexts.lisp.

Target Slot

storage.

Writer Method: (setf storage-of) ((list-context list-context))

automatically generated writer method

Source

contexts.lisp.

Target Slot

storage.

Generic Function: string?-using-context (input vector test)

Implementation of string? specialized on context type. Returns as multiple values result and new context or nil on failure.

Package

parser-combinators.

Source

ensure-parser.lisp.

Methods
Method: string?-using-context ((input context) vector test)
Method: string?-using-context ((input vector-context) vector test)
Generic Reader: suffix-of (object)
Package

parser-combinators.

Methods
Reader Method: suffix-of ((parser-possibility parser-possibility))

automatically generated reader method

Source

basic.lisp.

Target Slot

suffix.

Generic Writer: (setf suffix-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf suffix-of) ((parser-possibility parser-possibility))

automatically generated writer method

Source

basic.lisp.

Target Slot

suffix.

Generic Reader: tags-of (object)
Package

parser-combinators.

Methods
Reader Method: tags-of ((context-front context-front))

automatically generated reader method

Source

contexts.lisp.

Target Slot

tags.

Generic Writer: (setf tags-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf tags-of) ((context-front context-front))

automatically generated writer method

Source

contexts.lisp.

Target Slot

tags.

Generic Reader: tree-of (object)
Package

parser-combinators.

Methods
Reader Method: tree-of ((parser-possibility parser-possibility))

automatically generated reader method

Source

basic.lisp.

Target Slot

tree.

Generic Writer: (setf tree-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf tree-of) ((parser-possibility parser-possibility))

automatically generated writer method

Source

basic.lisp.

Target Slot

tree.


5.1.5 Standalone methods

Method: initialize-instance :around ((context context) &rest initargs &key &allow-other-keys)
Source

contexts.lisp.


5.1.6 Classes

Class: end-context
Package

parser-combinators.

Source

contexts.lisp.

Direct superclasses

context.

Direct methods
Class: parser-possibility
Package

parser-combinators.

Source

basic.lisp.

Direct subclasses

result-node.

Direct methods
Direct slots
Slot: tree
Initargs

:tree

Readers

tree-of.

Writers

(setf tree-of).

Slot: suffix
Initargs

:suffix

Readers

suffix-of.

Writers

(setf suffix-of).

Class: vector-context
Package

parser-combinators.

Source

contexts.lisp.

Direct superclasses

context.

Direct methods

5.2 Internals


5.2.1 Special variables

Special Variable: *curtail*
Package

parser-combinators.

Source

recurse.lisp.

Special Variable: *cut-tag*
Package

parser-combinators.

Source

parsers.lisp.

Special Variable: *memo-table*
Package

parser-combinators.

Source

basic.lisp.

Special Variable: *parser-cache*
Package

parser-combinators.

Source

cache.lisp.

Special Variable: *tag-stack*
Package

parser-combinators.

Source

contexts.lisp.


5.2.2 Macros

Macro: %named-seq? (sequence-parser &rest parser-descriptions)
Package

parser-combinators.

Source

parsers.lisp.

Macro: delay (&body body)
Package

parser-combinators.

Source

lazy.lisp.

Macro: with-parsers ((&rest parsers) &body body)
Package

parser-combinators.

Source

ensure-parser.lisp.


5.2.3 Ordinary functions

Function: bind (parser parser-generator)
Package

parser-combinators.

Source

combinators.lisp.

Function: char-equal? (character)

Parser: accept token char-equal to argument

Package

parser-combinators.

Source

ensure-parser.lisp.

Function: copy-parse-result (parse-result)
Package

parser-combinators.

Source

basic.lisp.

Function: cut? (parser)

Parser modifier: discard all results but the first

Package

parser-combinators.

Source

primitives.lisp.

Function: do-notation (monad-sequence bind ignore-gensym)
Package

parser-combinators.

Source

basic.lisp.

Function: ensure-parser (parser)
Package

parser-combinators.

Source

ensure-parser.lisp.

Function: execute-bind (inp parser parser-generator)
Package

parser-combinators.

Source

combinators.lisp.

Function: execute-choice (inp parser1 parser2)
Package

parser-combinators.

Source

combinators.lisp.

Function: force (promise)
Package

parser-combinators.

Source

lazy.lisp.

Function: gather-if* (predicate &key result-type accept-end accept-empty)

Non-backtracking parser: Find a sequence of tokens for which predicate returns true.

Package

parser-combinators.

Source

greedy.lisp.

Function: gather-nodes (node)
Package

parser-combinators.

Source

parsers.lisp.

Function: make-cache (cache-type length)
Package

parser-combinators.

Source

contexts.lisp.

Function: make-queue (&optional initial-contents)
Package

parser-combinators.

Source

queue.lisp.

Function: note-position (context posn)
Package

parser-combinators.

Source

contexts.lisp.

Function: queue-to-list (queue)
Package

parser-combinators.

Source

queue.lisp.

Function: times* (parser count)

Non-backtracking parser: accept exactly count expressions accepted by parser, without backtracking.

Package

parser-combinators.

Source

greedy.lisp.


5.2.4 Generic functions

Generic Function: cache-of (object)
Package

parser-combinators.

Methods
Method: cache-of ((context context))
Source

contexts.lisp.

Reader Method: cache-of ((context-common context-common))

automatically generated reader method

Source

contexts.lisp.

Target Slot

cache.

Generic Writer: (setf cache-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf cache-of) ((context-common context-common))

automatically generated writer method

Source

contexts.lisp.

Target Slot

cache.

Generic Function: context-greater (context1 context2)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: context-greater ((context1 context) (context2 context))
Generic Function: context-next (context)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: context-next ((context end-context))
Method: context-next ((context context))
Generic Function: context-peek (context)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: context-peek ((context vector-context))
Method: context-peek ((context list-context))
Method: context-peek ((context end-context))
Method: context-peek :after ((context context))
Generic Reader: continuation-of (object)
Package

parser-combinators.

Methods
Reader Method: continuation-of ((parse-result-store parse-result-store))

automatically generated reader method

Source

basic.lisp.

Target Slot

continuation.

Generic Writer: (setf continuation-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf continuation-of) ((parse-result-store parse-result-store))

automatically generated writer method

Source

basic.lisp.

Target Slot

continuation.

Generic Reader: count-of (object)
Package

parser-combinators.

Methods
Reader Method: count-of ((result-node result-node))

automatically generated reader method

Source

parsers.lisp.

Target Slot

count.

Generic Writer: (setf count-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf count-of) ((result-node result-node))

automatically generated writer method

Source

parsers.lisp.

Target Slot

count.

Generic Reader: counter-of (object)
Package

parser-combinators.

Methods
Reader Method: counter-of ((parse-result-store parse-result-store))

automatically generated reader method

Source

basic.lisp.

Target Slot

counter.

Generic Writer: (setf counter-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf counter-of) ((parse-result-store parse-result-store))

automatically generated writer method

Source

basic.lisp.

Target Slot

counter.

Generic Reader: current-of (object)
Package

parser-combinators.

Methods
Reader Method: current-of ((parse-result parse-result))

automatically generated reader method

Source

basic.lisp.

Target Slot

current.

Generic Writer: (setf current-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf current-of) ((parse-result parse-result))

automatically generated writer method

Source

basic.lisp.

Target Slot

current.

Generic Reader: emit-of (object)
Package

parser-combinators.

Methods
Reader Method: emit-of ((result-node result-node))

automatically generated reader method

Source

parsers.lisp.

Target Slot

emit.

Generic Writer: (setf emit-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf emit-of) ((result-node result-node))

automatically generated writer method

Source

parsers.lisp.

Target Slot

emit.

Generic Function: empty-p (collection)

True if collection is empty

Package

parser-combinators.

Source

queue.lisp.

Methods
Method: empty-p ((queue queue))
Generic Function: front-of (object)
Package

parser-combinators.

Methods
Method: front-of ((context context))
Source

contexts.lisp.

Reader Method: front-of ((context-common context-common))

automatically generated reader method

Source

contexts.lisp.

Target Slot

front.

Generic Function: (setf front-of) (object)
Package

parser-combinators.

Methods
Method: (setf front-of) ((context context))
Source

contexts.lisp.

Writer Method: (setf front-of) ((context-common context-common))

automatically generated writer method

Source

contexts.lisp.

Target Slot

front.

Generic Reader: head-of (object)
Package

parser-combinators.

Methods
Reader Method: head-of ((queue queue))

automatically generated reader method

Source

queue.lisp.

Target Slot

head.

Generic Writer: (setf head-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf head-of) ((queue queue))

automatically generated writer method

Source

queue.lisp.

Target Slot

head.

Generic Function: length-of (object)
Package

parser-combinators.

Methods
Method: length-of ((context context))
Source

contexts.lisp.

Reader Method: length-of ((context-common context-common))

automatically generated reader method

Source

contexts.lisp.

Target Slot

length.

Generic Writer: (setf length-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf length-of) ((context-common context-common))

automatically generated writer method

Source

contexts.lisp.

Target Slot

length.

Generic Function: nth-result (n parse-result-store)

Attempt to realise all results within PARSE-RESULT-STORE upto and including the N-th one, and return that upon success. Otherwise return NIL.

Package

parser-combinators.

Source

basic.lisp.

Methods
Method: nth-result (n (parse-result-store null))
Method: nth-result (n (parse-result parse-result))
Method: nth-result (n (parse-result-store parse-result-store))
Generic Function: peek (collection)

Return top element without removing it

Package

parser-combinators.

Source

queue.lisp.

Methods
Method: peek ((queue queue))
Generic Function: peek-back (collection)

Return value from the back without removing it

Package

parser-combinators.

Source

queue.lisp.

Methods
Method: peek-back ((queue queue))
Generic Function: pop-front (collection)

Remove and return value from the front

Package

parser-combinators.

Source

queue.lisp.

Methods
Method: pop-front ((queue queue))
Generic Function: push-back (collection value)

Push value to the back

Package

parser-combinators.

Source

queue.lisp.

Methods
Method: push-back ((queue queue) value)
Generic Function: push-front (collection value)

Push value to the front

Package

parser-combinators.

Source

queue.lisp.

Methods
Method: push-front ((queue queue) value)
Generic Function: seen-positions-of (context)
Package

parser-combinators.

Methods
Method: seen-positions-of ((context context))
Source

contexts.lisp.

Generic Reader: seen-postions-of (object)
Package

parser-combinators.

Methods
Reader Method: seen-postions-of ((context-common context-common))

automatically generated reader method

Source

contexts.lisp.

Target Slot

seen-postions.

Generic Writer: (setf seen-postions-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf seen-postions-of) ((context-common context-common))

automatically generated writer method

Source

contexts.lisp.

Target Slot

seen-postions.

Generic Reader: size-of (object)
Package

parser-combinators.

Methods
Reader Method: size-of ((queue queue))

automatically generated reader method

Source

queue.lisp.

Target Slot

size.

Generic Writer: (setf size-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf size-of) ((queue queue))

automatically generated writer method

Source

queue.lisp.

Target Slot

size.

Generic Reader: store-of (object)
Package

parser-combinators.

Methods
Reader Method: store-of ((parse-result parse-result))

automatically generated reader method

Source

basic.lisp.

Target Slot

store.

Generic Writer: (setf store-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf store-of) ((parse-result parse-result))

automatically generated writer method

Source

basic.lisp.

Target Slot

store.

Generic Reader: suffix-continuation-of (object)
Package

parser-combinators.

Methods
Reader Method: suffix-continuation-of ((result-node result-node))

automatically generated reader method

Source

parsers.lisp.

Target Slot

suffix-continuation.

Generic Writer: (setf suffix-continuation-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf suffix-continuation-of) ((result-node result-node))

automatically generated writer method

Source

parsers.lisp.

Target Slot

suffix-continuation.

Generic Reader: tail-of (object)
Package

parser-combinators.

Methods
Reader Method: tail-of ((queue queue))

automatically generated reader method

Source

queue.lisp.

Target Slot

tail.

Generic Writer: (setf tail-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf tail-of) ((queue queue))

automatically generated writer method

Source

queue.lisp.

Target Slot

tail.

Generic Reader: thunk-of (object)
Package

parser-combinators.

Methods
Reader Method: thunk-of ((promise promise))

automatically generated reader method

Source

lazy.lisp.

Target Slot

thunk.

Generic Writer: (setf thunk-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf thunk-of) ((promise promise))

automatically generated writer method

Source

lazy.lisp.

Target Slot

thunk.

Generic Reader: up-of (object)
Package

parser-combinators.

Methods
Reader Method: up-of ((result-node result-node))

automatically generated reader method

Source

parsers.lisp.

Target Slot

up.

Generic Writer: (setf up-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf up-of) ((result-node result-node))

automatically generated writer method

Source

parsers.lisp.

Target Slot

up.

Generic Function: update-front-context (context)
Package

parser-combinators.

Source

contexts.lisp.

Methods
Method: update-front-context ((context context))
Generic Reader: value-of (object)
Package

parser-combinators.

Methods
Reader Method: value-of ((promise promise))

automatically generated reader method

Source

lazy.lisp.

Target Slot

value.

Generic Writer: (setf value-of) (object)
Package

parser-combinators.

Methods
Writer Method: (setf value-of) ((promise promise))

automatically generated writer method

Source

lazy.lisp.

Target Slot

value.


5.2.5 Classes

Class: context
Package

parser-combinators.

Source

contexts.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: common
Initargs

:common

Readers

common-of.

Writers

(setf common-of).

Slot: position
Package

common-lisp.

Initform

0

Initargs

:position

Readers

position-of.

Writers

(setf position-of).

Class: context-common
Package

parser-combinators.

Source

contexts.lisp.

Direct subclasses

vector-context-common.

Direct methods
Direct slots
Slot: length
Package

common-lisp.

Initform

0

Initargs

:length

Readers

length-of.

Writers

(setf length-of).

Slot: front
Initform

(make-instance (quote parser-combinators::context-front))

Initargs

:front

Readers

front-of.

Writers

(setf front-of).

Slot: cache
Initargs

:cache

Readers

cache-of.

Writers

(setf cache-of).

Slot: seen-postions
Initform

(make-hash-table)

Initargs

:seen-position

Readers

seen-postions-of.

Writers

(setf seen-postions-of).

Class: context-front
Package

parser-combinators.

Source

contexts.lisp.

Direct methods
Direct slots
Slot: context
Initargs

:context

Readers

context-of.

Writers

(setf context-of).

Slot: tags
Initargs

:tags

Readers

tags-of.

Writers

(setf tags-of).

Class: list-context
Package

parser-combinators.

Source

contexts.lisp.

Direct superclasses

context.

Direct methods
Direct slots
Slot: storage
Initargs

:storage

Readers

storage-of.

Writers

(setf storage-of).

Class: parse-result

Represent a set of parse results, as tracked by STORE, with one of them deemed CURRENT.

Package

parser-combinators.

Source

basic.lisp.

Direct methods
Direct slots
Slot: store
Initargs

:store

Readers

store-of.

Writers

(setf store-of).

Slot: current
Initform

-1

Initargs

:current

Readers

current-of.

Writers

(setf current-of).

Class: parse-result-store

Track a set of parse results, of which COUNTER are already computed and placed in STORAGE, and an unknown remainder is to be realised by repetitively calling CONTINUATION.

Package

parser-combinators.

Source

basic.lisp.

Direct methods
Direct slots
Slot: storage
Initform

(make-array 3 :initial-element nil)

Initargs

:storage

Readers

storage-of.

Writers

(setf storage-of).

Slot: counter
Initform

0

Initargs

:counter

Readers

counter-of.

Writers

(setf counter-of).

Slot: continuation
Initform

(constantly nil)

Initargs

:continuation

Readers

continuation-of.

Writers

(setf continuation-of).

Class: promise
Package

parser-combinators.

Source

lazy.lisp.

Direct methods
Direct slots
Slot: thunk
Initargs

:thunk

Readers

thunk-of.

Writers

(setf thunk-of).

Slot: value
Readers

value-of.

Writers

(setf value-of).

Class: queue
Package

parser-combinators.

Source

queue.lisp.

Direct methods
Direct slots
Slot: head
Readers

head-of.

Writers

(setf head-of).

Slot: tail
Readers

tail-of.

Writers

(setf tail-of).

Slot: size
Initform

0

Readers

size-of.

Writers

(setf size-of).

Class: result-node
Package

parser-combinators.

Source

parsers.lisp.

Direct superclasses

parser-possibility.

Direct methods
Direct slots
Slot: emit
Initform

t

Initargs

:emit

Readers

emit-of.

Writers

(setf emit-of).

Slot: up
Initargs

:up

Readers

up-of.

Writers

(setf up-of).

Slot: count
Package

common-lisp.

Initform

0

Initargs

:count

Readers

count-of.

Writers

(setf count-of).

Slot: suffix-continuation
Initargs

:suffix-continuation

Readers

suffix-continuation-of.

Writers

(setf suffix-continuation-of).

Class: vector-context-common
Package

parser-combinators.

Source

contexts.lisp.

Direct superclasses

context-common.

Direct methods
Direct slots
Slot: storage
Initargs

:storage

Readers

storage-of.

Writers

(setf storage-of).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   Q   R   S   T   U   V   W   Z  
Index Entry  Section

%
%named-seq?: Private macros

(
(setf cache-of): Private generic functions
(setf cache-of): Private generic functions
(setf common-of): Public generic functions
(setf common-of): Public generic functions
(setf context-of): Public generic functions
(setf context-of): Public generic functions
(setf continuation-of): Private generic functions
(setf continuation-of): Private generic functions
(setf count-of): Private generic functions
(setf count-of): Private generic functions
(setf counter-of): Private generic functions
(setf counter-of): Private generic functions
(setf current-of): Private generic functions
(setf current-of): Private generic functions
(setf emit-of): Private generic functions
(setf emit-of): Private generic functions
(setf front-of): Private generic functions
(setf front-of): Private generic functions
(setf front-of): Private generic functions
(setf head-of): Private generic functions
(setf head-of): Private generic functions
(setf length-of): Private generic functions
(setf length-of): Private generic functions
(setf position-of): Public generic functions
(setf position-of): Public generic functions
(setf seen-postions-of): Private generic functions
(setf seen-postions-of): Private generic functions
(setf size-of): Private generic functions
(setf size-of): Private generic functions
(setf storage-of): Public generic functions
(setf storage-of): Public generic functions
(setf storage-of): Public generic functions
(setf storage-of): Public generic functions
(setf store-of): Private generic functions
(setf store-of): Private generic functions
(setf suffix-continuation-of): Private generic functions
(setf suffix-continuation-of): Private generic functions
(setf suffix-of): Public generic functions
(setf suffix-of): Public generic functions
(setf tags-of): Public generic functions
(setf tags-of): Public generic functions
(setf tail-of): Private generic functions
(setf tail-of): Private generic functions
(setf thunk-of): Private generic functions
(setf thunk-of): Private generic functions
(setf tree-of): Public generic functions
(setf tree-of): Public generic functions
(setf up-of): Private generic functions
(setf up-of): Private generic functions
(setf value-of): Private generic functions
(setf value-of): Private generic functions

A
alphanum?: Public ordinary functions
atleast*: Public ordinary functions
atleast?: Public ordinary functions
atmost*: Public ordinary functions
atmost?: Public ordinary functions

B
before*: Public ordinary functions
between*: Public ordinary functions
between?: Public ordinary functions
bind: Private ordinary functions
bracket?: Public ordinary functions
breadth?: Public ordinary functions

C
cache-of: Private generic functions
cache-of: Private generic functions
cache-of: Private generic functions
cached-arguments?: Public macros
cached?: Public macros
chainl*: Public ordinary functions
chainl1*: Public ordinary functions
chainl1?: Public ordinary functions
chainl?: Public ordinary functions
chainr*: Public ordinary functions
chainr1*: Public ordinary functions
chainr1?: Public ordinary functions
chainr?: Public ordinary functions
char-equal?: Private ordinary functions
char?: Public ordinary functions
choice: Public ordinary functions
choice1: Public ordinary functions
choices: Public ordinary functions
choices1: Public ordinary functions
chook?: Public ordinary functions
chookahead?: Public ordinary functions
common-of: Public generic functions
common-of: Public generic functions
context-equal: Public generic functions
context-equal: Public generic functions
context-greater: Private generic functions
context-greater: Private generic functions
context-interval: Public generic functions
context-interval: Public generic functions
context-interval: Public generic functions
context-interval: Public generic functions
context-interval: Public generic functions
context-next: Private generic functions
context-next: Private generic functions
context-next: Private generic functions
context-of: Public generic functions
context-of: Public generic functions
context-peek: Private generic functions
context-peek: Private generic functions
context-peek: Private generic functions
context-peek: Private generic functions
context-peek: Private generic functions
context?: Public ordinary functions
continuation-of: Private generic functions
continuation-of: Private generic functions
copy-context: Public macros
copy-parse-result: Private ordinary functions
count-of: Private generic functions
count-of: Private generic functions
counter-of: Private generic functions
counter-of: Private generic functions
current-of: Private generic functions
current-of: Private generic functions
current-result: Public ordinary functions
curtail?: Public macros
cut-tag?: Public ordinary functions
cut?: Private ordinary functions

D
def-cached-arg-parser: Public macros
def-cached-parser: Public macros
define-oneshot-result: Public macros
delay: Private macros
delayed?: Public macros
digit?: Public ordinary functions
do-notation: Private ordinary functions
drop-parser-cache: Public ordinary functions

E
emit-of: Private generic functions
emit-of: Private generic functions
empty-p: Private generic functions
empty-p: Private generic functions
end-context-p: Public generic functions
end-context-p: Public generic functions
end-context-p: Public generic functions
end?: Public ordinary functions
ensure-parser: Private ordinary functions
except?: Public ordinary functions
execute-bind: Private ordinary functions
execute-choice: Private ordinary functions
expression*: Public ordinary functions
expression?: Public ordinary functions

F
find*: Public ordinary functions
find-after*: Public ordinary functions
find-after-collect*: Public ordinary functions
find-after-collect?: Public ordinary functions
find-after?: Public ordinary functions
find-before*: Public ordinary functions
find-before-token*: Public ordinary functions
find-before?: Public ordinary functions
find?: Public ordinary functions
force: Private ordinary functions
force?: Public ordinary functions
front-of: Private generic functions
front-of: Private generic functions
front-of: Private generic functions
Function, alphanum?: Public ordinary functions
Function, atleast*: Public ordinary functions
Function, atleast?: Public ordinary functions
Function, atmost*: Public ordinary functions
Function, atmost?: Public ordinary functions
Function, before*: Public ordinary functions
Function, between*: Public ordinary functions
Function, between?: Public ordinary functions
Function, bind: Private ordinary functions
Function, bracket?: Public ordinary functions
Function, breadth?: Public ordinary functions
Function, chainl*: Public ordinary functions
Function, chainl1*: Public ordinary functions
Function, chainl1?: Public ordinary functions
Function, chainl?: Public ordinary functions
Function, chainr*: Public ordinary functions
Function, chainr1*: Public ordinary functions
Function, chainr1?: Public ordinary functions
Function, chainr?: Public ordinary functions
Function, char-equal?: Private ordinary functions
Function, char?: Public ordinary functions
Function, choice: Public ordinary functions
Function, choice1: Public ordinary functions
Function, choices: Public ordinary functions
Function, choices1: Public ordinary functions
Function, chook?: Public ordinary functions
Function, chookahead?: Public ordinary functions
Function, context?: Public ordinary functions
Function, copy-parse-result: Private ordinary functions
Function, current-result: Public ordinary functions
Function, cut-tag?: Public ordinary functions
Function, cut?: Private ordinary functions
Function, digit?: Public ordinary functions
Function, do-notation: Private ordinary functions
Function, drop-parser-cache: Public ordinary functions
Function, end?: Public ordinary functions
Function, ensure-parser: Private ordinary functions
Function, except?: Public ordinary functions
Function, execute-bind: Private ordinary functions
Function, execute-choice: Private ordinary functions
Function, expression*: Public ordinary functions
Function, expression?: Public ordinary functions
Function, find*: Public ordinary functions
Function, find-after*: Public ordinary functions
Function, find-after-collect*: Public ordinary functions
Function, find-after-collect?: Public ordinary functions
Function, find-after?: Public ordinary functions
Function, find-before*: Public ordinary functions
Function, find-before-token*: Public ordinary functions
Function, find-before?: Public ordinary functions
Function, find?: Public ordinary functions
Function, force: Private ordinary functions
Function, force?: Public ordinary functions
Function, gather-before-token*: Public ordinary functions
Function, gather-if*: Private ordinary functions
Function, gather-if-not*: Public ordinary functions
Function, gather-nodes: Private ordinary functions
Function, gather-results: Public ordinary functions
Function, hook?: Public ordinary functions
Function, int*: Public ordinary functions
Function, int?: Public ordinary functions
Function, item: Public ordinary functions
Function, letter?: Public ordinary functions
Function, lower?: Public ordinary functions
Function, make-cache: Private ordinary functions
Function, make-parse-result: Public ordinary functions
Function, make-queue: Private ordinary functions
Function, many*: Public ordinary functions
Function, many1*: Public ordinary functions
Function, many1?: Public ordinary functions
Function, many?: Public ordinary functions
Function, memoize?: Public ordinary functions
Function, nat*: Public ordinary functions
Function, nat?: Public ordinary functions
Function, nested?: Public ordinary functions
Function, next-result: Public ordinary functions
Function, note-position: Private ordinary functions
Function, opt*: Public ordinary functions
Function, opt?: Public ordinary functions
Function, parse-sequence: Public ordinary functions
Function, parse-sequence*: Public ordinary functions
Function, parse-string: Public ordinary functions
Function, parse-string*: Public ordinary functions
Function, pure-word*: Public ordinary functions
Function, pure-word?: Public ordinary functions
Function, queue-to-list: Private ordinary functions
Function, quoted?: Public ordinary functions
Function, result: Public ordinary functions
Function, sat: Public ordinary functions
Function, sepby*: Public ordinary functions
Function, sepby1*: Public ordinary functions
Function, sepby1-cons?: Public ordinary functions
Function, sepby1?: Public ordinary functions
Function, sepby?: Public ordinary functions
Function, seq-list*: Public ordinary functions
Function, seq-list?: Public ordinary functions
Function, string?: Public ordinary functions
Function, tag?: Public ordinary functions
Function, times*: Private ordinary functions
Function, times?: Public ordinary functions
Function, upper?: Public ordinary functions
Function, validate?: Public ordinary functions
Function, whitespace*: Public ordinary functions
Function, whitespace?: Public ordinary functions
Function, word*: Public ordinary functions
Function, word?: Public ordinary functions
Function, zero: Public ordinary functions

G
gather-before-token*: Public ordinary functions
gather-if*: Private ordinary functions
gather-if-not*: Public ordinary functions
gather-if-not*-using-context: Public generic functions
gather-if-not*-using-context: Public generic functions
gather-if-not*-using-context: Public generic functions
gather-if-not*-using-context: Public generic functions
gather-nodes: Private ordinary functions
gather-results: Public ordinary functions
Generic Function, (setf cache-of): Private generic functions
Generic Function, (setf common-of): Public generic functions
Generic Function, (setf context-of): Public generic functions
Generic Function, (setf continuation-of): Private generic functions
Generic Function, (setf count-of): Private generic functions
Generic Function, (setf counter-of): Private generic functions
Generic Function, (setf current-of): Private generic functions
Generic Function, (setf emit-of): Private generic functions
Generic Function, (setf front-of): Private generic functions
Generic Function, (setf head-of): Private generic functions
Generic Function, (setf length-of): Private generic functions
Generic Function, (setf position-of): Public generic functions
Generic Function, (setf seen-postions-of): Private generic functions
Generic Function, (setf size-of): Private generic functions
Generic Function, (setf storage-of): Public generic functions
Generic Function, (setf store-of): Private generic functions
Generic Function, (setf suffix-continuation-of): Private generic functions
Generic Function, (setf suffix-of): Public generic functions
Generic Function, (setf tags-of): Public generic functions
Generic Function, (setf tail-of): Private generic functions
Generic Function, (setf thunk-of): Private generic functions
Generic Function, (setf tree-of): Public generic functions
Generic Function, (setf up-of): Private generic functions
Generic Function, (setf value-of): Private generic functions
Generic Function, cache-of: Private generic functions
Generic Function, common-of: Public generic functions
Generic Function, context-equal: Public generic functions
Generic Function, context-greater: Private generic functions
Generic Function, context-interval: Public generic functions
Generic Function, context-next: Private generic functions
Generic Function, context-of: Public generic functions
Generic Function, context-peek: Private generic functions
Generic Function, continuation-of: Private generic functions
Generic Function, count-of: Private generic functions
Generic Function, counter-of: Private generic functions
Generic Function, current-of: Private generic functions
Generic Function, emit-of: Private generic functions
Generic Function, empty-p: Private generic functions
Generic Function, end-context-p: Public generic functions
Generic Function, front-of: Private generic functions
Generic Function, gather-if-not*-using-context: Public generic functions
Generic Function, head-of: Private generic functions
Generic Function, length-of: Private generic functions
Generic Function, make-context: Public generic functions
Generic Function, make-context-at-position: Public generic functions
Generic Function, nth-result: Private generic functions
Generic Function, peek: Private generic functions
Generic Function, peek-back: Private generic functions
Generic Function, pop-front: Private generic functions
Generic Function, position-of: Public generic functions
Generic Function, push-back: Private generic functions
Generic Function, push-front: Private generic functions
Generic Function, seen-positions-of: Private generic functions
Generic Function, seen-postions-of: Private generic functions
Generic Function, size-of: Private generic functions
Generic Function, storage-of: Public generic functions
Generic Function, store-of: Private generic functions
Generic Function, string?-using-context: Public generic functions
Generic Function, suffix-continuation-of: Private generic functions
Generic Function, suffix-of: Public generic functions
Generic Function, tags-of: Public generic functions
Generic Function, tail-of: Private generic functions
Generic Function, thunk-of: Private generic functions
Generic Function, tree-of: Public generic functions
Generic Function, up-of: Private generic functions
Generic Function, update-front-context: Private generic functions
Generic Function, value-of: Private generic functions

H
head-of: Private generic functions
head-of: Private generic functions
hook?: Public ordinary functions

I
initialize-instance: Public standalone methods
int*: Public ordinary functions
int?: Public ordinary functions
item: Public ordinary functions

L
length-of: Private generic functions
length-of: Private generic functions
length-of: Private generic functions
letter?: Public ordinary functions
lower?: Public ordinary functions

M
Macro, %named-seq?: Private macros
Macro, cached-arguments?: Public macros
Macro, cached?: Public macros
Macro, copy-context: Public macros
Macro, curtail?: Public macros
Macro, def-cached-arg-parser: Public macros
Macro, def-cached-parser: Public macros
Macro, define-oneshot-result: Public macros
Macro, delay: Private macros
Macro, delayed?: Public macros
Macro, mdo: Public macros
Macro, mdo*: Public macros
Macro, named-seq*: Public macros
Macro, named-seq?: Public macros
Macro, named?: Public macros
Macro, with-parsers: Private macros
make-cache: Private ordinary functions
make-context: Public generic functions
make-context: Public generic functions
make-context: Public generic functions
make-context-at-position: Public generic functions
make-context-at-position: Public generic functions
make-context-at-position: Public generic functions
make-context-at-position: Public generic functions
make-parse-result: Public ordinary functions
make-queue: Private ordinary functions
many*: Public ordinary functions
many1*: Public ordinary functions
many1?: Public ordinary functions
many?: Public ordinary functions
mdo: Public macros
mdo*: Public macros
memoize?: Public ordinary functions
Method, (setf cache-of): Private generic functions
Method, (setf common-of): Public generic functions
Method, (setf context-of): Public generic functions
Method, (setf continuation-of): Private generic functions
Method, (setf count-of): Private generic functions
Method, (setf counter-of): Private generic functions
Method, (setf current-of): Private generic functions
Method, (setf emit-of): Private generic functions
Method, (setf front-of): Private generic functions
Method, (setf front-of): Private generic functions
Method, (setf head-of): Private generic functions
Method, (setf length-of): Private generic functions
Method, (setf position-of): Public generic functions
Method, (setf seen-postions-of): Private generic functions
Method, (setf size-of): Private generic functions
Method, (setf storage-of): Public generic functions
Method, (setf storage-of): Public generic functions
Method, (setf storage-of): Public generic functions
Method, (setf store-of): Private generic functions
Method, (setf suffix-continuation-of): Private generic functions
Method, (setf suffix-of): Public generic functions
Method, (setf tags-of): Public generic functions
Method, (setf tail-of): Private generic functions
Method, (setf thunk-of): Private generic functions
Method, (setf tree-of): Public generic functions
Method, (setf up-of): Private generic functions
Method, (setf value-of): Private generic functions
Method, cache-of: Private generic functions
Method, cache-of: Private generic functions
Method, common-of: Public generic functions
Method, context-equal: Public generic functions
Method, context-greater: Private generic functions
Method, context-interval: Public generic functions
Method, context-interval: Public generic functions
Method, context-interval: Public generic functions
Method, context-interval: Public generic functions
Method, context-next: Private generic functions
Method, context-next: Private generic functions
Method, context-of: Public generic functions
Method, context-peek: Private generic functions
Method, context-peek: Private generic functions
Method, context-peek: Private generic functions
Method, context-peek: Private generic functions
Method, continuation-of: Private generic functions
Method, count-of: Private generic functions
Method, counter-of: Private generic functions
Method, current-of: Private generic functions
Method, emit-of: Private generic functions
Method, empty-p: Private generic functions
Method, end-context-p: Public generic functions
Method, end-context-p: Public generic functions
Method, front-of: Private generic functions
Method, front-of: Private generic functions
Method, gather-if-not*-using-context: Public generic functions
Method, gather-if-not*-using-context: Public generic functions
Method, gather-if-not*-using-context: Public generic functions
Method, head-of: Private generic functions
Method, initialize-instance: Public standalone methods
Method, length-of: Private generic functions
Method, length-of: Private generic functions
Method, make-context: Public generic functions
Method, make-context: Public generic functions
Method, make-context-at-position: Public generic functions
Method, make-context-at-position: Public generic functions
Method, make-context-at-position: Public generic functions
Method, nth-result: Private generic functions
Method, nth-result: Private generic functions
Method, nth-result: Private generic functions
Method, peek: Private generic functions
Method, peek-back: Private generic functions
Method, pop-front: Private generic functions
Method, position-of: Public generic functions
Method, position-of: Public generic functions
Method, push-back: Private generic functions
Method, push-front: Private generic functions
Method, seen-positions-of: Private generic functions
Method, seen-postions-of: Private generic functions
Method, size-of: Private generic functions
Method, storage-of: Public generic functions
Method, storage-of: Public generic functions
Method, storage-of: Public generic functions
Method, storage-of: Public generic functions
Method, store-of: Private generic functions
Method, string?-using-context: Public generic functions
Method, string?-using-context: Public generic functions
Method, suffix-continuation-of: Private generic functions
Method, suffix-of: Public generic functions
Method, tags-of: Public generic functions
Method, tail-of: Private generic functions
Method, thunk-of: Private generic functions
Method, tree-of: Public generic functions
Method, up-of: Private generic functions
Method, update-front-context: Private generic functions
Method, value-of: Private generic functions

N
named-seq*: Public macros
named-seq?: Public macros
named?: Public macros
nat*: Public ordinary functions
nat?: Public ordinary functions
nested?: Public ordinary functions
next-result: Public ordinary functions
note-position: Private ordinary functions
nth-result: Private generic functions
nth-result: Private generic functions
nth-result: Private generic functions
nth-result: Private generic functions

O
opt*: Public ordinary functions
opt?: Public ordinary functions

P
parse-sequence: Public ordinary functions
parse-sequence*: Public ordinary functions
parse-string: Public ordinary functions
parse-string*: Public ordinary functions
peek: Private generic functions
peek: Private generic functions
peek-back: Private generic functions
peek-back: Private generic functions
pop-front: Private generic functions
pop-front: Private generic functions
position-of: Public generic functions
position-of: Public generic functions
position-of: Public generic functions
pure-word*: Public ordinary functions
pure-word?: Public ordinary functions
push-back: Private generic functions
push-back: Private generic functions
push-front: Private generic functions
push-front: Private generic functions

Q
queue-to-list: Private ordinary functions
quoted?: Public ordinary functions

R
result: Public ordinary functions

S
sat: Public ordinary functions
seen-positions-of: Private generic functions
seen-positions-of: Private generic functions
seen-postions-of: Private generic functions
seen-postions-of: Private generic functions
sepby*: Public ordinary functions
sepby1*: Public ordinary functions
sepby1-cons?: Public ordinary functions
sepby1?: Public ordinary functions
sepby?: Public ordinary functions
seq-list*: Public ordinary functions
seq-list?: Public ordinary functions
size-of: Private generic functions
size-of: Private generic functions
storage-of: Public generic functions
storage-of: Public generic functions
storage-of: Public generic functions
storage-of: Public generic functions
storage-of: Public generic functions
store-of: Private generic functions
store-of: Private generic functions
string?: Public ordinary functions
string?-using-context: Public generic functions
string?-using-context: Public generic functions
string?-using-context: Public generic functions
suffix-continuation-of: Private generic functions
suffix-continuation-of: Private generic functions
suffix-of: Public generic functions
suffix-of: Public generic functions

T
tag?: Public ordinary functions
tags-of: Public generic functions
tags-of: Public generic functions
tail-of: Private generic functions
tail-of: Private generic functions
thunk-of: Private generic functions
thunk-of: Private generic functions
times*: Private ordinary functions
times?: Public ordinary functions
tree-of: Public generic functions
tree-of: Public generic functions

U
up-of: Private generic functions
up-of: Private generic functions
update-front-context: Private generic functions
update-front-context: Private generic functions
upper?: Public ordinary functions

V
validate?: Public ordinary functions
value-of: Private generic functions
value-of: Private generic functions

W
whitespace*: Public ordinary functions
whitespace?: Public ordinary functions
with-parsers: Private macros
word*: Public ordinary functions
word?: Public ordinary functions

Z
zero: Public ordinary functions


A.3 Variables

Jump to:   *  
C   E   F   H   L   P   S   T   U   V  
Index Entry  Section

*
*curtail*: Private special variables
*cut-tag*: Private special variables
*default-context-cache*: Public special variables
*memo-table*: Private special variables
*parser-cache*: Private special variables
*tag-stack*: Private special variables

C
cache: Private classes
common: Private classes
context: Private classes
continuation: Private classes
count: Private classes
counter: Private classes
current: Private classes

E
emit: Private classes

F
front: Private classes

H
head: Private classes

L
length: Private classes

P
position: Private classes

S
seen-postions: Private classes
size: Private classes
Slot, cache: Private classes
Slot, common: Private classes
Slot, context: Private classes
Slot, continuation: Private classes
Slot, count: Private classes
Slot, counter: Private classes
Slot, current: Private classes
Slot, emit: Private classes
Slot, front: Private classes
Slot, head: Private classes
Slot, length: Private classes
Slot, position: Private classes
Slot, seen-postions: Private classes
Slot, size: Private classes
Slot, storage: Private classes
Slot, storage: Private classes
Slot, storage: Private classes
Slot, store: Private classes
Slot, suffix: Public classes
Slot, suffix-continuation: Private classes
Slot, tags: Private classes
Slot, tail: Private classes
Slot, thunk: Private classes
Slot, tree: Public classes
Slot, up: Private classes
Slot, value: Private classes
Special Variable, *curtail*: Private special variables
Special Variable, *cut-tag*: Private special variables
Special Variable, *default-context-cache*: Public special variables
Special Variable, *memo-table*: Private special variables
Special Variable, *parser-cache*: Private special variables
Special Variable, *tag-stack*: Private special variables
storage: Private classes
storage: Private classes
storage: Private classes
store: Private classes
suffix: Public classes
suffix-continuation: Private classes

T
tags: Private classes
tail: Private classes
thunk: Private classes
tree: Public classes

U
up: Private classes

V
value: Private classes


A.4 Data types

Jump to:   B   C   E   F   G   L   M   P   Q   R   S   T   V  
Index Entry  Section

B
basic.lisp: The parser-combinators/basic․lisp file

C
cache.lisp: The parser-combinators/cache․lisp file
Class, context: Private classes
Class, context-common: Private classes
Class, context-front: Private classes
Class, end-context: Public classes
Class, list-context: Private classes
Class, parse-result: Private classes
Class, parse-result-store: Private classes
Class, parser-possibility: Public classes
Class, promise: Private classes
Class, queue: Private classes
Class, result-node: Private classes
Class, vector-context: Public classes
Class, vector-context-common: Private classes
combinators.lisp: The parser-combinators/combinators․lisp file
context: Private classes
context-common: Private classes
context-front: Private classes
contexts.lisp: The parser-combinators/contexts․lisp file

E
end-context: Public classes
ensure-parser.lisp: The parser-combinators/ensure-parser․lisp file

F
File, basic.lisp: The parser-combinators/basic․lisp file
File, cache.lisp: The parser-combinators/cache․lisp file
File, combinators.lisp: The parser-combinators/combinators․lisp file
File, contexts.lisp: The parser-combinators/contexts․lisp file
File, ensure-parser.lisp: The parser-combinators/ensure-parser․lisp file
File, greedy.lisp: The parser-combinators/greedy․lisp file
File, lazy.lisp: The parser-combinators/lazy․lisp file
File, memoize.lisp: The parser-combinators/memoize․lisp file
File, package.lisp: The parser-combinators/package․lisp file
File, parser-combinators.asd: The parser-combinators/parser-combinators․asd file
File, parsers.lisp: The parser-combinators/parsers․lisp file
File, primitives.lisp: The parser-combinators/primitives․lisp file
File, queue.lisp: The parser-combinators/queue․lisp file
File, recurse.lisp: The parser-combinators/recurse․lisp file
File, token-parsers.lisp: The parser-combinators/token-parsers․lisp file

G
greedy.lisp: The parser-combinators/greedy․lisp file

L
lazy.lisp: The parser-combinators/lazy․lisp file
list-context: Private classes

M
memoize.lisp: The parser-combinators/memoize․lisp file

P
Package, parser-combinators: The parser-combinators package
Package, parser-combinators-debug: The parser-combinators-debug package
package.lisp: The parser-combinators/package․lisp file
parse-result: Private classes
parse-result-store: Private classes
parser-combinators: The parser-combinators system
parser-combinators: The parser-combinators package
parser-combinators-debug: The parser-combinators-debug package
parser-combinators.asd: The parser-combinators/parser-combinators․asd file
parser-possibility: Public classes
parsers.lisp: The parser-combinators/parsers․lisp file
primitives.lisp: The parser-combinators/primitives․lisp file
promise: Private classes

Q
queue: Private classes
queue.lisp: The parser-combinators/queue․lisp file

R
recurse.lisp: The parser-combinators/recurse․lisp file
result-node: Private classes

S
System, parser-combinators: The parser-combinators system

T
token-parsers.lisp: The parser-combinators/token-parsers․lisp file

V
vector-context: Public classes
vector-context-common: Private classes