All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.intelie.pipes.generated.PipesParser Maven / Gradle / Ivy

There is a newer version: 0.25.5
Show newest version
package net.intelie.pipes.generated;

import net.intelie.pipes.ast.AstStack;
import net.intelie.pipes.ast.SourceLocation;
import net.intelie.pipes.util.PipesCharStream;

public interface PipesParser {
    Token getCurrentToken();

    default PipesTokenManager.Token token() {
        return (PipesTokenManager.Token) getCurrentToken();
    }

    default SourceLocation location() {
        return PipesTokenManager.toFullLocation(token());
    }

    class Pipe extends PipeParserCore implements PipesParser {
        public Pipe(String input) {
            this(new PipesTokenManager.Pipe(new PipesCharStream(input)));
        }

        public Pipe(PipesTokenManager.Pipe tk) {
            super(tk);
            this.token = new PipesTokenManager.Token(tk.stream().getInput());
            this.ast = new AstStack(this::token);
        }
    }

    class Filter extends FilterParserCore implements PipesParser {
        public Filter(String input) {
            this(new PipesTokenManager.Filter(new PipesCharStream(input)));
        }

        public Filter(PipesTokenManager.Filter tk) {
            super(tk);
            this.token = new PipesTokenManager.Token(tk.stream().getInput());
            this.ast = new AstStack(this::token);
        }
    }

    class Span extends TimeSpanParserCore implements PipesParser {
        public Span(String input) {
            this(new PipesTokenManager.Span(new PipesCharStream(input)));
        }

        public Span(PipesTokenManager.Span tk) {
            super(tk);
            this.token = new PipesTokenManager.Token(tk.stream().getInput());
            this.ast = new AstStack(this::token);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy