Some refactoring has taken place. Nodes in ast are now represented as
as objects (see nodes.py). Each node has got assigned a translator
according to its type. Each translator (see translate.py) has method
translate which is the main entry point. Translators are supposed
to invoke eachother as appropriate to translate child AST nodes
(e.g. AssignTranslator.translate calls ListTranslators.translate).
For that purpose NodeTranslator.call_translate method is used.

C code generated in translators is supposed to be stored in self.cbox
which is a class variable of NodeTranslator (a parent of all translators).
In the end ProgramTranslator uses content of cbox to render the final
c source code with help of template.c via Template class.

translate methods might need to be extended with parameter "context".
Also their return value might get more complicated and more formalized
(atm. it is just not). This should provide a good way for intercommunication
among translators.