Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

267 Zeilen
7.6 KiB

================================================================================
Module Definition
================================================================================
module mod;
--------------------------------------------------------------------------------
(translation_unit
(module_declaration
(module_name
(identifier))))
================================================================================
Module Definition with Export
================================================================================
export module mod;
--------------------------------------------------------------------------------
(translation_unit
(module_declaration
(module_name
(identifier))))
================================================================================
Module Definition with Export and Partition
================================================================================
export module mod:mod;
--------------------------------------------------------------------------------
(translation_unit
(module_declaration
(module_name
(identifier))
(module_partition
(module_name
(identifier)))))
================================================================================
Module Definition with Export, Partition and Attribute
================================================================================
export module mod:mod [[attribute]];
--------------------------------------------------------------------------------
(translation_unit
(module_declaration
name: (module_name
(identifier))
partition: (module_partition
(module_name
(identifier)))
(attribute_declaration
(attribute
name: (identifier)))))
================================================================================
import Declaration
================================================================================
import mod;
--------------------------------------------------------------------------------
(translation_unit
(import_declaration
name: (module_name
(identifier))))
================================================================================
import Declaration with export
================================================================================
export import mod;
--------------------------------------------------------------------------------
(translation_unit
(export_declaration
(import_declaration
name: (module_name
(identifier)))))
================================================================================
import Declaration partition with export
================================================================================
export import :mod;
--------------------------------------------------------------------------------
(translation_unit
(export_declaration
(import_declaration
partition: (module_partition
(module_name
(identifier))))))
================================================================================
import Declaration headerunit with export
================================================================================
export import <iostream>;
--------------------------------------------------------------------------------
(translation_unit
(export_declaration
(import_declaration
header: (system_lib_string))))
================================================================================
global module fragment
================================================================================
module;
--------------------------------------------------------------------------------
(translation_unit
(global_module_fragment_declaration))
================================================================================
private module fragment
================================================================================
module :private;
--------------------------------------------------------------------------------
(translation_unit
(private_module_fragment_declaration))
================================================================================
export declaration
================================================================================
export module A;
export char const* hello() { return "hello"; }
char const* world() { return "world"; }
export {
int one() { return 1; }
int zero() { return 0; }
}
export namespace hi {
char const* english() { return "Hi!"; }
char const* french() { return "Salut!"; }
}
--------------------------------------------------------------------------------
(translation_unit
(module_declaration
name: (module_name
(identifier)))
(export_declaration
(function_definition
type: (primitive_type)
(type_qualifier)
declarator: (pointer_declarator
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list)))
body: (compound_statement
(return_statement
(string_literal
(string_content))))))
(function_definition
type: (primitive_type)
(type_qualifier)
declarator: (pointer_declarator
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list)))
body: (compound_statement
(return_statement
(string_literal
(string_content)))))
(export_declaration
(declaration_list
(function_definition
type: (primitive_type)
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list))
body: (compound_statement
(return_statement
(number_literal))))
(function_definition
type: (primitive_type)
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list))
body: (compound_statement
(return_statement
(number_literal))))))
(export_declaration
(namespace_definition
name: (namespace_identifier)
body: (declaration_list
(function_definition
type: (primitive_type)
(type_qualifier)
declarator: (pointer_declarator
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list)))
body: (compound_statement
(return_statement
(string_literal
(string_content)))))
(function_definition
type: (primitive_type)
(type_qualifier)
declarator: (pointer_declarator
declarator: (function_declarator
declarator: (identifier)
parameters: (parameter_list)))
body: (compound_statement
(return_statement
(string_literal
(string_content)))))))))
================================================================================
Modules in preprocessor sections
================================================================================
#ifdef USE_MODULES
module;
#include <vector>
export module foo;
#endif
#if USE_MODULES
import std;
#else
import <vector>;
#endif
export {
#ifdef USE_MODULE
class Foo;
#endif
}
--------
(translation_unit
(preproc_ifdef
(identifier)
(global_module_fragment_declaration)
(preproc_include
(system_lib_string))
(module_declaration
(module_name
(identifier))))
(preproc_if
(identifier)
(import_declaration
(module_name
(identifier)))
(preproc_else
(import_declaration
(system_lib_string))))
(export_declaration
(declaration_list
(preproc_ifdef
(identifier)
(class_specifier
(type_identifier))))))