class CustomExpectedStepParser implements StepParser<ExpectedStep> {

	private ParseContext parse(String expression) {
		ExpectedStepLexer lexer = new ExpectedStepLexer(new ANTLRInputStream(expression));
		ExpectedStepParser parser = new ExpectedStepParser(new CommonTokenStream(lexer));
		parser.addErrorListener(new BaseErrorListener() {
	        @Override
	        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) {
	            throw new IllegalStateException("failed to parse at line " + line + " due to " + msg, e);
	        }
	    });
		return parser.parse();
		
	}

}

class CustomExpectedStepParserTest  {

	@Test
	public void testMultipleSet() throws Exception {

		List<AbstractStep> steps = new ArrayList<>();
		steps.add(step("Set a=\"b\"\t c=\"d\""));
		
		List<AbstractArtefact> children = getChildren(parse(steps));
		
		Set set = (Set) children.get(0);
		Assert.assertEquals("a",set.getKey().getValue());
		Assert.assertEquals("\"b\"",set.getValue().getExpression());
		
		set = (Set) children.get(1);
		Assert.assertEquals("c",set.getKey().getValue());
		Assert.assertEquals("\"d\"",set.getValue().getExpression());
	}

}