package de.westnordost.streetcomplete.data.osm.tql; public class TestBooleanExpressionParser { public static BooleanExpression<BooleanExpressionValue> parse(String input) { BooleanExpressionBuilder<BooleanExpressionValue> builder = new BooleanExpressionBuilder<>(); StringWithCursor reader = new StringWithCursor(input); while(!reader.isAtEnd()) { if(reader.nextIsAndAdvance('*')) builder.addAnd(); else if(reader.nextIsAndAdvance('+')) builder.addOr(); else if(reader.nextIsAndAdvance('(')) builder.addOpenBracket(); else if(reader.nextIsAndAdvance(')')) builder.addCloseBracket(); else builder.addValue(new TestBooleanExpressionValue(String.valueOf(reader.advance()))); } return builder.getResult(); } }