UNPKG

ts-fusion-parser

Version:

Parser for Neos Fusion Files

38 lines (37 loc) 1.77 kB
"use strict"; 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;