25 #include "pips_config.h"
56 for(
const char *iter = s ; *iter ; iter++) {
57 if(isspace(*iter))
continue;
69 for(
int i=0; i < (
int) (
sizeof(seeds)/
sizeof(seeds[0])); i++) {
70 char *where = strchr(s,seeds[i][0]);
73 char * tail = head + (where -s) +1 ;
void free_expression(expression p)
void const char const char const int
list string_to_expressions(const char *str, const char *seed, entity module)
split a string using seed as separator and call string_to_expression on each chunk
expression string_to_expression(const char *s, entity module)
Functions using simultaneously pipsdbm, which is based on strings, and ri-util, which contains basic ...
list gen_nreverse(list cp)
reverse a list in place
#define NIL
The empty list (nil in Lisp)
void gen_map(gen_iter_func_t fp, const list l)
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
void gen_free_list(list l)
free the spine of the list
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
entity string_to_entity(const char *s, entity module)
very simple conversion from string to expression only handles entities and numeric values at the time...
list strsplit(const char *, const char *)
#define MINUS_OPERATOR_NAME
#define PLUS_OPERATOR_NAME
#define DIVIDE_OPERATOR_NAME
#define UNARY_MINUS_OPERATOR_NAME
#define MULTIPLY_OPERATOR_NAME
entity entity_intrinsic(const char *name)
FI: I do not understand this function name (see next one!).
expression entity_to_expression(entity e)
if v is a constant, returns a constant call.
expression MakeBinaryCall(entity f, expression eg, expression ed)
Creates a call expression to a function with 2 arguments.
expression MakeUnaryCall(entity f, expression a)
Creates a call expression to a function with one argument.
#define EXPRESSION(x)
EXPRESSION.
#define entity_undefined_p(x)
#define expression_undefined
#define expression_undefined_p(x)
The structure used to build lists in NewGen.