Sum Inh S
Center
imports
{
import System.Environment( getArgs )
import System.CPUTime
}
DATA Root
| Root tree: Tree
DATA Tree
| Node c1: Tree ... cn: Tree
| Leaf value: Int
ATTR Tree Root [ | | sval USE {+} {0} : Int ]
ATTR Tree [ ival : Int | | ]
SEM Root
| Root lhs.sval = @tree.sval
SEM Tree
| Leaf lhs.sval = @lhs.ival
SEM Root
| Root tree.ival = 0
{
genTree 0 = sem_Tree_Leaf $ sem_Lit 2
genTree n = sem_Tree_Node (genTree $ n-1) ... (genTree $ n-1)
main = do
(cant:_) <- getArgs
let p = cpuTimePrecision
t1 <- getCPUTime
print ((sem_Root_Root (genTree (read cant)) InhG_Root) # att_sval)
t2 <- getCPUTime
print $ (t2 - t1) `div` p
}