85 |
|
|
86 |
(*Outside Operator is Add*) |
(*Outside Operator is Add*) |
87 |
fun handleAdd(params, index,list1,args)=let |
fun handleAdd(params, index,list1,args)=let |
88 |
val aa=print "ADDXX" |
|
89 |
val id=ref (length params) |
val id=ref (length params) |
90 |
val n=length index |
val n=length index |
91 |
val ix=List.tabulate (n,fn v=> E.V(v)) |
val ix=List.tabulate (n,fn v=> E.V(v)) |
227 |
(z,(p',b',args')) |
(z,(p',b',args')) |
228 |
end |
end |
229 |
|
|
230 |
|
|
231 |
|
(* need to figure this out*) |
232 |
fun handleSumProd(paramsO, indO,sxO,list1O,argsO)=let |
fun handleSumProd(paramsO, indO,sxO,list1O,argsO)=let |
233 |
val id=ref (length paramsO) |
val id=ref (length paramsO) |
234 |
val n=length indO |
val n=length indO |
258 |
|
|
259 |
|
|
260 |
fun genfn(id,Ein.EIN{params, index, body},args)= let |
fun genfn(id,Ein.EIN{params, index, body},args)= let |
261 |
val mm=print(P.printbody(body)) |
|
262 |
val notDone=([],(params,body,args)) |
val notDone=([],(params,body,args)) |
263 |
|
|
264 |
fun gen body=(case body |
fun gen body=(case body |
285 |
| E.Div(e1,e2)=>handleDiv(params, index,e1,e2,args) |
| E.Div(e1,e2)=>handleDiv(params, index,e1,e2,args) |
286 |
| E.Prod e=> (handleProd(params, index,e,args)) |
| E.Prod e=> (handleProd(params, index,e,args)) |
287 |
| E.Sum(_,E.Prod(E.Img _ :: _ ))=>notDone |
| E.Sum(_,E.Prod(E.Img _ :: _ ))=>notDone |
288 |
| E.Sum(sx,E.Prod e)=>(handleSumProd(params, index,sx,e,args)) |
(* | E.Sum(sx,E.Prod e)=>(handleSumProd(params, index,sx,e,args))*) |
289 |
| _=> notDone |
| _=> notDone |
290 |
(*end case*)) |
(*end case*)) |
291 |
|
|
313 |
end |
end |
314 |
|
|
315 |
fun splitein(id,E.EIN{params,index,body},arg)=let |
fun splitein(id,E.EIN{params,index,body},arg)=let |
316 |
val m=print(printA(id,E.EIN{params=params,index=index,body=body},arg)) |
val _=print(String.concat["\n Pre Shift \n", printA(id,E.EIN{params=params,index=index,body=body},arg)]) |
317 |
val g=print "\n \t changed to =>\n \t" |
|
318 |
val (p',i',b',args')=shiftHtM.clean(params, index, body, arg) |
val (p',i',b',args')=shiftHtM.clean(params, index, body, arg) |
319 |
val einn'=createEin(p',i', b') |
val einn'=createEin(p',i', b') |
320 |
val m=print(printA(id,einn',args')) |
val _ =print(String.concat[ "\n Post shift-\n ",printA(id,einn',args'),"\n \n"]) |
321 |
|
|
322 |
in |
in |
323 |
splitIt(0,(id,einn',args')) |
splitIt(0,(id,einn',args')) |