#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include "../cl/globals.h"
#include "../cl/macros.h"
#include "../cl/attributes.h"
#include "../cl/cdaccess.h"
#include "builtins.h"
#include "eval.h"
#include "options.h"
#include "output.h"
char* attat_name | ( | int | type | ) |
Gets a string containing the name of the specified argument type.
type | One of the ATTAT_x constants (an argument type). |
References ATTAT_FLOAT, ATTAT_INT, ATTAT_NONE, ATTAT_PAREF, ATTAT_POS, ATTAT_STRING, and ATTAT_VAR.
Referenced by call_predefined_function().
int call_predefined_function | ( | int | bf_id, | |
DynCallResult * | apl, | |||
int | nr_args, | |||
Constrainttree | ctptr, | |||
DynCallResult * | result | |||
) |
Calls a predefined function from the built_function array.
bf_id | The function to call, identified as an index to the builtin_function array. | |
apl | Contains the arguments to this function. | |
nr_args | The number of arguments the function takes. | |
ctptr | A constraint tree used in some (but not all) of the builtin functions. | |
result | Where to put the result of calling the function. |
References c_tree::args, ATTAT_INT, attat_name(), ATTAT_NONE, ATTAT_PAREF, ATTAT_POS, ATTAT_STRING, c_tree::attr, CDA_OK, cderrno, _DCR::charres, CL_DYN_STRING_SIZE, cl_set_intersection(), cl_set_size(), common_prefix_length(), cqpmessage(), _DCR::dynamic_string_buffer, Error, False, c_tree::func, get_id_frequency(), get_id_of_string(), get_string_of_id(), _DCR::intres, c_tree::pa_ref, pa_ref, _ActualParamList::param, _DCR::parefres, c_tree::sa_ref, sa_ref, True, c_tree::type, _DCR::type, and _DCR::value.
Referenced by get_leaf_value().
int common_prefix_length | ( | char * | s, | |
char * | t | |||
) |
Calculates the length of a prefix shared by two strings.
s | The first string. | |
t | The second string. |
Referenced by call_predefined_function().
int find_predefined | ( | char * | name | ) |
Gets the index of a specified predefined function.
name | The name of the function to search for. |
References _builtinf::name.
Referenced by FunctionCall(), and is_predefined_function().
int is_predefined_function | ( | char * | name | ) |
Checks whether a string is the name of a predefined function.
name | The name of the function to search for. |
References find_predefined().
int ambiguity_args[] = {ATTAT_STRING} |
Argument types for builtin function ambiguity.
int arith_args[] = {ATTAT_INT, ATTAT_INT} |
Argument types for builtin arithemtical functions.
int bound_args[] = {ATTAT_INT} |
Argument types for builtin functions lbound and rbound.
{ { 0, "f", 1, f_args, ATTAT_INT }, { 1, "distance", 2, distance_args, ATTAT_INT }, { 2, "dist", 2, distance_args, ATTAT_INT }, { 3, "distabs", 2, distabs_args, ATTAT_INT }, { 4, "int", 1, string_arg, ATTAT_INT }, { 5, "lbound", 1, bound_args, ATTAT_INT }, { 6, "rbound", 1, bound_args, ATTAT_INT }, { 7, "unify", 2, unify_args, ATTAT_STRING }, { 8, "ambiguity",1, ambiguity_args,ATTAT_INT }, { 9, "add", 2, arith_args, ATTAT_INT }, { 10, "sub", 2, arith_args, ATTAT_INT }, { 11, "mul", 2, arith_args, ATTAT_INT }, { 12, "prefix", 2, unify_args, ATTAT_STRING }, { 13, "is_prefix",2, unify_args, ATTAT_INT }, { 14, "minus", 2, unify_args, ATTAT_STRING }, { 15, "ignore", 1, ignore_args, ATTAT_INT }, { -1, NULL, 0, NULL, ATTAT_NONE } }
Global array of built-in functions.
Referenced by FunctionCall(), and print_booltree().
int distabs_args[] = {ATTAT_POS, ATTAT_POS} |
Argument types for builtin function distabs.
int distance_args[] = {ATTAT_POS, ATTAT_POS} |
Argument types for builtin function distance (or dist).
int f_args[] = {ATTAT_STRING} |
Argument types for builtin function f.
int ignore_args[] = {ATTAT_POS} |
Argument types for builtin function ignore.
int string_arg[] = {ATTAT_STRING} |
Argument types for builtin functions taking a single string argument.
int unify_args[] = {ATTAT_STRING, ATTAT_STRING} |
Argument types for builtin functions unify, prefix, is_prefix, minus.