#ifndef syntax___mmbuilder_sep
#define syntax___mmbuilder_sep
#include "syntax___syntax_base._sep.h"
+#include "primitive_info._sep.h"
#include <nit_common.h>
extern const classtable_elt_t VFT_syntax___mmbuilder___CSHSorter[];
#define CALL_syntax___mmbuilder___AClasskind___is_interface(recv) ((syntax___mmbuilder___AClasskind___is_interface_t)CALL((recv), (SFT_syntax___mmbuilder[42] + 0)))
#define CALL_syntax___mmbuilder___AClasskind___is_enum(recv) ((syntax___mmbuilder___AClasskind___is_enum_t)CALL((recv), (SFT_syntax___mmbuilder[42] + 1)))
#define CALL_syntax___mmbuilder___AClasskind___is_abstract(recv) ((syntax___mmbuilder___AClasskind___is_abstract_t)CALL((recv), (SFT_syntax___mmbuilder[42] + 2)))
-#define CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(recv) ((syntax___mmbuilder___AStdClassdef___accept_class_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[43] + 0)))
+#define CALL_syntax___mmbuilder___AClasskind___is_extern(recv) ((syntax___mmbuilder___AClasskind___is_extern_t)CALL((recv), (SFT_syntax___mmbuilder[42] + 3)))
+#define CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(recv) ((syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder_t)CALL((recv), (SFT_syntax___mmbuilder[43] + 0)))
+#define CALL_SUPER_syntax___mmbuilder___AStdClassdef___accept_class_verifier(recv) ((syntax___mmbuilder___AStdClassdef___accept_class_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[43] + 1)))
#define ATTR_syntax___mmbuilder___AFormaldef____formal(recv) ATTR(recv, (SFT_syntax___mmbuilder[44] + 0))
#define CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_builder(recv) ((syntax___mmbuilder___AFormaldef___accept_class_builder_t)CALL((recv), (SFT_syntax___mmbuilder[45] + 0)))
#define CALL_SUPER_syntax___mmbuilder___AFormaldef___accept_class_verifier(recv) ((syntax___mmbuilder___AFormaldef___accept_class_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[45] + 1)))
#define CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_builder(recv) ((syntax___mmbuilder___AMethPropdef___accept_property_builder_t)CALL((recv), (SFT_syntax___mmbuilder[52] + 1)))
#define CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_property_verifier(recv) ((syntax___mmbuilder___AMethPropdef___accept_property_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[52] + 2)))
#define CALL_SUPER_syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor(recv) ((syntax___mmbuilder___AMethPropdef___accept_abs_syntax_visitor_t)CALL((recv), (SFT_syntax___mmbuilder[52] + 3)))
-#define CALL_SUPER_syntax___mmbuilder___AExternMethPropdef___accept_property_verifier(recv) ((syntax___mmbuilder___AExternMethPropdef___accept_property_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[53] + 0)))
+#define CALL_SUPER_syntax___mmbuilder___AExternPropdef___accept_property_verifier(recv) ((syntax___mmbuilder___AExternPropdef___accept_property_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[53] + 0)))
#define ATTR_syntax___mmbuilder___ATypePropdef____prop(recv) ATTR(recv, (SFT_syntax___mmbuilder[54] + 0))
#define CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_builder(recv) ((syntax___mmbuilder___ATypePropdef___accept_property_builder_t)CALL((recv), (SFT_syntax___mmbuilder[55] + 0)))
#define CALL_SUPER_syntax___mmbuilder___ATypePropdef___accept_property_verifier(recv) ((syntax___mmbuilder___ATypePropdef___accept_property_verifier_t)CALL((recv), (SFT_syntax___mmbuilder[55] + 1)))
static const char * const LOCATE_syntax___mmbuilder___AClasskind___is_abstract = "mmbuilder::AClasskind::is_abstract";
val_t syntax___mmbuilder___AClasskind___is_abstract(val_t p0);
typedef val_t (*syntax___mmbuilder___AClasskind___is_abstract_t)(val_t p0);
+static const char * const LOCATE_syntax___mmbuilder___AClasskind___is_extern = "mmbuilder::AClasskind::is_extern";
+val_t syntax___mmbuilder___AClasskind___is_extern(val_t p0);
+typedef val_t (*syntax___mmbuilder___AClasskind___is_extern_t)(val_t p0);
val_t NEW_AClasskind_parser___parser_nodes___ANode___init(val_t p0);
static const char * const LOCATE_syntax___mmbuilder___AInterfaceClasskind___is_interface = "mmbuilder::AInterfaceClasskind::(mmbuilder::AClasskind::is_interface)";
val_t syntax___mmbuilder___AInterfaceClasskind___is_interface(val_t p0);
val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___empty_init();
val_t NEW_AEnumClasskind_parser___parser_prod___AEnumClasskind___init_aenumclasskind(val_t p0);
val_t NEW_AEnumClasskind_parser___parser_nodes___ANode___init(val_t p0);
+static const char * const LOCATE_syntax___mmbuilder___AExternClasskind___is_extern = "mmbuilder::AExternClasskind::(mmbuilder::AClasskind::is_extern)";
+val_t syntax___mmbuilder___AExternClasskind___is_extern(val_t p0);
+typedef val_t (*syntax___mmbuilder___AExternClasskind___is_extern_t)(val_t p0);
+val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___empty_init();
+val_t NEW_AExternClasskind_parser___parser_prod___AExternClasskind___init_aexternclasskind(val_t p0);
+val_t NEW_AExternClasskind_parser___parser_nodes___ANode___init(val_t p0);
static const char * const LOCATE_syntax___mmbuilder___AAbstractClasskind___is_abstract = "mmbuilder::AAbstractClasskind::(mmbuilder::AClasskind::is_abstract)";
val_t syntax___mmbuilder___AAbstractClasskind___is_abstract(val_t p0);
typedef val_t (*syntax___mmbuilder___AAbstractClasskind___is_abstract_t)(val_t p0);
static const char * const LOCATE_syntax___mmbuilder___AStdClassdef___arity = "mmbuilder::AStdClassdef::(mmbuilder::AClassdef::arity)";
val_t syntax___mmbuilder___AStdClassdef___arity(val_t p0);
typedef val_t (*syntax___mmbuilder___AStdClassdef___arity_t)(val_t p0);
+static const char * const LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_specialization_builder)";
+void syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder(val_t p0, val_t p1);
+typedef void (*syntax___mmbuilder___AStdClassdef___accept_class_specialization_builder_t)(val_t p0, val_t p1);
static const char * const LOCATE_syntax___mmbuilder___AStdClassdef___accept_class_verifier = "mmbuilder::AStdClassdef::(mmbuilder::ANode::accept_class_verifier)";
void syntax___mmbuilder___AStdClassdef___accept_class_verifier(val_t p0, val_t p1);
typedef void (*syntax___mmbuilder___AStdClassdef___accept_class_verifier_t)(val_t p0, val_t p1);
val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
val_t NEW_AMainMethPropdef_parser___parser_prod___AConcreteMethPropdef___init_aconcretemethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
val_t NEW_AMainMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
-static const char * const LOCATE_syntax___mmbuilder___AExternMethPropdef___accept_property_verifier = "mmbuilder::AExternMethPropdef::(mmbuilder::ANode::accept_property_verifier)";
-void syntax___mmbuilder___AExternMethPropdef___accept_property_verifier(val_t p0, val_t p1);
-typedef void (*syntax___mmbuilder___AExternMethPropdef___accept_property_verifier_t)(val_t p0, val_t p1);
-val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___empty_init();
-val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___empty_init();
-val_t NEW_AExternMethPropdef_parser___parser_prod___AExternMethPropdef___init_aexternmethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5, val_t p6);
-val_t NEW_AExternMethPropdef_parser___parser_nodes___ANode___init(val_t p0);
-val_t NEW_AExternMethPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
+static const char * const LOCATE_syntax___mmbuilder___AExternPropdef___accept_property_verifier = "mmbuilder::AExternPropdef::(mmbuilder::ANode::accept_property_verifier)";
+void syntax___mmbuilder___AExternPropdef___accept_property_verifier(val_t p0, val_t p1);
+typedef void (*syntax___mmbuilder___AExternPropdef___accept_property_verifier_t)(val_t p0, val_t p1);
+val_t NEW_AExternPropdef_parser___parser_nodes___ANode___init(val_t p0);
+val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___empty_init();
+val_t NEW_AExternPropdef_parser___parser_prod___AMethPropdef___init_amethpropdef(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4);
static const char * const LOCATE_syntax___mmbuilder___ATypePropdef___prop = "mmbuilder::ATypePropdef::(syntax_base::ATypePropdef::prop)";
val_t syntax___mmbuilder___ATypePropdef___prop(val_t p0);
typedef val_t (*syntax___mmbuilder___ATypePropdef___prop_t)(val_t p0);