@creditkarma/thrift-parser
Version:
A parser for Thrift written in TypeScript
162 lines • 5.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createConstList = exports.createConstMap = exports.createListFieldType = exports.createSetFieldType = exports.createMapFieldType = exports.createKeywordFieldType = exports.createBooleanLiteral = exports.createDoubleConstant = exports.createIntConstant = exports.createExponentialLiteral = exports.createFloatLiteral = exports.createHexLiteral = exports.createIntegerLiteral = exports.createStringLiteral = exports.createStructDefinition = exports.createFieldID = exports.createFieldDefinition = exports.creataePropertyAssignment = exports.createIdentifier = exports.createToken = exports.createTextPosition = exports.createTextLocation = exports.createScanError = exports.createParseError = void 0;
const types_1 = require("./types");
function createParseError(message, loc) {
return {
type: types_1.ErrorType.ParseError,
message,
loc,
};
}
exports.createParseError = createParseError;
function createScanError(message, loc) {
return {
type: types_1.ErrorType.ScanError,
message,
loc,
};
}
exports.createScanError = createScanError;
function createTextLocation(start, end) {
return { start, end };
}
exports.createTextLocation = createTextLocation;
function createTextPosition(line, column, index) {
return { line, column, index };
}
exports.createTextPosition = createTextPosition;
function createToken(type, text, loc) {
return { type, text, loc };
}
exports.createToken = createToken;
function createIdentifier(value, loc, annotations) {
return { type: types_1.SyntaxType.Identifier, value, loc, annotations };
}
exports.createIdentifier = createIdentifier;
function creataePropertyAssignment(name, initializer, loc) {
return {
type: types_1.SyntaxType.PropertyAssignment,
name,
initializer,
loc,
};
}
exports.creataePropertyAssignment = creataePropertyAssignment;
function createFieldDefinition(name, fieldID, requiredness, fieldType, loc, defaultValue = null, annotations, comments = []) {
return {
type: types_1.SyntaxType.FieldDefinition,
name,
fieldID,
requiredness,
fieldType,
defaultValue,
annotations,
comments,
loc,
};
}
exports.createFieldDefinition = createFieldDefinition;
function createFieldID(value, loc) {
return {
type: types_1.SyntaxType.FieldID,
value,
loc,
};
}
exports.createFieldID = createFieldID;
function createStructDefinition(name, fields, loc, comments = []) {
return {
type: types_1.SyntaxType.StructDefinition,
name,
fields,
comments,
loc,
};
}
exports.createStructDefinition = createStructDefinition;
function createStringLiteral(value, loc) {
return {
type: types_1.SyntaxType.StringLiteral,
value,
loc,
};
}
exports.createStringLiteral = createStringLiteral;
function createIntegerLiteral(value, loc) {
return { type: types_1.SyntaxType.IntegerLiteral, value, loc };
}
exports.createIntegerLiteral = createIntegerLiteral;
function createHexLiteral(value, loc) {
return { type: types_1.SyntaxType.HexLiteral, value, loc };
}
exports.createHexLiteral = createHexLiteral;
function createFloatLiteral(value, loc) {
return { type: types_1.SyntaxType.FloatLiteral, value, loc };
}
exports.createFloatLiteral = createFloatLiteral;
function createExponentialLiteral(value, loc) {
return { type: types_1.SyntaxType.ExponentialLiteral, value, loc };
}
exports.createExponentialLiteral = createExponentialLiteral;
function createIntConstant(value, loc) {
return { type: types_1.SyntaxType.IntConstant, value, loc };
}
exports.createIntConstant = createIntConstant;
function createDoubleConstant(value, loc) {
return { type: types_1.SyntaxType.DoubleConstant, value, loc };
}
exports.createDoubleConstant = createDoubleConstant;
function createBooleanLiteral(value, loc) {
return { type: types_1.SyntaxType.BooleanLiteral, value, loc };
}
exports.createBooleanLiteral = createBooleanLiteral;
function createKeywordFieldType(type, loc, annotations) {
return { type, loc, annotations };
}
exports.createKeywordFieldType = createKeywordFieldType;
function createMapFieldType(keyType, valueType, loc, annotations) {
return {
type: types_1.SyntaxType.MapType,
keyType,
valueType,
loc,
annotations,
};
}
exports.createMapFieldType = createMapFieldType;
function createSetFieldType(valueType, loc, annotations) {
return {
type: types_1.SyntaxType.SetType,
valueType,
loc,
annotations,
};
}
exports.createSetFieldType = createSetFieldType;
function createListFieldType(valueType, loc, annotations) {
return {
type: types_1.SyntaxType.ListType,
valueType,
loc,
annotations,
};
}
exports.createListFieldType = createListFieldType;
function createConstMap(properties, loc) {
return {
type: types_1.SyntaxType.ConstMap,
properties,
loc,
};
}
exports.createConstMap = createConstMap;
function createConstList(elements, loc) {
return {
type: types_1.SyntaxType.ConstList,
elements,
loc,
};
}
exports.createConstList = createConstList;
//# sourceMappingURL=factory.js.map