Module seaplus_parse_transform

Overall parse transform for the Seaplus layer, in charge of streamlining the integration of any C-based service.

Description

Overall parse transform for the Seaplus layer, in charge of streamlining the integration of any C-based service.

Meant, for a Foobar service, to operate on a foobar.erl stub, so that:

- a fully-functional foobar module becomes available

- a corresponding foobar_seaplus_api_mapping.h C header is generated in order to ease the development of the corresponding C-side driver

Data Types

ast()

ast() = ast_base:ast()

directory_path()

directory_path() = file_utils:directory_path()

file_name()

file_name() = file_utils:file_name()

module_info()

module_info() = ast_info:module_info()

parse_transform_options()

parse_transform_options() = meta_utils:parse_transform_options()

preprocessor_option()

preprocessor_option() = ast_utils:preprocessor_option()

Function Index

apply_seaplus_transform/3Transforms the specified AST for Seaplus.
parse_transform/2The parse transform itself, generating notably (Myriad-based) Abstract Format code, before being itself converted in turn into an Erlang-compliant Abstract Format code.
run_standalone/1Runs the Seaplus parse transform defined here in a standalone way (that is without being triggered by the usual, integrated compilation process), with no specific preprocessor option.
run_standalone/2Runs the Seaplus parse transform defined here in a standalone way (that is without being triggered by the usual, integrated compilation process), with specified preprocessor options.

Function Details

apply_seaplus_transform/3

apply_seaplus_transform(InputAST::ast(), Options::parse_transform_options(), SeaplusRootDir::directory_path()) -> {ast(), module_info()}

Transforms the specified AST for Seaplus.

parse_transform/2

parse_transform(InputAST::ast(), Options::meta_utils:parse_transform_options()) -> ast()

The parse transform itself, generating notably (Myriad-based) Abstract Format code, before being itself converted in turn into an Erlang-compliant Abstract Format code.

run_standalone/1

run_standalone(FileToTransform::file_name()) -> {ast(), module_info()}

Runs the Seaplus parse transform defined here in a standalone way (that is without being triggered by the usual, integrated compilation process), with no specific preprocessor option.

This allows to benefit from all compilation error and warning messages, whereas they are seldom available from a code directly run as a parse transform (e.g. 'undefined parse transform 'foobar'' as soon as a function or a module is not found).

run_standalone/2

run_standalone(FileToTransform::file_name(), PreprocessorOptions::[preprocessor_option()]) -> {ast(), module_info()}

Runs the Seaplus parse transform defined here in a standalone way (that is without being triggered by the usual, integrated compilation process), with specified preprocessor options.

This allows to benefit from all compilation error and warning messages, whereas they are seldom available from a code directly run as a parse transform (e.g. 'undefined parse transform 'foobar'' as soon as a function or a module is not found).


Generated by EDoc