package p5scm

  1. Overview
  2. Docs
Scheme via camlp5

Install

Dune Dependency

Authors

Maintainers

Sources

0.3.1.tar.gz
md5=9c7351531eb896d4b8fb49f5f76ccc90
sha512=e515523be854b5fa41e66357ef20282458a90240f29eb0e6075f55bbd6d4dbb24d91cb09d3389f77ac00530408825d7aef46c1133e1a35fce69113464c050eed

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.