{"size": 656, "ext": "scrbl", "max_stars_repo_path": "scribblings/imp.scrbl", "max_stars_repo_name": "daher13/imp-racket", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "scribblings/imp.scrbl", "max_issues_repo_name": "daher13/imp-racket", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "scribblings/imp.scrbl", "max_forks_repo_name": "daher13/imp-racket", "max_forks_repo_forks_event_min_datetime": "2022-02-25T12:54:34.000Z", "max_forks_repo_forks_event_max_datetime": "2022-02-25T12:54:34.000Z"}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": 1, "avg_line_length": 32.8, "max_line_length": 63, "alphanum_fraction": 0.7606707317}
#lang scribble/manual
@require[@for-label[imp
                    racket/base]]

@title{An interpreter for the IMP programming language}
@author{Rodrigo Ribeiro}

@defmodule[imp]

IMP is a core imperative language defined in Wynskell's book on
formal semantics. This package provides an big-step interpreter
for IMP and some dialects for debugging.

@section{IMP dialects}

Language ``imp'' is just the interpreter for the language.
The dialect ``imp/debug/tokenize-only'' will emit the result
of the lexical analysis. Dialect ``imp/debug/parse-only''
prints the result parse tree and ``imp/debug/final-env'' shows
the final value of all program variables.