void RegionTextParser::_parse(const String& contents, const String& fileDesc, bool requireImageRegion) {
#include <imageanalysis/IO/RegionTextParser.h>
#include <casa/IO/RegularFileIO.h>
#include <coordinates/Coordinates/DirectionCoordinate.h>
#include <coordinates/Coordinates/SpectralCoordinate.h>
#include <imageanalysis/Annotations/AnnAnnulus.h>
#include <imageanalysis/Annotations/AnnCenterBox.h>
#include <imageanalysis/Annotations/AnnCircle.h>
#include <imageanalysis/Annotations/AnnEllipse.h>
#include <imageanalysis/Annotations/AnnLine.h>
#include <imageanalysis/Annotations/AnnPolygon.h>
#include <imageanalysis/Annotations/AnnRectBox.h>
#include <imageanalysis/Annotations/AnnRotBox.h>
#include <imageanalysis/Annotations/AnnSymbol.h>
#include <imageanalysis/Annotations/AnnText.h>
#include <imageanalysis/Annotations/AnnVector.h>
#include <imageanalysis/IO/ParameterParser.h>
#include <measures/Measures/MCDirection.h>
#include <measures/Measures/MDirection.h>
#include <measures/Measures/VelocityMachine.h>
#include <casa/BasicSL/STLIO.h>
#define _ORIGIN "RegionTextParser::" + String(__FUNCTION__) + ": "
using namespace casacore;
const Int RegionTextParser::CURRENT_VERSION = 0;
const Regex RegionTextParser::MAGIC("^#CRTF");
const String RegionTextParser::sOnePair = "[[:space:]]*\\[[^\\[,]+,[^\\[,]+\\][[:space:]]*";
const String RegionTextParser::bTwoPair = "\\[" + sOnePair
const String RegionTextParser::sNPair = "\\[(" + sOnePair
+ ",)+" + sOnePair + "\\]";
const Regex RegionTextParser::startOnePair("^" + sOnePair);
const Regex RegionTextParser::startNPair("^" + sNPair);
RegionTextParser::RegionTextParser(
const String& filename, const CoordinateSystem& csys,
const IPosition& imShape,
const Int requireAtLeastThisVersion,
const String& prependRegion,