aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/parser/OperationParser.java
blob: e56b3ffe30e4ca9d89f609a16046093fc97a737e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package org.shedlang.compiler.parser;

import org.shedlang.compiler.tokeniser.TokenIterator;
import org.zwobble.sourcetext.SourcePosition;

import java.util.stream.Stream;

public interface OperationParser<TOperatorPrecedence, TUntypedExpressionNode> {
    TOperatorPrecedence precedence();
    Stream<TokenType> operatorTokenTypes();
    TUntypedExpressionNode parse(
        SourcePosition start,
        TUntypedExpressionNode left,
        TokenIterator<TokenType> tokens
    );
}