scribble-enhanced/graph-lib/graph/__DEBUG_graph5.rkt

76 lines
1.8 KiB
Racket

#lang typed/racket
#|(require
"graph.lp2.rkt"
"../type-expander/type-expander.lp2.rkt")
(define-graph g2
[a [v : Number] [w : b] ((ma) (a 1 (mb)))]
[b [v : String] ((mb) (frob) (b "b"))])
(define (frob)
: (g2 b)
(error "niy!"))|#
#|
(module mm typed/racket
(require ;(submod "graph.lp2.rkt" test)
"graph.lp2.rkt"
"../type-expander/type-expander.lp2.rkt")
(provide g2)
(define-graph g2
[a [v : Number] [w : b] ((ma) (a 1 (mb)))]
[b [v : String] ((mb) (frob) (b "b"))])
(define (frob)
: (g2 b)
(error "niy!")))
(require "graph.lp2.rkt"
"../type-expander/type-expander.lp2.rkt"
'mm)
(λ ([x : (g2 b)]) x)
(λ ([x : (g2 a)]) x)
|#
#|
(require "../type-expander/type-expander.lp2.rkt")
(require "graph.lp2.rkt")
(define-graph g2 [a [v : Number] ((ma) (a 1))])
|#
(require "graph-5-multi-ctors.lp2.rkt"
"../lib/low.rkt"
"graph.lp2.rkt"
"get.lp2.rkt"
"../type-expander/type-expander.lp2.rkt"
"../type-expander/multi-id.lp2.rkt"
(for-syntax syntax/parse))
(define-graph/multi-ctor gm ([a [b1 : b] [b2 : b] [s : String] [v : Number]]
[b [a : a] [s : String] [v : Number]])
[(r [v : Integer] [w : String])
: a
(printf "r ~a ~a\n" v w)
(a (bx (if (> v 0) (sub1 v) (string-length w)))
(by (if (> v 0) (sub1 v) (string-length w)) "xyz")
w
v)]
[(bx [v : Integer])
: b
(printf "bx ~a\n" v)
(b (r v "one") "x" v)]
[(by [v : Integer] [w : String])
: b
(printf "by ~a ~a\n" v w)
(b (r v "two") "y" (+ v (string-length w)))])
(define gmi (gm 3 "b"))
(check-equal?: (get gmi v) 3)
(check-equal?: (get gmi b1 v) 2)
(check-equal?: (get gmi b1 s) "x")
(check-equal?: (get gmi b1 a v) 2)
;(check-equal?: (get gmi b1 a b1 a v) 1)
;(check-equal?: (get gmi b1 a b1 a b1 v) 1)