@param c_mlcStart The character used to delimit the start of a multi-line comment. May not equal c_mlcEnd or c_singleLineCmt. See <A HREF="#getMLCStart()">getMLCStart</A>.
@param c_mlcEnd The character used to delimit the end of a multi-line comment. May not equal c_mlcStart or c_singleLineCmt. See <A HREF="#getMLCEnd()">getMLCEnd</A>.
@param c_singleLineCmt The character used to delimit the start of a single-line comment. May not equal c_mlcStart or c_mlcEnd. See <A HREF="#getSingleLineCmt()">getDelimSL</A>.
**/
public CRCDelimiters(char[] ac_varDelims, char c_mlcStart, char c_mlcEnd, char c_singleLineCmt) {
PACChar pacc = new PACChar(ac_varDelims, new PARCStrict(new PAROrderDir(true), UtilChar.getAOCInvisible()));
pacc.crashIfBad("xbn.config.CRCDelimiters.constructor", "ac_varDelims");
apcVarDelims = new APChar(ac_varDelims, true);
ZCICharErr cice = new ZCICharErr();
cice.ciInvisible(c_mlcStart, "c_mlcStart");
cice.ciInvisible(c_mlcEnd, "c_mlcEnd");
cice.ciInvisible(c_singleLineCmt, "c_singleLineCmt");
VWChar vwc = new VWChar();
vwc.addArray(ac_varDelims);
vwc.add(c_mlcStart);
vwc.add(c_mlcEnd);
vwc.add(c_singleLineCmt);
char[] ac = vwc.getAOChar();
pacc = new PACChar(ac, new PARCStrict());
if(!pacc.isValid()) {
throwAX("constructor: ac_varDelims (['" + apcVarDelims.getList("', '") + "']) is valid. However, all characters in ac_varDelims, along with c_mlcStart ('" + c_mlcStart + "'), c_mlcEnd ('" + c_mlcEnd + "') and c_singleLineCmt ('" + c_singleLineCmt + "'), must be unique.");
}
cMLCStart = c_mlcStart;
cMLCEnd = c_mlcEnd;