Mercurial > repos > rhope
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 |