in src/langs/cpp/combinator.js [91:115]
addInclude(className) {
let realFullClassName, includeFileName, using;
const dependencies = this.dependencies;
if (_contain(className, '$')) {
realFullClassName = this.coreClass(className);
includeFileName = `<${_toSnakeCase(this.config.tea.name)}/${_toSnakeCase(this.config.tea.header)}>`;
} else if (dependencies[className]) {
const info = dependencies[className];
// is third package
let scope = _toSnakeCase(_name(info.scope));
let client = _toSnakeCase(_name(info.package_name));
includeFileName = `<${scope}/${client}.${this.config.header_ext}>`;
realFullClassName = `${_upperFirst(_name(info.scope))}_${_upperFirst(_name(info.package_name))}::Client`;
using = null;
} else {
debug.stack(`Class Name Error : ${className}`, dependencies);
}
if (!this.classNameMap[realFullClassName]) {
const include = { import: realFullClassName, includeFileName, using };
this.classNameMap[realFullClassName] = include;
this.includeList.push(include);
}
return realFullClassName;
}