tcg
Version:
The Code Generator
72 lines (68 loc) • 1.54 kB
JavaScript
/**
* Created by randy on 2016/6/10.
*/
;
module.exports = function() {
};
module.exports.prototype.resolveType = function(t) {
switch(t)
{
case 'uint8':
case 'uint16':
case 'uint32':
case 'uint64':
case 'int8':
case 'int16':
case 'int32':
case 'int64':
return t + '_t';
case 'bool':
case 'char':
case 'double':
case 'float':
case 'bool':
return t;
default:
return t;
}
};
module.exports.prototype.getType = function(type) {
switch(type.type) {
case "typedef":
return this.resolveType(type.refer);
case "enum":
case "struct":
case "union":
return type.refer + '_t';
default:
return this.resolveType(type.type);
}
};
module.exports.prototype.getValue = function(value)
{
switch(value.type) {
case 'refer':
case 'string':
case 'double':
case 'bool':
case 'char':
return value.value;
//这两个类型应该按照format指定的格式输出
case 'int64':
case 'uint64':
return value.value;
}
};
module.exports.prototype.getFileTag = function(file)
{
var up = file.toUpperCase();
var tag = "";
for(var i = 0; i < up.length; ++i) {
if ((up[i] >= 'A') && (up[i] <= 'Z')) {
tag += up[i];
} else {
tag += '_';
}
}
return tag;
}