/*----------------------------------------------------------------------------*/
/* This file is generated by the templates/template.rb script and should not  */
/* be modified manually.                                                      */
/* To change the template see                                                 */
/* templates/ext/rbs_extension/class_constants.h.erb                          */
/*----------------------------------------------------------------------------*/

#ifndef RBS__CONSTANTS_H
#define RBS__CONSTANTS_H

#include "compat.h"

SUPPRESS_RUBY_HEADER_DIAGNOSTICS_BEGIN
#include "ruby.h"
SUPPRESS_RUBY_HEADER_DIAGNOSTICS_END

extern VALUE RBS;

extern VALUE RBS_AST;
extern VALUE RBS_AST_Declarations;
extern VALUE RBS_AST_Directives;
extern VALUE RBS_AST_Members;
extern VALUE RBS_AST_Ruby;
extern VALUE RBS_AST_Ruby_Annotations;
extern VALUE RBS_Types;
extern VALUE RBS_Types_Bases;
extern VALUE RBS_ParsingError;

extern VALUE RBS_AST_Annotation;
extern VALUE RBS_AST_Comment;
extern VALUE RBS_AST_Declarations_Class;
extern VALUE RBS_AST_Declarations_Class_Super;
extern VALUE RBS_AST_Declarations_ClassAlias;
extern VALUE RBS_AST_Declarations_Constant;
extern VALUE RBS_AST_Declarations_Global;
extern VALUE RBS_AST_Declarations_Interface;
extern VALUE RBS_AST_Declarations_Module;
extern VALUE RBS_AST_Declarations_Module_Self;
extern VALUE RBS_AST_Declarations_ModuleAlias;
extern VALUE RBS_AST_Declarations_TypeAlias;
extern VALUE RBS_AST_Directives_Use;
extern VALUE RBS_AST_Directives_Use_SingleClause;
extern VALUE RBS_AST_Directives_Use_WildcardClause;
extern VALUE RBS_AST_Members_Alias;
extern VALUE RBS_AST_Members_AttrAccessor;
extern VALUE RBS_AST_Members_AttrReader;
extern VALUE RBS_AST_Members_AttrWriter;
extern VALUE RBS_AST_Members_ClassInstanceVariable;
extern VALUE RBS_AST_Members_ClassVariable;
extern VALUE RBS_AST_Members_Extend;
extern VALUE RBS_AST_Members_Include;
extern VALUE RBS_AST_Members_InstanceVariable;
extern VALUE RBS_AST_Members_MethodDefinition;
extern VALUE RBS_AST_Members_MethodDefinition_Overload;
extern VALUE RBS_AST_Members_Prepend;
extern VALUE RBS_AST_Members_Private;
extern VALUE RBS_AST_Members_Public;
extern VALUE RBS_AST_Ruby_Annotations_BlockParamTypeAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_ClassAliasAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_ColonMethodTypeAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_DoubleSplatParamTypeAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_InstanceVariableAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_MethodTypesAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_ModuleAliasAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_NodeTypeAssertion;
extern VALUE RBS_AST_Ruby_Annotations_ParamTypeAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_ReturnTypeAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_SkipAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_SplatParamTypeAnnotation;
extern VALUE RBS_AST_Ruby_Annotations_TypeApplicationAnnotation;
extern VALUE RBS_AST_TypeParam;
extern VALUE RBS_MethodType;
extern VALUE RBS_Namespace;
extern VALUE RBS_TypeName;
extern VALUE RBS_Types_Alias;
extern VALUE RBS_Types_Bases_Any;
extern VALUE RBS_Types_Bases_Bool;
extern VALUE RBS_Types_Bases_Bottom;
extern VALUE RBS_Types_Bases_Class;
extern VALUE RBS_Types_Bases_Instance;
extern VALUE RBS_Types_Bases_Nil;
extern VALUE RBS_Types_Bases_Self;
extern VALUE RBS_Types_Bases_Top;
extern VALUE RBS_Types_Bases_Void;
extern VALUE RBS_Types_Block;
extern VALUE RBS_Types_ClassInstance;
extern VALUE RBS_Types_ClassSingleton;
extern VALUE RBS_Types_Function;
extern VALUE RBS_Types_Function_Param;
extern VALUE RBS_Types_Interface;
extern VALUE RBS_Types_Intersection;
extern VALUE RBS_Types_Literal;
extern VALUE RBS_Types_Optional;
extern VALUE RBS_Types_Proc;
extern VALUE RBS_Types_Record;
extern VALUE RBS_Types_Tuple;
extern VALUE RBS_Types_Union;
extern VALUE RBS_Types_UntypedFunction;
extern VALUE RBS_Types_Variable;

void rbs__init_constants();

#endif
