module volt.visitor.jsonprinter

Code Map

module volt.visitor.jsonprinter;


class JsonPrinter : NullVisitor
{
public:
	this(filename: string) { }
	fn transform(target: TargetInfo, mods: ir.Module[]) { }
	fn enter(m: ir.Module) Status { }
	fn enter(s: ir.Struct) Status { }
	fn enter(u: ir.Union) Status { }
	fn enter(c: ir.Class) Status { }
	fn enter(ifc: ir._Interface) Status { }
	fn enter(a: ir.Alias) Status { }
	fn enter(i: ir.Import) Status { }
	fn enter(f: ir.Function) Status { }
	fn enter(v: ir.Variable) Status { }
	fn enter(e: ir.Enum) Status { }
	fn enter(ed: ir.EnumDeclaration) Status { }
	fn leave(ir.Module) Status { }
	fn leave(ir.Struct) Status { }
	fn leave(ir.Union) Status { }
	fn leave(ir.Class) Status { }
	fn leave(ir.Enum) Status { }
	fn leave(ir._Interface) Status { }


protected:
	fn writeTargetInfo(target: TargetInfo) { }
	fn writeAlignments(alignment: TargetInfo.Alignments) { }
	fn writeNamedTyped(kind: string, name: string, doc: string, type: ir.Type) { }
	fn startObject() { }
	fn startObject(name: string) { }
	fn startList(name: string) { }
	fn endObject() { }
	fn endList() { }
	fn endListAndObject() { }
	fn tag(tag: scope (SinkArg), value: scope (SinkArg)) { }
	fn tag(tag: scope (SinkArg), value: bool) { }
	fn tag(tag: scope (SinkArg), n: size_t) { }
	//! Add quotes to s and make it a JSON string (w/ escaping etc).
	fn wq(s: scope (SinkArg)) { }
	fn wMaybeComma() { }
	fn w(s: scope (SinkArg)) { }
}