Mercurial > repos > rhope
comparison cbackend_c.rhope @ 176:327bcf35e094
Add bytecode interpreter
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 08 Jun 2011 23:24:29 -0700 |
parents | 926b56a43f47 |
children |
comparison
equal
deleted
inserted
replaced
175:03e4fa277291 | 176:327bcf35e094 |
---|---|
593 { | 593 { |
594 source <- [psource]Make Op[func] | 594 source <- [psource]Make Op[func] |
595 dest <- [pdest]Make Op[func] | 595 dest <- [pdest]Make Op[func] |
596 out <- [func]Add Statement[[[dest]Append[" = "]]Append[source]] | 596 out <- [func]Add Statement[[[dest]Append[" = "]]Append[source]] |
597 } | 597 } |
598 | |
598 | 599 |
599 | 600 |
600 | 601 |
601 Do AddRef@C Function[func,psource,pdest:out] | 602 Do AddRef@C Function[func,psource,pdest:out] |
602 { | 603 { |
1543 | 1544 |
1544 Dispatch@C Program[program,all methods:out] | 1545 Dispatch@C Program[program,all methods:out] |
1545 { | 1546 { |
1546 out <- [[[[["typedef enum {\n" | 1547 out <- [[[[["typedef enum {\n" |
1547 ]Append[Fold[_Dispatch Enum[?], | 1548 ]Append[Fold[_Dispatch Enum[?], |
1548 [Fold[_Dispatch Enum Methods[[program]Escape Pattern >>,?], "", all methods]]Append["\tFUNC_Build,\n\tFUNC_BlueprintSP_Of,\n\tFUNC_ID,\n\tFUNC_BlueprintSP_FromSP_ID,\n\tFUNC_Pause,\n\tRES_1_Pause,\n\tFUNC_Resume,\n"], | 1549 [Fold[_Dispatch Enum Methods[[program]Escape Pattern >>,?], "", all methods]]Append["\tFUNC_Build,\n\tFUNC_BlueprintSP_Of,\n\tFUNC_ID,\n\tFUNC_BlueprintSP_FromSP_ID,\n\tFUNC_Pause,\n\tRES_1_Pause,\n\tFUNC_Resume,\n\tFUNC_RunSP_Bytecode,\n\tRES_1_RunSP_Bytecode,\n"], |
1549 [program]Functions >>]] | 1550 [program]Functions >>]] |
1550 ]Append["\tEND,\n\tEND_THREAD\n} funcids;\n\n"] | 1551 ]Append["\tEND,\n\tEND_THREAD\n} funcids;\n\n"] |
1551 ]Append["#define DispatchEntries \\\n"] | 1552 ]Append["#define DispatchEntries \\\n"] |
1552 ]Append[Fold[_Dispatch Switch[?], | 1553 ]Append[Fold[_Dispatch Switch[?], |
1553 [Fold[_Dispatch Switch Methods[[program]Escape Pattern >>,?], "", all methods]]Append["\tDispatchEntry(Build)\\\n\tDispatchEntry(BlueprintSP_Of)\\\n\tDispatchEntry(ID)\\\n\tDispatchEntry(BlueprintSP_FromSP_ID)\\\n\tDispatchEntry(Pause)\\\n\tResumeEntry(1,Pause)\\\n\tDispatchEntry(Resume)\\\n"], | 1554 [Fold[_Dispatch Switch Methods[[program]Escape Pattern >>,?], "", all methods]]Append["\tDispatchEntry(Build)\\\n\tDispatchEntry(BlueprintSP_Of)\\\n\tDispatchEntry(ID)\\\n\tDispatchEntry(BlueprintSP_FromSP_ID)\\\n\tDispatchEntry(Pause)\\\n\tResumeEntry(1,Pause)\\\n\tDispatchEntry(Resume)\\\n\tDispatchEntry(RunSP_Bytecode)\\\n\tResumeEntry(1,RunSP_Bytecode)\\\n"], |
1554 [program]Functions >>]] | 1555 [program]Functions >>]] |
1555 ]Append["\tEndEntry\\\n\tEndThreadEntry\n\n"] | 1556 ]Append["\tEndEntry\\\n\tEndThreadEntry\n\n"] |
1556 } | 1557 } |
1557 | 1558 |
1558 Not Native[func:out] | 1559 Not Native[func:out] |