- @i {
- @Term.node@ = TREENULL;
- if(tab_lookup(@Term.s@, @IDENT.name@, S_VAR|S_PARM) == SYMNULL) {
- /* es handelt sich um ein feldzugriff auf this */
- @Term.node@ = new_field(@IDENT.name@, new_param(O_ID, strdup("this"), TREENULL, TREENULL, 0), TREENULL, tab_lookup(@Term.s@, @IDENT.name@, S_FIELD) == SYMNULL ? -1 : tab_lookup(@Term.s@, @IDENT.name@, S_FIELD)->soffset);
- } else { /* param oder var */
- int tmp = tab_lookup(@Term.s@, @IDENT.name@, S_VAR|S_PARM) == SYMNULL ? -1 : tab_lookup(@Term.s@, @IDENT.name@, S_VAR|S_PARM)->param_index;
- @Term.node@ = new_param(O_ID, @IDENT.name@, TREENULL, TREENULL, tmp);
- }
- }
-
- @reg if(tab_lookup(@Term.s@, @IDENT.name@, S_VAR|S_PARM) == SYMNULL) {
- /* TODO: kein schoener hack? */
- @Term.node@->kids[0]->reg = @Term.node@->reg;
- }