@erml/parser
Version:
Parser implementation of ERML
31 lines (30 loc) • 1.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.clearIdentifiers = exports.isDuplicateIdentifier = exports.isValidReference = exports.isValidIdentifier = void 0;
var identifiers = [];
function isValidIdentifier(identifier) {
/** Valid identifier requirements:
* Maximum of 30 characters
* Starts with an uppercase/lowercase letter (a-z, A-Z), or an underscore
* Every character after the first should either be a number, an underscore, or an uppercase/lowercase letter (a-z, A-Z)
*/
return /^[a-zA-Z_]\w{0,29}$/.test(identifier);
}
exports.isValidIdentifier = isValidIdentifier;
function isValidReference(identifier) {
return identifiers.includes(identifier);
}
exports.isValidReference = isValidReference;
function isDuplicateIdentifier(identifier) {
var isDuplicate = identifiers.includes(identifier);
if (isDuplicate) {
return true;
}
identifiers.push(identifier);
return false;
}
exports.isDuplicateIdentifier = isDuplicateIdentifier;
function clearIdentifiers() {
identifiers = [];
}
exports.clearIdentifiers = clearIdentifiers;
;