// Copyright 2023 Proyectos y Sistemas de Mantenimiento SL (eProsima). main(ctx, definitions) ::= << $definitions; separator="\n"$ >> module(ctx, parent, module, definition_list) ::= << $definition_list$ >> definition_list(definitions) ::= << $definitions; separator="\n"$ >> annotation(ctx, annotation) ::= <<>> const_decl(ctx, parent, const, const_type) ::= << $const_type$ >> typedef_decl(ctx, parent, typedefs, typedefs_type, declarator_type) ::= << $declarator_type$ $typedefs_type$ >> fwd_decl(ctx, parent, type) ::= <<>> struct_type(ctx, parent, struct, member_list) ::= << $member_list$ >> member_type(ctx, member, type_member, declarators) ::= << $type_member$ $declarators$ >> union_type(ctx, parent, union, extensions, switch_type) ::= << $switch_type$ >> element_type(ctx, element, type_element, declarator) ::= << $type_element$ $declarator$ >> bitset_type(ctx, parent, bitset, extensions) ::= <<>> enum_type(ctx, parent, enum) ::= <<>> bitmask_type(ctx, parent, bitmask) ::= <<>> sequence_type(ctx, sequence, type_sequence) ::= << $type_sequence$ >> map_type(ctx, map, key_type, value_type) ::= << $key_type$ $value_type$ >> string_type(ctx, string) ::= <<>> wide_string_type(ctx, wstring) ::= <<>> array_declarator(ctx, array, array_type) ::= <<>> interface(ctx, parent, interface, export_list) ::= <<>> export_list(exports) ::= <<>> exception(ctx, parent, exception) ::= <<>> operation(ctx, parent, operation, param_list, operation_type) ::= << $operation_type$ $param_list$ >> param_list(parameters) ::= <<>> param(parameter, parameter_type) ::= << $parameter_type$ >>