예제 #1
0
파일: codegen.go 프로젝트: vnev/ark
func (v *Codegen) genDecl(n parser.Decl) {
	switch n := n.(type) {
	case *parser.FunctionDecl:
		v.genFunctionDecl(n)
	case *parser.VariableDecl:
		v.genVariableDecl(n, true)
	case *parser.TypeDecl:
		// TODO nothing to gen?
	default:
		v.err("unimplemented decl found: `%s`", n.NodeName())
	}
}
예제 #2
0
func (v *Codegen) genDecl(n parser.Decl) {
	switch n.(type) {
	case *parser.FunctionDecl:
		v.genFunctionDecl(n.(*parser.FunctionDecl))
	case *parser.UseDecl:
		v.genUseDecl(n.(*parser.UseDecl))
	case *parser.StructDecl:
		//return v.genStructDecl(n.(*parser.StructDecl)) not used
	case *parser.TraitDecl:
		// nothing to gen
	case *parser.ImplDecl:
		v.genImplDecl(n.(*parser.ImplDecl))
	case *parser.EnumDecl:
		// todo
	case *parser.VariableDecl:
		v.genVariableDecl(n.(*parser.VariableDecl), true)
	default:
		v.err("unimplimented decl found: `%s`", n.NodeName())
	}
}