Esempio n. 1
0
def _evaluate_entity(entity, functions):
    if entity.name == "INTEGRAL_NUMBER":
        return int(entity.value)
    elif entity.name == "REAL_NUMBER":
        return float(entity.value)
    elif entity.name == "CHARACTER":
        return ord(string_utilities.unquote(entity.value))
    elif entity.name == "STRING":
        return string_utilities.make_list_from_string(string_utilities.unquote(entity.value))
    elif entity.name == "IDENTIFIER":
        return trampoline.closure_trampoline(functions[entity.value])
    elif entity.name == "function":
        return _evaluate_function(entity, functions)
    elif entity.name == "call":
        return _evaluate_call(entity, functions)