logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

erl_id_trans - An identity parse transform.

Description

       This  module  performs  an identity parse transformation of Erlang code. It is included as an example for
       users who wants to write their own parse transformers. If option {parse_transform,Module}  is  passed  to
       the  compiler,  a  user-written  function  parse_transform/2 is called by the compiler before the code is
       checked for errors.

       Before the function parse_transform is called, the Erlang Compiler checks if the parse transformation can
       handle abstract code with column numbers: If  the  function  parse_transform_info/0  is  implemented  and
       returns a map where the key error_location is associated with the value line, the compiler removes column
       numbers  from  the  abstract  code before calling the parse transform. Otherwise, the compiler passes the
       abstract code on without modification.

Exports

parse_transform(Forms,Options)->Forms

              Types:

                 Forms = [erl_parse:abstract_form() | erl_parse:form_info()]
                 Options = [compile:option()]

              Performs an identity transformation on Erlang forms, as an example.

       parse_transform_info()->Info

              Types:

                 Info = #{'error_location' => 'column' | 'line'}

              Returns information about the parse transform itself.

Name

       erl_id_trans - An identity parse transform.

Parse Transformations

       Parse transformations are used if a programmer wants to use Erlang syntax, but with different  semantics.
       The original Erlang code is then transformed into other Erlang code.

   Note:
       Programmers  are  strongly  advised  not  to  engage  in parse transformations. No support is offered for
       problems encountered.

See Also

erl_parse(3erl), compile(3erl)

Ericsson AB                                        stdlib 3.17                                erl_id_trans(3erl)

See Also