{"size": 1214, "ext": "scrbl", "max_stars_repo_path": "pkgs/racket-doc/syntax/scribblings/parse.scrbl", "max_stars_repo_name": "lkh01/racket", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "pkgs/racket-doc/syntax/scribblings/parse.scrbl", "max_issues_repo_name": "lkh01/racket", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "pkgs/racket-doc/syntax/scribblings/parse.scrbl", "max_forks_repo_name": "lkh01/racket", "max_forks_repo_forks_event_min_datetime": "2016-04-25T11:47:57.000Z", "max_forks_repo_forks_event_max_datetime": "2017-05-09T14:52:48.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 3, "avg_line_length": 34.6857142857, "max_line_length": 70, "alphanum_fraction": 0.7767710049}
#lang scribble/doc
@(require scribble/manual
          (for-label syntax/parse))

@title[#:tag "stxparse" #:style '(toc)]{Parsing and Specifying Syntax}

The @racketmodname[syntax/parse] library provides a framework for
writing macros and processing syntax. The library provides a powerful
language of syntax patterns, used by the pattern-matching form
@racket[syntax-parse] and the specification form
@racket[define-syntax-class]. Macros that use @racket[syntax-parse]
automatically generate error messages based on descriptions and
messages embedded in the macro's syntax patterns.
@defmodule[syntax/parse]

@local-table-of-contents[]

@include-section["parse/intro.scrbl"]
@include-section["parse/examples.scrbl"]
@include-section["parse/parsing.scrbl"]
@include-section["parse/stxclasses.scrbl"]
@include-section["parse/patterns.scrbl"]
@include-section["parse/define.scrbl"]
@include-section["parse/litconv.scrbl"]
@include-section["parse/lib.scrbl"]
@include-section["parse/state.scrbl"]

@;{Description of how error reporting works}
@;{and designing for good errors}

@;{Cut and Commit for efficiency and error reporting.}

@include-section["parse/debug.scrbl"]
@include-section["parse/experimental.scrbl"]
