1%%
2%% %CopyrightBegin%
3%%
4%% Copyright Ericsson AB 2007-2020. All Rights Reserved.
5%%
6%% Licensed under the Apache License, Version 2.0 (the "License");
7%% you may not use this file except in compliance with the License.
8%% You may obtain a copy of the License at
9%%
10%%     http://www.apache.org/licenses/LICENSE-2.0
11%%
12%% Unless required by applicable law or agreed to in writing, software
13%% distributed under the License is distributed on an "AS IS" BASIS,
14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15%% See the License for the specific language governing permissions and
16%% limitations under the License.
17%%
18%% %CopyrightEnd%
19%%
20
21-module(literals).
22-export([a/0,b/0,huge_bignum/0,funs/0,
23         binary/0,unused_binaries/0,bits/0]).
24-export([msg1/0,msg2/0,msg3/0,msg4/0,msg5/0]).
25
26a() ->
27    {a,42.0,[7,38877938333399637266518333334747]}.
28
29b() ->
30    [{init,get_flag,1},
31     {init,get_flags,0},
32     {init,get_args,0},
33     {string,re_sh_to_awk,1},
34     {string,re_parse,1},
35     {string,re_match,2},
36     {string,re_sub,3},
37     {string,re_gsub,3},
38     {string,re_split,2},
39     {string,index,2},
40     {erl_eval,seq,2},
41     {erl_eval,seq,3},
42     {erl_eval,arg_list,2},
43     {erl_eval,arg_list,3},
44     {erl_pp,seq,1},
45     {erl_pp,seq,2},
46     {io,scan_erl_seq,1},
47     {io,scan_erl_seq,2},
48     {io,scan_erl_seq,3},
49     {io,parse_erl_seq,1},
50     {io,parse_erl_seq,2},
51     {io,parse_erl_seq,3},
52     {io,parse_exprs,2},
53     {io_lib,scan,1},
54     {io_lib,scan,2},
55     {io_lib,scan,3},
56     {io_lib,reserved_word,1},
57     {lists,keymap,4},
58     {lists,all,3},
59     {lists,any,3},
60     {lists,map,3},
61     {lists,flatmap,3},
62     {lists,foldl,4},
63     {lists,foldr,4},
64     {lists,mapfoldl,4},
65     {lists,mapfoldr,4},
66     {lists,filter,3},
67     {lists,foreach,3},
68     {erlang,old_binary_to_term,1},
69     {erlang,info,1},
70     {file,file_info,1},
71     {dict,dict_to_list,1},
72     {dict,list_to_dict,1},
73     {orddict,dict_to_list,1},
74     {orddict,list_to_dict,1},
75     {sets,new_set,0},
76     {sets,set_to_list,1},
77     {sets,list_to_set,1},
78     {sets,subset,2},
79     {ordsets,new_set,0},
80     {ordsets,set_to_list,1},
81     {ordsets,list_to_set,1},
82     {ordsets,subset,2},
83     {calendar,local_time_to_universal_time,1}].
84
85huge_bignum() ->
86    36#9987333333392789234879423987243987423432879423879234897423879423874328794323248423872348742323487423987423879243872347824374238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR07373767667987769707660766789076874238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR0737376766798779987333333392789234879423987243987423432879423879234897423879423874328794323248423872348742323487423987423879243872347824374238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR07373767667987769707660766789076874238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR07373767667987779JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR07373767667987769707660766789076874238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR0737376766798779987333333392789234879423987243987423432879423879234897423879423874328794323248423872348742323487423987423879243872347824374238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR07373767667987769707660766789076874238792437842374283926276478623462342363243SDKJFSDLEFHDSHJFE48H3838973879JFSDKJLFASLKJVBJKLEJKLDYEIOEHFEOU39873487SFHJSLDFASUIDFHSDHFEYR0R987YDFHDHFDLKHFSIDFHSIDFSIFDHSIFHWIHR073737676679877.
87
88-define(TIMES_FOUR(X), X,X,X,X).
89-define(BYTES_256, 0:256,1:256,2:256,3:256, 4:256,5:256,6:256,7:256).
90-define(KB_1, ?TIMES_FOUR(?BYTES_256)).
91-define(KB_4, ?TIMES_FOUR(?KB_1)).
92-define(KB_16, ?TIMES_FOUR(?KB_4)).
93-define(KB_64, ?TIMES_FOUR(?KB_16)).
94-define(KB_128, ?TIMES_FOUR(?KB_64)).
95-define(MB_1, ?TIMES_FOUR(?KB_128)).
96
97binary() ->
98    %% Too big to be a heap binary.
99    <<?MB_1>>.
100
101unused_binaries() ->
102    {<<?KB_128>>,<<?BYTES_256>>}.
103
104bits() ->
105    {bits,<<42:13,?MB_1>>}.
106
107msg1() -> "halloj".
108msg2() -> {"hello","world"}.
109msg3() -> <<"halloj">>.
110msg4() -> #{ 1=> "hello", b => "world"}.
111msg5() -> {1,2,3,4,5,6}.
112
113funs() ->
114    %% Literal funs (in a non-literal list).
115    [fun ?MODULE:a/0,
116     fun() -> ok end].                          %No environment.
117