24 lines
930 B
Plaintext
24 lines
930 B
Plaintext
!import "arboricx.tri" !Local
|
|
!import "patterns.tri" !Local
|
|
|
|
-- Multi-purpose kernel dispatch.
|
|
--
|
|
-- runArboricxTyped tag bundleBytes args
|
|
-- tag 0 → hostTree (runArboricxToTree)
|
|
-- tag 1 → hostString (runArboricxToString)
|
|
-- tag 2 → hostNumber (runArboricxToNumber)
|
|
-- tag 3 → hostBool (runArboricxToBool)
|
|
-- tag 4 → hostList (runArboricxToList)
|
|
-- tag 5 → hostBytes (runArboricxToBytes)
|
|
-- otherwise → err 99 bundleBytes
|
|
|
|
runArboricxTyped = (tag bs args :
|
|
match tag
|
|
[[(equal? hostTreeTag) (_ : runArboricxToTree bs args)]
|
|
[(equal? hostStringTag) (_ : runArboricxToString bs args)]
|
|
[(equal? hostNumberTag) (_ : runArboricxToNumber bs args)]
|
|
[(equal? hostBoolTag) (_ : runArboricxToBool bs args)]
|
|
[(equal? hostListTag) (_ : runArboricxToList bs args)]
|
|
[(equal? hostBytesTag) (_ : runArboricxToBytes bs args)]
|
|
[otherwise (_ : err 99 bs)]])
|