[master] 05a9507 Call types types instead of formats
Poul-Henning Kamp
phk at FreeBSD.org
Thu Feb 15 09:29:13 UTC 2018
commit 05a9507205624434378603b6ddfbcaeccf9ce6eb
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Thu Feb 15 08:53:43 2018 +0000
Call types types instead of formats
diff --git a/lib/libvcc/generate.py b/lib/libvcc/generate.py
index b75ae57..1eb857e 100755
--- a/lib/libvcc/generate.py
+++ b/lib/libvcc/generate.py
@@ -1272,7 +1272,7 @@ def one_var(nm, spec):
else:
fo.write(" SYM_VAR);\n")
fo.write("\tAN(sym);\n")
- fo.write("\tsym->fmt = %s;\n" % spec.typ)
+ fo.write("\tsym->type = %s;\n" % spec.typ)
fo.write("\tsym->eval = vcc_Eval_Var;\n")
if len(spec.rd) == 0:
diff --git a/lib/libvcc/vcc_action.c b/lib/libvcc/vcc_action.c
index 1a4d755..5447e8c 100644
--- a/lib/libvcc/vcc_action.c
+++ b/lib/libvcc/vcc_action.c
@@ -88,7 +88,7 @@ static void v_matchproto_(sym_act_f)
vcc_act_set(struct vcc *tl, struct token *t, struct symbol *sym)
{
const struct arith *ap;
- vcc_type_t fmt;
+ vcc_type_t type;
(void)t;
ExpectErr(tl, ID);
@@ -107,28 +107,28 @@ vcc_act_set(struct vcc *tl, struct token *t, struct symbol *sym)
vcc_AddUses(tl, t, tl->t, sym->w_methods, "Cannot be set");
Fb(tl, 1, "%s\n", sym->lname);
tl->indent += INDENT;
- fmt = sym->fmt;
+ type = sym->type;
for (ap = arith; ap->type != VOID; ap++) {
- if (ap->type != fmt)
+ if (ap->type != type)
continue;
if (ap->oper != tl->t->tok)
continue;
if (ap->oper != '=')
Fb(tl, 1, "%s %c ", sym->rname, *tl->t->b);
vcc_NextToken(tl);
- fmt = ap->want;
+ type = ap->want;
break;
}
if (ap->type == VOID)
SkipToken(tl, ap->oper);
- if (fmt == HEADER) {
+ if (type == HEADER) {
vcc_Expr(tl, STRING_LIST);
- } else if (fmt == STRING) {
+ } else if (type == STRING) {
vcc_Expr(tl, STRING_LIST);
- } else if (fmt == BODY) {
+ } else if (type == BODY) {
vcc_Expr(tl, STRING_LIST);
} else {
- vcc_Expr(tl, fmt);
+ vcc_Expr(tl, type);
}
ERRCHK(tl);
tl->indent -= INDENT;
diff --git a/lib/libvcc/vcc_compile.c b/lib/libvcc/vcc_compile.c
index 55bcd7c..ea8fdf8 100644
--- a/lib/libvcc/vcc_compile.c
+++ b/lib/libvcc/vcc_compile.c
@@ -811,7 +811,7 @@ vcc_predef_vcl(struct vcc *vcc, const char *name)
sym = VCC_MkSym(vcc, name, SYM_VCL);
AN(sym);
- sym->fmt = VCL;
+ sym->type = VCL;
sym->r_methods = VCL_MET_RECV;
}
diff --git a/lib/libvcc/vcc_compile.h b/lib/libvcc/vcc_compile.h
index d3f6b7a..479731f 100644
--- a/lib/libvcc/vcc_compile.h
+++ b/lib/libvcc/vcc_compile.h
@@ -129,7 +129,7 @@ struct symbol {
const struct token *def_b, *def_e, *ref_b;
- vcc_type_t fmt;
+ vcc_type_t type;
sym_expr_t *eval;
const void *eval_priv;
diff --git a/lib/libvcc/vcc_expr.c b/lib/libvcc/vcc_expr.c
index 093e2b1..1e55b83 100644
--- a/lib/libvcc/vcc_expr.c
+++ b/lib/libvcc/vcc_expr.c
@@ -328,19 +328,19 @@ vcc_Eval_BoolConst(struct vcc *tl, struct expr **e, struct token *t,
void v_matchproto_(sym_expr_t)
vcc_Eval_Handle(struct vcc *tl, struct expr **e, struct token *t,
- struct symbol *sym, vcc_type_t fmt)
+ struct symbol *sym, vcc_type_t type)
{
(void)t;
(void)tl;
AN(sym->rname);
- if (sym->fmt != STRING && fmt == STRINGS) {
+ if (sym->type != STRING && type == STRINGS) {
*e = vcc_mk_expr(STRINGS, "\"%s\"", sym->name);
(*e)->nstr = 1;
(*e)->constant |= EXPR_CONST | EXPR_STR_CONST;
} else {
- *e = vcc_mk_expr(sym->fmt, "%s", sym->rname);
+ *e = vcc_mk_expr(sym->type, "%s", sym->rname);
(*e)->constant = EXPR_VAR;
(*e)->nstr = 1;
if ((*e)->fmt == STRING)
@@ -353,14 +353,14 @@ vcc_Eval_Handle(struct vcc *tl, struct expr **e, struct token *t,
void v_matchproto_(sym_expr_t)
vcc_Eval_Var(struct vcc *tl, struct expr **e, struct token *t,
- struct symbol *sym, vcc_type_t fmt)
+ struct symbol *sym, vcc_type_t type)
{
- (void)fmt;
+ (void)type;
assert(sym->kind == SYM_VAR);
vcc_AddUses(tl, t, NULL, sym->r_methods, "Not available");
ERRCHK(tl);
- *e = vcc_mk_expr(sym->fmt, "%s", sym->rname);
+ *e = vcc_mk_expr(sym->type, "%s", sym->rname);
(*e)->constant = EXPR_VAR;
(*e)->nstr = 1;
if ((*e)->fmt == STRING)
@@ -664,18 +664,12 @@ vcc_expr4(struct vcc *tl, struct expr **e, vcc_type_t fmt)
XREF_REF);
ERRCHK(tl);
AN(sym);
- if (sym->kind == SYM_FUNC && sym->fmt == VOID) {
+ if (sym->kind == SYM_FUNC && sym->type == VOID) {
VSB_printf(tl->sb, "Function returns VOID:\n");
vcc_ErrWhere(tl, tl->t);
return;
}
- switch (sym->kind) {
- case SYM_VAR:
- case SYM_FUNC:
- case SYM_ACL:
- case SYM_BACKEND:
- case SYM_STEVEDORE:
- case SYM_PROBE:
+ if (sym->eval != NULL) {
AN(sym->eval);
AZ(*e);
sym->eval(tl, e, t, sym, fmt);
@@ -686,9 +680,6 @@ vcc_expr4(struct vcc *tl, struct expr **e, vcc_type_t fmt)
ERRCHK(tl);
}
return;
- default:
- AZ(sym->eval);
- break;
}
VSB_printf(tl->sb,
"Symbol type (%s) can not be used in expression.\n",
@@ -1291,21 +1282,25 @@ vcc_Expr_Init(struct vcc *tl)
sym = VCC_MkSym(tl, "regsub", SYM_FUNC);
AN(sym);
+ sym->type = STRING;
sym->eval = vcc_Eval_Regsub;
sym->eval_priv = NULL;
sym = VCC_MkSym(tl, "regsuball", SYM_FUNC);
AN(sym);
+ sym->type = STRING;
sym->eval = vcc_Eval_Regsub;
sym->eval_priv = sym;
sym = VCC_MkSym(tl, "true", SYM_FUNC);
AN(sym);
+ sym->type = BOOL;
sym->eval = vcc_Eval_BoolConst;
sym->eval_priv = sym;
sym = VCC_MkSym(tl, "false", SYM_FUNC);
AN(sym);
+ sym->type = BOOL;
sym->eval = vcc_Eval_BoolConst;
sym->eval_priv = NULL;
}
diff --git a/lib/libvcc/vcc_storage.c b/lib/libvcc/vcc_storage.c
index 8378234..06af8c7 100644
--- a/lib/libvcc/vcc_storage.c
+++ b/lib/libvcc/vcc_storage.c
@@ -67,7 +67,7 @@
static struct stvars {
const char *name;
- vcc_type_t fmt;
+ vcc_type_t type;
} stvars[] = {
#define VRTSTVVAR(nm, vtype, ctype, dval) { #nm, vtype },
#include "tbl/vrt_stv_var.h"
@@ -86,7 +86,7 @@ vcc_stevedore(struct vcc *vcc, const char *stv_name)
bprintf(buf, "storage.%s", stv_name);
sym = VCC_MkSym(vcc, buf, SYM_VAR);
AN(sym);
- sym->fmt = STEVEDORE;
+ sym->type = STEVEDORE;
sym->eval = vcc_Eval_Var;
bprintf(buf, "VRT_stevedore(\"%s\")", stv_name);
sym->rname = TlDup(vcc, buf);
@@ -96,7 +96,7 @@ vcc_stevedore(struct vcc *vcc, const char *stv_name)
bprintf(buf, "storage.%s.%s", stv_name, sv->name);
sym = VCC_MkSym(vcc, buf, SYM_VAR);
AN(sym);
- sym->fmt = sv->fmt;
+ sym->type = sv->type;
sym->eval = vcc_Eval_Var;
bprintf(buf, "VRT_Stv_%s(\"%s\")", sv->name, stv_name);
sym->rname = TlDup(vcc, buf);
diff --git a/lib/libvcc/vcc_symb.c b/lib/libvcc/vcc_symb.c
index 1a39ea7..6f73b16 100644
--- a/lib/libvcc/vcc_symb.c
+++ b/lib/libvcc/vcc_symb.c
@@ -101,6 +101,7 @@ vcc_new_symbol(struct vcc *tl, const char *b, const char *e)
sym->name[e - b] = '\0';
sym->nlen = e - b;
VTAILQ_INIT(&sym->children);
+ sym->type = VOID;
return (sym);
}
@@ -290,7 +291,7 @@ VCC_WalkSymbols(struct vcc *tl, symwalk_f *func, enum symkind kind)
}
void
-VCC_GlobalSymbol(struct symbol *sym, vcc_type_t fmt, const char *pfx)
+VCC_GlobalSymbol(struct symbol *sym, vcc_type_t type, const char *pfx)
{
struct vsb *vsb;
@@ -306,8 +307,8 @@ VCC_GlobalSymbol(struct symbol *sym, vcc_type_t fmt, const char *pfx)
AN(sym->rname);
VSB_destroy(&vsb);
- sym->fmt = fmt;
- sym->kind = VCC_HandleKind(sym->fmt);
+ sym->type = type;
+ sym->kind = VCC_HandleKind(sym->type);
if (sym->kind != SYM_NONE) {
AZ(VCT_invalid_name(sym->rname, NULL));
sym->eval = vcc_Eval_Handle;
diff --git a/lib/libvcc/vcc_var.c b/lib/libvcc/vcc_var.c
index 5c8eadf..273563c 100644
--- a/lib/libvcc/vcc_var.c
+++ b/lib/libvcc/vcc_var.c
@@ -41,7 +41,7 @@ vcc_Var_Wildcard(struct vcc *tl, struct symbol *parent, struct symbol *sym)
{
struct vsb *vsb;
- assert(parent->fmt == HEADER);
+ assert(parent->type == HEADER);
if (sym->nlen >= 127) {
VSB_printf(tl->sb, "HTTP header (%.20s..) is too long.\n",
@@ -53,7 +53,7 @@ vcc_Var_Wildcard(struct vcc *tl, struct symbol *parent, struct symbol *sym)
AN(sym);
sym->noref = 1;
sym->kind = SYM_VAR;
- sym->fmt = parent->fmt;
+ sym->type = parent->type;
sym->eval = vcc_Eval_Var;
sym->r_methods = parent->r_methods;
sym->w_methods = parent->w_methods;
diff --git a/lib/libvcc/vcc_vmod.c b/lib/libvcc/vcc_vmod.c
index 02789c5..92ae8df 100644
--- a/lib/libvcc/vcc_vmod.c
+++ b/lib/libvcc/vcc_vmod.c
@@ -250,8 +250,8 @@ vcc_ParseImport(struct vcc *tl)
sym->eval = vcc_Eval_SymFunc;
p += strlen(p) + 1;
sym->eval_priv = p;
- sym->fmt = VCC_Type(p);
- AN(sym->fmt);
+ sym->type = VCC_Type(p);
+ AN(sym->type);
} else {
VSB_printf(tl->sb, "Internal spec error (%s)\n", p);
vcc_ErrWhere(tl, mod);
@@ -337,7 +337,7 @@ vcc_Act_New(struct vcc *tl, struct token *t, struct symbol *sym)
sy3->eval = vcc_Eval_SymFunc;
p += strlen(p) + 1;
sy3->eval_priv = p;
- sy3->fmt = VCC_Type(p);
+ sy3->type = VCC_Type(p);
sy3->extra = TlDup(tl, buf1);
sy3->vmod = sy2->vmod;
while (p[0] != '\0' || p[1] != '\0' || p[2] != '\0')
diff --git a/lib/libvcc/vcc_xref.c b/lib/libvcc/vcc_xref.c
index a419f8b..ce77c2e 100644
--- a/lib/libvcc/vcc_xref.c
+++ b/lib/libvcc/vcc_xref.c
@@ -336,7 +336,7 @@ vcc_xreftable(struct vcc *tl, const struct symbol *sym)
{
Fc(tl, 0, " * %-7s ", VCC_SymKind(tl, sym));
- Fc(tl, 0, " %-9s ", sym->fmt != NULL ? sym->fmt->name : "");
+ Fc(tl, 0, " %-9s ", sym->type->name);
vcc_pnam(tl, sym);
if (sym->wildcard != NULL)
Fc(tl, 0, "*");
More information about the varnish-commit
mailing list