aboutsummaryrefslogtreecommitdiff
path: root/tree.icl
blob: c7cdc771ce01aac07a40dece5b2e9365ebd1bf9c (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
module tree

import StdEnv

import Data.Maybe, Data.List
from Data.Func import $

import System.CommandLine, System.GetOpt

import Smurf
import SmurfParse

Start w
# (_,f,w)    = fopen "reverse.smf" FReadText w
# (pgm,f)    = readFile f
# (ok,w)     = fclose f w
# (Just pgm) = parse [c \\ c <-: pgm]
= toString (devtree pgm)
where
	devtree pgm = fromJust (tree pgm zero {zero & input = ["reverse"]} listIO)

	readFile :: !*File -> *(!String, !*File)
	readFile f
		# (end,f) = fend f
		| end     = ("", f)
		# (s,f)   = freadline f
		# (ss,f)  = readFile f
		= (s +++ ss, f)