Java 类org.yaml.snakeyaml.tokens.DocumentStartToken 实例源码

项目:snake-yaml    文件:CanonicalScanner.java   
private void scan() {
    this.tokens.add(new StreamStartToken(mark, mark));
    boolean stop = false;
    while (!stop) {
        findToken();
        char ch = data.charAt(index);
        switch (ch) {
        case '\0':
            tokens.add(new StreamEndToken(mark, mark));
            stop = true;
            break;

        case '%':
            tokens.add(scanDirective());
            break;

        case '-':
            if ("---".equals(data.substring(index, index + 3))) {
                index += 3;
                tokens.add(new DocumentStartToken(mark, mark));
            }
            break;

        case '[':
            index++;
            tokens.add(new FlowSequenceStartToken(mark, mark));
            break;

        case '{':
            index++;
            tokens.add(new FlowMappingStartToken(mark, mark));
            break;

        case ']':
            index++;
            tokens.add(new FlowSequenceEndToken(mark, mark));
            break;

        case '}':
            index++;
            tokens.add(new FlowMappingEndToken(mark, mark));
            break;

        case '?':
            index++;
            tokens.add(new KeyToken(mark, mark));
            break;

        case ':':
            index++;
            tokens.add(new ValueToken(mark, mark));
            break;

        case ',':
            index++;
            tokens.add(new FlowEntryToken(mark, mark));
            break;

        case '*':
            tokens.add(scanAlias());
            break;

        case '&':
            tokens.add(scanAlias());
            break;

        case '!':
            tokens.add(scanTag());
            break;

        case '"':
            tokens.add(scanScalar());
            break;

        default:
            throw new CanonicalException("invalid token");
        }
    }
    scanned = true;
}
项目:snakeyaml    文件:CanonicalScanner.java   
private void scan() {
    this.tokens.add(new StreamStartToken(mark, mark));
    boolean stop = false;
    while (!stop) {
        findToken();
        char ch = data.charAt(index);
        switch (ch) {
        case '\0':
            tokens.add(new StreamEndToken(mark, mark));
            stop = true;
            break;

        case '%':
            tokens.add(scanDirective());
            break;

        case '-':
            if ("---".equals(data.substring(index, index + 3))) {
                index += 3;
                tokens.add(new DocumentStartToken(mark, mark));
            }
            break;

        case '[':
            index++;
            tokens.add(new FlowSequenceStartToken(mark, mark));
            break;

        case '{':
            index++;
            tokens.add(new FlowMappingStartToken(mark, mark));
            break;

        case ']':
            index++;
            tokens.add(new FlowSequenceEndToken(mark, mark));
            break;

        case '}':
            index++;
            tokens.add(new FlowMappingEndToken(mark, mark));
            break;

        case '?':
            index++;
            tokens.add(new KeyToken(mark, mark));
            break;

        case ':':
            index++;
            tokens.add(new ValueToken(mark, mark));
            break;

        case ',':
            index++;
            tokens.add(new FlowEntryToken(mark, mark));
            break;

        case '*':
            tokens.add(scanAlias());
            break;

        case '&':
            tokens.add(scanAlias());
            break;

        case '!':
            tokens.add(scanTag());
            break;

        case '"':
            tokens.add(scanScalar());
            break;

        default:
            throw new CanonicalException("invalid token");
        }
    }
    scanned = true;
}