Sum Syn 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 ]
SEM Root
| Root lhs.sval = @tree.sval
SEM Tree
| Leaf lhs.sval = @value
{
genTree 0 = sem_Tree_Leaf $ sem_Lit (2::Int)
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
}