// Objective-C API for talking to keywords Go package.
//   gobind -lang=objc keywords
//
// File is generated by gobind. Do not edit.

#ifndef __keywords_H__
#define __keywords_H__

#include <stdint.h>
#include <objc/objc.h>
void cproxykeywords_KeywordCaller_Abstract(int32_t refnum);

void cproxykeywords_KeywordCaller_Assert(int32_t refnum);

void cproxykeywords_KeywordCaller_Boolean(int32_t refnum);

void cproxykeywords_KeywordCaller_Break(int32_t refnum);

void cproxykeywords_KeywordCaller_Byte(int32_t refnum);

void cproxykeywords_KeywordCaller_Case(int32_t refnum);

void cproxykeywords_KeywordCaller_Catch(int32_t refnum);

void cproxykeywords_KeywordCaller_Char(int32_t refnum);

void cproxykeywords_KeywordCaller_Class(int32_t refnum);

void cproxykeywords_KeywordCaller_Const(int32_t refnum);

void cproxykeywords_KeywordCaller_Continue(int32_t refnum);

void cproxykeywords_KeywordCaller_Default(int32_t refnum);

void cproxykeywords_KeywordCaller_Do(int32_t refnum);

void cproxykeywords_KeywordCaller_Double(int32_t refnum);

void cproxykeywords_KeywordCaller_Else(int32_t refnum);

void cproxykeywords_KeywordCaller_Enum(int32_t refnum);

void cproxykeywords_KeywordCaller_Extends(int32_t refnum);

void cproxykeywords_KeywordCaller_False(int32_t refnum);

void cproxykeywords_KeywordCaller_Final(int32_t refnum);

void cproxykeywords_KeywordCaller_Finally(int32_t refnum);

void cproxykeywords_KeywordCaller_Float(int32_t refnum);

void cproxykeywords_KeywordCaller_For(int32_t refnum);

void cproxykeywords_KeywordCaller_Goto(int32_t refnum);

void cproxykeywords_KeywordCaller_If(int32_t refnum);

void cproxykeywords_KeywordCaller_Implements(int32_t refnum);

void cproxykeywords_KeywordCaller_Import(int32_t refnum);

void cproxykeywords_KeywordCaller_Instanceof(int32_t refnum);

void cproxykeywords_KeywordCaller_Int(int32_t refnum);

void cproxykeywords_KeywordCaller_Interface(int32_t refnum);

void cproxykeywords_KeywordCaller_Long(int32_t refnum);

void cproxykeywords_KeywordCaller_Native(int32_t refnum);

void cproxykeywords_KeywordCaller_New(int32_t refnum);

void cproxykeywords_KeywordCaller_Null(int32_t refnum);

void cproxykeywords_KeywordCaller_Package(int32_t refnum);

void cproxykeywords_KeywordCaller_Private(int32_t refnum);

void cproxykeywords_KeywordCaller_Protected(int32_t refnum);

void cproxykeywords_KeywordCaller_Public(int32_t refnum);

void cproxykeywords_KeywordCaller_Return(int32_t refnum);

void cproxykeywords_KeywordCaller_Short(int32_t refnum);

void cproxykeywords_KeywordCaller_Static(int32_t refnum);

void cproxykeywords_KeywordCaller_Strictfp(int32_t refnum);

void cproxykeywords_KeywordCaller_Super(int32_t refnum);

void cproxykeywords_KeywordCaller_Switch(int32_t refnum);

void cproxykeywords_KeywordCaller_Synchronized(int32_t refnum);

void cproxykeywords_KeywordCaller_This(int32_t refnum);

void cproxykeywords_KeywordCaller_Throw(int32_t refnum);

void cproxykeywords_KeywordCaller_Throws(int32_t refnum);

void cproxykeywords_KeywordCaller_Transient(int32_t refnum);

void cproxykeywords_KeywordCaller_True(int32_t refnum);

void cproxykeywords_KeywordCaller_Try(int32_t refnum);

void cproxykeywords_KeywordCaller_Void(int32_t refnum);

void cproxykeywords_KeywordCaller_Volatile(int32_t refnum);

void cproxykeywords_KeywordCaller_While(int32_t refnum);

#endif
