Kind | Covered | All | % |
expression | 0 | 3 | 0.0 |
branch | 0 | 0 | nil |
1
;; Setup this package to extract
2
(defpackage #:geb.vampir.spec
3
(:documentation "The Vampir model specification")
4
(:use #:common-lisp)
5
(:shadow :=)
6
(:local-nicknames (#:ser #:serapeum))
7
(:export
8
;; New Top Level Term Variants Defined
9
:statement
10
:constraint
11
:expression
12
:normal-form
13
:primitive
14
15
;; New Term Lists Defined
16
:normal-form-list
17
:constraint-list
18
;; Term ADT Constructors Defined
19
:alias :name :inputs :outputs :body
20
:pub :wires
21
:infix :op :lhs :rhs
22
:application :func :arguments
23
:bind :names :value
24
:equality :lhs :rhs
25
:wire :var
26
:constant :const
27
:tuple :wires
28
:curly :value
29
:brackets
30
31
;; Constructors
32
:make-alias :make-pub :make-infix :make-application :make-tuples :make-curly
33
:make-bind :make-equality :make-wire :make-constant :make-brackets))
34
35
(geb.utils:muffle-package-variance
36
(defpackage #:geb.vampir
37
(:documentation "Provides a vampir representation")
38
(:use #:common-lisp #:serapeum #:geb.vampir.spec)
39
(:shadowing-import-from #:geb.vampir.spec #:op #:tuple)
40
(:shadowing-import-from #:common-lisp #:=)
41
(:local-nicknames (#:spc #:geb.vampir.spec))
42
(:export
43
:extract
44
45
;; vampir api functions
46
:*bool*
47
:bool
48
:*base-range*
49
:*next-range*
50
:next-range
51
:*range-n*
52
:range-n
53
:*range32*
54
:range32
55
56
:*hd*
57
:hd
58
:*tl*
59
:tl
60
:nth
61
:*negative*
62
:negative
63
64
:*plus-range*
65
:plus-range
66
:*mult-range*
67
:mult-range
68
:*minus-range*
69
:minus-range
70
71
:*isZero*
72
:isZero
73
74
:*combine*
75
:combine
76
:*drop-ith*
77
:drop-ith
78
:*int-range32*
79
:int-range32
80
81
:*negative32*
82
:negative32
83
84
:*non-negative32*
85
:non-negative32
86
87
:*range31*
88
:range31
89
90
:*int-range31*
91
:int-range31
92
93
:*less32*
94
:less32
95
96
:*pwless32*
97
:pwless32
98
99
:*mod32*
100
:mod32
101
102
:*pwmod32*
103
:pwmod32
104
105
:*range-n*
106
:range-n
107
108
:*mod-n*
109
:mod-n)))
110