Esempio n. 1
0
    def make_generic_parameters(self, arguments):
        parameters = []
        if len(arguments) > MAX_GENERIC_PARAMETERS:
            return None

        if isinstance(self.statement, BuiltinFunction):
            self.statement.set_parameter_list(parameters)

        # chr(97) == 'a'
        for i in range(len(arguments)):
            parameters.append(Identifier(chr(97+i)))
        return parameters
Esempio n. 2
0
def create_expected_binary_operator(parameters):
    binop = None
    actions = {
        'scalar': lambda value: Scalar(value),
        'op': lambda type: Token(TokenType(type)),
        'id': lambda id: Identifier(id),
        'prev': lambda _: binop
    }

    for param in parameters:
        if param[1][1] == '=':
            binop = Assignment(actions[param[0][0]](param[0][1]),
                               actions[param[2][0]](param[2][1]))
        else:
            binop = BinaryOperator(
                lvalue=actions[param[0][0]](param[0][1]),
                op=actions[param[1][0]](param[1][1]),
                rvalue=actions[param[2][0]](param[2][1])
            )

    return binop
Esempio n. 3
0
class Transpose(BuiltinFunction):
    name = 'transpose'
    parameter_list = [Identifier('a')]

    def get_parameters(self):
        return self.parameter_list[0]
Esempio n. 4
0
class Shape(BuiltinFunction):
    name = 'shape'
    parameter_list = [Identifier('a')]

    def get_parameters(self):
        return self.parameter_list[0]
Esempio n. 5
0
class Round(BuiltinFunction):
    name = 'round'
    parameter_list = [Identifier('a')]

    def get_parameters(self):
        return self.parameter_list[0]
Esempio n. 6
0
class Min(BuiltinFunction):
    name = 'min'
    parameter_list = [Identifier('a'), Identifier('b')]

    def get_parameters(self):
        return self.parameter_list[0], self.parameter_list[1]
Esempio n. 7
0
class Len(BuiltinFunction):
    name = 'len'
    parameter_list = [Identifier('a')]

    def get_parameters(self):
        return self.parameter_list[0]
Esempio n. 8
0
 def get_wrapped_fun(self):
     return (Identifier(self.name), self.parameter_list, self)