package p5scm

  1. Overview
  2. Docs
Scheme via camlp5

Install

Dune Dependency

Authors

Maintainers

Sources

0.2.0.tar.gz
md5=252895e6e1d082eb6ad145fc83098d80
sha512=6412ca42b625e2310f7ab3c24e3e8f2930b4fd8a463b29aa78555812e8df7347937e1974264eb597187f65ed5105e0c5182c8ffffff89080664bef195ac35292

doc/src/p5scm.lib/pp_ast.ml.html

Source file pp_ast.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(*
 The MIT License                                                                              

 Copyright (c) 2021 Jason D. Nielsen <drjdnielsen@gmail.com>
 *)

open Ast
open Sexp_pretty

let rec ast_to_p5scm = function
  | Plist i -> String.concat "\n" (List.map ast_to_p5scm i)
  | Slist i -> "(" ^ String.concat " " (List.map ast_to_p5scm i) ^ ")"
  | Stlist i -> "{" ^ String.concat " " (List.map ast_to_p5scm i) ^ "}"
  | Vlist i -> "#(" ^ String.concat " " (List.map ast_to_p5scm i) ^ ")"
  | Alist i -> "[" ^ String.concat " " (List.map ast_to_p5scm i) ^ "]"
  | Lpatt (i, j) -> "[" ^ (ast_to_p5scm i) ^ " . " ^ (ast_to_p5scm j) ^ "]"
  | Atom (_, i) -> i
  | Toplv (i, j) -> utop_action i j
and utop_action s1 s2 =
  match s1 with
  | "#require" -> "(UTop.require [" ^ s2 ^ "])"
  | "#use" -> "(Toploop.use_file Format.std_formatter " ^ s2 ^")"
  | _ -> failwith "Not a known utop directive!"
OCaml

Innovation. Community. Security.