From 43f93a7263e4cd1b7abfa55458b7b83331093fab Mon Sep 17 00:00:00 2001 From: Kostis Sagonas Date: Fri, 28 Jun 2019 09:31:11 +0200 Subject: erl_parse: Export some types needed for syntax_tools --- lib/stdlib/src/erl_parse.yrl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/stdlib/src/erl_parse.yrl b/lib/stdlib/src/erl_parse.yrl index 4ad94f2507..ca53f992f6 100644 --- a/lib/stdlib/src/erl_parse.yrl +++ b/lib/stdlib/src/erl_parse.yrl @@ -604,6 +604,8 @@ Erlang code. -export_type([abstract_clause/0, abstract_expr/0, abstract_form/0, abstract_type/0, form_info/0, error_info/0]). +%% The following types are exported because they are used by syntax_tools +-export_type([af_binelement/1, af_generator/0, af_remote_function/0]). %% Start of Abstract Format -- cgit v1.2.3 From 23952e5c7d1affc10e6c07566c713020663a839a Mon Sep 17 00:00:00 2001 From: Kostis Sagonas Date: Fri, 28 Jun 2019 09:31:52 +0200 Subject: erl_syntax: Fix some type declarations --- lib/syntax_tools/src/erl_syntax.erl | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/syntax_tools/src/erl_syntax.erl b/lib/syntax_tools/src/erl_syntax.erl index 251c89a86c..1c0c532323 100644 --- a/lib/syntax_tools/src/erl_syntax.erl +++ b/lib/syntax_tools/src/erl_syntax.erl @@ -429,6 +429,7 @@ -record(tree, {type :: atom(), attr = #attr{} :: #attr{}, data :: term()}). +-type tree() :: #tree{}. %% `wrapper' records are used for attaching new-form node information to %% `erl_parse' trees. @@ -444,18 +445,20 @@ -record(wrapper, {type :: atom(), attr = #attr{} :: #attr{}, tree :: erl_parse()}). +-type wrapper() :: #wrapper{}. %% ===================================================================== --type syntaxTree() :: #tree{} | #wrapper{} | erl_parse(). +-type syntaxTree() :: tree() | wrapper() | erl_parse(). -type erl_parse() :: erl_parse:abstract_clause() | erl_parse:abstract_expr() | erl_parse:abstract_form() | erl_parse:abstract_type() | erl_parse:form_info() - %% To shut up Dialyzer: - | {bin_element, _, _, _, _}. + | erl_parse:af_binelement(term()) + | erl_parse:af_generator() + | erl_parse:af_remote_function(). %% The representation built by the Erlang standard library parser %% `erl_parse'. This is a subset of the {@link syntaxTree()} type. @@ -8175,7 +8178,7 @@ meta_call(F, As) -> %% ===================================================================== %% @equiv tree(Type, []) --spec tree(atom()) -> #tree{}. +-spec tree(atom()) -> tree(). tree(Type) -> tree(Type, []). @@ -8210,7 +8213,7 @@ tree(Type) -> %% @see data/1 %% @see type/1 --spec tree(atom(), term()) -> #tree{}. +-spec tree(atom(), term()) -> tree(). tree(Type, Data) -> #tree{type = Type, data = Data}. @@ -8266,7 +8269,7 @@ data(T) -> erlang:error({badarg, T}). %% trees. Attaching a wrapper onto another wrapper structure is an %% error. --spec wrap(erl_parse()) -> #wrapper{}. +-spec wrap(erl_parse()) -> wrapper(). wrap(Node) -> %% We assume that Node is an old-school `erl_parse' tree. @@ -8280,7 +8283,7 @@ wrap(Node) -> %% `erl_parse' tree; otherwise it returns `Node' %% itself. --spec unwrap(syntaxTree()) -> #tree{} | erl_parse(). +-spec unwrap(syntaxTree()) -> tree() | erl_parse(). unwrap(#wrapper{tree = Node}) -> Node; unwrap(Node) -> Node. % This could also be a new-form node. -- cgit v1.2.3 From ada05cf788024b9a8bdbb3a911d02aea373150dd Mon Sep 17 00:00:00 2001 From: Kostis Sagonas Date: Tue, 2 Jul 2019 11:57:42 +0200 Subject: erl_parse: Add documentation for exported types --- lib/stdlib/doc/src/erl_parse.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/stdlib/doc/src/erl_parse.xml b/lib/stdlib/doc/src/erl_parse.xml index 8142e5c0aa..d487cccdfc 100644 --- a/lib/stdlib/doc/src/erl_parse.xml +++ b/lib/stdlib/doc/src/erl_parse.xml @@ -68,6 +68,25 @@ + + af_binelement(_) + +

Abstract representation of an element of a bitstring.

+
+
+ + af_generator() + +

Abstract representation of a generator + or a bitstring generator.

+
+
+ + af_remote_function()> + +

Abstract representation of a remote function call.

+
+
-- cgit v1.2.3