[master] c24a143 Simplify more
Poul-Henning Kamp
phk at FreeBSD.org
Tue Feb 20 10:49:09 UTC 2018
commit c24a1439f94330e4fbf8b450f03b7e3fcce9bac8
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Tue Feb 20 09:54:04 2018 +0000
Simplify more
diff --git a/lib/libvcc/generate.py b/lib/libvcc/generate.py
index 92092bf..9b2809e 100755
--- a/lib/libvcc/generate.py
+++ b/lib/libvcc/generate.py
@@ -181,6 +181,57 @@ class vardef(object):
self.vlo = vlo
self.vhi = vhi
+ def emit(self):
+ fh.write("\n")
+ fo.write("\n")
+ cnam = self.nam.replace(".", "_")
+ ctyp = vcltypes[self.typ]
+
+ # fo.write("\t{ \"%s\", %s,\n" % (nm, self.typ))
+ fo.write("\tsym = VCC_MkSym(tl, \"%s\", " % self.nam)
+ if (self.typ == "HEADER"):
+ fo.write(" SYM_NONE);\n")
+ fo.write("\tAN(sym);\n");
+ fo.write("\tsym->wildcard = vcc_Var_Wildcard;\n")
+ else:
+ fo.write(" SYM_VAR);\n")
+ fo.write("\tAN(sym);\n")
+ fo.write("\tsym->type = %s;\n" % self.typ)
+ fo.write("\tsym->eval = vcc_Eval_Var;\n")
+
+ if self.typ == "HEADER":
+ fo.write('\tsym->rname = "HDR_')
+ fo.write(self.nam.split(".")[0].upper())
+ fo.write('";\n')
+ elif len(self.rd):
+ fo.write('\tsym->rname = "VRT_r_%s(ctx)";\n' % cnam)
+ fh.write("VCL_" + self.typ + " VRT_r_%s(VRT_CTX);\n" % cnam)
+ fo.write("\tsym->r_methods =\n")
+ restrict(fo, self.rd)
+ fo.write(";\n")
+
+ if self.typ == "HEADER":
+ fo.write('\tsym->lname = "HDR_')
+ fo.write(self.nam.split(".")[0].upper())
+ fo.write('";\n')
+ elif len(self.wr):
+ fo.write('\tsym->lname = "VRT_l_%s(ctx, ";\n' % cnam)
+ fh.write("void VRT_l_%s(VRT_CTX, " % cnam)
+ if self.typ != "STRING" and self.typ != "BODY":
+ fh.write("VCL_" + self.typ + ");\n")
+ else:
+ fh.write(ctyp + ", ...);\n")
+ fo.write("\tsym->w_methods =\n")
+ restrict(fo, self.wr)
+ fo.write(";\n")
+
+ if len(self.uns):
+ fh.write("void VRT_u_%s(VRT_CTX);\n" % cnam)
+ fo.write('\tsym->uname = "VRT_u_%s(ctx)";\n' % cnam)
+ fo.write('\tsym->u_methods =\n')
+ restrict(fo, self.uns)
+ fo.write(";\n")
+
def parse_vcl(x):
vlo,vhi = (0,99)
x = x.split()
@@ -671,61 +722,9 @@ vcc_Var_Init(struct vcc *tl)
""")
-def one_var(nm, spec):
- fh.write("\n")
- fo.write("\n")
- cnam = spec.nam.replace(".", "_")
- ctyp = vcltypes[spec.typ]
-
- # fo.write("\t{ \"%s\", %s,\n" % (nm, spec.typ))
- fo.write("\tsym = VCC_MkSym(tl, \"%s\", " % nm)
- if (spec.typ == "HEADER"):
- fo.write(" SYM_NONE);\n")
- fo.write("\tAN(sym);\n");
- fo.write("\tsym->wildcard = vcc_Var_Wildcard;\n")
- else:
- fo.write(" SYM_VAR);\n")
- fo.write("\tAN(sym);\n")
- fo.write("\tsym->type = %s;\n" % spec.typ)
- fo.write("\tsym->eval = vcc_Eval_Var;\n")
-
- if spec.typ == "HEADER":
- fo.write('\tsym->rname = "HDR_')
- fo.write(nm.split(".")[0].upper())
- fo.write('";\n')
- elif len(spec.rd):
- fo.write('\tsym->rname = "VRT_r_%s(ctx)";\n' % cnam)
- if nm == spec.nam:
- fh.write("VCL_" + spec.typ + " VRT_r_%s(VRT_CTX);\n" % cnam)
- fo.write("\tsym->r_methods =\n")
- restrict(fo, spec.rd)
- fo.write(";\n")
-
- if spec.typ == "HEADER":
- fo.write('\tsym->lname = "HDR_')
- fo.write(nm.split(".")[0].upper())
- fo.write('";\n')
- elif len(spec.wr):
- fo.write('\tsym->lname = "VRT_l_%s(ctx, ";\n' % cnam)
- if nm == spec.nam:
- fh.write("void VRT_l_%s(VRT_CTX, " % cnam)
- if spec.typ != "STRING" and spec.typ != "BODY":
- fh.write("VCL_" + spec.typ + ");\n")
- else:
- fh.write(ctyp + ", ...);\n")
- fo.write("\tsym->w_methods =\n")
- restrict(fo, spec.wr)
- fo.write(";\n")
-
- if len(spec.uns):
- fh.write("void VRT_u_%s(VRT_CTX);\n" % cnam)
- fo.write('\tsym->uname = "VRT_u_%s(ctx)";\n' % cnam)
- fo.write('\tsym->u_methods =\n')
- restrict(fo, spec.uns)
- fo.write(";\n")
-
-for i in sp_variables:
- one_var(i, sp_variables[i])
+
+for i in sp_variables.values():
+ i.emit()
# fo.write("\t{ NULL }\n};\n\n")
fo.write("}\n")
More information about the varnish-commit
mailing list