diff options
48 files changed, 1068 insertions, 495 deletions
diff --git a/bootstrap/bin/start.boot b/bootstrap/bin/start.boot Binary files differindex e09d7405b2..c7f5785eee 100644 --- a/bootstrap/bin/start.boot +++ b/bootstrap/bin/start.boot diff --git a/bootstrap/bin/start.script b/bootstrap/bin/start.script index 0ed5340fe2..085ea1f112 100644 --- a/bootstrap/bin/start.script +++ b/bootstrap/bin/start.script @@ -1,6 +1,6 @@ -%% script generated at {2010,9,10} {14,53,47} +%% script generated at {2010,10,7} {12,5,16} {script, - {"OTP APN 181 01","R14B"}, + {"OTP APN 181 01","R14B01"}, [{preLoaded, [erl_prim_loader,erlang,init,otp_ring0,prim_file,prim_inet,prim_zip, zlib]}, @@ -43,7 +43,7 @@ {application_controller,start, [{application,kernel, [{description,"ERTS CXC 138 10"}, - {vsn,"2.14.1"}, + {vsn,"2.14.2"}, {id,[]}, {modules, [application,application_controller,application_master, @@ -80,7 +80,7 @@ {application,load, [{application,stdlib, [{description,"ERTS CXC 138 10"}, - {vsn,"1.17.1"}, + {vsn,"1.17.2"}, {id,[]}, {modules, [array,base64,beam_lib,binary,c,calendar,dets, diff --git a/bootstrap/bin/start_clean.boot b/bootstrap/bin/start_clean.boot Binary files differindex e09d7405b2..c7f5785eee 100644 --- a/bootstrap/bin/start_clean.boot +++ b/bootstrap/bin/start_clean.boot diff --git a/bootstrap/bin/start_clean.script b/bootstrap/bin/start_clean.script index 0ed5340fe2..085ea1f112 100644 --- a/bootstrap/bin/start_clean.script +++ b/bootstrap/bin/start_clean.script @@ -1,6 +1,6 @@ -%% script generated at {2010,9,10} {14,53,47} +%% script generated at {2010,10,7} {12,5,16} {script, - {"OTP APN 181 01","R14B"}, + {"OTP APN 181 01","R14B01"}, [{preLoaded, [erl_prim_loader,erlang,init,otp_ring0,prim_file,prim_inet,prim_zip, zlib]}, @@ -43,7 +43,7 @@ {application_controller,start, [{application,kernel, [{description,"ERTS CXC 138 10"}, - {vsn,"2.14.1"}, + {vsn,"2.14.2"}, {id,[]}, {modules, [application,application_controller,application_master, @@ -80,7 +80,7 @@ {application,load, [{application,stdlib, [{description,"ERTS CXC 138 10"}, - {vsn,"1.17.1"}, + {vsn,"1.17.2"}, {id,[]}, {modules, [array,base64,beam_lib,binary,c,calendar,dets, diff --git a/bootstrap/lib/compiler/ebin/beam_asm.beam b/bootstrap/lib/compiler/ebin/beam_asm.beam Binary files differindex 75c6383ba3..7a40486b42 100644 --- a/bootstrap/lib/compiler/ebin/beam_asm.beam +++ b/bootstrap/lib/compiler/ebin/beam_asm.beam diff --git a/bootstrap/lib/compiler/ebin/compiler.app b/bootstrap/lib/compiler/ebin/compiler.app index d201d5fd0d..3fd5add16b 100644 --- a/bootstrap/lib/compiler/ebin/compiler.app +++ b/bootstrap/lib/compiler/ebin/compiler.app @@ -18,7 +18,7 @@ {application, compiler, [{description, "ERTS CXC 138 10"}, - {vsn, "4.7"}, + {vsn, "4.7.1"}, {modules, [ beam_asm, beam_block, diff --git a/bootstrap/lib/compiler/ebin/compiler.appup b/bootstrap/lib/compiler/ebin/compiler.appup index 99b234c847..10c9fd3dde 100644 --- a/bootstrap/lib/compiler/ebin/compiler.appup +++ b/bootstrap/lib/compiler/ebin/compiler.appup @@ -1 +1 @@ -{"4.6.5",[],[]}. +{"4.7.1",[],[]}. diff --git a/bootstrap/lib/compiler/ebin/core_lint.beam b/bootstrap/lib/compiler/ebin/core_lint.beam Binary files differindex e7db1d3f72..3ee981e50a 100644 --- a/bootstrap/lib/compiler/ebin/core_lint.beam +++ b/bootstrap/lib/compiler/ebin/core_lint.beam diff --git a/bootstrap/lib/compiler/ebin/core_parse.beam b/bootstrap/lib/compiler/ebin/core_parse.beam Binary files differindex 631c5d6aba..5e39a05dc5 100644 --- a/bootstrap/lib/compiler/ebin/core_parse.beam +++ b/bootstrap/lib/compiler/ebin/core_parse.beam diff --git a/bootstrap/lib/compiler/ebin/v3_codegen.beam b/bootstrap/lib/compiler/ebin/v3_codegen.beam Binary files differindex 5555d01b2a..7cdb5fe92a 100644 --- a/bootstrap/lib/compiler/ebin/v3_codegen.beam +++ b/bootstrap/lib/compiler/ebin/v3_codegen.beam diff --git a/bootstrap/lib/compiler/ebin/v3_core.beam b/bootstrap/lib/compiler/ebin/v3_core.beam Binary files differindex 5d889ea4f3..7a60d7b23d 100644 --- a/bootstrap/lib/compiler/ebin/v3_core.beam +++ b/bootstrap/lib/compiler/ebin/v3_core.beam diff --git a/bootstrap/lib/compiler/egen/core_parse.erl b/bootstrap/lib/compiler/egen/core_parse.erl index 80fed200ae..0e94fb414d 100644 --- a/bootstrap/lib/compiler/egen/core_parse.erl +++ b/bootstrap/lib/compiler/egen/core_parse.erl @@ -13,7 +13,7 @@ tok_val(T) -> element(3, T). tok_line(T) -> element(2, T). --file("/usr/local/otp_product/releases/sles10_64_R14A_patched/lib/parsetools-2.0.3/include/yeccpre.hrl", 0). +-file("/usr/local/otp/releases/sles10_32_R14B_patched/lib/parsetools-2.0.4/include/yeccpre.hrl", 0). %% %% %CopyrightBegin% %% @@ -42,8 +42,8 @@ tok_line(T) -> element(2, T). parse(Tokens) -> yeccpars0(Tokens, {no_func, no_line}, 0, [], []). --spec parse_and_scan({function() | {atom(), atom()}, [_]} | {atom(), atom(), [_]}) -> - yecc_ret(). +-spec parse_and_scan({function() | {atom(), atom()}, [_]} + | {atom(), atom(), [_]}) -> yecc_ret(). parse_and_scan({F, A}) -> % Fun or {M, F} yeccpars0([], {{F, A}, no_line}, 0, [], []); parse_and_scan({M, F, A}) -> @@ -60,7 +60,7 @@ format_error(Message) -> %% To be used in grammar files to throw an error message to the parser %% toplevel. Doesn't have to be exported! --compile({nowarn_unused_function,{return_error,2}}). +-compile({nowarn_unused_function, return_error/2}). -spec return_error(integer(), any()) -> no_return(). return_error(Line, Message) -> throw({error, {Line, ?MODULE, Message}}). @@ -73,10 +73,7 @@ yeccpars0(Tokens, Tzr, State, States, Vstack) -> error: Error -> Stacktrace = erlang:get_stacktrace(), try yecc_error_type(Error, Stacktrace) of - {syntax_error, Token} -> - yeccerror(Token); - {missing_in_goto_table=Tag, Symbol, State} -> - Desc = {Symbol, State, Tag}, + Desc -> erlang:raise(error, {yecc_bug, ?CODE_VERSION, Desc}, Stacktrace) catch _:_ -> erlang:raise(error, Error, Stacktrace) @@ -86,13 +83,15 @@ yeccpars0(Tokens, Tzr, State, States, Vstack) -> Error end. -yecc_error_type(function_clause, [{?MODULE,F,[State,_,_,_,Token,_,_]} | _]) -> +yecc_error_type(function_clause, [{?MODULE,F,ArityOrArgs} | _]) -> case atom_to_list(F) of - "yeccpars2" ++ _ -> - {syntax_error, Token}; "yeccgoto_" ++ SymbolL -> {ok,[{atom,_,Symbol}],_} = erl_scan:string(SymbolL), - {missing_in_goto_table, Symbol, State} + State = case ArityOrArgs of + [S,_,_,_,_,_,_] -> S; + _ -> state_is_unknown + end, + {Symbol, State, missing_in_goto_table} end. yeccpars1([Token | Tokens], Tzr, State, States, Vstack) -> @@ -157,11 +156,13 @@ yecctoken_end_location(Token) -> yecctoken_location(Token) end. +-compile({nowarn_unused_function, yeccerror/1}). yeccerror(Token) -> Text = yecctoken_to_string(Token), Location = yecctoken_location(Token), {error, {Location, ?MODULE, ["syntax error before: ", Text]}}. +-compile({nowarn_unused_function, yecctoken_to_string/1}). yecctoken_to_string(Token) -> case catch erl_scan:token_info(Token, text) of {text, Txt} -> Txt; @@ -174,6 +175,7 @@ yecctoken_location(Token) -> _ -> element(2, Token) end. +-compile({nowarn_unused_function, yecctoken2string/1}). yecctoken2string({atom, _, A}) -> io_lib:write(A); yecctoken2string({integer,_,N}) -> io_lib:write(N); yecctoken2string({float,_,F}) -> io_lib:write(F); @@ -194,7 +196,7 @@ yecctoken2string(Other) -> --file("/ldisk/pan/git/otp/bootstrap/lib/compiler/egen/core_parse.erl", 197). +-file("/ldisk/bjorn/otp/bootstrap/lib/compiler/egen/core_parse.erl", 199). yeccpars2(0=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_0(S, Cat, Ss, Stack, T, Ts, Tzr); @@ -845,38 +847,54 @@ yeccpars2(321=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2(323=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_323(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(Other, _, _, _, _, _, _) -> - erlang:error({yecc_bug,"1.3",{missing_state_in_action_table, Other}}). + erlang:error({yecc_bug,"1.4",{missing_state_in_action_table, Other}}). yeccpars2_0(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 2, Ss, Stack, T, Ts, Tzr); yeccpars2_0(S, module, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 3, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 3, Ss, Stack, T, Ts, Tzr); +yeccpars2_0(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_1(_S, '$end', _Ss, Stack, _T, _Ts, _Tzr) -> - {ok, hd(Stack)}. + {ok, hd(Stack)}; +yeccpars2_1(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_2(S, module, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 315, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 315, Ss, Stack, T, Ts, Tzr); +yeccpars2_2(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_3(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 4, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 4, Ss, Stack, T, Ts, Tzr); +yeccpars2_3(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_4(S, '[', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 6, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 6, Ss, Stack, T, Ts, Tzr); +yeccpars2_4(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_5(S, attributes, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 18, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 18, Ss, Stack, T, Ts, Tzr); +yeccpars2_5(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_6(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 10, Ss, Stack, T, Ts, Tzr); yeccpars2_6(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 11, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 11, Ss, Stack, T, Ts, Tzr); +yeccpars2_6(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_7(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_exported_name(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_8(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 16, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 16, Ss, Stack, T, Ts, Tzr); +yeccpars2_8(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_9(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 14, Ss, Stack, T, Ts, Tzr); @@ -890,10 +908,14 @@ yeccpars2_10(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_module_export(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_11(S, '/', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 12, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 12, Ss, Stack, T, Ts, Tzr); +yeccpars2_11(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_12(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 13, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 13, Ss, Stack, T, Ts, Tzr); +yeccpars2_12(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_13(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -901,7 +923,9 @@ yeccpars2_13(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_function_name(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_14(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 11, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 11, Ss, Stack, T, Ts, Tzr); +yeccpars2_14(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -922,15 +946,21 @@ yeccpars2_17(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_58(_S, Cat, [17 | Ss], NewStack, T, Ts, Tzr). yeccpars2_18(S, '[', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 19, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 19, Ss, Stack, T, Ts, Tzr); +yeccpars2_18(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_19(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 22, Ss, Stack, T, Ts, Tzr); yeccpars2_19(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 23, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 23, Ss, Stack, T, Ts, Tzr); +yeccpars2_19(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_20(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 55, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 55, Ss, Stack, T, Ts, Tzr); +yeccpars2_20(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_21(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 53, Ss, Stack, T, Ts, Tzr); @@ -944,7 +974,9 @@ yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_module_attribute(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_23(S, '=', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 24, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 24, Ss, Stack, T, Ts, Tzr); +yeccpars2_23(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_24(S, '[', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 30, Ss, Stack, T, Ts, Tzr); @@ -962,7 +994,9 @@ yeccpars2_cont_24(S, float, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_24(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 34, Ss, Stack, T, Ts, Tzr); yeccpars2_cont_24(S, string, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 35, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 35, Ss, Stack, T, Ts, Tzr); +yeccpars2_cont_24(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_literal(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -1025,7 +1059,9 @@ yeccpars2_36(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_24(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_37(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 42, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 42, Ss, Stack, T, Ts, Tzr); +yeccpars2_37(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_38(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 40, Ss, Stack, T, Ts, Tzr); @@ -1055,7 +1091,9 @@ yeccpars2_43(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 47, Ss, Stack, T, Ts, Tzr); yeccpars2_43(S, '|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 48, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 48, Ss, Stack, T, Ts, Tzr); +yeccpars2_43(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_44(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -1076,7 +1114,9 @@ yeccpars2_47(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_48: see yeccpars2_24 yeccpars2_49(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 50, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 50, Ss, Stack, T, Ts, Tzr); +yeccpars2_49(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_50(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1091,7 +1131,9 @@ yeccpars2_52(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_tail_literal(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_53(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 23, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 23, Ss, Stack, T, Ts, Tzr); +yeccpars2_53(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_54(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1104,7 +1146,9 @@ yeccpars2_55(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_module_attribute(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_56(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 314, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 314, Ss, Stack, T, Ts, Tzr); +yeccpars2_56(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_57(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_function_name(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -1121,18 +1165,26 @@ yeccpars2_59(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, [59 | Ss], NewStack, T, Ts, Tzr). yeccpars2_60(S, '=', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 96, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 96, Ss, Stack, T, Ts, Tzr); +yeccpars2_60(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_61: see yeccpars2_14 yeccpars2_62(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 63, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 63, Ss, Stack, T, Ts, Tzr); +yeccpars2_62(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_63(S, '[', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 65, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 65, Ss, Stack, T, Ts, Tzr); +yeccpars2_63(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_64(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 95, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 95, Ss, Stack, T, Ts, Tzr); +yeccpars2_64(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_65(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 73, Ss, Stack, T, Ts, Tzr); @@ -1147,7 +1199,9 @@ yeccpars2_67(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_atomic_constant(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_68(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 94, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 94, Ss, Stack, T, Ts, Tzr); +yeccpars2_68(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_69(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 92, Ss, Stack, T, Ts, Tzr); @@ -1197,7 +1251,9 @@ yeccpars2_79(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_85(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_80(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 82, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 82, Ss, Stack, T, Ts, Tzr); +yeccpars2_80(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_81(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -1214,7 +1270,9 @@ yeccpars2_83(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars2_83(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 86, Ss, Stack, T, Ts, Tzr); yeccpars2_83(S, '|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 87, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 87, Ss, Stack, T, Ts, Tzr); +yeccpars2_83(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_84(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1234,7 +1292,9 @@ yeccpars2_85(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars2_85(S, string, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 78, Ss, Stack, T, Ts, Tzr); yeccpars2_85(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 79, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 79, Ss, Stack, T, Ts, Tzr); +yeccpars2_85(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_86(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_86_(Stack), @@ -1243,7 +1303,9 @@ yeccpars2_86(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_87: see yeccpars2_85 yeccpars2_88(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 89, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 89, Ss, Stack, T, Ts, Tzr); +yeccpars2_88(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_89(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1277,7 +1339,9 @@ yeccpars2_95(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_96(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 99, Ss, Stack, T, Ts, Tzr); yeccpars2_96(S, 'fun', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 100, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 100, Ss, Stack, T, Ts, Tzr); +yeccpars2_96(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_97(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_fun(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -1288,23 +1352,31 @@ yeccpars2_98(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_function_definition(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_99(S, 'fun', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 100, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 100, Ss, Stack, T, Ts, Tzr); +yeccpars2_99(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_100(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 101, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 101, Ss, Stack, T, Ts, Tzr); +yeccpars2_100(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_101(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 105, Ss, Stack, T, Ts, Tzr); yeccpars2_101(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 106, Ss, Stack, T, Ts, Tzr); yeccpars2_101(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr); +yeccpars2_101(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_102(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_variable(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_103(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 306, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 306, Ss, Stack, T, Ts, Tzr); +yeccpars2_103(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_104(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 304, Ss, Stack, T, Ts, Tzr); @@ -1313,10 +1385,14 @@ yeccpars2_104(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_variables(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_105(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr); +yeccpars2_105(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_106(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 108, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 108, Ss, Stack, T, Ts, Tzr); +yeccpars2_106(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_107(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_107_(Stack), @@ -1368,7 +1444,9 @@ yeccpars2_cont_108(S, 'receive', Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_108(S, 'try', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 143, Ss, Stack, T, Ts, Tzr); yeccpars2_cont_108(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 144, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 144, Ss, Stack, T, Ts, Tzr); +yeccpars2_cont_108(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_109(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_single_expression(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -1433,7 +1511,9 @@ yeccpars2_128(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_fun_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_129(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 287, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 287, Ss, Stack, T, Ts, Tzr); +yeccpars2_129(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_130(S, char, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 32, Ss, Stack, T, Ts, Tzr); @@ -1509,7 +1589,9 @@ yeccpars2_139(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars2_139(S, '<', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 155, Ss, Stack, T, Ts, Tzr); yeccpars2_139(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr); +yeccpars2_139(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_140(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 61, Ss, Stack, T, Ts, Tzr); @@ -1562,7 +1644,9 @@ yeccpars2_144(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_108(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_145(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 150, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 150, Ss, Stack, T, Ts, Tzr); +yeccpars2_145(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_146(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 148, Ss, Stack, T, Ts, Tzr); @@ -1588,12 +1672,16 @@ yeccpars2_150(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_tuple(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_151(S, 'of', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 152, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 152, Ss, Stack, T, Ts, Tzr); +yeccpars2_151(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_152: see yeccpars2_139 yeccpars2_153(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 159, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 159, Ss, Stack, T, Ts, Tzr); +yeccpars2_153(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_154(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_154_(Stack), @@ -1604,10 +1692,14 @@ yeccpars2_155(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars2_155(S, '>', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 157, Ss, Stack, T, Ts, Tzr); yeccpars2_155(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr); +yeccpars2_155(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_156(S, '>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 158, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 158, Ss, Stack, T, Ts, Tzr); +yeccpars2_156(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_157(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -1622,12 +1714,16 @@ yeccpars2_158(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_159: see yeccpars2_108 yeccpars2_160(S, 'catch', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 161, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 161, Ss, Stack, T, Ts, Tzr); +yeccpars2_160(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_161: see yeccpars2_139 yeccpars2_162(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 163, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 163, Ss, Stack, T, Ts, Tzr); +yeccpars2_162(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_163: see yeccpars2_108 @@ -1651,7 +1747,9 @@ yeccpars2_168(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_other_pattern(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_169(S, 'when', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 240, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 240, Ss, Stack, T, Ts, Tzr); +yeccpars2_169(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_170(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_clause(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -1675,7 +1773,9 @@ yeccpars2_175(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_clause_pattern(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_176(S, 'after', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 182, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 182, Ss, Stack, T, Ts, Tzr); +yeccpars2_176(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_177(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 178, Ss, Stack, T, Ts, Tzr); @@ -1704,7 +1804,9 @@ yeccpars2_177(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_clauses(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_178(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 222, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 222, Ss, Stack, T, Ts, Tzr); +yeccpars2_178(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_179(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 178, Ss, Stack, T, Ts, Tzr); @@ -1777,7 +1879,9 @@ yeccpars2_183(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_24(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_184(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 201, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 201, Ss, Stack, T, Ts, Tzr); +yeccpars2_184(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_185(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 199, Ss, Stack, T, Ts, Tzr); @@ -1811,10 +1915,14 @@ yeccpars2_188(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_variable(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_189(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 193, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 193, Ss, Stack, T, Ts, Tzr); +yeccpars2_189(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_190(S, '=', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 191, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 191, Ss, Stack, T, Ts, Tzr); +yeccpars2_190(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_191(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 178, Ss, Stack, T, Ts, Tzr); @@ -1839,7 +1947,9 @@ yeccpars2_192(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_193: see yeccpars2_63 yeccpars2_194(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 195, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 195, Ss, Stack, T, Ts, Tzr); +yeccpars2_194(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_195(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -1849,7 +1959,9 @@ yeccpars2_195(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_196: see yeccpars2_63 yeccpars2_197(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 198, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 198, Ss, Stack, T, Ts, Tzr); +yeccpars2_197(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_198(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -1869,7 +1981,9 @@ yeccpars2_201(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_tuple_pattern(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_202(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 203, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 203, Ss, Stack, T, Ts, Tzr); +yeccpars2_202(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_203: see yeccpars2_108 @@ -1883,7 +1997,9 @@ yeccpars2_205(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars2_205(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 208, Ss, Stack, T, Ts, Tzr); yeccpars2_205(S, '|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 209, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 209, Ss, Stack, T, Ts, Tzr); +yeccpars2_205(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_206(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1899,7 +2015,9 @@ yeccpars2_208(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_209: see yeccpars2_191 yeccpars2_210(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 211, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 211, Ss, Stack, T, Ts, Tzr); +yeccpars2_210(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_211(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1914,7 +2032,9 @@ yeccpars2_213(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_tail_pattern(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_214(S, '>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 216, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 216, Ss, Stack, T, Ts, Tzr); +yeccpars2_214(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_215(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -1932,12 +2052,16 @@ yeccpars2_217(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_pattern(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_218(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 219, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 219, Ss, Stack, T, Ts, Tzr); +yeccpars2_218(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_219: see yeccpars2_63 yeccpars2_220(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 221, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 221, Ss, Stack, T, Ts, Tzr); +yeccpars2_220(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_221(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -1947,10 +2071,14 @@ yeccpars2_221(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_222(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 225, Ss, Stack, T, Ts, Tzr); yeccpars2_222(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 226, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 226, Ss, Stack, T, Ts, Tzr); +yeccpars2_222(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_223(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 236, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 236, Ss, Stack, T, Ts, Tzr); +yeccpars2_223(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_224(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 234, Ss, Stack, T, Ts, Tzr); @@ -1959,10 +2087,14 @@ yeccpars2_224(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_segment_patterns(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_225(S, '<', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 228, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 228, Ss, Stack, T, Ts, Tzr); +yeccpars2_225(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_226(S, '#', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 227, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 227, Ss, Stack, T, Ts, Tzr); +yeccpars2_226(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_227(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -1972,15 +2104,21 @@ yeccpars2_227(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_228: see yeccpars2_191 yeccpars2_229(S, '>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 230, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 230, Ss, Stack, T, Ts, Tzr); +yeccpars2_229(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_230(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 231, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 231, Ss, Stack, T, Ts, Tzr); +yeccpars2_230(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_231: see yeccpars2_191 yeccpars2_232(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 233, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 233, Ss, Stack, T, Ts, Tzr); +yeccpars2_232(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_233(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_,_|Nss] = Ss, @@ -1988,7 +2126,9 @@ yeccpars2_233(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_segment_pattern(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_234(S, '#', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 225, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 225, Ss, Stack, T, Ts, Tzr); +yeccpars2_234(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_235(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -1996,7 +2136,9 @@ yeccpars2_235(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_segment_patterns(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_236(S, '#', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 237, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 237, Ss, Stack, T, Ts, Tzr); +yeccpars2_236(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_237(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2016,7 +2158,9 @@ yeccpars2_239(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_240: see yeccpars2_108 yeccpars2_241(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 242, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 242, Ss, Stack, T, Ts, Tzr); +yeccpars2_241(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_242: see yeccpars2_108 @@ -2026,7 +2170,9 @@ yeccpars2_243(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_clause(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_244(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 246, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 246, Ss, Stack, T, Ts, Tzr); +yeccpars2_244(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_245(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2053,7 +2199,9 @@ yeccpars2_246(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_108(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_247(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 249, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 249, Ss, Stack, T, Ts, Tzr); +yeccpars2_247(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_248(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -2066,7 +2214,9 @@ yeccpars2_249(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_arg_list(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_250(S, in, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 251, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 251, Ss, Stack, T, Ts, Tzr); +yeccpars2_250(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_251: see yeccpars2_108 @@ -2076,12 +2226,16 @@ yeccpars2_252(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_letrec_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_253(S, '=', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 254, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 254, Ss, Stack, T, Ts, Tzr); +yeccpars2_253(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_254: see yeccpars2_108 yeccpars2_255(S, in, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 256, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 256, Ss, Stack, T, Ts, Tzr); +yeccpars2_255(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_256: see yeccpars2_108 @@ -2103,7 +2257,9 @@ yeccpars2_260(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_catch_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_261(S, 'of', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 262, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 262, Ss, Stack, T, Ts, Tzr); +yeccpars2_261(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_262(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 178, Ss, Stack, T, Ts, Tzr); @@ -2123,7 +2279,9 @@ yeccpars2_262(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_24(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_263(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 264, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 264, Ss, Stack, T, Ts, Tzr); +yeccpars2_263(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_264(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2131,7 +2289,9 @@ yeccpars2_264(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_case_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_265(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 266, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 266, Ss, Stack, T, Ts, Tzr); +yeccpars2_265(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_266: see yeccpars2_108 @@ -2154,7 +2314,9 @@ yeccpars2_271(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars2_271(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 274, Ss, Stack, T, Ts, Tzr); yeccpars2_271(S, '|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 275, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 275, Ss, Stack, T, Ts, Tzr); +yeccpars2_271(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_272(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2170,7 +2332,9 @@ yeccpars2_274(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_275: see yeccpars2_108 yeccpars2_276(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 277, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 277, Ss, Stack, T, Ts, Tzr); +yeccpars2_276(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_277(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2185,7 +2349,9 @@ yeccpars2_279(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_tail(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_280(S, '>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 282, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 282, Ss, Stack, T, Ts, Tzr); +yeccpars2_280(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_281(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -2198,12 +2364,16 @@ yeccpars2_282(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expression(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_283(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 284, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 284, Ss, Stack, T, Ts, Tzr); +yeccpars2_283(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_284: see yeccpars2_63 yeccpars2_285(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 286, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 286, Ss, Stack, T, Ts, Tzr); +yeccpars2_285(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_286(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2213,10 +2383,14 @@ yeccpars2_286(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_287(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr); yeccpars2_287(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 291, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 291, Ss, Stack, T, Ts, Tzr); +yeccpars2_287(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_288(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 301, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 301, Ss, Stack, T, Ts, Tzr); +yeccpars2_288(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_289(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 299, Ss, Stack, T, Ts, Tzr); @@ -2225,10 +2399,14 @@ yeccpars2_289(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_segments(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_290(S, '<', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 293, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 293, Ss, Stack, T, Ts, Tzr); +yeccpars2_290(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_291(S, '#', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 292, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 292, Ss, Stack, T, Ts, Tzr); +yeccpars2_291(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_292(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -2238,15 +2416,21 @@ yeccpars2_292(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_293: see yeccpars2_108 yeccpars2_294(S, '>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 295, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 295, Ss, Stack, T, Ts, Tzr); +yeccpars2_294(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_295(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 296, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 296, Ss, Stack, T, Ts, Tzr); +yeccpars2_295(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_296: see yeccpars2_108 yeccpars2_297(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 298, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 298, Ss, Stack, T, Ts, Tzr); +yeccpars2_297(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_298(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_,_|Nss] = Ss, @@ -2254,7 +2438,9 @@ yeccpars2_298(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_segment(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_299(S, '#', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr); +yeccpars2_299(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_300(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2262,7 +2448,9 @@ yeccpars2_300(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_segments(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_301(S, '#', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 302, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 302, Ss, Stack, T, Ts, Tzr); +yeccpars2_301(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_302(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2270,12 +2458,16 @@ yeccpars2_302(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_binary(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_303(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 196, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 196, Ss, Stack, T, Ts, Tzr); +yeccpars2_303(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_304(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 105, Ss, Stack, T, Ts, Tzr); yeccpars2_304(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr); +yeccpars2_304(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_305(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2283,7 +2475,9 @@ yeccpars2_305(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_anno_variables(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_306(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 307, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 307, Ss, Stack, T, Ts, Tzr); +yeccpars2_306(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_307: see yeccpars2_108 @@ -2293,12 +2487,16 @@ yeccpars2_308(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_fun_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_309(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 310, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 310, Ss, Stack, T, Ts, Tzr); +yeccpars2_309(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_310: see yeccpars2_63 yeccpars2_311(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 312, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 312, Ss, Stack, T, Ts, Tzr); +yeccpars2_311(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_312(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2316,7 +2514,9 @@ yeccpars2_314(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_module_definition(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_315(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 316, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 316, Ss, Stack, T, Ts, Tzr); +yeccpars2_315(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_316: see yeccpars2_4 @@ -2331,15 +2531,21 @@ yeccpars2_318(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_58(_S, Cat, [318 | Ss], NewStack, T, Ts, Tzr). yeccpars2_319(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); +yeccpars2_319(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_320(S, '-|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 321, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 321, Ss, Stack, T, Ts, Tzr); +yeccpars2_320(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_321: see yeccpars2_63 yeccpars2_322(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 323, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 323, Ss, Stack, T, Ts, Tzr); +yeccpars2_322(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_323(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_,_,_,_,_|Nss] = Ss, diff --git a/bootstrap/lib/kernel/ebin/erl_epmd.beam b/bootstrap/lib/kernel/ebin/erl_epmd.beam Binary files differindex 68ef714e17..847ed69e23 100644 --- a/bootstrap/lib/kernel/ebin/erl_epmd.beam +++ b/bootstrap/lib/kernel/ebin/erl_epmd.beam diff --git a/bootstrap/lib/kernel/ebin/hipe_unified_loader.beam b/bootstrap/lib/kernel/ebin/hipe_unified_loader.beam Binary files differindex 70e35c2076..0c39512bb3 100644 --- a/bootstrap/lib/kernel/ebin/hipe_unified_loader.beam +++ b/bootstrap/lib/kernel/ebin/hipe_unified_loader.beam diff --git a/bootstrap/lib/kernel/ebin/kernel.app b/bootstrap/lib/kernel/ebin/kernel.app index 2b2c82d89c..5ea0891375 100644 --- a/bootstrap/lib/kernel/ebin/kernel.app +++ b/bootstrap/lib/kernel/ebin/kernel.app @@ -21,7 +21,7 @@ {application, kernel, [ {description, "ERTS CXC 138 10"}, - {vsn, "2.14.1"}, + {vsn, "2.14.2"}, {modules, [application, application_controller, application_master, diff --git a/bootstrap/lib/stdlib/ebin/digraph.beam b/bootstrap/lib/stdlib/ebin/digraph.beam Binary files differindex fa37407d53..c68611ccdc 100644 --- a/bootstrap/lib/stdlib/ebin/digraph.beam +++ b/bootstrap/lib/stdlib/ebin/digraph.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_parse.beam b/bootstrap/lib/stdlib/ebin/erl_parse.beam Binary files differindex 426bd23e36..4d07a75daf 100644 --- a/bootstrap/lib/stdlib/ebin/erl_parse.beam +++ b/bootstrap/lib/stdlib/ebin/erl_parse.beam diff --git a/bootstrap/lib/stdlib/ebin/stdlib.app b/bootstrap/lib/stdlib/ebin/stdlib.app index 6ab708e43c..6aac1e2f19 100644 --- a/bootstrap/lib/stdlib/ebin/stdlib.app +++ b/bootstrap/lib/stdlib/ebin/stdlib.app @@ -19,7 +19,7 @@ %% {application, stdlib, [{description, "ERTS CXC 138 10"}, - {vsn, "1.17.1"}, + {vsn, "1.17.2"}, {modules, [array, base64, beam_lib, diff --git a/bootstrap/lib/stdlib/ebin/timer.beam b/bootstrap/lib/stdlib/ebin/timer.beam Binary files differindex 1020f78632..1f84ff37ac 100644 --- a/bootstrap/lib/stdlib/ebin/timer.beam +++ b/bootstrap/lib/stdlib/ebin/timer.beam diff --git a/bootstrap/lib/stdlib/egen/erl_parse.erl b/bootstrap/lib/stdlib/egen/erl_parse.erl index 75c491aa37..cd5102a680 100644 --- a/bootstrap/lib/stdlib/egen/erl_parse.erl +++ b/bootstrap/lib/stdlib/egen/erl_parse.erl @@ -556,7 +556,7 @@ get_attribute(L, Name) -> get_attributes(L) -> erl_scan:attributes_info(L). --file("/usr/local/otp_product/releases/sles10_64_R14A_patched/lib/parsetools-2.0.3/include/yeccpre.hrl", 0). +-file("/usr/local/otp/releases/sles10_32_R14B_patched/lib/parsetools-2.0.4/include/yeccpre.hrl", 0). %% %% %CopyrightBegin% %% @@ -585,8 +585,8 @@ get_attributes(L) -> parse(Tokens) -> yeccpars0(Tokens, {no_func, no_line}, 0, [], []). --spec parse_and_scan({function() | {atom(), atom()}, [_]} | {atom(), atom(), [_]}) -> - yecc_ret(). +-spec parse_and_scan({function() | {atom(), atom()}, [_]} + | {atom(), atom(), [_]}) -> yecc_ret(). parse_and_scan({F, A}) -> % Fun or {M, F} yeccpars0([], {{F, A}, no_line}, 0, [], []); parse_and_scan({M, F, A}) -> @@ -603,7 +603,7 @@ format_error(Message) -> %% To be used in grammar files to throw an error message to the parser %% toplevel. Doesn't have to be exported! --compile({nowarn_unused_function,{return_error,2}}). +-compile({nowarn_unused_function, return_error/2}). -spec return_error(integer(), any()) -> no_return(). return_error(Line, Message) -> throw({error, {Line, ?MODULE, Message}}). @@ -616,10 +616,7 @@ yeccpars0(Tokens, Tzr, State, States, Vstack) -> error: Error -> Stacktrace = erlang:get_stacktrace(), try yecc_error_type(Error, Stacktrace) of - {syntax_error, Token} -> - yeccerror(Token); - {missing_in_goto_table=Tag, Symbol, State} -> - Desc = {Symbol, State, Tag}, + Desc -> erlang:raise(error, {yecc_bug, ?CODE_VERSION, Desc}, Stacktrace) catch _:_ -> erlang:raise(error, Error, Stacktrace) @@ -629,13 +626,15 @@ yeccpars0(Tokens, Tzr, State, States, Vstack) -> Error end. -yecc_error_type(function_clause, [{?MODULE,F,[State,_,_,_,Token,_,_]} | _]) -> +yecc_error_type(function_clause, [{?MODULE,F,ArityOrArgs} | _]) -> case atom_to_list(F) of - "yeccpars2" ++ _ -> - {syntax_error, Token}; "yeccgoto_" ++ SymbolL -> {ok,[{atom,_,Symbol}],_} = erl_scan:string(SymbolL), - {missing_in_goto_table, Symbol, State} + State = case ArityOrArgs of + [S,_,_,_,_,_,_] -> S; + _ -> state_is_unknown + end, + {Symbol, State, missing_in_goto_table} end. yeccpars1([Token | Tokens], Tzr, State, States, Vstack) -> @@ -700,11 +699,13 @@ yecctoken_end_location(Token) -> yecctoken_location(Token) end. +-compile({nowarn_unused_function, yeccerror/1}). yeccerror(Token) -> Text = yecctoken_to_string(Token), Location = yecctoken_location(Token), {error, {Location, ?MODULE, ["syntax error before: ", Text]}}. +-compile({nowarn_unused_function, yecctoken_to_string/1}). yecctoken_to_string(Token) -> case catch erl_scan:token_info(Token, text) of {text, Txt} -> Txt; @@ -717,6 +718,7 @@ yecctoken_location(Token) -> _ -> element(2, Token) end. +-compile({nowarn_unused_function, yecctoken2string/1}). yecctoken2string({atom, _, A}) -> io_lib:write(A); yecctoken2string({integer,_,N}) -> io_lib:write(N); yecctoken2string({float,_,F}) -> io_lib:write(F); @@ -737,7 +739,7 @@ yecctoken2string(Other) -> --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 740). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 742). yeccpars2(0=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_0(S, Cat, Ss, Stack, T, Ts, Tzr); @@ -1670,12 +1672,14 @@ yeccpars2(462=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2(464=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_464(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(Other, _, _, _, _, _, _) -> - erlang:error({yecc_bug,"1.3",{missing_state_in_action_table, Other}}). + erlang:error({yecc_bug,"1.4",{missing_state_in_action_table, Other}}). yeccpars2_0(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 9, Ss, Stack, T, Ts, Tzr); yeccpars2_0(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 10, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 10, Ss, Stack, T, Ts, Tzr); +yeccpars2_0(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_1(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_1_(Stack), @@ -1688,7 +1692,9 @@ yeccpars2_2(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_rule_clauses(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_3(S, dot, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 459, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 459, Ss, Stack, T, Ts, Tzr); +yeccpars2_3(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_4(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_4_(Stack), @@ -1701,21 +1707,31 @@ yeccpars2_5(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_function_clauses(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_6(S, dot, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 453, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 453, Ss, Stack, T, Ts, Tzr); +yeccpars2_6(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_7(_S, '$end', _Ss, Stack, _T, _Ts, _Tzr) -> - {ok, hd(Stack)}. + {ok, hd(Stack)}; +yeccpars2_7(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_8(S, dot, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 452, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 452, Ss, Stack, T, Ts, Tzr); +yeccpars2_8(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_9(S, atom, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 292, Ss, Stack, T, Ts, Tzr); yeccpars2_9(S, spec, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 293, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 293, Ss, Stack, T, Ts, Tzr); +yeccpars2_9(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_10(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 13, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 13, Ss, Stack, T, Ts, Tzr); +yeccpars2_10(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_11(S, 'when', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 84, Ss, Stack, T, Ts, Tzr); @@ -1779,7 +1795,9 @@ yeccpars2_cont_13(S, 'receive', Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_13(S, string, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 65, Ss, Stack, T, Ts, Tzr); yeccpars2_cont_13(S, 'try', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 66, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 66, Ss, Stack, T, Ts, Tzr); +yeccpars2_cont_13(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_max(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -1832,7 +1850,9 @@ yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_max(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_26(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 280, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 280, Ss, Stack, T, Ts, Tzr); +yeccpars2_26(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_27(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 275, Ss, Stack, T, Ts, Tzr); @@ -1953,7 +1973,9 @@ yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_max(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_44(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 211, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 211, Ss, Stack, T, Ts, Tzr); +yeccpars2_44(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_45(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 44, Ss, Stack, T, Ts, Tzr); @@ -1992,7 +2014,9 @@ yeccpars2_48(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_prefix_op(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_49(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 208, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 208, Ss, Stack, T, Ts, Tzr); +yeccpars2_49(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_50(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 45, Ss, Stack, T, Ts, Tzr); @@ -2063,7 +2087,9 @@ yeccpars2_58(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_59(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 13, Ss, Stack, T, Ts, Tzr); yeccpars2_59(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 152, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 152, Ss, Stack, T, Ts, Tzr); +yeccpars2_59(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_60: see yeccpars2_45 @@ -2074,7 +2100,9 @@ yeccpars2_62(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_prefix_op(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_63(S, '[', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 127, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 127, Ss, Stack, T, Ts, Tzr); +yeccpars2_63(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_64(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 44, Ss, Stack, T, Ts, Tzr); @@ -2141,7 +2169,9 @@ yeccpars2_68(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_13(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_69(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 71, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 71, Ss, Stack, T, Ts, Tzr); +yeccpars2_69(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_70(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -2201,7 +2231,9 @@ yeccpars2_77(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_78(S, 'after', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 74, Ss, Stack, T, Ts, Tzr); yeccpars2_78(S, 'catch', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 75, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 75, Ss, Stack, T, Ts, Tzr); +yeccpars2_78(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_79(S, ';', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 80, Ss, Stack, T, Ts, Tzr); @@ -2222,7 +2254,9 @@ yeccpars2_82(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_try_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_83(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 90, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 90, Ss, Stack, T, Ts, Tzr); +yeccpars2_83(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_84: see yeccpars2_45 @@ -2259,7 +2293,9 @@ yeccpars2_91(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_92(S, 'after', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 109, Ss, Stack, T, Ts, Tzr); yeccpars2_92(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 110, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 110, Ss, Stack, T, Ts, Tzr); +yeccpars2_92(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_93(S, ';', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 107, Ss, Stack, T, Ts, Tzr); @@ -2335,7 +2371,9 @@ yeccpars2_110(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_try_catch(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_111(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 112, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 112, Ss, Stack, T, Ts, Tzr); +yeccpars2_111(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_112(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2343,7 +2381,9 @@ yeccpars2_112(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_try_catch(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_113(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 114, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 114, Ss, Stack, T, Ts, Tzr); +yeccpars2_113(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_114(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2358,14 +2398,18 @@ yeccpars2_115(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_116(S, 'after', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 121, Ss, Stack, T, Ts, Tzr); yeccpars2_116(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 122, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 122, Ss, Stack, T, Ts, Tzr); +yeccpars2_116(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_117: see yeccpars2_45 %% yeccpars2_118: see yeccpars2_83 yeccpars2_119(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 120, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 120, Ss, Stack, T, Ts, Tzr); +yeccpars2_119(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_120(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2382,7 +2426,9 @@ yeccpars2_122(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_123: see yeccpars2_83 yeccpars2_124(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 125, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 125, Ss, Stack, T, Ts, Tzr); +yeccpars2_124(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_125(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_|Nss] = Ss, @@ -2390,17 +2436,23 @@ yeccpars2_125(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_receive_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_126(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 141, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 141, Ss, Stack, T, Ts, Tzr); +yeccpars2_126(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_127: see yeccpars2_45 yeccpars2_128(S, '||', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 129, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 129, Ss, Stack, T, Ts, Tzr); +yeccpars2_128(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_129: see yeccpars2_45 yeccpars2_130(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 140, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 140, Ss, Stack, T, Ts, Tzr); +yeccpars2_130(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_131(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 138, Ss, Stack, T, Ts, Tzr); @@ -2450,7 +2502,9 @@ yeccpars2_141(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_query_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_142(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 148, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 148, Ss, Stack, T, Ts, Tzr); +yeccpars2_142(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_143(S, ';', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 146, Ss, Stack, T, Ts, Tzr); @@ -2478,7 +2532,9 @@ yeccpars2_148(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_if_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_149(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 163, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 163, Ss, Stack, T, Ts, Tzr); +yeccpars2_149(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_150(S, ';', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 161, Ss, Stack, T, Ts, Tzr); @@ -2495,19 +2551,29 @@ yeccpars2_151(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_152(S, '/', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 153, Ss, Stack, T, Ts, Tzr); yeccpars2_152(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 154, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 154, Ss, Stack, T, Ts, Tzr); +yeccpars2_152(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_153(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 158, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 158, Ss, Stack, T, Ts, Tzr); +yeccpars2_153(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_154(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 155, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 155, Ss, Stack, T, Ts, Tzr); +yeccpars2_154(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_155(S, '/', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 156, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 156, Ss, Stack, T, Ts, Tzr); +yeccpars2_155(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_156(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 157, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 157, Ss, Stack, T, Ts, Tzr); +yeccpars2_156(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_157(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_|Nss] = Ss, @@ -2544,12 +2610,16 @@ yeccpars2_164(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_165(S, 'of', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 166, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 166, Ss, Stack, T, Ts, Tzr); +yeccpars2_165(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_166: see yeccpars2_45 yeccpars2_167(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 168, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 168, Ss, Stack, T, Ts, Tzr); +yeccpars2_167(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_168(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2557,7 +2627,9 @@ yeccpars2_168(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_case_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_169(S, 'end', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 170, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 170, Ss, Stack, T, Ts, Tzr); +yeccpars2_169(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_170(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2588,7 +2660,9 @@ yeccpars2_175(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_176: see yeccpars2_45 yeccpars2_177(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 178, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 178, Ss, Stack, T, Ts, Tzr); +yeccpars2_177(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_178(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2600,7 +2674,9 @@ yeccpars2_179(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars2_179(S, ']', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 175, Ss, Stack, T, Ts, Tzr); yeccpars2_179(S, '|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 176, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 176, Ss, Stack, T, Ts, Tzr); +yeccpars2_179(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_180(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2633,7 +2709,9 @@ yeccpars2_184(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_max(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_185(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 190, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 190, Ss, Stack, T, Ts, Tzr); +yeccpars2_185(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_186(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 188, Ss, Stack, T, Ts, Tzr); @@ -2678,7 +2756,9 @@ yeccpars2_190(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_191: see yeccpars2_45 yeccpars2_192(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 193, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 193, Ss, Stack, T, Ts, Tzr); +yeccpars2_192(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_193(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -2707,7 +2787,9 @@ yeccpars2_198(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_bin_element(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_199(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 202, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 202, Ss, Stack, T, Ts, Tzr); +yeccpars2_199(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_200(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -2727,7 +2809,9 @@ yeccpars2_202(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_bit_type(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_203(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 204, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 204, Ss, Stack, T, Ts, Tzr); +yeccpars2_203(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_204(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2752,7 +2836,9 @@ yeccpars2_208(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_900(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_209(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 210, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 210, Ss, Stack, T, Ts, Tzr); +yeccpars2_209(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_210(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2762,7 +2848,9 @@ yeccpars2_210(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_211(S, '.', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 213, Ss, Stack, T, Ts, Tzr); yeccpars2_211(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 214, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 214, Ss, Stack, T, Ts, Tzr); +yeccpars2_211(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_212(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -2770,7 +2858,9 @@ yeccpars2_212(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_record_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_213(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 227, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 227, Ss, Stack, T, Ts, Tzr); +yeccpars2_213(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_214(S, '}', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 219, Ss, Stack, T, Ts, Tzr); @@ -2778,7 +2868,9 @@ yeccpars2_214(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_224(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_215(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 226, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 226, Ss, Stack, T, Ts, Tzr); +yeccpars2_215(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_216(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 224, Ss, Stack, T, Ts, Tzr); @@ -2787,10 +2879,14 @@ yeccpars2_216(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_record_fields(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_217(S, '=', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 222, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 222, Ss, Stack, T, Ts, Tzr); +yeccpars2_217(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_218(S, '=', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 220, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 220, Ss, Stack, T, Ts, Tzr); +yeccpars2_218(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_219(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -2814,7 +2910,9 @@ yeccpars2_223(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_224(S, atom, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 217, Ss, Stack, T, Ts, Tzr); yeccpars2_224(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 218, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 218, Ss, Stack, T, Ts, Tzr); +yeccpars2_224(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_225(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3005,7 +3103,9 @@ yeccpars2_270(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_function_call(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_271(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 274, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 274, Ss, Stack, T, Ts, Tzr); +yeccpars2_271(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_272: see yeccpars2_181 @@ -3020,12 +3120,16 @@ yeccpars2_274(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_900(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_275(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 276, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 276, Ss, Stack, T, Ts, Tzr); +yeccpars2_275(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_276(S, '.', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 278, Ss, Stack, T, Ts, Tzr); yeccpars2_276(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 214, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 214, Ss, Stack, T, Ts, Tzr); +yeccpars2_276(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_277(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -3033,7 +3137,9 @@ yeccpars2_277(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_record_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_278(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 279, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 279, Ss, Stack, T, Ts, Tzr); +yeccpars2_278(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_279(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -3051,12 +3157,16 @@ yeccpars2_281(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr_600(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_282(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 283, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 283, Ss, Stack, T, Ts, Tzr); +yeccpars2_282(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_283(S, '.', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 285, Ss, Stack, T, Ts, Tzr); yeccpars2_283(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 214, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 214, Ss, Stack, T, Ts, Tzr); +yeccpars2_283(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_284(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -3064,7 +3174,9 @@ yeccpars2_284(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_record_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_285(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 286, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 286, Ss, Stack, T, Ts, Tzr); +yeccpars2_285(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_286(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -3074,7 +3186,9 @@ yeccpars2_286(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_287(S, '->', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 90, Ss, Stack, T, Ts, Tzr); yeccpars2_287(S, ':-', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr); +yeccpars2_287(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_288(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -3121,7 +3235,9 @@ yeccpars2_292(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_293(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 296, Ss, Stack, T, Ts, Tzr); yeccpars2_293(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 297, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 297, Ss, Stack, T, Ts, Tzr); +yeccpars2_293(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_294(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3129,10 +3245,14 @@ yeccpars2_294(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_attribute(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_295(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 310, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 310, Ss, Stack, T, Ts, Tzr); +yeccpars2_295(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_296(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 297, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 297, Ss, Stack, T, Ts, Tzr); +yeccpars2_296(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_297(S, '/', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 298, Ss, Stack, T, Ts, Tzr); @@ -3142,10 +3262,14 @@ yeccpars2_297(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_spec_fun(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_298(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 304, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 304, Ss, Stack, T, Ts, Tzr); +yeccpars2_298(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_299(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 300, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 300, Ss, Stack, T, Ts, Tzr); +yeccpars2_299(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_300(S, '/', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 301, Ss, Stack, T, Ts, Tzr); @@ -3155,10 +3279,14 @@ yeccpars2_300(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_spec_fun(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_301(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 302, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 302, Ss, Stack, T, Ts, Tzr); +yeccpars2_301(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_302(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 303, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 303, Ss, Stack, T, Ts, Tzr); +yeccpars2_302(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_303(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_|Nss] = Ss, @@ -3166,7 +3294,9 @@ yeccpars2_303(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_spec_fun(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_304(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 305, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 305, Ss, Stack, T, Ts, Tzr); +yeccpars2_304(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_305(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -3176,7 +3306,9 @@ yeccpars2_305(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_306: see yeccpars2_295 yeccpars2_307(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 423, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 423, Ss, Stack, T, Ts, Tzr); +yeccpars2_307(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_308(S, ';', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 421, Ss, Stack, T, Ts, Tzr); @@ -3219,7 +3351,9 @@ yeccpars2_cont_310(S, 'fun', Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 328, Ss, Stack, T, Ts, Tzr); yeccpars2_cont_310(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 330, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 330, Ss, Stack, T, Ts, Tzr); +yeccpars2_cont_310(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_311(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type_400(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3269,7 +3403,9 @@ yeccpars2_315(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type_500(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_316(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 398, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 398, Ss, Stack, T, Ts, Tzr); +yeccpars2_316(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_317(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_top_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3289,7 +3425,9 @@ yeccpars2_320(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_321(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 384, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 384, Ss, Stack, T, Ts, Tzr); +yeccpars2_321(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_322(S, '+', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 47, Ss, Stack, T, Ts, Tzr); @@ -3305,12 +3443,16 @@ yeccpars2_322(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_323(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 380, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 380, Ss, Stack, T, Ts, Tzr); +yeccpars2_323(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_324(S, '>>', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 365, Ss, Stack, T, Ts, Tzr); yeccpars2_324(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 366, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 366, Ss, Stack, T, Ts, Tzr); +yeccpars2_324(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_325(S, '+', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 47, Ss, Stack, T, Ts, Tzr); @@ -3335,7 +3477,9 @@ yeccpars2_326(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_327(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 337, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 337, Ss, Stack, T, Ts, Tzr); +yeccpars2_327(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_328(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3361,7 +3505,9 @@ yeccpars2_330(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_331(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 333, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 333, Ss, Stack, T, Ts, Tzr); +yeccpars2_331(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_332(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -3397,10 +3543,14 @@ yeccpars2_336(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_337(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 340, Ss, Stack, T, Ts, Tzr); yeccpars2_337(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 341, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 341, Ss, Stack, T, Ts, Tzr); +yeccpars2_337(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_338(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 346, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 346, Ss, Stack, T, Ts, Tzr); +yeccpars2_338(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_339(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_fun_type_100(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3428,10 +3578,14 @@ yeccpars2_341(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_342(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 343, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 343, Ss, Stack, T, Ts, Tzr); +yeccpars2_342(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_343(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 344, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 344, Ss, Stack, T, Ts, Tzr); +yeccpars2_343(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_344: see yeccpars2_322 @@ -3461,10 +3615,14 @@ yeccpars2_347(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_348(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 349, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 349, Ss, Stack, T, Ts, Tzr); +yeccpars2_348(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_349(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 350, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 350, Ss, Stack, T, Ts, Tzr); +yeccpars2_349(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_350(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 352, Ss, Stack, T, Ts, Tzr); @@ -3482,7 +3640,9 @@ yeccpars2_350(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_351(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 353, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 353, Ss, Stack, T, Ts, Tzr); +yeccpars2_351(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_352(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -3495,7 +3655,9 @@ yeccpars2_353(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_354(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 356, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 356, Ss, Stack, T, Ts, Tzr); +yeccpars2_354(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_355(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3510,7 +3672,9 @@ yeccpars2_356(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_357(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 359, Ss, Stack, T, Ts, Tzr); yeccpars2_357(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 360, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 360, Ss, Stack, T, Ts, Tzr); +yeccpars2_357(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_358(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -3518,7 +3682,9 @@ yeccpars2_358(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_359(S, '...', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 361, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 361, Ss, Stack, T, Ts, Tzr); +yeccpars2_359(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_360(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3526,7 +3692,9 @@ yeccpars2_360(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_361(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 362, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 362, Ss, Stack, T, Ts, Tzr); +yeccpars2_361(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_362(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -3534,12 +3702,16 @@ yeccpars2_362(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_363(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 379, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 379, Ss, Stack, T, Ts, Tzr); +yeccpars2_363(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_364(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 372, Ss, Stack, T, Ts, Tzr); yeccpars2_364(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 373, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 373, Ss, Stack, T, Ts, Tzr); +yeccpars2_364(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_365(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, @@ -3547,7 +3719,9 @@ yeccpars2_365(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_binary_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_366(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 367, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 367, Ss, Stack, T, Ts, Tzr); +yeccpars2_366(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_367(S, var, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 369, Ss, Stack, T, Ts, Tzr); @@ -3572,7 +3746,9 @@ yeccpars2_371(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_bin_unit_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_372(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 375, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 375, Ss, Stack, T, Ts, Tzr); +yeccpars2_372(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_373(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3580,16 +3756,24 @@ yeccpars2_373(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_binary_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_374(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 378, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 378, Ss, Stack, T, Ts, Tzr); +yeccpars2_374(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_375(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 376, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 376, Ss, Stack, T, Ts, Tzr); +yeccpars2_375(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_376(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 377, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 377, Ss, Stack, T, Ts, Tzr); +yeccpars2_376(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_377(S, '*', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 370, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 370, Ss, Stack, T, Ts, Tzr); +yeccpars2_377(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_378(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, @@ -3609,7 +3793,9 @@ yeccpars2_381(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_fun_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_382(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 383, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 383, Ss, Stack, T, Ts, Tzr); +yeccpars2_382(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_383(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3617,15 +3803,21 @@ yeccpars2_383(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_384(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 385, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 385, Ss, Stack, T, Ts, Tzr); +yeccpars2_384(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_385(S, atom, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 388, Ss, Stack, T, Ts, Tzr); yeccpars2_385(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 389, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 389, Ss, Stack, T, Ts, Tzr); +yeccpars2_385(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_386(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 394, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 394, Ss, Stack, T, Ts, Tzr); +yeccpars2_386(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_387(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 392, Ss, Stack, T, Ts, Tzr); @@ -3634,7 +3826,9 @@ yeccpars2_387(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_field_types(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_388(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 390, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 390, Ss, Stack, T, Ts, Tzr); +yeccpars2_388(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_389(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -3649,7 +3843,9 @@ yeccpars2_391(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_field_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_392(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 388, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 388, Ss, Stack, T, Ts, Tzr); +yeccpars2_392(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_393(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3674,7 +3870,9 @@ yeccpars2_397(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_top_types(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_398(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 399, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 399, Ss, Stack, T, Ts, Tzr); +yeccpars2_398(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_399: see yeccpars2_322 @@ -3742,7 +3940,9 @@ yeccpars2_408(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_409(S, atom, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 412, Ss, Stack, T, Ts, Tzr); yeccpars2_409(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 413, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 413, Ss, Stack, T, Ts, Tzr); +yeccpars2_409(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_410(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3756,10 +3956,14 @@ yeccpars2_411(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type_guards(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_412(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 416, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 416, Ss, Stack, T, Ts, Tzr); +yeccpars2_412(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_413(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 414, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 414, Ss, Stack, T, Ts, Tzr); +yeccpars2_413(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_414: see yeccpars2_322 @@ -3771,7 +3975,9 @@ yeccpars2_415(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_416: see yeccpars2_322 yeccpars2_417(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 418, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 418, Ss, Stack, T, Ts, Tzr); +yeccpars2_417(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_418(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, @@ -3823,14 +4029,18 @@ yeccpars2_427(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_428: see yeccpars2_45 yeccpars2_429(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 449, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 449, Ss, Stack, T, Ts, Tzr); +yeccpars2_429(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_430(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 210, Ss, Stack, T, Ts, Tzr); yeccpars2_430(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 431, Ss, Stack, T, Ts, Tzr); yeccpars2_430(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 432, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 432, Ss, Stack, T, Ts, Tzr); +yeccpars2_430(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_431(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 44, Ss, Stack, T, Ts, Tzr); @@ -3870,12 +4080,16 @@ yeccpars2_434(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_typed_attr_val(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_435(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 448, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 448, Ss, Stack, T, Ts, Tzr); +yeccpars2_435(_, _, _, _, T, _, _) -> + yeccerror(T). %% yeccpars2_436: see yeccpars2_68 yeccpars2_437(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 447, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 447, Ss, Stack, T, Ts, Tzr); +yeccpars2_437(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_438(S, ',', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 444, Ss, Stack, T, Ts, Tzr); @@ -3950,7 +4164,9 @@ yeccpars2_453(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_form(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_454(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 456, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 456, Ss, Stack, T, Ts, Tzr); +yeccpars2_454(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_455(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3973,7 +4189,9 @@ yeccpars2_459(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_form(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). yeccpars2_460(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 462, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 462, Ss, Stack, T, Ts, Tzr); +yeccpars2_460(_, _, _, _, T, _, _) -> + yeccerror(T). yeccpars2_461(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, @@ -3989,7 +4207,9 @@ yeccpars2_463(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_464(464, Cat, [463 | Ss], NewStack, T, Ts, Tzr). yeccpars2_464(S, ':-', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr); +yeccpars2_464(_, _, _, _, T, _, _) -> + yeccerror(T). yeccgoto_add_op(33, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_230(249, Cat, Ss, Stack, T, Ts, Tzr); @@ -7975,7 +8195,7 @@ yeccpars2_39_(__Stack0) -> [ __1 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7978). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8198). -compile({inline,yeccpars2_46_/1}). -file("erl_parse.yrl", 434). yeccpars2_46_(__Stack0) -> @@ -7984,7 +8204,7 @@ yeccpars2_46_(__Stack0) -> { [ ] , ? line ( __1 ) } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7987). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8207). -compile({inline,yeccpars2_70_/1}). -file("erl_parse.yrl", 325). yeccpars2_70_(__Stack0) -> @@ -7993,7 +8213,7 @@ yeccpars2_70_(__Stack0) -> { tuple , ? line ( __1 ) , [ ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7996). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8216). -compile({inline,yeccpars2_71_/1}). -file("erl_parse.yrl", 326). yeccpars2_71_(__Stack0) -> @@ -8002,7 +8222,7 @@ yeccpars2_71_(__Stack0) -> { tuple , ? line ( __1 ) , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8005). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8225). -compile({inline,yeccpars2_73_/1}). -file("erl_parse.yrl", 408). yeccpars2_73_(__Stack0) -> @@ -8034,7 +8254,7 @@ yeccpars2_81_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8037). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8257). -compile({inline,yeccpars2_82_/1}). -file("erl_parse.yrl", 406). yeccpars2_82_(__Stack0) -> @@ -8067,7 +8287,7 @@ yeccpars2_88_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8070). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8290). -compile({inline,yeccpars2_89_/1}). -file("erl_parse.yrl", 381). yeccpars2_89_(__Stack0) -> @@ -8106,7 +8326,7 @@ yeccpars2_98_(__Stack0) -> [ ] end | __Stack0]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8109). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8329). -compile({inline,yeccpars2_100_/1}). -file("erl_parse.yrl", 427). yeccpars2_100_(__Stack0) -> @@ -8123,7 +8343,7 @@ yeccpars2_102_(__Stack0) -> [ ] end | __Stack0]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8126). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8346). -compile({inline,yeccpars2_104_/1}). -file("erl_parse.yrl", 424). yeccpars2_104_(__Stack0) -> @@ -8133,7 +8353,7 @@ yeccpars2_104_(__Stack0) -> { clause , L , [ { tuple , L , [ __1 , __3 , { var , L , '_' } ] } ] , __4 , __5 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8136). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8356). -compile({inline,yeccpars2_106_/1}). -file("erl_parse.yrl", 421). yeccpars2_106_(__Stack0) -> @@ -8175,7 +8395,7 @@ yeccpars2_114_(__Stack0) -> { [ ] , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8178). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8398). -compile({inline,yeccpars2_115_/1}). -file("erl_parse.yrl", 452). yeccpars2_115_(__Stack0) -> @@ -8184,7 +8404,7 @@ yeccpars2_115_(__Stack0) -> { string , ? line ( __1 ) , element ( 3 , __1 ) ++ element ( 3 , __2 ) } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8187). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8407). -compile({inline,yeccpars2_120_/1}). -file("erl_parse.yrl", 386). yeccpars2_120_(__Stack0) -> @@ -8193,7 +8413,7 @@ yeccpars2_120_(__Stack0) -> { 'receive' , ? line ( __1 ) , [ ] , __3 , __4 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8196). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8416). -compile({inline,yeccpars2_122_/1}). -file("erl_parse.yrl", 384). yeccpars2_122_(__Stack0) -> @@ -8202,7 +8422,7 @@ yeccpars2_122_(__Stack0) -> { 'receive' , ? line ( __1 ) , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8205). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8425). -compile({inline,yeccpars2_125_/1}). -file("erl_parse.yrl", 388). yeccpars2_125_(__Stack0) -> @@ -8219,7 +8439,7 @@ yeccpars2_131_(__Stack0) -> [ __1 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8222). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8442). -compile({inline,yeccpars2_135_/1}). -file("erl_parse.yrl", 323). yeccpars2_135_(__Stack0) -> @@ -8228,7 +8448,7 @@ yeccpars2_135_(__Stack0) -> { b_generate , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8231). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8451). -compile({inline,yeccpars2_137_/1}). -file("erl_parse.yrl", 322). yeccpars2_137_(__Stack0) -> @@ -8245,7 +8465,7 @@ yeccpars2_139_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8248). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8468). -compile({inline,yeccpars2_140_/1}). -file("erl_parse.yrl", 315). yeccpars2_140_(__Stack0) -> @@ -8254,7 +8474,7 @@ yeccpars2_140_(__Stack0) -> { lc , ? line ( __1 ) , __2 , __4 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8257). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8477). -compile({inline,yeccpars2_141_/1}). -file("erl_parse.yrl", 431). yeccpars2_141_(__Stack0) -> @@ -8271,7 +8491,7 @@ yeccpars2_143_(__Stack0) -> [ __1 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8274). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8494). -compile({inline,yeccpars2_145_/1}). -file("erl_parse.yrl", 371). yeccpars2_145_(__Stack0) -> @@ -8288,7 +8508,7 @@ yeccpars2_147_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8291). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8511). -compile({inline,yeccpars2_148_/1}). -file("erl_parse.yrl", 365). yeccpars2_148_(__Stack0) -> @@ -8312,7 +8532,7 @@ yeccpars2_151_(__Stack0) -> [ ] end | __Stack0]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8315). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8535). -compile({inline,yeccpars2_157_/1}). -file("erl_parse.yrl", 394). yeccpars2_157_(__Stack0) -> @@ -8321,7 +8541,7 @@ yeccpars2_157_(__Stack0) -> { 'fun' , ? line ( __1 ) , { function , element ( 3 , __2 ) , element ( 3 , __4 ) , element ( 3 , __6 ) } } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8324). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8544). -compile({inline,yeccpars2_158_/1}). -file("erl_parse.yrl", 392). yeccpars2_158_(__Stack0) -> @@ -8347,7 +8567,7 @@ yeccpars2_162_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8350). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8570). -compile({inline,yeccpars2_163_/1}). -file("erl_parse.yrl", 396). yeccpars2_163_(__Stack0) -> @@ -8356,7 +8576,7 @@ yeccpars2_163_(__Stack0) -> build_fun ( ? line ( __1 ) , __2 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8359). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8579). -compile({inline,yeccpars2_164_/1}). -file("erl_parse.yrl", 214). yeccpars2_164_(__Stack0) -> @@ -8365,7 +8585,7 @@ yeccpars2_164_(__Stack0) -> { 'catch' , ? line ( __1 ) , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8368). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8588). -compile({inline,yeccpars2_168_/1}). -file("erl_parse.yrl", 375). yeccpars2_168_(__Stack0) -> @@ -8374,7 +8594,7 @@ yeccpars2_168_(__Stack0) -> { 'case' , ? line ( __1 ) , __2 , __4 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8377). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8597). -compile({inline,yeccpars2_170_/1}). -file("erl_parse.yrl", 270). yeccpars2_170_(__Stack0) -> @@ -8383,7 +8603,7 @@ yeccpars2_170_(__Stack0) -> { block , ? line ( __1 ) , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8386). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8606). -compile({inline,yeccpars2_172_/1}). -file("erl_parse.yrl", 279). yeccpars2_172_(__Stack0) -> @@ -8392,7 +8612,7 @@ yeccpars2_172_(__Stack0) -> { nil , ? line ( __1 ) } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8395). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8615). -compile({inline,yeccpars2_173_/1}). -file("erl_parse.yrl", 280). yeccpars2_173_(__Stack0) -> @@ -8401,7 +8621,7 @@ yeccpars2_173_(__Stack0) -> { cons , ? line ( __1 ) , __2 , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8404). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8624). -compile({inline,yeccpars2_175_/1}). -file("erl_parse.yrl", 282). yeccpars2_175_(__Stack0) -> @@ -8418,7 +8638,7 @@ yeccpars2_178_(__Stack0) -> __2 end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8421). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8641). -compile({inline,yeccpars2_180_/1}). -file("erl_parse.yrl", 284). yeccpars2_180_(__Stack0) -> @@ -8442,7 +8662,7 @@ yeccpars2_186_(__Stack0) -> [ __1 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8445). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8665). -compile({inline,yeccpars2_187_/1}). -file("erl_parse.yrl", 287). yeccpars2_187_(__Stack0) -> @@ -8459,7 +8679,7 @@ yeccpars2_189_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8462). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8682). -compile({inline,yeccpars2_190_/1}). -file("erl_parse.yrl", 288). yeccpars2_190_(__Stack0) -> @@ -8468,7 +8688,7 @@ yeccpars2_190_(__Stack0) -> { bin , ? line ( __1 ) , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8471). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8691). -compile({inline,yeccpars2_193_/1}). -file("erl_parse.yrl", 317). yeccpars2_193_(__Stack0) -> @@ -8492,7 +8712,7 @@ yeccpars2_197_(__Stack0) -> __2 end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8495). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8715). -compile({inline,yeccpars2_198_/1}). -file("erl_parse.yrl", 294). yeccpars2_198_(__Stack0) -> @@ -8541,7 +8761,7 @@ yeccpars2_206_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8544). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8764). -compile({inline,yeccpars2_207_/1}). -file("erl_parse.yrl", 296). yeccpars2_207_(__Stack0) -> @@ -8550,7 +8770,7 @@ yeccpars2_207_(__Stack0) -> ? mkop1 ( __1 , __2 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8553). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8773). -compile({inline,yeccpars2_208_/1}). -file("erl_parse.yrl", 256). yeccpars2_208_(__Stack0) -> @@ -8567,7 +8787,7 @@ yeccpars2_210_(__Stack0) -> __2 end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8570). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8790). -compile({inline,yeccpars2_212_/1}). -file("erl_parse.yrl", 340). yeccpars2_212_(__Stack0) -> @@ -8592,7 +8812,7 @@ yeccpars2_219_(__Stack0) -> [ ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8595). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8815). -compile({inline,yeccpars2_221_/1}). -file("erl_parse.yrl", 356). yeccpars2_221_(__Stack0) -> @@ -8601,7 +8821,7 @@ yeccpars2_221_(__Stack0) -> { record_field , ? line ( __1 ) , __1 , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8604). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8824). -compile({inline,yeccpars2_223_/1}). -file("erl_parse.yrl", 357). yeccpars2_223_(__Stack0) -> @@ -8626,7 +8846,7 @@ yeccpars2_226_(__Stack0) -> __2 end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8629). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8849). -compile({inline,yeccpars2_227_/1}). -file("erl_parse.yrl", 338). yeccpars2_227_(__Stack0) -> @@ -8643,7 +8863,7 @@ yeccpars2_229_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8646). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8866). -compile({inline,yeccpars2_232_/1}). -file("erl_parse.yrl", 217). yeccpars2_232_(__Stack0) -> @@ -8652,7 +8872,7 @@ yeccpars2_232_(__Stack0) -> { match , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8655). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8875). -compile({inline,yeccpars2_233_/1}). -file("erl_parse.yrl", 218). yeccpars2_233_(__Stack0) -> @@ -8661,7 +8881,7 @@ yeccpars2_233_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8664). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8884). -compile({inline,yeccpars2_235_/1}). -file("erl_parse.yrl", 221). yeccpars2_235_(__Stack0) -> @@ -8670,7 +8890,7 @@ yeccpars2_235_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8673). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8893). -compile({inline,yeccpars2_237_/1}). -file("erl_parse.yrl", 224). yeccpars2_237_(__Stack0) -> @@ -8679,7 +8899,7 @@ yeccpars2_237_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8682). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8902). -compile({inline,yeccpars2_247_/1}). -file("erl_parse.yrl", 228). yeccpars2_247_(__Stack0) -> @@ -8688,7 +8908,7 @@ yeccpars2_247_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8691). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8911). -compile({inline,yeccpars2_260_/1}). -file("erl_parse.yrl", 236). yeccpars2_260_(__Stack0) -> @@ -8697,7 +8917,7 @@ yeccpars2_260_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8700). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8920). -compile({inline,yeccpars2_268_/1}). -file("erl_parse.yrl", 240). yeccpars2_268_(__Stack0) -> @@ -8706,7 +8926,7 @@ yeccpars2_268_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8709). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8929). -compile({inline,yeccpars2_269_/1}). -file("erl_parse.yrl", 232). yeccpars2_269_(__Stack0) -> @@ -8715,7 +8935,7 @@ yeccpars2_269_(__Stack0) -> ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8718). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8938). -compile({inline,yeccpars2_270_/1}). -file("erl_parse.yrl", 362). yeccpars2_270_(__Stack0) -> @@ -8724,7 +8944,7 @@ yeccpars2_270_(__Stack0) -> { call , ? line ( __1 ) , __1 , element ( 1 , __2 ) } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8727). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8947). -compile({inline,yeccpars2_273_/1}). -file("erl_parse.yrl", 252). yeccpars2_273_(__Stack0) -> @@ -8733,7 +8953,7 @@ yeccpars2_273_(__Stack0) -> { remote , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8736). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8956). -compile({inline,yeccpars2_274_/1}). -file("erl_parse.yrl", 258). yeccpars2_274_(__Stack0) -> @@ -8742,7 +8962,7 @@ yeccpars2_274_(__Stack0) -> { record_field , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8745). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8965). -compile({inline,yeccpars2_277_/1}). -file("erl_parse.yrl", 344). yeccpars2_277_(__Stack0) -> @@ -8751,7 +8971,7 @@ yeccpars2_277_(__Stack0) -> { record , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __4 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8754). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8974). -compile({inline,yeccpars2_279_/1}). -file("erl_parse.yrl", 342). yeccpars2_279_(__Stack0) -> @@ -8760,7 +8980,7 @@ yeccpars2_279_(__Stack0) -> { record_field , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __5 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8763). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8983). -compile({inline,yeccpars2_280_/1}). -file("erl_parse.yrl", 435). yeccpars2_280_(__Stack0) -> @@ -8769,7 +8989,7 @@ yeccpars2_280_(__Stack0) -> { __2 , ? line ( __1 ) } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8772). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8992). -compile({inline,yeccpars2_281_/1}). -file("erl_parse.yrl", 244). yeccpars2_281_(__Stack0) -> @@ -8778,7 +8998,7 @@ yeccpars2_281_(__Stack0) -> ? mkop1 ( __1 , __2 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8781). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9001). -compile({inline,yeccpars2_284_/1}). -file("erl_parse.yrl", 348). yeccpars2_284_(__Stack0) -> @@ -8787,7 +9007,7 @@ yeccpars2_284_(__Stack0) -> { record , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __4 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8790). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9010). -compile({inline,yeccpars2_286_/1}). -file("erl_parse.yrl", 346). yeccpars2_286_(__Stack0) -> @@ -8796,7 +9016,7 @@ yeccpars2_286_(__Stack0) -> { record_field , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __5 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8799). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9019). -compile({inline,yeccpars2_288_/1}). -file("erl_parse.yrl", 493). yeccpars2_288_(__Stack0) -> @@ -8805,7 +9025,7 @@ yeccpars2_288_(__Stack0) -> { clause , ? line ( __1 ) , element ( 3 , __1 ) , __2 , __3 , __4 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8808). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9028). -compile({inline,yeccpars2_289_/1}). -file("erl_parse.yrl", 203). yeccpars2_289_(__Stack0) -> @@ -8870,7 +9090,7 @@ yeccpars2_318_(__Stack0) -> [ __1 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8873). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9093). -compile({inline,yeccpars2_332_/1}). -file("erl_parse.yrl", 152). yeccpars2_332_(__Stack0) -> @@ -8879,7 +9099,7 @@ yeccpars2_332_(__Stack0) -> { type , ? line ( __1 ) , tuple , [ ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8882). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9102). -compile({inline,yeccpars2_333_/1}). -file("erl_parse.yrl", 153). yeccpars2_333_(__Stack0) -> @@ -8888,7 +9108,7 @@ yeccpars2_333_(__Stack0) -> { type , ? line ( __1 ) , tuple , __2 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8891). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9111). -compile({inline,yeccpars2_335_/1}). -file("erl_parse.yrl", 116). yeccpars2_335_(__Stack0) -> @@ -8897,7 +9117,7 @@ yeccpars2_335_(__Stack0) -> { ann_type , ? line ( __1 ) , [ __1 , __3 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8900). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9120). -compile({inline,yeccpars2_341_/1}). -file("erl_parse.yrl", 159). yeccpars2_341_(__Stack0) -> @@ -8906,7 +9126,7 @@ yeccpars2_341_(__Stack0) -> { type , ? line ( __1 ) , 'fun' , [ ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8909). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9129). -compile({inline,yeccpars2_345_/1}). -file("erl_parse.yrl", 163). yeccpars2_345_(__Stack0) -> @@ -8924,7 +9144,7 @@ yeccpars2_346_(__Stack0) -> __3 end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8927). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9147). -compile({inline,yeccpars2_352_/1}). -file("erl_parse.yrl", 144). yeccpars2_352_(__Stack0) -> @@ -8934,7 +9154,7 @@ yeccpars2_352_(__Stack0) -> [ __1 , __3 , [ ] ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8937). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9157). -compile({inline,yeccpars2_353_/1}). -file("erl_parse.yrl", 146). yeccpars2_353_(__Stack0) -> @@ -8952,7 +9172,7 @@ yeccpars2_355_(__Stack0) -> build_gen_type ( __1 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8955). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9175). -compile({inline,yeccpars2_356_/1}). -file("erl_parse.yrl", 142). yeccpars2_356_(__Stack0) -> @@ -8962,7 +9182,7 @@ yeccpars2_356_(__Stack0) -> normalise ( __1 ) , __3 } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8965). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9185). -compile({inline,yeccpars2_358_/1}). -file("erl_parse.yrl", 148). yeccpars2_358_(__Stack0) -> @@ -8971,7 +9191,7 @@ yeccpars2_358_(__Stack0) -> { type , ? line ( __1 ) , nil , [ ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8974). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9194). -compile({inline,yeccpars2_360_/1}). -file("erl_parse.yrl", 149). yeccpars2_360_(__Stack0) -> @@ -8980,7 +9200,7 @@ yeccpars2_360_(__Stack0) -> { type , ? line ( __1 ) , list , [ __2 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8983). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9203). -compile({inline,yeccpars2_362_/1}). -file("erl_parse.yrl", 150). yeccpars2_362_(__Stack0) -> @@ -8990,7 +9210,7 @@ yeccpars2_362_(__Stack0) -> nonempty_list , [ __2 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8993). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9213). -compile({inline,yeccpars2_365_/1}). -file("erl_parse.yrl", 179). yeccpars2_365_(__Stack0) -> @@ -9017,7 +9237,7 @@ yeccpars2_371_(__Stack0) -> build_bin_type ( [ __1 , __3 ] , __5 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9020). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9240). -compile({inline,yeccpars2_373_/1}). -file("erl_parse.yrl", 182). yeccpars2_373_(__Stack0) -> @@ -9027,7 +9247,7 @@ yeccpars2_373_(__Stack0) -> [ __2 , abstract ( 0 , ? line ( __1 ) ) ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9030). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9250). -compile({inline,yeccpars2_378_/1}). -file("erl_parse.yrl", 187). yeccpars2_378_(__Stack0) -> @@ -9036,7 +9256,7 @@ yeccpars2_378_(__Stack0) -> { type , ? line ( __1 ) , binary , [ __2 , __4 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9039). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9259). -compile({inline,yeccpars2_379_/1}). -file("erl_parse.yrl", 184). yeccpars2_379_(__Stack0) -> @@ -9046,7 +9266,7 @@ yeccpars2_379_(__Stack0) -> [ abstract ( 0 , ? line ( __1 ) ) , __2 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9049). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9269). -compile({inline,yeccpars2_381_/1}). -file("erl_parse.yrl", 167). yeccpars2_381_(__Stack0) -> @@ -9056,7 +9276,7 @@ yeccpars2_381_(__Stack0) -> [ { type , ? line ( __1 ) , product , [ ] } , __4 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9059). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9279). -compile({inline,yeccpars2_383_/1}). -file("erl_parse.yrl", 138). yeccpars2_383_(__Stack0) -> @@ -9073,7 +9293,7 @@ yeccpars2_387_(__Stack0) -> [ __1 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9076). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9296). -compile({inline,yeccpars2_389_/1}). -file("erl_parse.yrl", 154). yeccpars2_389_(__Stack0) -> @@ -9082,7 +9302,7 @@ yeccpars2_389_(__Stack0) -> { type , ? line ( __1 ) , record , [ __2 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9085). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9305). -compile({inline,yeccpars2_391_/1}). -file("erl_parse.yrl", 176). yeccpars2_391_(__Stack0) -> @@ -9100,7 +9320,7 @@ yeccpars2_393_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9103). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9323). -compile({inline,yeccpars2_394_/1}). -file("erl_parse.yrl", 155). yeccpars2_394_(__Stack0) -> @@ -9110,7 +9330,7 @@ yeccpars2_394_(__Stack0) -> record , [ __2 | __4 ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9113). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9333). -compile({inline,yeccpars2_395_/1}). -file("erl_parse.yrl", 135). yeccpars2_395_(__Stack0) -> @@ -9127,7 +9347,7 @@ yeccpars2_397_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9130). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9350). -compile({inline,yeccpars2_400_/1}). -file("erl_parse.yrl", 170). yeccpars2_400_(__Stack0) -> @@ -9145,7 +9365,7 @@ yeccpars2_402_(__Stack0) -> lift_unions ( __1 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9148). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9368). -compile({inline,yeccpars2_405_/1}). -file("erl_parse.yrl", 122). yeccpars2_405_(__Stack0) -> @@ -9156,7 +9376,7 @@ yeccpars2_405_(__Stack0) -> skip_paren ( __3 ) ] } end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9159). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9379). -compile({inline,yeccpars2_406_/1}). -file("erl_parse.yrl", 127). yeccpars2_406_(__Stack0) -> @@ -9166,7 +9386,7 @@ yeccpars2_406_(__Stack0) -> __2 , skip_paren ( __3 ) ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9169). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9389). -compile({inline,yeccpars2_408_/1}). -file("erl_parse.yrl", 131). yeccpars2_408_(__Stack0) -> @@ -9176,7 +9396,7 @@ yeccpars2_408_(__Stack0) -> __2 , skip_paren ( __3 ) ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9179). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9399). -compile({inline,yeccpars2_410_/1}). -file("erl_parse.yrl", 103). yeccpars2_410_(__Stack0) -> @@ -9202,7 +9422,7 @@ yeccpars2_415_(__Stack0) -> build_def ( __1 , __3 ) end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9205). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9425). -compile({inline,yeccpars2_418_/1}). -file("erl_parse.yrl", 109). yeccpars2_418_(__Stack0) -> @@ -9332,7 +9552,7 @@ yeccpars2_446_(__Stack0) -> [ __1 | __3 ] end | __Stack]. --file("/ldisk/pan/git/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9335). +-file("/ldisk/bjorn/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 9555). -compile({inline,yeccpars2_447_/1}). -file("erl_parse.yrl", 90). yeccpars2_447_(__Stack0) -> diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index efe2dada9c..532ebc29e2 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,25 @@ </header> <p>This document describes the changes made to the ERTS application.</p> +<section><title>Erts 5.8.1.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Windows 2003 and Windows XP pre SP3 would sometimes not + start the Erlang R14B VM at all due to a bug in the cpu + topology detection. The bug affects Windows only, no + other platform is even remotely affected. The bug is now + corrected.</p> + <p> + Own Id: OTP-8876</p> + </item> + </list> + </section> + +</section> + <section><title>Erts 5.8.1</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/erts/emulator/beam/erl_db.c b/erts/emulator/beam/erl_db.c index 52d5f86ee0..1c2c0fe4cb 100644 --- a/erts/emulator/beam/erl_db.c +++ b/erts/emulator/beam/erl_db.c @@ -2754,13 +2754,13 @@ void init_db(void) (sizeof(erts_meta_main_tab_lock_t) * (ERTS_META_MAIN_TAB_LOCK_TAB_SIZE+1))); - if ((((Uint) meta_main_tab_locks) & ERTS_CACHE_LINE_MASK) != 0) + if ((((UWord) meta_main_tab_locks) & ERTS_CACHE_LINE_MASK) != 0) meta_main_tab_locks = ((erts_meta_main_tab_lock_t *) - ((((Uint) meta_main_tab_locks) + ((((UWord) meta_main_tab_locks) & ~ERTS_CACHE_LINE_MASK) + ERTS_CACHE_LINE_SIZE)); - ASSERT((((Uint) meta_main_tab_locks) & ERTS_CACHE_LINE_MASK) == 0); + ASSERT((((UWord) meta_main_tab_locks) & ERTS_CACHE_LINE_MASK) == 0); for (i = 0; i < ERTS_META_MAIN_TAB_LOCK_TAB_SIZE; i++) { erts_smp_rwmtx_init_opt_x(&meta_main_tab_locks[i].rwmtx, &rwmtx_opt, diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index 901167a315..b47ce97c46 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -2528,9 +2528,9 @@ erts_init_scheduling(int mrq, int no_schedulers, int no_schedulers_online) aligned_sched_sleep_info = erts_alloc(ERTS_ALC_T_SCHDLR_SLP_INFO, (sizeof(ErtsAlignedSchedulerSleepInfo) *(n+1))); - if ((((Uint) aligned_sched_sleep_info) & ERTS_CACHE_LINE_MASK) == 0) + if ((((UWord) aligned_sched_sleep_info) & ERTS_CACHE_LINE_MASK) == 0) aligned_sched_sleep_info = ((ErtsAlignedSchedulerSleepInfo *) - ((((Uint) aligned_sched_sleep_info) + ((((UWord) aligned_sched_sleep_info) & ~ERTS_CACHE_LINE_MASK) + ERTS_CACHE_LINE_SIZE)); for (ix = 0; ix < n; ix++) { diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c index df4d1a5715..ef471a473a 100644 --- a/erts/epmd/src/epmd_srv.c +++ b/erts/epmd/src/epmd_srv.c @@ -39,8 +39,10 @@ * server keeps the socket open where the request for registration was * made. * - * The protocol is briefly documented in "erl_ext_dist.txt". All requests - * to this server are done with a packet + * The protocol is briefly documented in the ERTS User's Guide, see + * http://www.erlang.org/doc/apps/erts/erl_dist_protocol.html + * + * All requests to this server are done with a packet * * 2 n * +--------+---------+ diff --git a/erts/etc/common/Makefile.in b/erts/etc/common/Makefile.in index 96655662b8..e866511153 100644 --- a/erts/etc/common/Makefile.in +++ b/erts/etc/common/Makefile.in @@ -327,31 +327,31 @@ $(OBJDIR)/$(ERLEXEC).o: $(ERLEXECDIR)/$(ERLEXEC).c $(CC) -I$(EMUDIR) $(CFLAGS) -o $@ -c $(ERLEXECDIR)/$(ERLEXEC).c endif $(BINDIR)/erlc@EXEEXT@: $(OBJDIR)/erlc.o - $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erlc.o -L$(OBJDIR) $(LIBS) + $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erlc.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS) $(OBJDIR)/erlc.o: erlc.c $(CC) $(CFLAGS) -o $@ -c erlc.c $(BINDIR)/dialyzer@EXEEXT@: $(OBJDIR)/dialyzer.o - $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/dialyzer.o -L$(OBJDIR) $(LIBS) + $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/dialyzer.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS) $(OBJDIR)/dialyzer.o: dialyzer.c $(CC) $(CFLAGS) -o $@ -c dialyzer.c $(BINDIR)/typer@EXEEXT@: $(OBJDIR)/typer.o - $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/typer.o -L$(OBJDIR) $(LIBS) + $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/typer.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS) $(OBJDIR)/typer.o: typer.c $(CC) $(CFLAGS) -o $@ -c typer.c $(BINDIR)/escript@EXEEXT@: $(OBJDIR)/escript.o - $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/escript.o -L$(OBJDIR) $(LIBS) + $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/escript.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS) $(OBJDIR)/escript.o: escript.c $(CC) $(CFLAGS) -o $@ -c escript.c $(BINDIR)/run_test@EXEEXT@: $(OBJDIR)/run_test.o - $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/run_test.o -L$(OBJDIR) $(LIBS) + $(PURIFY) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/run_test.o -L$(OBJDIR) $(LIBS) $(ERTS_INTERNAL_LIBS) $(OBJDIR)/run_test.o: run_test.c $(CC) $(CFLAGS) -o $@ -c run_test.c diff --git a/erts/etc/common/dialyzer.c b/erts/etc/common/dialyzer.c index 4b4c1124f1..4453e63f1c 100644 --- a/erts/etc/common/dialyzer.c +++ b/erts/etc/common/dialyzer.c @@ -147,6 +147,9 @@ main(int argc, char** argv) env = get_env("DIALYZER_EMULATOR"); emulator = env ? env : get_default_emulator(argv[0]); + if (strlen(emulator) >= MAXPATHLEN) + error("Value of environment variable DIALYZER_EMULATOR is too large"); + /* * Allocate the argv vector to be used for arguments to Erlang. * Arrange for starting to pushing information in the middle of @@ -228,7 +231,7 @@ main(int argc, char** argv) static void push_words(char* src) { - char sbuf[1024]; + char sbuf[MAXPATHLEN]; char* dst; dst = sbuf; @@ -360,7 +363,7 @@ error(char* format, ...) va_list ap; va_start(ap, format); - vsprintf(sbuf, format, ap); + erts_vsnprintf(sbuf, sizeof(sbuf), format, ap); va_end(ap); fprintf(stderr, "dialyzer: %s\n", sbuf); exit(1); @@ -389,6 +392,9 @@ get_default_emulator(char* progname) char sbuf[MAXPATHLEN]; char* s; + if (strlen(progname) >= sizeof(sbuf)) + return ERL_NAME; + strcpy(sbuf, progname); for (s = sbuf+strlen(sbuf); s >= sbuf; s--) { if (IS_DIRSEP(*s)) { diff --git a/erts/etc/common/erlc.c b/erts/etc/common/erlc.c index 09aca19e6c..cd137435d1 100644 --- a/erts/etc/common/erlc.c +++ b/erts/etc/common/erlc.c @@ -148,10 +148,6 @@ int main(int argc, char** argv) { char cwd[MAXPATHLEN]; /* Current working directory. */ - char** rpc_eargv; /* Pointer to the beginning of arguments - * if calling a running Erlang system - * via erl_rpc(). - */ int eargv_size; int eargc_base; /* How many arguments in the base of eargv. */ char* emulator; @@ -160,6 +156,9 @@ main(int argc, char** argv) env = get_env("ERLC_EMULATOR"); emulator = env ? env : get_default_emulator(argv[0]); + if (strlen(emulator) >= MAXPATHLEN) + error("Value of environment variable ERLC_EMULATOR is too large"); + /* * Allocate the argv vector to be used for arguments to Erlang. * Arrange for starting to pushing information in the middle of @@ -170,7 +169,7 @@ main(int argc, char** argv) * base of the eargv vector, and move it up later. */ - eargv_size = argc*4+100; + eargv_size = argc*6+100; eargv_base = (char **) emalloc(eargv_size*sizeof(char*)); eargv = eargv_base; eargc = 0; @@ -189,7 +188,6 @@ main(int argc, char** argv) PUSH2("-mode", "minimal"); PUSH2("-boot", "start_clean"); PUSH3("-s", "erl_compile", "compile_cmdline"); - rpc_eargv = eargv+eargc; /* * Push standard arguments to Erlang. @@ -419,7 +417,7 @@ process_opt(int* pArgc, char*** pArgv, int offset) static void push_words(char* src) { - char sbuf[1024]; + char sbuf[MAXPATHLEN]; char* dst; dst = sbuf; @@ -595,7 +593,7 @@ error(char* format, ...) va_list ap; va_start(ap, format); - vsprintf(sbuf, format, ap); + erts_vsnprintf(sbuf, sizeof(sbuf), format, ap); va_end(ap); fprintf(stderr, "erlc: %s\n", sbuf); exit(1); @@ -624,6 +622,9 @@ get_default_emulator(char* progname) char sbuf[MAXPATHLEN]; char* s; + if (strlen(progname) >= sizeof(sbuf)) + return ERL_NAME; + strcpy(sbuf, progname); for (s = sbuf+strlen(sbuf); s >= sbuf; s--) { if (IS_DIRSEP(*s)) { diff --git a/erts/etc/common/erlexec.c b/erts/etc/common/erlexec.c index c1fc2aebee..6ec2c8b52c 100644 --- a/erts/etc/common/erlexec.c +++ b/erts/etc/common/erlexec.c @@ -309,7 +309,7 @@ free_env_val(char *value) } /* - * Add the arcitecture suffix to the program name if needed, + * Add the architecture suffix to the program name if needed, * except on Windows, where we insert it just before ".DLL". */ static char* @@ -560,7 +560,7 @@ int main(int argc, char **argv) usage("+MYm"); } emu = add_extra_suffixes(emu, emu_type); - sprintf(tmpStr, "%s" DIRSEP "%s" BINARY_EXT, bindir, emu); + erts_snprintf(tmpStr, sizeof(tmpStr), "%s" DIRSEP "%s" BINARY_EXT, bindir, emu); emu = strsave(tmpStr); add_Eargs(emu); /* Will be argv[0] -- necessary! */ @@ -571,12 +571,12 @@ int main(int argc, char **argv) s = get_env("PATH"); if (!s) { - sprintf(tmpStr, "%s" PATHSEP "%s" DIRSEP "bin", bindir, rootdir); + erts_snprintf(tmpStr, sizeof(tmpStr), "%s" PATHSEP "%s" DIRSEP "bin", bindir, rootdir); } else if (strstr(s, bindir) == NULL) { - sprintf(tmpStr, "%s" PATHSEP "%s" DIRSEP "bin" PATHSEP "%s", bindir, + erts_snprintf(tmpStr, sizeof(tmpStr), "%s" PATHSEP "%s" DIRSEP "bin" PATHSEP "%s", bindir, rootdir, s); } else { - sprintf(tmpStr, "%s", s); + erts_snprintf(tmpStr, sizeof(tmpStr), "%s", s); } free_env_val(s); set_env("PATH", tmpStr); @@ -714,7 +714,7 @@ int main(int argc, char **argv) error("-man not supported on Windows"); #else argv[i] = "man"; - sprintf(tmpStr, "%s/man", rootdir); + erts_snprintf(tmpStr, sizeof(tmpStr), "%s/man", rootdir); set_env("MANPATH", tmpStr); execvp("man", argv+i); error("Could not execute the 'man' command."); @@ -1145,10 +1145,10 @@ start_epmd(char *epmd) if (!epmd) { epmd = epmd_cmd; #ifdef __WIN32__ - sprintf(epmd_cmd, "%s" DIRSEP "epmd", bindir); + erts_snprintf(epmd_cmd, sizeof(epmd_cmd), "%s" DIRSEP "epmd", bindir); arg1 = "-daemon"; #else - sprintf(epmd_cmd, "%s" DIRSEP "epmd -daemon", bindir); + erts_snprintf(epmd_cmd, sizeof(epmd_cmd), "%s" DIRSEP "epmd -daemon", bindir); #endif } #ifdef __WIN32__ @@ -1224,7 +1224,7 @@ void error(char* format, ...) va_list ap; va_start(ap, format); - vsprintf(sbuf, format, ap); + erts_vsnprintf(sbuf, sizeof(sbuf), format, ap); va_end(ap); fprintf(stderr, "erlexec: %s\n", sbuf); exit(1); @@ -1304,14 +1304,14 @@ static void get_start_erl_data(char *file) if (env) reldir = strsave(env); else { - sprintf(tmpbuffer, "%s/releases", rootdir); + erts_snprintf(tmpbuffer, sizeof(tmpbuffer), "%s/releases", rootdir); reldir = strsave(tmpbuffer); } free_env_val(env); if (file == NULL) - sprintf(start_erl_data, "%s/start_erl.data", reldir); + erts_snprintf(start_erl_data, sizeof(start_erl_data), "%s/start_erl.data", reldir); else - sprintf(start_erl_data, "%s", file); + erts_snprintf(start_erl_data, sizeof(start_erl_data), "%s", file); fp = _open(start_erl_data, _O_RDONLY ); if( fp == -1 ) error( "open failed on %s",start_erl_data ); @@ -1341,16 +1341,16 @@ static void get_start_erl_data(char *file) } bindir = emalloc(512); - sprintf(bindir,"%s/erts-%s/bin",rootdir,tmpbuffer); + erts_snprintf(bindir,512,"%s/erts-%s/bin",rootdir,tmpbuffer); /* BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin */ tprogname = progname; progname = emalloc(strlen(tprogname) + 20); - sprintf(progname,"%s -start_erl",tprogname); + erts_snprintf(progname,strlen(tprogname) + 20,"%s -start_erl",tprogname); boot_script = emalloc(512); config_script = emalloc(512); - sprintf(boot_script, "%s/%s/start", reldir, otpstring); - sprintf(config_script, "%s/%s/sys", reldir, otpstring); + erts_snprintf(boot_script, 512, "%s/%s/start", reldir, otpstring); + erts_snprintf(config_script, 512, "%s/%s/sys", reldir, otpstring); } @@ -1358,7 +1358,7 @@ static void get_start_erl_data(char *file) static char *replace_filename(char *path, char *new_base) { int plen = strlen(path); - char *res = malloc((plen+strlen(new_base)+1)*sizeof(char)); + char *res = emalloc((plen+strlen(new_base)+1)*sizeof(char)); char *p; strcpy(res,path); @@ -1373,7 +1373,7 @@ static char *path_massage(char *long_path) { char *p; - p = malloc(MAX_PATH+1); + p = emalloc(MAX_PATH+1); strcpy(p, long_path); GetShortPathName(p, p, MAX_PATH); return p; @@ -1509,7 +1509,8 @@ get_parameters(int argc, char** argv) /* Determine bindir from absolute path to executable */ char *p; char buffer[PATH_MAX]; - strcpy(buffer, argv[0]); + strncpy(buffer, argv[0], sizeof(buffer)); + buffer[sizeof(buffer)-1] = '\0'; for (p = buffer+strlen(buffer)-1 ; p >= buffer && *p != '/'; --p) ; @@ -1522,7 +1523,8 @@ get_parameters(int argc, char** argv) /* Determine rootdir from absolute path to bindir */ char *p; char buffer[PATH_MAX]; - strcpy(buffer, bindir); + strncpy(buffer, bindir, sizeof(buffer)); + buffer[sizeof(buffer)-1] = '\0'; for (p = buffer+strlen(buffer)-1; p >= buffer && *p != '/'; --p) ; diff --git a/erts/etc/common/escript.c b/erts/etc/common/escript.c index 1bc5eb7651..6ed79c91e3 100644 --- a/erts/etc/common/escript.c +++ b/erts/etc/common/escript.c @@ -151,6 +151,9 @@ find_prog(char *origpath) char relpath[PMAX]; char abspath[PMAX]; + if (strlen(origpath) >= sizeof(relpath)) + error("Path too long"); + strcpy(relpath, origpath); if (strstr(relpath, DIRSEPSTR) == NULL) { @@ -180,19 +183,21 @@ find_prog(char *origpath) end = strstr(beg, PATHSEPSTR); if (end != NULL) { sz = end - beg; - strncpy(dir, beg, sz); - dir[sz] = '\0'; } else { sz = strlen(beg); - strcpy(dir, beg); look_for_sep = FALSE; } + if (sz >= sizeof(dir)) { + beg = end + 1; + continue; + } + strncpy(dir, beg, sz); + dir[sz] = '\0'; beg = end + 1; #ifdef __WIN32__ - strcpy(wildcard, dir); - strcat(wildcard, DIRSEPSTR); - strcat(wildcard, relpath); /* basename */ + erts_snprintf(wildcard, sizeof(wildcard), "%s" DIRSEPSTR "%s", + dir, relpath /* basename */); dir_handle = FindFirstFile(wildcard, &find_data); if (dir_handle == INVALID_HANDLE_VALUE) { /* Try next directory in path */ @@ -217,9 +222,8 @@ find_prog(char *origpath) if (strcmp(origpath, dirp->d_name) == 0) { /* Wow we found the executable. */ - strcpy(relpath, dir); - strcat(relpath, DIRSEPSTR); - strcat(relpath, dirp->d_name); + erts_snprintf(relpath, sizeof(relpath), "%s" DIRSEPSTR "%s", + dir, dirp->d_name); closedir(dp); look_for_sep = FALSE; break; @@ -291,7 +295,7 @@ append_shebang_args(char* scriptname) /* Find end of arg */ end = beg; - while (end && end[0] != ' ') { + while (end && end < (linebuf+LINEBUFSZ-1) && end[0] != ' ') { if (end[0] == '\n') { newline = TRUE; end[0]= '\0'; @@ -335,13 +339,16 @@ main(int argc, char** argv) emulator = get_default_emulator(argv[0]); } + if (strlen(emulator) >= PMAX) + error("Value of environment variable ESCRIPT_EMULATOR is too large"); + /* * Allocate the argv vector to be used for arguments to Erlang. * Arrange for starting to pushing information in the middle of * the array, to allow easy addition of commands in the beginning. */ - eargv_size = argc*4+1000; + eargv_size = argc*4+1000+LINEBUFSZ/2; eargv_base = (char **) emalloc(eargv_size*sizeof(char*)); eargv = eargv_base; eargc = 0; @@ -387,7 +394,8 @@ main(int argc, char** argv) if (argc <= 1) { error("Missing filename\n"); } - strcpy(scriptname, argv[1]); + strncpy(scriptname, argv[1], sizeof(scriptname)); + scriptname[sizeof(scriptname)-1] = '\0'; argc--; argv++; } else { @@ -395,16 +403,17 @@ main(int argc, char** argv) int len; #endif absname = find_prog(argv[0]); - strcpy(scriptname, absname); - efree(absname); #ifdef __WIN32__ - len = strlen(scriptname); - if (len >= 4 && _stricmp(scriptname+len-4, ".exe") == 0) { - scriptname[len-4] = '\0'; + len = strlen(absname); + if (len >= 4 && _stricmp(absname+len-4, ".exe") == 0) { + absname[len-4] = '\0'; } #endif - strcat(scriptname, ".escript"); + erts_snprintf(scriptname, sizeof(scriptname), "%s.escript", + absname); + efree(absname); + } /* @@ -455,7 +464,7 @@ main(int argc, char** argv) static void push_words(char* src) { - char sbuf[1024]; + char sbuf[PMAX]; char* dst; dst = sbuf; @@ -584,7 +593,7 @@ error(char* format, ...) va_list ap; va_start(ap, format); - vsprintf(sbuf, format, ap); + erts_vsnprintf(sbuf, sizeof(sbuf), format, ap); va_end(ap); fprintf(stderr, "escript: %s\n", sbuf); exit(1); @@ -619,6 +628,9 @@ get_default_emulator(char* progname) char sbuf[MAXPATHLEN]; char* s; + if (strlen(progname) >= sizeof(sbuf)) + return ERL_NAME; + strcpy(sbuf, progname); for (s = sbuf+strlen(sbuf); s >= sbuf; s--) { if (IS_DIRSEP(*s)) { diff --git a/erts/etc/common/heart.c b/erts/etc/common/heart.c index 4f738947b7..3e19e5f386 100644 --- a/erts/etc/common/heart.c +++ b/erts/etc/common/heart.c @@ -375,7 +375,8 @@ main(int argc, char **argv) _setmode(erlin_fd,_O_BINARY); _setmode(erlout_fd,_O_BINARY); #endif - strcpy(program_name, argv[0]); + strncpy(program_name, argv[0], sizeof(program_name)); + program_name[sizeof(program_name)-1] = '\0'; notify_ack(erlout_fd); cmd[0] = '\0'; do_terminate(message_loop(erlin_fd,erlout_fd)); @@ -728,7 +729,11 @@ heart_cmd_reply(int fd, char *s) struct msg m; int len = strlen(s) + 1; /* Include \0 */ - /* FIXME if s >= MSG_BODY_SIZE error */ + /* if s >= MSG_BODY_SIZE, return a write + * failure immediately. + */ + if (len > sizeof(m.fill)) + return -1; m.op = HEART_CMD; m.len = htons(len + 2); /* Include Op */ diff --git a/erts/etc/common/run_test.c b/erts/etc/common/run_test.c index 016d9c6afd..042b8571ca 100644 --- a/erts/etc/common/run_test.c +++ b/erts/etc/common/run_test.c @@ -164,11 +164,13 @@ main(int argc, char** argv) erl_args = cnt; } else if (strcmp(argv[1], "-sname") == 0) { - strcpy(nodename, argv[2]); + strncpy(nodename, argv[2], sizeof(nodename)); + nodename[sizeof(nodename)-1] = '\0'; cnt++, argv++; } else if (strcmp(argv[1], "-name") == 0) { - strcpy(nodename, argv[2]); + strncpy(nodename, argv[2], sizeof(nodename)); + nodename[sizeof(nodename)-1] = '\0'; dist_mode = FULL_NAME; cnt++, argv++; } @@ -178,7 +180,8 @@ main(int argc, char** argv) ct_mode = VTS_MODE; } else if (strcmp(argv[1], "-browser") == 0) { - strcpy(browser, argv[2]); + strncpy(browser, argv[2], sizeof(browser)); + browser[sizeof(browser)-1] = '\0'; cnt++, argv++; } else if (strcmp(argv[1], "-shell") == 0) { @@ -189,7 +192,8 @@ main(int argc, char** argv) ct_mode = MASTER_MODE; } else if (strcmp(argv[1], "-ctname") == 0) { - strcpy(nodename, argv[2]); + strncpy(nodename, argv[2], sizeof(nodename)); + nodename[sizeof(nodename)-1] = '\0'; ct_mode = ERL_SHELL_MODE; cnt++, argv++; } @@ -273,7 +277,7 @@ main(int argc, char** argv) static void push_words(char* src) { - char sbuf[1024]; + char sbuf[MAXPATHLEN]; char* dst; dst = sbuf; @@ -405,7 +409,7 @@ error(char* format, ...) va_list ap; va_start(ap, format); - vsprintf(sbuf, format, ap); + erts_vsnprintf(sbuf, sizeof(sbuf), format, ap); va_end(ap); fprintf(stderr, "run_test: %s\n", sbuf); exit(1); @@ -434,6 +438,9 @@ get_default_emulator(char* progname) char sbuf[MAXPATHLEN]; char* s; + if (strlen(progname) >= sizeof(sbuf)) + return ERL_NAME; + strcpy(sbuf, progname); for (s = sbuf+strlen(sbuf); s >= sbuf; s--) { if (IS_DIRSEP(*s)) { diff --git a/erts/etc/common/typer.c b/erts/etc/common/typer.c index c2567cb8b4..de48daf002 100644 --- a/erts/etc/common/typer.c +++ b/erts/etc/common/typer.c @@ -175,7 +175,7 @@ main(int argc, char** argv) static void push_words(char* src) { - char sbuf[1024]; + char sbuf[MAXPATHLEN]; char* dst; dst = sbuf; @@ -307,7 +307,7 @@ error(char* format, ...) va_list ap; va_start(ap, format); - vsprintf(sbuf, format, ap); + erts_vsnprintf(sbuf, sizeof(sbuf), format, ap); va_end(ap); fprintf(stderr, "typer: %s\n", sbuf); exit(1); @@ -336,6 +336,9 @@ get_default_emulator(char* progname) char sbuf[MAXPATHLEN]; char* s; + if (strlen(progname) >= sizeof(sbuf)) + return ERL_NAME; + strcpy(sbuf, progname); for (s = sbuf+strlen(sbuf); s >= sbuf; s--) { if (IS_DIRSEP(*s)) { diff --git a/erts/etc/unix/cerl.src b/erts/etc/unix/cerl.src index 9dab9fcfcc..73b1bafbe0 100644 --- a/erts/etc/unix/cerl.src +++ b/erts/etc/unix/cerl.src @@ -66,6 +66,7 @@ core= GDB= GDBBP= +GDBARGS= TYPE= EMU_TYPE= debug= @@ -280,16 +281,11 @@ else # Set annotation level for gdb in emacs 22 and higher. emacs_major=`$EMACS --version | head -1 | sed 's,^[^0-9]*\([0-9]*\).*,\1,g'` if [ '!' -z "$emacs_major" -a $emacs_major -gt 21 ]; then - # Hack - wait for etp-commands to be loaded and then set - # annotation level, could be done more beautifully than with sit-for... - gdbcmd="$gdbcmd \ - (sit-for 1) \ - (insert-string \"set annotate 3\") \ - (comint-send-input)" + GDBARGS="--annotate=3 " fi gdbcmd="$gdbcmd $GDBBP \ (insert-string \"source $ROOTDIR/erts/etc/unix/etp-commands\") \ (comint-send-input)" # Fire up gdb in emacs... - exec $EMACS --eval "(progn (gdb \"gdb $EMU\") $gdbcmd)" + exec $EMACS --eval "(progn (gdb \"gdb $GDBARGS$EMU\") $gdbcmd)" fi diff --git a/erts/lib_src/common/erl_misc_utils.c b/erts/lib_src/common/erl_misc_utils.c index 116c9886d8..498ce6837a 100644 --- a/erts/lib_src/common/erl_misc_utils.c +++ b/erts/lib_src/common/erl_misc_utils.c @@ -1228,7 +1228,10 @@ read_topology(erts_cpu_info_t *cpuinfo) nodes++; } - core_id = malloc(sizeof(int)*(packages ? packages : 1)); + if (!packages) { + packages = 1; + } + core_id = malloc(sizeof(int)*packages); if (!core_id) { res = -ENOMEM; goto error; @@ -1286,11 +1289,13 @@ read_topology(erts_cpu_info_t *cpuinfo) * Nodes and packages may not be supported; pretend * that there are one if this is the case... */ - if (!nodes) - cpuinfo->topology[l].node = 0; - if (!packages) - cpuinfo->topology[l].processor = 0; if (slpip[rix].ProcessorMask & (((ULONG_PTR) 1) << l)) { + if (!nodes) { + cpuinfo->topology[l].node = 0; + } + if (!packages) { + cpuinfo->topology[l].processor = 0; + } if (processor < 0) { processor = cpuinfo->topology[l].processor; if (processor < 0) { diff --git a/erts/test/erlc_SUITE.erl b/erts/test/erlc_SUITE.erl index 437f020f99..4797f78be2 100644 --- a/erts/test/erlc_SUITE.erl +++ b/erts/test/erlc_SUITE.erl @@ -21,13 +21,13 @@ %% Tests the erlc command by compiling various types of files. -export([all/1, compile_erl/1, compile_yecc/1, compile_script/1, - compile_mib/1, good_citizen/1, deep_cwd/1]). + compile_mib/1, good_citizen/1, deep_cwd/1, arg_overflow/1]). -include_lib("test_server/include/test_server.hrl"). all(suite) -> [compile_erl, compile_yecc, compile_script, compile_mib, - good_citizen, deep_cwd]. + good_citizen, deep_cwd, arg_overflow]. %% Copy from erlc_SUITE_data/include/erl_test.hrl. @@ -189,6 +189,18 @@ deep_cwd_1(PrivDir) -> ?line true = filelib:is_file("test.beam"), ok. +%% Test that a large number of command line switches does not +%% overflow the argument buffer +arg_overflow(Config) when is_list(Config) -> + ?line {SrcDir, _OutDir, Cmd} = get_cmd(Config), + ?line FileName = filename:join(SrcDir, "erl_test_ok.erl"), + ?line Args = lists:flatten([ ["-D", integer_to_list(N), "=1 "] || + N <- lists:seq(1,10000) ]), + ?line run(Config, Cmd, FileName, Args, + ["Warning: function foo/0 is unused\$", + "_OK_"]), + ok. + erlc() -> case os:find_executable("erlc") of false -> diff --git a/lib/compiler/src/core_lint.erl b/lib/compiler/src/core_lint.erl index b633f568c9..b513a8965c 100644 --- a/lib/compiler/src/core_lint.erl +++ b/lib/compiler/src/core_lint.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1999-2009. All Rights Reserved. +%% Copyright Ericsson AB 1999-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -65,7 +65,8 @@ | {'return_mismatch', fa()} | {'undefined_function', fa()} | {'duplicate_var', cerl:var_name(), fa()} | {'unbound_var', cerl:var_name(), fa()} - | {'undefined_function', fa(), fa()}. + | {'undefined_function', fa(), fa()} + | {'tail_segment_not_at_end', fa()}. -type error() :: {module(), err_desc()}. -type warning() :: {module(), term()}. @@ -116,7 +117,9 @@ format_error({duplicate_var,N,{F,A}}) -> format_error({unbound_var,N,{F,A}}) -> io_lib:format("unbound variable ~s in ~w/~w", [N,F,A]); format_error({undefined_function,{F1,A1},{F2,A2}}) -> - io_lib:format("undefined function ~w/~w in ~w/~w", [F1,A1,F2,A2]). + io_lib:format("undefined function ~w/~w in ~w/~w", [F1,A1,F2,A2]); +format_error({tail_segment_not_at_end,{F,A}}) -> + io_lib:format("binary tail segment not at end in ~w/~w", [F,A]). -type ret() :: {'ok', [{module(), [warning(),...]}]} | {'error', [{module(), [error(),...]}], @@ -450,7 +453,8 @@ pattern(#c_cons{hd=H,tl=T}, Def, Ps, St) -> pattern_list([H,T], Def, Ps, St); pattern(#c_tuple{es=Es}, Def, Ps, St) -> pattern_list(Es, Def, Ps, St); -pattern(#c_binary{segments=Ss}, Def, Ps, St) -> +pattern(#c_binary{segments=Ss}, Def, Ps, St0) -> + St = pat_bin_tail_check(Ss, St0), pat_bin(Ss, Def, Ps, St); pattern(#c_alias{var=V,pat=P}, Def, Ps, St0) -> {Vvs,St1} = variable(V, Ps, St0), @@ -482,6 +486,19 @@ pat_segment(#c_bitstr{val=V,size=S,type=T}, Def0, Ps0, St0) -> pat_segment(_, Def, Ps, St) -> {Ps,Def,add_error({not_bs_pattern,St#lint.func}, St)}. +%% pat_bin_tail_check([Elem], State) -> State. +%% There must be at most one tail segment (a size-less segment of +%% type binary) and it must occur at the end. + +pat_bin_tail_check([#c_bitstr{size=#c_literal{val=all}}], St) -> + %% Size-less field is OK at the end of the list of segments. + St; +pat_bin_tail_check([#c_bitstr{size=#c_literal{val=all}}|_], St) -> + add_error({tail_segment_not_at_end,St#lint.func}, St); +pat_bin_tail_check([_|Ss], St) -> + pat_bin_tail_check(Ss, St); +pat_bin_tail_check([], St) -> St. + %% pat_bit_expr(SizePat, Type, Defined, State) -> State. %% Check the Size pattern, this is an input! Because of optimizations, %% we must allow any kind of constant and literal here. diff --git a/lib/compiler/src/v3_codegen.erl b/lib/compiler/src/v3_codegen.erl index 948937c438..77da6c8d00 100644 --- a/lib/compiler/src/v3_codegen.erl +++ b/lib/compiler/src/v3_codegen.erl @@ -1523,7 +1523,9 @@ cg_binary_size_1([], Bits, Acc) -> [{1,_}|_] -> {bs_init_bits,cg_binary_bytes_to_bits(Sizes, [])}; [{8,_}|_] -> - {bs_init2,[E || {8,E} <- Sizes]} + {bs_init2,[E || {8,E} <- Sizes]}; + [] -> + {bs_init_bits,[]} end. cg_binary_size_2({integer,N}, U, _, Next, Bits, Acc) -> diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl index f6bb45787c..2da24b2908 100644 --- a/lib/compiler/src/v3_core.erl +++ b/lib/compiler/src/v3_core.erl @@ -892,25 +892,22 @@ lc_tq(Line, E, [{generate,Lg,P,G}|Qs0], Mc, St0) -> lc_tq(Line, E, [{b_generate,Lg,P,G}|Qs0], Mc, St0) -> {Gs,Qs1} = splitwith(fun is_guard_test/1, Qs0), {Name,St1} = new_fun_name("blc", St0), - {Tname,St2} = new_var_name(St1), - LA = lineno_anno(Line, St2), + LA = lineno_anno(Line, St1), LAnno = #a{anno=LA}, - HeadBinPattern = pattern(P,St2), - #c_binary{segments=Ps} = HeadBinPattern, - {EPs,St3} = emasculate_segments(Ps,St2), - Tail = #c_var{anno=LA,name=Tname}, - TailSegment = #c_bitstr{val=Tail,size=#c_literal{val=all}, - unit=#c_literal{val=1}, - type=#c_literal{val=binary}, - flags=#c_literal{val=[big,unsigned]}}, - Pattern = HeadBinPattern#c_binary{segments=Ps ++ [TailSegment]}, - EPattern = HeadBinPattern#c_binary{segments=EPs ++ [TailSegment]}, + HeadBinPattern = pattern(P, St1), + #c_binary{segments=Ps0} = HeadBinPattern, + {Ps,Tail,St2} = append_tail_segment(Ps0, St1), + {EPs,St3} = emasculate_segments(Ps, St2), + Pattern = HeadBinPattern#c_binary{segments=Ps}, + EPattern = HeadBinPattern#c_binary{segments=EPs}, {Arg,St4} = new_var(St3), {Guardc,St5} = lc_guard_tests(Gs, St4), %These are always flat! + Tname = Tail#c_var.name, {Nc,[],St6} = expr({call,Lg,{atom,Lg,Name},[{var,Lg,Tname}]}, St5), {Bc,Bps,St7} = lc_tq(Line, E, Qs1, Nc, St6), {Gc,Gps,St10} = safe(G, St7), %Will be a function argument! Fc = function_clause([Arg], LA, {Name,1}), + {TailSegList,_,St} = append_tail_segment([], St10), Cs = [#iclause{anno=#a{anno=[compiler_generated|LA]}, pats=[Pattern], guard=Guardc, @@ -922,14 +919,14 @@ lc_tq(Line, E, [{b_generate,Lg,P,G}|Qs0], Mc, St0) -> op=#c_var{anno=LA,name={Name,1}}, args=[Tail]}]}, #iclause{anno=LAnno, - pats=[#c_binary{anno=LA, segments=[TailSegment]}],guard=[], + pats=[#c_binary{anno=LA,segments=TailSegList}],guard=[], body=[Mc]}], Fun = #ifun{anno=LAnno,id=[],vars=[Arg],clauses=Cs,fc=Fc}, {#iletrec{anno=LAnno,defs=[{{Name,1},Fun}], body=Gps ++ [#iapply{anno=LAnno, op=#c_var{anno=LA,name={Name,1}}, args=[Gc]}]}, - [],St10}; + [],St}; lc_tq(Line, E, [Fil0|Qs0], Mc, St0) -> %% Special case sequences guard tests. LA = lineno_anno(Line, St0), @@ -1037,26 +1034,24 @@ bc_tq1(Line, E, [{b_generate,Lg,P,G}|Qs0], AccExpr, St0) -> {Gs,Qs1} = splitwith(fun is_guard_test/1, Qs0), {Name,St1} = new_fun_name("lbc", St0), LA = lineno_anno(Line, St1), - {[Tail,AccVar],St2} = new_vars(LA, 2, St1), + {AccVar,St2} = new_var(LA, St1), LAnno = #a{anno=LA}, HeadBinPattern = pattern(P, St2), - #c_binary{segments=Ps} = HeadBinPattern, - {EPs,St3} = emasculate_segments(Ps, St2), - TailSegment = #c_bitstr{val=Tail,size=#c_literal{val=all}, - unit=#c_literal{val=1}, - type=#c_literal{val=binary}, - flags=#c_literal{val=[big,unsigned]}}, - Pattern = HeadBinPattern#c_binary{segments=Ps ++ [TailSegment]}, - EPattern = HeadBinPattern#c_binary{segments=EPs ++ [TailSegment]}, - {Arg,St4} = new_var(St3), + #c_binary{segments=Ps0} = HeadBinPattern, + {Ps,Tail,St3} = append_tail_segment(Ps0, St2), + {EPs,St4} = emasculate_segments(Ps, St3), + Pattern = HeadBinPattern#c_binary{segments=Ps}, + EPattern = HeadBinPattern#c_binary{segments=EPs}, + {Arg,St5} = new_var(St4), NewMore = {call,Lg,{atom,Lg,Name},[{var,Lg,Tail#c_var.name}, {var,Lg,AccVar#c_var.name}]}, - {Guardc,St5} = lc_guard_tests(Gs, St4), %These are always flat! - {Bc,Bps,St6} = bc_tq1(Line, E, Qs1, AccVar, St5), - {Nc,Nps,St7} = expr(NewMore, St6), - {Gc,Gps,St8} = safe(G, St7), %Will be a function argument! + {Guardc,St6} = lc_guard_tests(Gs, St5), %These are always flat! + {Bc,Bps,St7} = bc_tq1(Line, E, Qs1, AccVar, St6), + {Nc,Nps,St8} = expr(NewMore, St7), + {Gc,Gps,St9} = safe(G, St8), %Will be a function argument! Fc = function_clause([Arg,AccVar], LA, {Name,2}), Body = Bps ++ Nps ++ [#iset{var=AccVar,arg=Bc},Nc], + {TailSegList,_,St} = append_tail_segment([], St9), Cs = [#iclause{anno=LAnno, pats=[Pattern,AccVar], guard=Guardc, @@ -1066,7 +1061,7 @@ bc_tq1(Line, E, [{b_generate,Lg,P,G}|Qs0], AccExpr, St0) -> guard=[], body=Nps ++ [Nc]}, #iclause{anno=LAnno, - pats=[#c_binary{anno=LA,segments=[TailSegment]},AccVar], + pats=[#c_binary{anno=LA,segments=TailSegList},AccVar], guard=[], body=[AccVar]}], Fun = #ifun{anno=LAnno,id=[],vars=[Arg,AccVar],clauses=Cs,fc=Fc}, @@ -1074,7 +1069,7 @@ bc_tq1(Line, E, [{b_generate,Lg,P,G}|Qs0], AccExpr, St0) -> body=Gps ++ [#iapply{anno=LAnno, op=#c_var{anno=LA,name={Name,2}}, args=[Gc,AccExpr]}]}, - [],St8}; + [],St}; bc_tq1(Line, E, [Fil0|Qs0], AccVar, St0) -> %% Special case sequences guard tests. LA = lineno_anno(Line, St0), @@ -1120,6 +1115,29 @@ bc_tq1(_, {bin,Bl,Elements}, [], AccVar, St0) -> %%Anno = Anno0#a{anno=[compiler_generated|A]}, {set_anno(E, Anno),Pre,St}. +append_tail_segment(Segs, St) -> + app_tail_seg(Segs, St, []). + +app_tail_seg([#c_bitstr{val=Var0,size=#c_literal{val=all}}=Seg0]=L, + St0, Acc) -> + case Var0 of + #c_var{name='_'} -> + {Var,St} = new_var(St0), + Seg = Seg0#c_bitstr{val=Var}, + {reverse(Acc, [Seg]),Var,St}; + #c_var{} -> + {reverse(Acc, L),Var0,St0} + end; +app_tail_seg([H|T], St, Acc) -> + app_tail_seg(T, St, [H|Acc]); +app_tail_seg([], St0, Acc) -> + {Var,St} = new_var(St0), + Tail = #c_bitstr{val=Var,size=#c_literal{val=all}, + unit=#c_literal{val=1}, + type=#c_literal{val=binary}, + flags=#c_literal{val=[unsigned,big]}}, + {reverse(Acc, [Tail]),Var,St}. + emasculate_segments(Segs, St) -> emasculate_segments(Segs, St, []). diff --git a/lib/compiler/test/bs_bincomp_SUITE.erl b/lib/compiler/test/bs_bincomp_SUITE.erl index a64a5d590b..74f69893af 100644 --- a/lib/compiler/test/bs_bincomp_SUITE.erl +++ b/lib/compiler/test/bs_bincomp_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2006-2009. All Rights Reserved. +%% Copyright Ericsson AB 2006-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -24,7 +24,7 @@ -export([all/1, byte_aligned/1,bit_aligned/1,extended_byte_aligned/1, extended_bit_aligned/1,mixed/1,filters/1,trim_coverage/1, - nomatch/1,sizes/1]). + nomatch/1,sizes/1,tail/1]). -include("test_server.hrl"). @@ -32,7 +32,7 @@ all(suite) -> test_lib:recompile(?MODULE), [byte_aligned,bit_aligned,extended_byte_aligned, extended_bit_aligned,mixed,filters,trim_coverage, - nomatch,sizes]. + nomatch,sizes,tail]. byte_aligned(Config) when is_list(Config) -> @@ -270,6 +270,38 @@ sizes(Config) when is_list(Config) -> ?line cs_end(), ok. +tail(Config) when is_list(Config) -> + ?line [] = tail_1(<<0:7>>), + ?line [0] = tail_1(<<0>>), + ?line [0] = tail_1(<<0:12>>), + ?line [0,0] = tail_1(<<0:20>>), + + ?line [] = tail_2(<<0:7>>), + ?line [42] = tail_2(<<0>>), + ?line [] = tail_2(<<0:12>>), + ?line [42,42] = tail_2(<<0,1>>), + + ?line <<>> = tail_3(<<0:7>>), + ?line <<42>> = tail_3(<<0>>), + ?line <<42>> = tail_3(<<0:12>>), + ?line <<42,42>> = tail_3(<<0:20>>), + + ?line [] = tail_4(<<0:15>>), + ?line [7] = tail_4(<<7,8>>), + ?line [9] = tail_4(<<9,17:12>>), + ok. + +tail_1(Bits) -> + [X || <<X:8/integer, _/bits>> <= Bits]. + +tail_2(Bits) -> + [42 || <<_:8/integer, _/bytes>> <= Bits]. + +tail_3(Bits) -> + << <<42>> || <<_:8/integer, _/bits>> <= Bits >>. + +tail_4(Bits) -> + [X || <<X:8/integer, Tail/bits>> <= Bits, bit_size(Tail) >= 8]. cs_init() -> diff --git a/lib/compiler/test/bs_construct_SUITE.erl b/lib/compiler/test/bs_construct_SUITE.erl index 1862a28bbe..dfe4301791 100644 --- a/lib/compiler/test/bs_construct_SUITE.erl +++ b/lib/compiler/test/bs_construct_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2004-2009. All Rights Reserved. +%% Copyright Ericsson AB 2004-2010. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -66,6 +66,8 @@ id(I) -> I. l(I_13, I_big1, I_16, Bin) -> [ + ?T(<<I_13:0>>, + []), ?T(<<-43>>, [256-43]), ?T(<<4:4,7:4>>, diff --git a/lib/erl_interface/src/misc/ei_format.c b/lib/erl_interface/src/misc/ei_format.c index 08235d0ebe..b35421d4b2 100644 --- a/lib/erl_interface/src/misc/ei_format.c +++ b/lib/erl_interface/src/misc/ei_format.c @@ -106,6 +106,8 @@ static int eiformat(const char** fmt, union arg** args, ei_x_buff* x) default: if (isdigit((int)*p)) res = pdigit(&p, x); + else if ((*p == '-' || *p == '+') && isdigit((int)*(p+1))) + res = pdigit(&p, x); else if (islower((int)*p)) res = patom(&p, x); else @@ -149,6 +151,8 @@ static int pdigit(const char** fmt, ei_x_buff* x) double d; long l; + if (**fmt == '-' || **fmt == '+') + (*fmt)++; for (;;) { c = *(*fmt)++; if (isdigit((int)c)) diff --git a/lib/erl_interface/src/prog/erl_call.c b/lib/erl_interface/src/prog/erl_call.c index 448de9aa23..33ff6da7c9 100644 --- a/lib/erl_interface/src/prog/erl_call.c +++ b/lib/erl_interface/src/prog/erl_call.c @@ -118,7 +118,6 @@ static void usage_arg(const char *progname, const char *switchname); static void usage_error(const char *progname, const char *switchname); static void usage(const char *progname); static int get_module(char **mbuf, char **mname); -static struct hostent* get_hostent(char *host); static int do_connect(ei_cnode *ec, char *nodename, struct call_flags *flags); static int read_stdin(char **buf); static void split_apply_string(char *str, char **mod, @@ -367,8 +366,8 @@ int erl_call(int argc, char **argv) * Expand name to a real name (may be ip-address) */ /* FIXME better error string */ - if ((hp = get_hostent(host)) == 0) { - fprintf(stderr,"erl_call: can't get_hostent(%s)\n", host); + if ((hp = ei_gethostbyname(host)) == 0) { + fprintf(stderr,"erl_call: can't ei_gethostbyname(%s)\n", host); exit(1); } /* If shortnames, cut off the name at first '.' */ @@ -604,32 +603,6 @@ int erl_call(int argc, char **argv) * ***************************************************************************/ -/* - * Get host entry (by address or name) - */ -/* FIXME: will fail on names like '2fun4you'. */ -static struct hostent* get_hostent(char *host) -{ - if (isdigit((int)*host)) { - struct in_addr ip_addr; - int b1, b2, b3, b4; - long addr; - - /* FIXME: Use inet_aton() (or inet_pton() and get v6 for free). */ - if (sscanf(host, "%d.%d.%d.%d", &b1, &b2, &b3, &b4) != 4) { - return NULL; - } - addr = inet_addr(host); - ip_addr.s_addr = htonl(addr); - - return ei_gethostbyaddr((char *)&ip_addr,sizeof(struct in_addr), AF_INET); - } - - return ei_gethostbyname(host); -} /* get_hostent */ - - - /* * This function does only return on success. diff --git a/lib/erl_interface/test/ei_format_SUITE.erl b/lib/erl_interface/test/ei_format_SUITE.erl index 7871f07ae9..cbe9fa52d7 100644 --- a/lib/erl_interface/test/ei_format_SUITE.erl +++ b/lib/erl_interface/test/ei_format_SUITE.erl @@ -155,7 +155,7 @@ format_wo_ver(suite) -> []; format_wo_ver(Config) when is_list(Config) -> ?line P = runner:start(?format_wo_ver), - ?line {term, [{a, "b"}, {c, 10}]} = get_term(P), + ?line {term, [-1, 2, {a, "b"}, {c, 10}]} = get_term(P), ?line runner:recv_eot(P), ok. diff --git a/lib/erl_interface/test/ei_format_SUITE_data/ei_format_test.c b/lib/erl_interface/test/ei_format_SUITE_data/ei_format_test.c index a969ded3dc..ecdce402f5 100644 --- a/lib/erl_interface/test/ei_format_SUITE_data/ei_format_test.c +++ b/lib/erl_interface/test/ei_format_SUITE_data/ei_format_test.c @@ -176,7 +176,7 @@ TESTCASE(format_wo_ver) { ei_x_buff x; ei_x_new (&x); - ei_x_format(&x, "[{~a,~s},{~a,~i}]", "a", "b", "c", 10); + ei_x_format(&x, "[-1, +2, {~a,~s},{~a,~i}]", "a", "b", "c", 10); send_bin_term(&x); free(x.buff); diff --git a/lib/stdlib/doc/src/filelib.xml b/lib/stdlib/doc/src/filelib.xml index c1c4ca9350..4ff3b22f32 100644 --- a/lib/stdlib/doc/src/filelib.xml +++ b/lib/stdlib/doc/src/filelib.xml @@ -4,7 +4,7 @@ <erlref> <header> <copyright> - <year>2003</year><year>2009</year> + <year>2003</year><year>2010</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -160,6 +160,12 @@ DeepList = [char() | atom() | DeepList]</code> <p>Matches any number of characters up to the end of the filename, the next dot, or the next slash.</p> </item> + <tag>[Character1,Character2,...]</tag> + <item> + <p>Matches any of the characters listed. Two characters + separated by a hyphen will match a range of characters. + Example: <c>[A-Z]</c> will match any uppercase letter.</p> + </item> <tag>{Item,...}</tag> <item> <p>Alternation. Matches one of the alternatives.</p> diff --git a/lib/stdlib/test/escript_SUITE.erl b/lib/stdlib/test/escript_SUITE.erl index 77fd190e45..162ca6006f 100644 --- a/lib/stdlib/test/escript_SUITE.erl +++ b/lib/stdlib/test/escript_SUITE.erl @@ -31,6 +31,7 @@ epp/1, create_and_extract/1, foldl/1, + overflow/1, verify_sections/3 ]). @@ -48,7 +49,8 @@ all(suite) -> archive_script, epp, create_and_extract, - foldl + foldl, + overflow ]. init_per_testcase(_Case, Config) -> @@ -736,6 +738,17 @@ emulate_escript_foldl(Fun, Acc, File) -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +overflow(Config) when is_list(Config) -> + Data = ?config(data_dir, Config), + Dir = filename:absname(Data), %Get rid of trailing slash. + ?line run(Dir, "arg_overflow", + [<<"ExitCode:0">>]), + ?line run(Dir, "linebuf_overflow", + [<<"ExitCode:0">>]), + ok. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + run(Dir, Cmd0, Expected0) -> Expected = iolist_to_binary(expected_output(Expected0, Dir)), Cmd = case os:type() of diff --git a/lib/stdlib/test/escript_SUITE_data/arg_overflow b/lib/stdlib/test/escript_SUITE_data/arg_overflow new file mode 100755 index 0000000000..dd5accc051 --- /dev/null +++ b/lib/stdlib/test/escript_SUITE_data/arg_overflow @@ -0,0 +1,5 @@ +#! /usr/bin/env escript +%% -*- erlang -*- +%%!x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x +main(_) -> + halt(0). diff --git a/lib/stdlib/test/escript_SUITE_data/linebuf_overflow b/lib/stdlib/test/escript_SUITE_data/linebuf_overflow new file mode 100755 index 0000000000..33133c1ce9 --- /dev/null +++ b/lib/stdlib/test/escript_SUITE_data/linebuf_overflow @@ -0,0 +1,5 @@ +#! /usr/bin/env escript +%% -*- erlang -*- +%%!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +main(_) -> + halt(0). |