public static void readPostPatterns(File file, ArrayList<Pattern> patternList,
			PatternFactory pfactory) throws SAXException, IOException {
		ErrorHandler handler = new ErrorHandler() {
			@Override
			public void error(SAXParseException exception) throws SAXException {
				throw new SAXException("Error: " + exception);
			}

			@Override
			public void fatalError(SAXParseException exception) throws SAXException {
				throw new SAXException("Fatal error: " + exception);
			}

			@Override
			public void warning(SAXParseException exception) throws SAXException {
				throw new SAXException("Warning: " + exception);
			}
		};
		XmlPullParser parser = new NonThreadedXmlPullParserImpl(file, handler, false);
		parser.start("patternlist");
		XmlElement el = parser.peek();
		while (el.isStart()) {
			if (el.getName().equals("patternpairs")) {
				PatternPairSet pairset = new PatternPairSet();
				pairset.restoreXml(parser, pfactory);
				pairset.extractPostPatterns(patternList);
			}
			else {
				parser.next();
			}
			el = parser.peek();
		}
		parser.end();

	}
Read just the post patterns from the {@code <patternpair>} tags
@param file is the file to read from
@param patternList collects the resulting Pattern objects
@param pfactory is the factory for constructing postrules and matchactions
@throws IOException 
@throws SAXException
Ghidra/Features/Base/src/main/java/ghidra/util/bytesearch/Pattern.java