Esempio n. 1
0
def le(l, r):
    return BinaryOp(Token(TokenTypes.LESS_EQUAL, "<="), l, r)
Esempio n. 2
0
def ge(l, r):
    return BinaryOp(Token(TokenTypes.GREATER_EQUAL, ">="), l, r)
Esempio n. 3
0
def lt(l, r):
    return BinaryOp(Token(TokenTypes.LESS, "<"), l, r)
Esempio n. 4
0
def gt(l, r):
    return BinaryOp(Token(TokenTypes.GREATER, ">"), l, r)
Esempio n. 5
0
def _and(l, r):
    return BinaryOp(Token(TokenTypes.AND, "and"), l, r)
Esempio n. 6
0
def _or(l, r):
    return BinaryOp(Token(TokenTypes.OR, "or"), l, r)
Esempio n. 7
0
def _is_not(l, r):
    return BinaryOp(Token(TokenTypes.NOT_EQUAL, "is not"), l, r)
Esempio n. 8
0
def t(s):
    return Token.from_str(s)
Esempio n. 9
0
def mod(l, r):
    return BinaryOp(Token(TokenTypes.MOD, "%"), l, r)
Esempio n. 10
0
def _is(l, r):
    return BinaryOp(Token(TokenTypes.EQUAL, "is"), l, r)
Esempio n. 11
0
def mult(l, r):
    return BinaryOp(Token(TokenTypes.MULT, "*"), l, r)
Esempio n. 12
0
def v(n):
    return Var(Token(TokenTypes.VAR, n))
Esempio n. 13
0
def c(v):
    return Int(Token(TokenTypes.INT, v))
Esempio n. 14
0
from littlepython.ast import Int, Var, BinaryOp, UnaryOp, Assign, ControlBlock, If, Block, GetArrayItem, SetArrayItem, \
    ForLoop, Function, FunctionDef, FunctionSig, Call, Return
from littlepython.tokenizer import Token, TokenTypes


def t(s):
    return Token.from_str(s)


# def iterator_to_generator(iterator):
#     return (i for i in iterator)

ADD = Token(TokenTypes.ADD, "+")
SUB = Token(TokenTypes.SUB, "-")
DIV = Token(TokenTypes.DIV, "/")
NOT = Token(TokenTypes.NOT, "not")
EOF = Token(TokenTypes.EOF, None)


def add(l, r=None):
    if r:
        return BinaryOp(ADD, l, r)
    return UnaryOp(ADD, l)


def sub(l, r=None):
    if r:
        return BinaryOp(SUB, l, r)
    return UnaryOp(SUB, l)

Esempio n. 15
0
def test_token_from_str_invalid():
    with pytest.raises(ValueError) as err:
        Token.from_str("^")
    assert "Invalid input" in str(err.value)