MicroModelicaCCompiler
4.5.3
|
Go to the documentation of this file.
31 Package::Package(IR::Package& package, CompileFlags& flags,
WriterPtr writer) : _package(package), _flags(flags), _writer(writer) {}
35 string indent =
_writer->indent(1);
44 fileName.append(
".moo");
49 for (list<string>::iterator it = objects.begin(); it != objects.end(); it++) {
52 _writer->print(
"ENDDEPENDENCES");
71 _writer->print(
"ENDDERIVATIVE");
74 _writer->print(
"INCLUDEDIRECTORY");
76 _writer->print(
"ENDINCLUDEDIRECTORY");
79 _writer->print(
"LIBRARYDIRECTORY");
81 _writer->print(
"ENDLIBRARYDIRECTORY");
87 for (
string i = libs.begin(it); !libs.end(it); i = libs.next(it)) {
92 _writer->print(
"ENDDEFINITION");
96 fileName.append(
".h");
98 _writer->print(
"#pragma once\n");
99 for (IR::Function f = ft.
begin(it); !ft.
end(it); f = ft.
next(it)) {
107 fileName.append(
".c");
109 buffer <<
"#include <math.h>" << endl;
110 buffer <<
"#include <stdlib.h>" << endl;
111 buffer <<
"#include \"" << name <<
".h\"" << endl;
113 for (
string i = includes.
begin(incIt); !includes.
end(incIt); i = includes.
next(incIt)) {
119 for (
string i = imports.begin(impIt); !imports.end(impIt); i = imports.next(impIt)) {
121 buffer <<
"#include \"" << addInclude <<
".h\"" << endl;
122 includes.
insert(addInclude, addInclude);
124 if (!imports.empty()) {
128 for (IR::Function f = ft.
begin(it); !ft.
end(it); f = ft.
next(it)) {
131 func.addInclude(includes);
string includeDirectory()
ModelTable< std::string, std::string > ImportTable
std::string packageName(std::string name)
bool hasIncludeDirectory()
bool hasLibraryDirectory()
ModelTable< std::string, std::string > SymbolTable
Util::CompileFlags _flags
Util::SymbolTable libraries() const
std::map< std::string, Function >::iterator iterator
FunctionTable definitions()
string libraryDirectory()
static Utils & instance()
void insert(Key k, Value v)
std::string packagePath(std::string pname, CompileFlags flags, std::string ext=".mo")
Util::ImportTable imports() const
std::shared_ptr< Writer > WriterPtr