예제 #1
0
RetType dispatchByItemKind_gen(Code item,Visitor& vis) {
	switch(item.kind()) {
	case BRIG_KIND_DIRECTIVE_ARG_BLOCK_END: return vis(DirectiveArgBlockEnd(item));
	case BRIG_KIND_DIRECTIVE_ARG_BLOCK_START: return vis(DirectiveArgBlockStart(item));
	case BRIG_KIND_DIRECTIVE_COMMENT: return vis(DirectiveComment(item));
	case BRIG_KIND_DIRECTIVE_CONTROL: return vis(DirectiveControl(item));
	case BRIG_KIND_DIRECTIVE_EXTENSION: return vis(DirectiveExtension(item));
	case BRIG_KIND_DIRECTIVE_FBARRIER: return vis(DirectiveFbarrier(item));
	case BRIG_KIND_DIRECTIVE_FUNCTION: return vis(DirectiveFunction(item));
	case BRIG_KIND_DIRECTIVE_INDIRECT_FUNCTION: return vis(DirectiveIndirectFunction(item));
	case BRIG_KIND_DIRECTIVE_KERNEL: return vis(DirectiveKernel(item));
	case BRIG_KIND_DIRECTIVE_LABEL: return vis(DirectiveLabel(item));
	case BRIG_KIND_DIRECTIVE_LOC: return vis(DirectiveLoc(item));
	case BRIG_KIND_DIRECTIVE_MODULE: return vis(DirectiveModule(item));
	case BRIG_KIND_DIRECTIVE_PRAGMA: return vis(DirectivePragma(item));
	case BRIG_KIND_DIRECTIVE_SIGNATURE: return vis(DirectiveSignature(item));
	case BRIG_KIND_DIRECTIVE_VARIABLE: return vis(DirectiveVariable(item));
	case BRIG_KIND_INST_ADDR: return vis(InstAddr(item));
	case BRIG_KIND_INST_ATOMIC: return vis(InstAtomic(item));
	case BRIG_KIND_INST_BASIC: return vis(InstBasic(item));
	case BRIG_KIND_INST_BR: return vis(InstBr(item));
	case BRIG_KIND_INST_CMP: return vis(InstCmp(item));
	case BRIG_KIND_INST_CVT: return vis(InstCvt(item));
	case BRIG_KIND_INST_IMAGE: return vis(InstImage(item));
	case BRIG_KIND_INST_LANE: return vis(InstLane(item));
	case BRIG_KIND_INST_MEM: return vis(InstMem(item));
	case BRIG_KIND_INST_MEM_FENCE: return vis(InstMemFence(item));
	case BRIG_KIND_INST_MOD: return vis(InstMod(item));
	case BRIG_KIND_INST_QUERY_IMAGE: return vis(InstQueryImage(item));
	case BRIG_KIND_INST_QUERY_SAMPLER: return vis(InstQuerySampler(item));
	case BRIG_KIND_INST_QUEUE: return vis(InstQueue(item));
	case BRIG_KIND_INST_SEG: return vis(InstSeg(item));
	case BRIG_KIND_INST_SEG_CVT: return vis(InstSegCvt(item));
	case BRIG_KIND_INST_SIGNAL: return vis(InstSignal(item));
	case BRIG_KIND_INST_SOURCE_TYPE: return vis(InstSourceType(item));
	case BRIG_KIND_NONE: return vis(DirectiveNone(item));
	default: assert(false); break;
	}
	return RetType();
}