void PYGenerator::generate() { std::string fn = gOptions.output_ + gOptions.inputFS_ + ".py"; CodeFile f(fn); f.output("from bintalk import protocol_writer"); f.output("from bintalk import protocol_reader"); for(std::set<std::string>::iterator iter = gContext.imported_.begin(); iter != gContext.imported_.end(); ++iter) { std::string incFilename = *iter; incFilename = incFilename.substr(0,incFilename.find('.')); f.output("from %s import *", incFilename.c_str()); } for(size_t i = 0; i < gContext.definitions_.size(); i++) { Definition* definition = gContext.definitions_[i]; if(definition->file_ != gOptions.inputFN_) continue; if (definition->getEnum()) generateEnum(f, definition->getEnum()); else if (definition->getStruct()) generateStruct(f, definition->getStruct()); else if (definition->getService()) generateService(f, definition->getService()); } }
RemoteDoclet::RemoteDoclet(Dependencies& dependencies) : _component(dependencies.getTargetComponent()) { if (!_component.containsAnnotation(REMOTE)) { std::cout << "No match for annotation @remote. Skipping..." << std::endl; return; } if (_component.containsAttributeAnnotation(REMOTE)) { throw "@remote annotations are prohibited for attributes"; } generateClient(_component.getTree()); generateService(_component.getTree()); }
void CSGenerator::generate() { CodeFile f(gOptions.output_ + gOptions.inputFS_ + ".cs"); f.output("using System.Collections.Generic;"); for(size_t i = 0; i < gContext.definitions_.size(); i++) { Definition* definition = gContext.definitions_[i]; if(definition->file_ != gOptions.inputFN_) continue; if (definition->getEnum()) generateEnum(f, definition->getEnum()); else if (definition->getStruct()) generateStruct(f, definition->getStruct()); else if (definition->getService()) generateService(f, definition->getService()); } }
void GoGenerator::generateProgram() { generateEnum(); generateStruct(); generateService(); }