package org.n3r.eql.parser; import java.util.List; import java.util.regex.Matcher; public class IffParser implements PartParser { private final String expr; private LiteralPart part = new LiteralPart(""); public IffParser(String expr) { this.expr = expr; } @Override public EqlPart createPart() { return new IffPart(expr, part); } @Override public int parse(List<String> mergedLines, int index) { int i = index; for (int ii = mergedLines.size(); i < ii; ++i) { String line = mergedLines.get(i); String clearLine = parseClearLine(line); if ("end".equalsIgnoreCase(clearLine)) return i; PartParser partParser = clearLine == null ? null : PartParserFactory.tryParse(clearLine); if (partParser != null) return i; if (clearLine != null) part.appendComment(line); else part.appendSql(line); } return i; } private String parseClearLine(String line) { if (line.startsWith("--")) return ParserUtils.substr(line, "--".length()); Matcher matcher = ParserUtils.inlineComment.matcher(line); if (matcher.matches()) return matcher.group(1).trim(); return null; } }