changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/lib/dat/pkg.lisp

changeset 146: 1cf6c13e61e8
parent: 960c010a23ce
child: 17c05cd3e549
author: ellis <ellis@rwest.io>
date: Fri, 29 Dec 2023 20:31:52 -0500
permissions: -rw-r--r--
description: migrated sxp->dat/sxp
1 (defpackage :dat/proto
2  (:use :cl :std)
3  (:export :serialize :deserialize
4  :serializer-error :deserializer-error
5  :dat-error))
6 
7 (defpackage :dat/sxp
8  (:nicknames :sxp)
9  (:use :cl :sb-mop :std)
10  (:import-from :uiop :read-file-forms :slurp-stream-forms :with-output-file)
11  ;; TODO: hot-patch readtables into sxp classes/parsers
12  (:import-from :std/named-readtables :defreadtable :in-readtable)
13  (:export
14  :sxp-fmt-designator
15  :form :formp :sxp-error :sxp-fmt-error :sxp-syntax-error :reader :writer :fmt
16  :wrap :wrap! :wrap-from-string! :unwrap :unwrap! :unwrap-or
17  :sxpp :build-ast :load-ast :ast
18  :define-macro :define-fmt :read-sxp-file :write-sxp-file
19  :read-sxp-string :write-sxp-string :read-sxp-stream :write-sxp-stream
20  :make-sxp :sxp :formp :form
21  :wrap-object :unwrap-object))
22 
23 (defpackage :dat/csv
24  (:use :cl :std :dat/proto)
25  (:export
26  :read-csv-file
27  #:read-csv-stream
28  :write-csv-file
29  :write-csv-stream
30  :read-csv-file-and-sort
31  :parse-csv-string))
32 
33 (defpackage :dat/arff
34  (:use :cl :std :dat/proto :dat/csv)
35  (:export
36  :arff :arff-relation :arff-attributes :arff-data :arff-path
37  :parse-arff :parse-arff-string :parse-arff-stream
38  :remove-attribute-by-name))
39 
40 (defpackage :dat/toml
41  (:use :cl :std :dat/proto :obj/time)
42  (:export
43  #:parse
44  #:parse-toml-blocks
45  #:collection
46  #:children
47  #:table
48  #:inline-table
49  #:table-array
50  #:toml-redefine-table-error
51  #:toml-redefine-property-error
52  #:toml-modify-inline-table-error
53  #:toml-dotted-key-redefine-table-error
54  #:toml-dotted-key-open-table-array-error))
55 
56 (defpackage :dat/json
57  (:use :cl :std :dat/proto)
58  (:export
59  #:json-decode
60  #:json-encode
61  #:json-read
62  #:json-enable-reader-macro
63  #:json-object
64  #:json-object-members
65  #:json-getf
66  #:json-setf))
67 
68 (defpackage :dat/xml
69  (:use :cl :std :dat/proto)
70  (:shadow :read-char :unread-char)
71  (:export
72  :xml-node-name
73  :xml-node-ns
74  :xml-node-attrs
75  :xml-node-children
76  :make-xml-node
77  :xml-parse
78  :to-xml
79  :write-xml
80  :xml-node-p
81  :nodelist->xml-node
82  :xml-node->nodelist
83  :xml-node ; needed to support use in typep
84  ;; processing instruction objects
85  :proc-inst-p
86  :proc-inst-target
87  :proc-inst-contents
88  :write-prologue
89  :write-prolog
90  ;; rpg utils
91  :make-xmlrep :xmlrep-add-child!
92  :xmlrep-tag :xmlrep-tagmatch
93  :xmlrep-attribs :xmlrep-children
94  :xmlrep-string-child :xmlrep-integer-child
95  :xmlrep-find-child-tags :xmlrep-find-child-tag
96  :xmlrep-attrib-value :xmlrep-boolean-attrib-value
97  ;; tree searching from Daniel Eliason
98  :extract-path-list
99  :extract-path))
100 
101 (defpackage :dat/bencode
102  (:use :cl :std :dat/proto :sb-gray)
103  (:export
104  :bencode-encode
105  :bencode-decode
106  :*bencode-binary-key-p*))
107 
108 (uiop:define-package :dat
109  (:use-reexport :dat/proto :dat/csv :dat/arff :dat/toml :dat/json :dat/sxp :dat/xml :dat/bencode))