package hudson.plugins.warnings.parser; import hudson.plugins.analysis.util.model.Priority; import java.util.regex.Matcher; /** * A parser for the SUN Studio C++ compiler warnings. * * @author Ulli Hafner */ public class SunCParser extends RegexpLineParser { /** Warning type of this parser. */ static final String WARNING_TYPE = "SUN C++ Compiler"; /** Pattern of gcc compiler warnings. */ private static final String SUN_CPP_WARNING_PATTERN = "^\\s*\"(.*)\"\\s*,\\s*line\\s*(\\d+)\\s*:\\s*(Warning|Error)\\s*(?:, \\s*(.*))?\\s*:\\s*(.*)$"; /** * Creates a new instance of <code>HpiCompileParser</code>. */ public SunCParser() { super(SUN_CPP_WARNING_PATTERN, WARNING_TYPE); } /** {@inheritDoc} */ @Override protected Warning createWarning(final Matcher matcher) { Priority priority; if ("warning".equalsIgnoreCase(matcher.group(3))) { priority = Priority.NORMAL; } else { priority = Priority.HIGH; } return new Warning(matcher.group(1), getLineNumber(matcher.group(2)), WARNING_TYPE, matcher.group(4), matcher.group(5), priority); } }