form 250 src/compaux.c static ScmObj unwrap_rec(ScmObj form, ScmObj history) form 254 src/compaux.c if (!SCM_PTRP(form)) return form; form 255 src/compaux.c if (!SCM_FALSEP(Scm_Memq(form, history))) return form; form 257 src/compaux.c if (SCM_PAIRP(form)) { form 259 src/compaux.c newh = Scm_Cons(form, history); form 260 src/compaux.c ca = unwrap_rec(SCM_CAR(form), newh); form 261 src/compaux.c cd = unwrap_rec(SCM_CDR(form), newh); form 262 src/compaux.c if (ca == SCM_CAR(form) && cd == SCM_CDR(form)) { form 263 src/compaux.c return form; form 268 src/compaux.c if (SCM_IDENTIFIERP(form)) { form 269 src/compaux.c return SCM_OBJ(SCM_IDENTIFIER(form)->name); form 271 src/compaux.c if (SCM_VECTORP(form)) { form 272 src/compaux.c int i, j, len = SCM_VECTOR_SIZE(form); form 273 src/compaux.c ScmObj elt, *pelt = SCM_VECTOR_ELEMENTS(form); form 274 src/compaux.c newh = Scm_Cons(form, history); form 279 src/compaux.c pelt = SCM_VECTOR_ELEMENTS(form); form 290 src/compaux.c return form; form 292 src/compaux.c return form; form 295 src/compaux.c ScmObj Scm_UnwrapSyntax(ScmObj form) form 297 src/compaux.c return unwrap_rec(form, SCM_NIL); form 18 src/extlib.c ScmObj form; form 21 src/extlib.c form = (form_scm); form 25 src/extlib.c SCM_RESULT = (Scm_VMMacroExpand(form, SCM_NIL, FALSE)); form 37 src/extlib.c ScmObj form; form 40 src/extlib.c form = (form_scm); form 44 src/extlib.c SCM_RESULT = (Scm_VMMacroExpand(form, SCM_NIL, TRUE)); form 5658 src/extlib.c ScmObj form; form 5661 src/extlib.c form = (form_scm); form 5665 src/extlib.c SCM_RESULT = Scm_UnwrapSyntax(form); form 397 src/gauche.h SCM_EXTERN ScmObj Scm_Eval(ScmObj form, ScmObj env); form 398 src/gauche.h SCM_EXTERN ScmObj Scm_EvalCString(const char *form, ScmObj env); form 413 src/gauche.h SCM_EXTERN ScmObj Scm_UnwrapSyntax(ScmObj form); form 2207 src/gauche.h typedef ScmObj (*ScmTransformerProc)(ScmObj self, ScmObj form, ScmObj env, form 602 src/gauche/vm.h SCM_EXTERN ScmObj Scm_CallProcedureInliner(ScmObj obj, ScmObj form, ScmObj env); form 641 src/intlib.c ScmObj form; form 648 src/intlib.c form = (form_scm); form 657 src/intlib.c SCM_RESULT = Scm_VMMacroExpand(form, env, once); form 186 src/macro.c static ScmObj macro_transform(ScmObj self, ScmObj form, ScmObj env, form 190 src/macro.c SCM_ASSERT(SCM_SYNTACTIC_CLOSURE_P(form)); form 191 src/macro.c return Scm_Apply(proc, SCM_LIST1(form)); form 207 src/macro.c static ScmObj macro_transform_old(ScmObj self, ScmObj form, form 211 src/macro.c SCM_ASSERT(SCM_PAIRP(form)); form 212 src/macro.c return Scm_VMApply(proc, SCM_CDR(form)); form 229 src/macro.c static ScmObj macro_autoload(ScmObj self, ScmObj form, ScmObj env, void *data) form 232 src/macro.c return mac->transformer(SCM_OBJ(mac), form, env, mac->data); form 273 src/macro.c ScmObj form; /* form being compiled (for error msg) */ form 295 src/macro.c pvar, ctx->name, ctx->form); form 314 src/macro.c ctx->name, pvar, ctx->form); form 349 src/macro.c Ctx->name, Ctx->form) form 377 src/macro.c static ScmObj compile_rule1(ScmObj form, form 382 src/macro.c if (SCM_PAIRP(form)) { form 384 src/macro.c SCM_FOR_EACH(pp, form) { form 399 src/macro.c ctx->name, form); form 408 src/macro.c ctx->name, form); form 422 src/macro.c else if (SCM_VECTORP(form)) { form 425 src/macro.c ScmObj l = Scm_VectorToList(SCM_VECTOR(form), 0, -1); form 429 src/macro.c else if (patternp && SCM_IDENTIFIERP(form)) { form 431 src/macro.c form = SCM_OBJ(SCM_IDENTIFIER(form)->name); form 434 src/macro.c if (SCM_SYMBOLP(form)||SCM_IDENTIFIERP(form)) { form 436 src/macro.c if (form == SCM_SYM_ELLIPSIS) BAD_ELLIPSIS(ctx); form 437 src/macro.c if (!SCM_FALSEP(q = id_memq(form, ctx->literals))) return q; form 440 src/macro.c return add_pvar(ctx, spat, form); form 442 src/macro.c ScmObj id, pvref = pvar_to_pvref(ctx, spat, form); form 443 src/macro.c if (pvref == form) { form 445 src/macro.c if (!SCM_FALSEP(q = id_memq(form, ctx->tvars))) return q; form 446 src/macro.c if (SCM_IDENTIFIERP(form)) { form 447 src/macro.c id = form; form 449 src/macro.c id = Scm_MakeIdentifier(SCM_SYMBOL(form), form 460 src/macro.c return form; form 499 src/macro.c ctx.form = SCM_CAR(rule); form 500 src/macro.c if (!SCM_PAIRP(ctx.form)) goto badform; form 501 src/macro.c pat->pattern = compile_rule1(SCM_CDR(ctx.form), pat, &ctx, TRUE); form 503 src/macro.c ctx.form = SCM_CADR(rule); form 504 src/macro.c tmpl->pattern = compile_rule1(ctx.form, tmpl, &ctx, FALSE); form 600 src/macro.c static int match_synrule(ScmObj form, ScmObj pattern, ScmObj env, form 693 src/macro.c static inline int match_subpattern(ScmObj form, ScmSyntaxPattern *pat, form 697 src/macro.c while (SCM_PAIRP(form)) { form 698 src/macro.c if (!match_synrule(SCM_CAR(form), pat->pattern, env, mvec)) form 700 src/macro.c form = SCM_CDR(form); form 702 src/macro.c if (!SCM_NULLP(form)) return FALSE; form 710 src/macro.c static int match_synrule(ScmObj form, ScmObj pattern, ScmObj env, form 714 src/macro.c match_insert(pattern, form, mvec); form 718 src/macro.c return match_identifier(SCM_IDENTIFIER(pattern), form, env); form 721 src/macro.c return match_subpattern(form, SCM_SYNTAX_PATTERN(pattern), env, mvec); form 727 src/macro.c return match_subpattern(form, SCM_SYNTAX_PATTERN(elt), form 729 src/macro.c } else if (!SCM_PAIRP(form)) { form 732 src/macro.c if (!match_synrule(SCM_CAR(form), elt, env, mvec)) form 735 src/macro.c form = SCM_CDR(form); form 739 src/macro.c return match_synrule(form, pattern, env, mvec); form 741 src/macro.c return SCM_NULLP(form); form 745 src/macro.c if (!SCM_VECTORP(form)) return FALSE; form 747 src/macro.c flen = SCM_VECTOR_SIZE(form); form 752 src/macro.c if (!match_synrule(SCM_VECTOR_ELEMENT(form, i), form 761 src/macro.c SCM_APPEND1(h, t, SCM_VECTOR_ELEMENT(form, i)); form 769 src/macro.c return Scm_EqualP(pattern, form); form 871 src/macro.c static ScmObj synrule_expand(ScmObj form, ScmObj env, ScmSyntaxRules *sr) form 878 src/macro.c Scm_Printf(SCM_CUROUT, "**** synrule_transform: %S\n", form); form 885 src/macro.c if (match_synrule(SCM_CDR(form), sr->rules[i].pattern, env, mvec)) { form 897 src/macro.c Scm_Error("malformed %S: %S", SCM_CAR(form), form); form 901 src/macro.c static ScmObj synrule_transform(ScmObj self, ScmObj form, ScmObj env, form 905 src/macro.c return synrule_expand(form, env, sr); form 449 src/read.c ScmObj form = read_item(port, ctx); form 452 src/read.c SCM_LIST1(form), ctx, FALSE); form 458 src/read.c ScmObj form; form 464 src/read.c form = read_item(port, ctx); form 465 src/read.c return SCM_LIST2(SCM_SYM_DEBUG_PRINT, form); form 1054 src/read.c ScmObj form, r; form 1064 src/read.c form = read_list_int(port, ')', ctx, &has_ref, line); form 1065 src/read.c len = Scm_Length(form); form 1067 src/read.c Scm_ReadError(port, "bad #,-form: #,%S", form); form 1069 src/read.c r = process_sharp_comma(port, SCM_CAR(form), SCM_CDR(form), ctx, has_ref); form 1961 src/vm.c ScmObj form, cp; form 1963 src/vm.c FETCH_OPERAND(form); form 1966 src/vm.c SCM_FOR_EACH(cp, SCM_CDR(form)) { form 1969 src/vm.c VAL0 = SCM_CAR(form); /* proc */