LispWorks User Guide and Reference Manual > 36 The PARSERGEN Package

NextPrevUpTopContentsIndex

defparser

Macro
Summary

Creates a parsing function of the given name for the grammar defined.

Package

parsergen

Signature

defparser name { rule }* => parsing-function

rule ::= normal-rule | error-rule normal-rule ::= (( non-terminal { grammar-symbol }*) { form }*) error-rule ::= (( non-terminal :error) { form }*)
Arguments

name

The name of the parser.

The rules define the productions of the grammar and the associated forms define the semantic actions for the rules.

Values

parsing-function

The symbol name of the parsing function.

Description

defparser creates a parsing function of the given name for the grammar defined. The parsing function is defined as if by:

(defun <name> (lexer &optional (symbol-to-string #'identify))

The lexer parameter is a function of no arguments that returns two values: the next grammar token on the input and the associated semantic value.

The optional symbol-to-string function can be used to define a printed representation of the grammar tokens. The function should take a grammar symbol as its single argument and returns an object to be used as a print representation for the grammar token.

For a full description and examples, see The Parser Generator.


LispWorks User Guide and Reference Manual - 22 Dec 2009

NextPrevUpTopContentsIndex