{"size": 860, "ext": "scrbl", "max_stars_repo_path": "r7rs-translator/blahblah/about.scrbl", "max_stars_repo_name": "BernardTatin/Bad-Tools-For-The-Good-R7RS", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "r7rs-translator/blahblah/about.scrbl", "max_issues_repo_name": "BernardTatin/Bad-Tools-For-The-Good-R7RS", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "r7rs-translator/blahblah/about.scrbl", "max_forks_repo_name": "BernardTatin/Bad-Tools-For-The-Good-R7RS", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 24.5714285714, "max_line_length": 81, "alphanum_fraction": 0.7511627907}
#lang scribble/manual
@(require (for-label racket))

@title{translating r7rs to another Scheme}

@italic{We can find a lot of Scheme compilers/interpreters on the Web. Each
of them have some weakness and some strongness. By translating @italic{r7rs} to
a known Scheme dialect, we can use the maximum of this dialect.}

@section{phase 1}
I start this work with @italic{drracket} because of the ease of debug this Scheme
system provides.

@subsection{writing @italic{racket} code}

The first lines must be a module definition with exported symbols and imported
modules. For example, the @italic{tools.rkt} module begins like this :

@racketblock[
(module tools racket
  (provide tprintln file-loader on-error)
  ...
  )
]

Another exemple :

@racketblock[
(module r7rs2rkt racket
  (provide on-file)
  (require racket/match "config.scm" "tools.rkt")
  ...
  )
]
