public void defTypingRule(String nt, int p, String env_nt, String type_nt, String t, String... antes) {
        ExtendedExpressionBuilder<RuleBuilder, Object> b = G.def(nt).start(p, env_nt, type_nt).t(t);
        if(antes.length%3!=0) {
            Utils.warning(this, "Number of arguments for antes in method defTypingRule is not divisible by 3, ignoring trailing arguments");
        }
        for(int i=0;i<antes.length/3;i++) {
            String env = antes[i * 3];
            String nt2 = antes[i * 3 + 1];
            String type = antes[i * 3 + 2];
            if(e.nat(nt2)) {
                if(this.t.var(type))
                    type = __NAT+type;
            }
            b = b.nt(nt2, env, type);
        }
        b.end();
    }