Language Parsers

The :std/parser library provides facilities for parsing languages, with emphasis on custom languages. See also the tutorial.

usage

(import :std/parser)

Overview

Please write me!

Regular Languages

@nul

usage

(@nul ...)

Please document me!

@nul?

usage

(@nul? ...)

Please document me!

@eps

usage

(@eps ...)

Please document me!

@eps?

usage

(@eps? ...)

Please document me!

@char

usage

(@char ...)

Please document me!

@charset

usage

(@charset ...)

Please document me!

@negset

usage

(@negset ...)

Please document me!

@dot

usage

(@dot ...)

Please document me!

@alt

usage

(@alt ...)

Please document me!

@cat

usage

(@cat ...)

Please document me!

@rep*

usage

(@rep* ...)

Please document me!

@rep+

usage

(@rep+ ...)

Please document me!

@maybe

usage

(@maybe ...)

Please document me!

deriv

usage

(deriv ...)

Please document me!

delta

usage

(delta ...)

Please document me!

recognizes?

usage

(recognizes? ...)

Please document me!

Tokens, Locations, and Utilities

token

(defstruct token (t e loc))

Please document me!

token->syntax

usage

(token->syntax ...)

Please document me!

location

(defstruct location (port line col off xoff))

Please document me!

display-location

usage

(display-location ...)

Please document me!

location-delta

usage

(location-delta ...)

Please document me!

location-delta*

usage

(location-delta* ...)

Please document me!

location->source-location

usage

(location->source-location ...)

Please document me!

wrap-identity

usage

(wrap-identity ...)

Please document me!

wrap-ast

usage

(wrap-ast ...)

Please document me!

unwrap-ast

usage

(unwrap-ast ...)

Please document me!

parse-error?

usage

(parse-error? ...)

Please document me!

raise-parse-error

usage

(raise-parse-error ...)

Please document me!

Character Streams

make-char-stream

usage

(make-char-stream ...)

Please document me!

char-stream?

usage

(char-stream? ...)

Please document me!

char-stream-loc

usage

(char-stream-loc ...)

Please document me!

char-stream-close

usage

(char-stream-close ...)

Please document me!

char-stream-peek

usage

(char-stream-peek ...)

Please document me!

char-stream-getc

usage

(char-stream-getc ...)

Please document me!

char-stream-ungetc

usage

(char-stream-ungetc ...)

Please document me!

port-location

usage

(port-location ...)

Please document me!

Lexing

deflexer

usage

(deflexer ...)

Please document me!

lex

usage

(lex ...)

Please document me!

lex-chars

usage

(lex-chars ...)

Please document me!

token-stream?

usage

(token-stream? ...)

Please document me!

token-stream-close

usage

(token-stream-close ...)

Please document me!

token-stream-get

usage

(token-stream-get ...)

Please document me!

token-stream-next

usage

(token-stream-next ...)

Please document me!

token-stream-unget

usage

(token-stream-unget ...)

Please document me!

token-stream-peek

usage

(token-stream-peek ...)

Please document me!

token-stream-loc

usage

(token-stream-loc ...)

Please document me!

$

usage

($ ...)

Please document me!

$?

usage

($? ...)

Please document me!

$$

usage

($$ ...)

Please document me!

$$?

usage

($$? ...)

Please document me!

Parsing

defparser

usage

(defparser ...)

Please document me!

parser-input-stream

usage

(parser-input-stream ...)

Please document me!

parser-parse

usage

(parser-parse ...)

Please document me!

parser-fail

usage

(parser-fail ...)

Please document me!

parser-rewind

usage

(parser-rewind ...)

Please document me!

$-

usage

($- ...)

Please document me!

The Grammar Prelude

usage

#lang :std/parser/grammar

Please document me!