ts-fusion-parser
Version:
Parser for Neos Fusion Files
38 lines (37 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PropertyDocumentationDefinition = void 0;
const AbstractStatement_1 = require("./AbstractStatement");
const ObjectStatement_1 = require("./ObjectStatement");
const StatementList_1 = require("./StatementList");
const ValueAssignment_1 = require("./ValueAssignment");
const PropertyDocumentationDefinitionRegex = /^\/\/\/ ?([^\s]+)(?: (.*))?/;
class PropertyDocumentationDefinition extends AbstractStatement_1.AbstractStatement {
constructor(rawContent, position, parent) {
var _a;
super(position, parent);
this.rawContent = rawContent;
const result = PropertyDocumentationDefinitionRegex.exec(rawContent);
this.type = (_a = result === null || result === void 0 ? void 0 : result[1]) !== null && _a !== void 0 ? _a : "<unknown>";
this.text = result === null || result === void 0 ? void 0 : result[2];
}
findNextStatement() {
const statementList = this.parent;
if (!(statementList instanceof StatementList_1.StatementList))
return undefined;
const ownIndex = statementList.statements.indexOf(this);
for (let i = ownIndex + 1; i < statementList.statements.length; i++) {
const statement = statementList.statements[i];
if (!(statement instanceof ObjectStatement_1.ObjectStatement))
continue;
if (!(statement.operation instanceof ValueAssignment_1.ValueAssignment))
continue;
return statement;
}
return undefined;
}
visit(visitor, ...args) {
// TODO: visit PropertyDocumentationDefinition
}
}
exports.PropertyDocumentationDefinition = PropertyDocumentationDefinition;