if (scanner.checkToken(Token.ID.Scalar)) { ScalarToken token = (ScalarToken) scanner.getToken(); endMark = token.getEndMark(); ImplicitTuple implicitValues; if ((token.getPlain() && tag == null) || "!".equals(tag)) { implicitValues = new ImplicitTuple(true, false); } else if (tag == null) { implicitValues = new ImplicitTuple(false, false); event = new ScalarEvent(anchor, tag, implicitValues, token.getValue(), startMark, endMark, token.getStyle()); state = states.pop(); } else if (scanner.checkToken(Token.ID.FlowSequenceStart)) {
return new ScalarToken(chunks.toString(), false, startMark, endMark, DumperOptions.ScalarStyle.createStyle(style));
/** * Takes the next token and, if it is a key that matches the {@code key-name} regex, analyzes its value against the * {@code value} regex, possibly returning an issue if there is a match * * @param parser the scanner that holds the tokens */ protected void checkNextToken(LintScanner parser) { // Accepted token type: remove it from stack Token t = parser.getToken(); if (parser.peekToken() instanceof ValueToken) { parser.getToken(); Token t3 = parser.peekToken(); if (t3 instanceof ScalarToken) { Matcher m = Pattern.compile("(?m)" + value).matcher(((ScalarToken)t3).getValue()); if (m.find()) { // Report new error addViolation("Forbidden value found", t); } } } } }
@Override public void validate() { if (yamlSourceCode == null) { throw new IllegalStateException("Source code not set, cannot validate anything"); } try { LintScanner parser = new LintScanner(new StreamReader(yamlSourceCode.getContent())); if (!yamlSourceCode.hasCorrectSyntax()) { LOGGER.warn("Syntax error found, cannot continue checking keys: " + yamlSourceCode.getSyntaxError().getMessage()); return; } while (parser.hasMoreTokens()) { Token t1 = parser.getToken(); if (t1 instanceof KeyToken && parser.hasMoreTokens()) { // Peek token (instead of get) in order to leave it in the stack so that it processed again when looping Token t2 = parser.peekToken(); if (t2 instanceof ScalarToken && ((ScalarToken) t2).getValue().matches(keyName)) { checkNextToken(parser); } } } } catch (IOException e) { // Should not happen: a first call to getYamlSourceCode().getContent() was done in the constructor of // the YamlSourceCode instance of this check, but in case... LOGGER.warn("Cannot read source code", e); } }
if (scanner.checkToken(Token.ID.Scalar)) { ScalarToken token = (ScalarToken) scanner.getToken(); endMark = token.getEndMark(); ImplicitTuple implicitValues; if ((token.getPlain() && tag == null) || "!".equals(tag)) { implicitValues = new ImplicitTuple(true, false); } else if (tag == null) { implicitValues = new ImplicitTuple(false, false); event = new ScalarEvent(anchor, tag, implicitValues, token.getValue(), startMark, endMark, token.getStyle()); state = states.pop(); } else if (scanner.checkToken(Token.ID.FlowSequenceStart)) {
return new ScalarToken(chunks.toString(), startMark, endMark, true);
if (scanner.checkToken(Token.ID.Scalar)) { ScalarToken token = (ScalarToken) scanner.getToken(); endMark = token.getEndMark(); ImplicitTuple implicitValues; if ((token.getPlain() && tag == null) || "!".equals(tag)) { implicitValues = new ImplicitTuple(true, false); } else if (tag == null) { implicitValues = new ImplicitTuple(false, false); event = new ScalarEvent(anchor, tag, implicitValues, token.getValue(), startMark, endMark, token.getStyle()); state = states.pop(); } else if (scanner.checkToken(Token.ID.FlowSequenceStart)) {
return new ScalarToken(chunks.toString(), false, startMark, endMark, DumperOptions.ScalarStyle.createStyle(style));
if (scanner.checkToken(Token.ID.Scalar)) { ScalarToken token = (ScalarToken) scanner.getToken(); endMark = token.getEndMark(); ImplicitTuple implicitValues; if ((token.getPlain() && tag == null) || "!".equals(tag)) { implicitValues = new ImplicitTuple(true, false); } else if (tag == null) { implicitValues = new ImplicitTuple(false, false); event = new ScalarEvent(anchor, tag, implicitValues, token.getValue(), startMark, endMark, token.getStyle()); state = states.pop(); } else if (scanner.checkToken(Token.ID.FlowSequenceStart)) {
return new ScalarToken(chunks.toString(), false, startMark, endMark, style);
return new ScalarToken(chunks.toString(), false, startMark, endMark, style);
return new ScalarToken(chunks.toString(), false, startMark, endMark, DumperOptions.ScalarStyle.createStyle(style));
return new ScalarToken(chunks.toString(), false, startMark, endMark, style);
return new ScalarToken(chunks.toString(), false, startMark, endMark, style);
return new ScalarToken(chunks.toString(), false, startMark, endMark, DumperOptions.ScalarStyle.createStyle(style));
return new ScalarToken(chunks.toString(), startMark, endMark, true);
return new ScalarToken(chunks.toString(), startMark, endMark, true);
return new ScalarToken(chunks.toString(), startMark, endMark, true);