MCPcopy Create free account
hub / github.com/WolfireGames/overgrowth / CorrectASError

Function CorrectASError

Source/Scripting/angelscript/asmodule.cpp:124–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122typedef std::list<ASErrReport> ErrList;
123
124std::string CorrectASError(const std::string& input_error,
125 const ScriptFile& script_file) {
126 // Break down error message into a list of errors
127 ErrList errors;
128 {
129 size_t line_break = 0;
130 unsigned input_error_size = input_error.size();
131 do {
132 size_t next_line_break = input_error.find('\n', line_break + 1);
133 if (next_line_break == std::string::npos) {
134 next_line_break = input_error_size;
135 }
136 if (next_line_break - line_break < 10) {
137 break;
138 }
139 std::string err_line = input_error.substr(line_break,
140 next_line_break - line_break);
141 errors.push_back(ASErrReport(err_line));
142 line_break = next_line_break;
143 } while (line_break != input_error_size);
144 }
145
146 // Correct line numbers and file names
147 {
148 ErrList::iterator iter = errors.begin();
149 for (; iter != errors.end(); ++iter) {
150 ASErrReport& err = (*iter);
151 LineFile line_file = script_file.GetCorrectedLine(err.line_number);
152 err.line_number = line_file.line_number;
153 err.file_name = line_file.file.GetFullPath();
154 err.file_name = err.file_name.substr(err.file_name.rfind('/') + 1);
155 }
156 }
157
158 // Create new error message string
159 std::string err_message;
160 {
161 std::ostringstream oss;
162 ErrList::iterator iter = errors.begin();
163 for (; iter != errors.end(); ++iter) {
164 ASErrReport& err = (*iter);
165 if (err.type != _INFO) {
166 oss << " " << StringFromErrType(err.type) << ": "
167 << err.file_name << " (" << err.line_number
168 << ", " << err.column_number << ") "
169 << err.message << "\n";
170 } else {
171 oss << err.message << "\n";
172 }
173 }
174 err_message = oss.str();
175 }
176
177 return err_message;
178}
179
180int ASModule::CompileScriptFromText(const std::string& text) {
181 func_map_.clear();

Callers 1

CompileScriptMethod · 0.85

Calls 10

ASErrReportClass · 0.85
StringFromErrTypeFunction · 0.85
GetFullPathMethod · 0.80
sizeMethod · 0.45
findMethod · 0.45
push_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
GetCorrectedLineMethod · 0.45
strMethod · 0.45

Tested by

no test coverage detected