parseParameters(rawText, templates) {
		this.parameters = [];

		const groups = splitTags(rawText);
		const numParams = groups.length;

		if (numParams > 1) {
			this.commaSeperated = true;
		}

		const parsFlag = 1 << (numParams - 1);

		let templateNumber = 0;

		if (templates.length > 1 && numParams > templates[0].length) {
			templateNumber++;
		}

		let i = 0;
		for (const param of templates[templateNumber]) {
			if (this.commaSeperated || param.varType === VT.OVERRIDE) {
				this.needsParentheses = true;
			}

			const { varType, paramClass, optionFlag } = param;
			this.push(new OverrideTagParameter(varType, paramClass, optionFlag));

			if (!(optionFlag & parsFlag) || i >= numParams) {
				continue;
			}

			this.parameters[this.length - 1].setValue(groups[i++]);
		}
	}
/**
	 * @param {string} rawText - string containing all the parameters this tag will have
	 * @param {OverrideTag[]} templates - typically only has one template in it, aside from \clip and \iclip
	 */
@param {string} rawText - string containing all the parameters this tag will have
@param {OverrideTag[]} templates - typically only has one template in it, aside from \clip and \iclip
@param { string } rawText - string containing all the parameters this tag will have @param { OverrideTag [] } templates - typically only has one template in it aside from \ clip and \ iclip
parseParameters(rawText, templates) {
		this.parameters = [];
		const groups = splitTags(rawText);
		const numParams = groups.length;
		if (numParams > 1) {
			this.commaSeperated = true;
		}
		const parsFlag = 1 << (numParams - 1);
		let templateNumber = 0;
		if (templates.length > 1 && numParams > templates[0].length) {
			templateNumber++;
		}
		let i = 0;
		for (const param of templates[templateNumber]) {
			if (this.commaSeperated || param.varType === VT.OVERRIDE) {
				this.needsParentheses = true;
			}
			const { varType, paramClass, optionFlag } = param;
			this.push(new OverrideTagParameter(varType, paramClass, optionFlag));
			if (!(optionFlag & parsFlag) || i >= numParams) {
				continue;
			}
			this.parameters[this.length - 1].setValue(groups[i++]);
		}
	}
parseParameters ( rawText , templates ) { this . parameters = [ ] ; const groups = splitTags ( rawText ) ; const numParams = groups . length ; if ( numParams > 1 ) { this . commaSeperated = true ; } const parsFlag = 1 << ( numParams - 1 ) ; let templateNumber = 0 ; if ( templates . length > 1 && numParams > templates [ 0 ] . length ) { templateNumber ++ ; } let i = 0 ; for ( const param of templates [ templateNumber ] ) { if ( this . commaSeperated || param . varType === VT . OVERRIDE ) { this . needsParentheses = true ; } const { varType , paramClass , optionFlag } = param ; this . push ( new OverrideTagParameter ( varType , paramClass , optionFlag ) ) ; if ( ! ( optionFlag & parsFlag ) || i >= numParams ) { continue ; } this . parameters [ this . length - 1 ] . setValue ( groups [ i ++ ] ) ; } }
@param {string} rawText - string containing all the parameters this tag will have
 @param {OverrideTag[]} templates - typically only has one template in it, aside from \clip and \iclip
@param { string } rawText - string containing all the parameters this tag will have @param { OverrideTag [] } templates - typically only has one template in it aside from \ clip and \ iclip