Recursive COFFEE function for me to modify?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 05/07/2011 at 08:15, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   11.5 
Platform:   Windows  ;   Mac OSX  ; 
Language(s) :   C.O.F.F.E.E  ;

---------
Hi! 
I am new to Coffee, but have used Cinema for a long time. I am currently working on a model of a vehcile, and I want to split the vehicle into parts and save them in a folder for importing into Unity3D. I have made a Unity script that reads a JSON string and loads whatever file indicated in the JSON file. Unity will read JSON string, detailing the (xyz and rotation values) and position the parts together. Problem is, i have to export all parts and write the JSON string by hand. Just because I dont know enough COFFEE. This has to change. 
Basically what I am looking for is a COFFEE script that runs down the object tree looking for transforms starting with the string "Pos_" in their name. This means exporting specific nodes but leaving some alone and also writing a long JSON string with the local transform of detected each node. This way I can easily export a c4d document in as many part-files that I like, and also bring along the transforms I need to put all the parts together nicely inside Unity and other 3D programs.
Does anyone have a recursive coffee script, that runs down the object tree? It would be perfect for me to modify. It would really give me a flying start.  I will share the results here if I get it right. Here is some pseudi. code for the recursive part of the function. 
function readnode(node, JSON string){
> var isPosNode = false; 
> if Substr(node.nodeName, 0, 3) = "Pos_" then
> > isPosNode = true;
> >  JSON = " , "  & node.nodeName & " { fileName :"" & node.nodeName &".c4d" & ",
>>
>> x: " & node.pos.x & ",  
>>
>> y: "& node.pos.y & ",
>>
>> z : "& node.pos.z & ",
>>
>> r : node.rot.r   & ",
>>
>> h : node.rot.h   & ",
>>
>> p : node.rot.p   "
> }  
> for each child as c in node do
> >  readNode (c, JSON);
> loop
>
>
>
> if isPosNode = true then
>
>>   JSON = JSON & "}";  
> >  save (node, "/nodes/" & node.nodeName & ".c4d")
> >  deleteFromTree(node)
> endif
}

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 05/07/2011 at 08:24, xxxxxxxx wrote:

Here you go, recursive function that browses the complete hierarchy:

  
BrowseScene(op)  
{  
  while (op)  
  {  
      // get name and print to console  
      var name = op->GetName();  
      println(name);  
  
      BrowseScene(op->GetDown());  
        
      op = op->GetNext();  
  }  
}  
  
main(doc,op)  
{  
  BrowseScene(doc->GetFirstObject());  
}  

cheers,
Matthias