aboutsummaryrefslogtreecommitdiff
path: root/ABC/IO.icl
blob: 0762ed225d9c10726293c54f34c0b8d970088863 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
implementation module ABC.IO

import StdEnv

import ABC.Machine
import ABC.Misc

:: IO :== [Char]

instance toString IO where toString io = {c \\ c <- io}

io_init  :: IO
io_init = []

io_print :: a IO -> IO | toString a
io_print x io = io ++ fromString (toString x)

show_node :: Node Desc -> String
show_node (Basic _ _ b) _           = toString b
show_node (Node _ _ _) (Desc _ _ n) = n

instance toString State
where
	toString {astack,bstack,cstack,graphstore,descstore,pc,program,io}
		= "pc      : " <+ pc <+ "\n" <+
		  "A-stack : " <+ astack <+ "\n" <+
		  "B-stack : " <+ bstack <+ "\n" <+
		  "C-stack : " <+ cstack <+ "\n" <+
		  "Graph   :\n" <+ show_graphstore graphstore descstore