コード例 #1
0
ファイル: step2_eval.c プロジェクト: BlinkD/mal
MalVal *EVAL(MalVal *ast, GHashTable *env) {
    if (!ast || mal_error) return NULL;
    //g_print("EVAL: %s\n", _pr_str(ast,1));
    if (ast->type != MAL_LIST) {
        return eval_ast(ast, env);
    }
    if (!ast || mal_error) return NULL;

    // apply list
    //g_print("EVAL apply list: %s\n", _pr_str(ast,1));
    if (_count(ast) == 0) { return ast; }
    MalVal *a0 = _nth(ast, 0);
    assert_type(a0, MAL_SYMBOL, "Cannot invoke %s", _pr_str(a0,1));
    MalVal *el = eval_ast(ast, env);
    if (!el || mal_error) { return NULL; }
    MalVal *(*f)(void *, void*) = (MalVal *(*)(void*, void*))_first(el);
    //g_print("eval_invoke el: %s\n", _pr_str(el,1));
    return f(_nth(el, 1), _nth(el, 2));
}
コード例 #2
0
void YearSettingsWidget::onDstEndDayWeekMonthChanged()
{
  std::string s_dayOfWeek;
  std::string s_monthOfYear;

  int i_nthDayOfWeekInMonth = m_endWeekBox->currentIndex();
  s_dayOfWeek = m_endDayBox->currentText().toStdString();
  s_monthOfYear = m_endMonthBox->currentText().toStdString();

  NthDayOfWeekInMonth _nth(i_nthDayOfWeekInMonth + 1);
  DayOfWeek _dayOfWeek = dayOfWeek(s_dayOfWeek);
  MonthOfYear _monthOfYear = monthOfYear(s_monthOfYear);

  emit dstEndDayOfWeekAndMonthChanged(_nth.value(), _dayOfWeek.value(), _monthOfYear.value());
}