Exemplo n.º 1
0
Arquivo: compiler.c Projeto: adh/dfsch
dfsch_object_t* dfsch_make_constant_ast_node(dfsch_object_t* value){
  if (DFSCH_SYMBOL_P(value) || DFSCH_PAIR_P(value)){
    return dfsch_generate_quote(value);
  } else {
    return value;
  }
}
Exemplo n.º 2
0
Arquivo: compiler.c Projeto: adh/dfsch
dfsch_object_t* dfsch_constant_expression_value(dfsch_object_t* expression,
                                                dfsch_object_t* env){
  if (DFSCH_SYMBOL_P(expression)){
    if (!env){
      return DFSCH_INVALID_OBJECT;
    }
    return dfsch_variable_constant_value(expression, env);
  } else if (dfsch_quote_expression_p(expression)){
    return DFSCH_FAST_CAR(expression);
  } else if (DFSCH_PAIR_P(expression)){
    return DFSCH_INVALID_OBJECT;
  } else {
    return expression;
  }
}
Exemplo n.º 3
0
Arquivo: package.c Projeto: leia/dfsch
int dfsch_symbol_p(dfsch_object_t* obj){
  return DFSCH_SYMBOL_P(obj);
}
Exemplo n.º 4
0
Arquivo: package.c Projeto: adh/dfsch
int dfsch_keyword_p(dfsch_object_t* obj){
  return DFSCH_SYMBOL_P(obj) && dfsch_symbol_package(obj) == DFSCH_KEYWORD_PACKAGE;
}