comparison nworker_c.rhope @ 135:18a4403fe576

Javascript backend can now produce broken output. Needs fixes plus port of standard lib
author Mike Pavone <pavone@retrodev.com>
date Sun, 14 Nov 2010 03:09:49 -0500
parents 1af91ceaaf49
children fc3815b7462f
comparison
equal deleted inserted replaced
134:386f4a874821 135:18a4403fe576
1 Import cbackend_c.rhope
2 Import number_c.rhope 1 Import number_c.rhope
3 Import boolean.rhope 2 Import boolean.rhope
4 3
5 Blueprint Condition Set 4 Blueprint Condition Set
6 { 5 {
1351 }{ 1350 }{
1352 out <- func 1351 out <- func
1353 } 1352 }
1354 } 1353 }
1355 1354
1356 Make Special@NBlueprint[bp,backend,func name,bp name,pop worker:out] 1355 Make Special@NBlueprint[bp,backend,info,bp name:out]
1357 { 1356 {
1357 func name <- [info]Index[0]
1358 pop worker <- [info]Index[1]
1358 func <- [[backend]Create Function[func name,("obj"),(),"cdecl"] 1359 func <- [[backend]Create Function[func name,("obj"),(),"cdecl"]
1359 ]Set Input Type[Type Instance[bp name], 0] 1360 ]Set Input Type[Type Instance[bp name], 0]
1360 out <- [backend]Store Function[Fold[pop worker, func, [bp]Fields >>]] 1361 out <- [backend]Store Function[Fold[pop worker, func, [bp]Fields >>]]
1361 } 1362 }
1362 1363
1432 out <- [backend]Register Type[type] 1433 out <- [backend]Register Type[type]
1433 } 1434 }
1434 1435
1435 Compile Special@NBlueprint[bp,backend,name:out] 1436 Compile Special@NBlueprint[bp,backend,name:out]
1436 { 1437 {
1437 init name <- [" init "]Append[name] 1438 makespecial <- [[[Dictionary[]
1438 [("Array","Boxed Array","Worker")]Find[=[?,name]] 1439 ]Set["init", Make Init[?]]
1439 { 1440 ]Set["copy", Make Copy[?]]
1440 after copyclean <- Val[backend] 1441 ]Set["cleanup", Make Cleanup[?]]
1441 }{ 1442
1442 copy name <- [" copy "]Append[name] 1443 after specials <- Fold[[bp]Make Special[?, ?, name], backend, [backend]Needed Specials[name,makespecial]]
1443 cleanup name <- [" cleanup "]Append[name] 1444 out <- Fold[Getters Setters[?, ?, name], after specials, [bp]Fields >>]
1444 after copyclean <- [bp]Make Special[
1445 [bp]Make Special[backend, copy name, name, Make Copy[?]],
1446 cleanup name, name, Make Cleanup[?]]
1447 }
1448 out <- Fold[Getters Setters[?, ?, name], [bp]Make Special[after copyclean, init name, name, Make Init[?]], [bp]Fields >>]
1449 } 1445 }
1450 1446
1451 Blueprint NProgram 1447 Blueprint NProgram
1452 { 1448 {
1453 Blueprints 1449 Blueprints