diff options
182 files changed, 2019 insertions, 1503 deletions
diff --git a/bootstrap/bin/start.boot b/bootstrap/bin/start.boot Binary files differindex 940541dbf8..71d72c4b7d 100644 --- a/bootstrap/bin/start.boot +++ b/bootstrap/bin/start.boot diff --git a/bootstrap/bin/start.script b/bootstrap/bin/start.script index 08ed9939f7..2d6b18ae0c 100644 --- a/bootstrap/bin/start.script +++ b/bootstrap/bin/start.script @@ -1,4 +1,4 @@ -%% script generated at {2010,5,11} {9,2,55} +%% script generated at {2010,6,2} {14,44,59} {script, {"OTP APN 181 01","R14A"}, [{preLoaded, @@ -24,7 +24,7 @@ standard_error,user,user_drv,user_sup,wrap_log_reader]}, {path,["$ROOT/lib/stdlib/ebin"]}, {primLoad, - [array,base64,beam_lib,c,calendar,dets,dets_server,dets_sup, + [array,base64,beam_lib,binary,c,calendar,dets,dets_server,dets_sup, dets_utils,dets_v8,dets_v9,dict,digraph,digraph_utils,edlin, edlin_expand,epp,erl_bits,erl_compile,erl_eval,erl_expand_records, erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,erl_scan, @@ -83,19 +83,19 @@ {vsn,"1.17"}, {id,[]}, {modules, - [array,base64,beam_lib,c,calendar,dets,dets_server, - dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph, - digraph_utils,edlin,edlin_expand,epp,eval_bits, - erl_bits,erl_compile,erl_eval,erl_expand_records, - erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp, - erl_scan,erl_tar,error_logger_file_h, - error_logger_tty_h,escript,ets,file_sorter,filelib, - filename,gb_trees,gb_sets,gen,gen_event,gen_fsm, - gen_server,io,io_lib,io_lib_format,io_lib_fread, - io_lib_pretty,lib,lists,log_mf_h,math,ms_transform, - orddict,ordsets,otp_internal,pg,pool,proc_lib, - proplists,qlc,qlc_pt,queue,random,re,regexp,sets, - shell,shell_default,slave,sofs,string,supervisor, + [array,base64,beam_lib,binary,c,calendar,dets, + dets_server,dets_sup,dets_utils,dets_v8,dets_v9,dict, + digraph,digraph_utils,edlin,edlin_expand,epp, + eval_bits,erl_bits,erl_compile,erl_eval, + erl_expand_records,erl_internal,erl_lint,erl_parse, + erl_posix_msg,erl_pp,erl_scan,erl_tar, + error_logger_file_h,error_logger_tty_h,escript,ets, + file_sorter,filelib,filename,gb_trees,gb_sets,gen, + gen_event,gen_fsm,gen_server,io,io_lib,io_lib_format, + io_lib_fread,io_lib_pretty,lib,lists,log_mf_h,math, + ms_transform,orddict,ordsets,otp_internal,pg,pool, + proc_lib,proplists,qlc,qlc_pt,queue,random,re,regexp, + sets,shell,shell_default,slave,sofs,string,supervisor, supervisor_bridge,sys,timer,unicode,win32reg,zip]}, {registered, [timer_server,rsh_starter,take_over_monitor, diff --git a/bootstrap/bin/start_clean.boot b/bootstrap/bin/start_clean.boot Binary files differindex 940541dbf8..71d72c4b7d 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 08ed9939f7..2d6b18ae0c 100644 --- a/bootstrap/bin/start_clean.script +++ b/bootstrap/bin/start_clean.script @@ -1,4 +1,4 @@ -%% script generated at {2010,5,11} {9,2,55} +%% script generated at {2010,6,2} {14,44,59} {script, {"OTP APN 181 01","R14A"}, [{preLoaded, @@ -24,7 +24,7 @@ standard_error,user,user_drv,user_sup,wrap_log_reader]}, {path,["$ROOT/lib/stdlib/ebin"]}, {primLoad, - [array,base64,beam_lib,c,calendar,dets,dets_server,dets_sup, + [array,base64,beam_lib,binary,c,calendar,dets,dets_server,dets_sup, dets_utils,dets_v8,dets_v9,dict,digraph,digraph_utils,edlin, edlin_expand,epp,erl_bits,erl_compile,erl_eval,erl_expand_records, erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,erl_scan, @@ -83,19 +83,19 @@ {vsn,"1.17"}, {id,[]}, {modules, - [array,base64,beam_lib,c,calendar,dets,dets_server, - dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph, - digraph_utils,edlin,edlin_expand,epp,eval_bits, - erl_bits,erl_compile,erl_eval,erl_expand_records, - erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp, - erl_scan,erl_tar,error_logger_file_h, - error_logger_tty_h,escript,ets,file_sorter,filelib, - filename,gb_trees,gb_sets,gen,gen_event,gen_fsm, - gen_server,io,io_lib,io_lib_format,io_lib_fread, - io_lib_pretty,lib,lists,log_mf_h,math,ms_transform, - orddict,ordsets,otp_internal,pg,pool,proc_lib, - proplists,qlc,qlc_pt,queue,random,re,regexp,sets, - shell,shell_default,slave,sofs,string,supervisor, + [array,base64,beam_lib,binary,c,calendar,dets, + dets_server,dets_sup,dets_utils,dets_v8,dets_v9,dict, + digraph,digraph_utils,edlin,edlin_expand,epp, + eval_bits,erl_bits,erl_compile,erl_eval, + erl_expand_records,erl_internal,erl_lint,erl_parse, + erl_posix_msg,erl_pp,erl_scan,erl_tar, + error_logger_file_h,error_logger_tty_h,escript,ets, + file_sorter,filelib,filename,gb_trees,gb_sets,gen, + gen_event,gen_fsm,gen_server,io,io_lib,io_lib_format, + io_lib_fread,io_lib_pretty,lib,lists,log_mf_h,math, + ms_transform,orddict,ordsets,otp_internal,pg,pool, + proc_lib,proplists,qlc,qlc_pt,queue,random,re,regexp, + sets,shell,shell_default,slave,sofs,string,supervisor, supervisor_bridge,sys,timer,unicode,win32reg,zip]}, {registered, [timer_server,rsh_starter,take_over_monitor, diff --git a/bootstrap/lib/compiler/ebin/beam_asm.beam b/bootstrap/lib/compiler/ebin/beam_asm.beam Binary files differindex 2db98a2013..23046bac9f 100644 --- a/bootstrap/lib/compiler/ebin/beam_asm.beam +++ b/bootstrap/lib/compiler/ebin/beam_asm.beam diff --git a/bootstrap/lib/compiler/ebin/beam_block.beam b/bootstrap/lib/compiler/ebin/beam_block.beam Binary files differindex e494c90788..4d71b65e23 100644 --- a/bootstrap/lib/compiler/ebin/beam_block.beam +++ b/bootstrap/lib/compiler/ebin/beam_block.beam diff --git a/bootstrap/lib/compiler/ebin/beam_bool.beam b/bootstrap/lib/compiler/ebin/beam_bool.beam Binary files differindex a1ff7e705d..ef6e7823cc 100644 --- a/bootstrap/lib/compiler/ebin/beam_bool.beam +++ b/bootstrap/lib/compiler/ebin/beam_bool.beam diff --git a/bootstrap/lib/compiler/ebin/beam_bsm.beam b/bootstrap/lib/compiler/ebin/beam_bsm.beam Binary files differindex 87bdc81d1e..fb331ee690 100644 --- a/bootstrap/lib/compiler/ebin/beam_bsm.beam +++ b/bootstrap/lib/compiler/ebin/beam_bsm.beam diff --git a/bootstrap/lib/compiler/ebin/beam_clean.beam b/bootstrap/lib/compiler/ebin/beam_clean.beam Binary files differindex 9127a20bda..0b28815f2a 100644 --- a/bootstrap/lib/compiler/ebin/beam_clean.beam +++ b/bootstrap/lib/compiler/ebin/beam_clean.beam diff --git a/bootstrap/lib/compiler/ebin/beam_dead.beam b/bootstrap/lib/compiler/ebin/beam_dead.beam Binary files differindex bdba7d1bfd..56288dc79e 100644 --- a/bootstrap/lib/compiler/ebin/beam_dead.beam +++ b/bootstrap/lib/compiler/ebin/beam_dead.beam diff --git a/bootstrap/lib/compiler/ebin/beam_disasm.beam b/bootstrap/lib/compiler/ebin/beam_disasm.beam Binary files differindex b58b44c68c..c8e2b27623 100644 --- a/bootstrap/lib/compiler/ebin/beam_disasm.beam +++ b/bootstrap/lib/compiler/ebin/beam_disasm.beam diff --git a/bootstrap/lib/compiler/ebin/beam_flatten.beam b/bootstrap/lib/compiler/ebin/beam_flatten.beam Binary files differindex 8546e1233a..402f2a14ae 100644 --- a/bootstrap/lib/compiler/ebin/beam_flatten.beam +++ b/bootstrap/lib/compiler/ebin/beam_flatten.beam diff --git a/bootstrap/lib/compiler/ebin/beam_jump.beam b/bootstrap/lib/compiler/ebin/beam_jump.beam Binary files differindex 2643874e07..1ee7b725fb 100644 --- a/bootstrap/lib/compiler/ebin/beam_jump.beam +++ b/bootstrap/lib/compiler/ebin/beam_jump.beam diff --git a/bootstrap/lib/compiler/ebin/beam_opcodes.beam b/bootstrap/lib/compiler/ebin/beam_opcodes.beam Binary files differindex 8c5378e05e..6ded472cb0 100644 --- a/bootstrap/lib/compiler/ebin/beam_opcodes.beam +++ b/bootstrap/lib/compiler/ebin/beam_opcodes.beam diff --git a/bootstrap/lib/compiler/ebin/beam_peep.beam b/bootstrap/lib/compiler/ebin/beam_peep.beam Binary files differindex 9fcb2536c8..279dd272b5 100644 --- a/bootstrap/lib/compiler/ebin/beam_peep.beam +++ b/bootstrap/lib/compiler/ebin/beam_peep.beam diff --git a/bootstrap/lib/compiler/ebin/beam_receive.beam b/bootstrap/lib/compiler/ebin/beam_receive.beam Binary files differindex ef7afd8113..4d88e80acd 100644 --- a/bootstrap/lib/compiler/ebin/beam_receive.beam +++ b/bootstrap/lib/compiler/ebin/beam_receive.beam diff --git a/bootstrap/lib/compiler/ebin/beam_trim.beam b/bootstrap/lib/compiler/ebin/beam_trim.beam Binary files differindex 74b0cec2f6..5c0d405843 100644 --- a/bootstrap/lib/compiler/ebin/beam_trim.beam +++ b/bootstrap/lib/compiler/ebin/beam_trim.beam diff --git a/bootstrap/lib/compiler/ebin/beam_type.beam b/bootstrap/lib/compiler/ebin/beam_type.beam Binary files differindex 2f2b518994..cccf58b7a4 100644 --- a/bootstrap/lib/compiler/ebin/beam_type.beam +++ b/bootstrap/lib/compiler/ebin/beam_type.beam diff --git a/bootstrap/lib/compiler/ebin/beam_utils.beam b/bootstrap/lib/compiler/ebin/beam_utils.beam Binary files differindex 51975f77d4..7b9c08439e 100644 --- a/bootstrap/lib/compiler/ebin/beam_utils.beam +++ b/bootstrap/lib/compiler/ebin/beam_utils.beam diff --git a/bootstrap/lib/compiler/ebin/beam_validator.beam b/bootstrap/lib/compiler/ebin/beam_validator.beam Binary files differindex e04c9efa69..9dda0621c0 100644 --- a/bootstrap/lib/compiler/ebin/beam_validator.beam +++ b/bootstrap/lib/compiler/ebin/beam_validator.beam diff --git a/bootstrap/lib/compiler/ebin/cerl.beam b/bootstrap/lib/compiler/ebin/cerl.beam Binary files differindex b0fef4fd1a..9f45f9f441 100644 --- a/bootstrap/lib/compiler/ebin/cerl.beam +++ b/bootstrap/lib/compiler/ebin/cerl.beam diff --git a/bootstrap/lib/compiler/ebin/compile.beam b/bootstrap/lib/compiler/ebin/compile.beam Binary files differindex 3d44822af6..3db3a08335 100644 --- a/bootstrap/lib/compiler/ebin/compile.beam +++ b/bootstrap/lib/compiler/ebin/compile.beam diff --git a/bootstrap/lib/compiler/ebin/core_lib.beam b/bootstrap/lib/compiler/ebin/core_lib.beam Binary files differindex 43c29138b8..8796f7e13e 100644 --- a/bootstrap/lib/compiler/ebin/core_lib.beam +++ b/bootstrap/lib/compiler/ebin/core_lib.beam diff --git a/bootstrap/lib/compiler/ebin/core_lint.beam b/bootstrap/lib/compiler/ebin/core_lint.beam Binary files differindex 75e8b9b162..e7db1d3f72 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 19202ce827..631c5d6aba 100644 --- a/bootstrap/lib/compiler/ebin/core_parse.beam +++ b/bootstrap/lib/compiler/ebin/core_parse.beam diff --git a/bootstrap/lib/compiler/ebin/core_pp.beam b/bootstrap/lib/compiler/ebin/core_pp.beam Binary files differindex 94baecf93c..fb9001c52f 100644 --- a/bootstrap/lib/compiler/ebin/core_pp.beam +++ b/bootstrap/lib/compiler/ebin/core_pp.beam diff --git a/bootstrap/lib/compiler/ebin/core_scan.beam b/bootstrap/lib/compiler/ebin/core_scan.beam Binary files differindex d9a088f4c6..cd2146d722 100644 --- a/bootstrap/lib/compiler/ebin/core_scan.beam +++ b/bootstrap/lib/compiler/ebin/core_scan.beam diff --git a/bootstrap/lib/compiler/ebin/erl_bifs.beam b/bootstrap/lib/compiler/ebin/erl_bifs.beam Binary files differindex 8132234cb1..128f8a88d2 100644 --- a/bootstrap/lib/compiler/ebin/erl_bifs.beam +++ b/bootstrap/lib/compiler/ebin/erl_bifs.beam diff --git a/bootstrap/lib/compiler/ebin/rec_env.beam b/bootstrap/lib/compiler/ebin/rec_env.beam Binary files differindex 9e3d93482e..8a1de81396 100644 --- a/bootstrap/lib/compiler/ebin/rec_env.beam +++ b/bootstrap/lib/compiler/ebin/rec_env.beam diff --git a/bootstrap/lib/compiler/ebin/sys_core_fold.beam b/bootstrap/lib/compiler/ebin/sys_core_fold.beam Binary files differindex 6d96618ce7..f780a2fae6 100644 --- a/bootstrap/lib/compiler/ebin/sys_core_fold.beam +++ b/bootstrap/lib/compiler/ebin/sys_core_fold.beam diff --git a/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam b/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam Binary files differindex c0b1ebd802..3323279d7d 100644 --- a/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam +++ b/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam diff --git a/bootstrap/lib/compiler/ebin/sys_pre_expand.beam b/bootstrap/lib/compiler/ebin/sys_pre_expand.beam Binary files differindex 2333028391..919e97fe3e 100644 --- a/bootstrap/lib/compiler/ebin/sys_pre_expand.beam +++ b/bootstrap/lib/compiler/ebin/sys_pre_expand.beam diff --git a/bootstrap/lib/compiler/ebin/v3_codegen.beam b/bootstrap/lib/compiler/ebin/v3_codegen.beam Binary files differindex d55373f6ac..5555d01b2a 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 df65af76c7..5d889ea4f3 100644 --- a/bootstrap/lib/compiler/ebin/v3_core.beam +++ b/bootstrap/lib/compiler/ebin/v3_core.beam diff --git a/bootstrap/lib/compiler/ebin/v3_kernel.beam b/bootstrap/lib/compiler/ebin/v3_kernel.beam Binary files differindex 2f3efc7dfb..f87360f259 100644 --- a/bootstrap/lib/compiler/ebin/v3_kernel.beam +++ b/bootstrap/lib/compiler/ebin/v3_kernel.beam diff --git a/bootstrap/lib/compiler/ebin/v3_life.beam b/bootstrap/lib/compiler/ebin/v3_life.beam Binary files differindex 3b39cffbf9..3f0a409447 100644 --- a/bootstrap/lib/compiler/ebin/v3_life.beam +++ b/bootstrap/lib/compiler/ebin/v3_life.beam diff --git a/bootstrap/lib/compiler/egen/beam_opcodes.erl b/bootstrap/lib/compiler/egen/beam_opcodes.erl index 05587800b4..fda227f90f 100644 --- a/bootstrap/lib/compiler/egen/beam_opcodes.erl +++ b/bootstrap/lib/compiler/egen/beam_opcodes.erl @@ -8,7 +8,7 @@ -spec format_number() -> 0. format_number() -> 0. --spec opcode(atom(), 0..8) -> 1..151. +-spec opcode(atom(), 0..8) -> 1..152. opcode(label, 1) -> 1; opcode(func_info, 3) -> 2; opcode(int_code_end, 0) -> 3; @@ -118,7 +118,7 @@ opcode(try_case, 1) -> 106; opcode(try_case_end, 1) -> 107; opcode(raise, 2) -> 108; opcode(bs_init2, 6) -> 109; -opcode(bs_bits_to_bytes, 3) -> 110; +%%opcode(bs_bits_to_bytes, 3) -> 110; opcode(bs_add, 5) -> 111; opcode(apply, 1) -> 112; opcode(apply_last, 2) -> 113; @@ -160,9 +160,10 @@ opcode(bs_put_utf32, 3) -> 148; opcode(on_load, 0) -> 149; opcode(recv_mark, 1) -> 150; opcode(recv_set, 1) -> 151; +opcode(gc_bif3, 7) -> 152; opcode(Name, Arity) -> erlang:error(badarg, [Name,Arity]). --spec opname(1..151) -> {atom(),0..8}. +-spec opname(1..152) -> {atom(),0..8}. opname(1) -> {label,1}; opname(2) -> {func_info,3}; opname(3) -> {int_code_end,0}; @@ -314,4 +315,5 @@ opname(148) -> {bs_put_utf32,3}; opname(149) -> {on_load,0}; opname(150) -> {recv_mark,1}; opname(151) -> {recv_set,1}; +opname(152) -> {gc_bif3,7}; opname(Number) -> erlang:error(badarg, [Number]). diff --git a/bootstrap/lib/compiler/egen/core_parse.erl b/bootstrap/lib/compiler/egen/core_parse.erl index 093ab4d1a3..05624beb14 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/lib/erlang/lib/parsetools-2.0.2/include/yeccpre.hrl", 0). +-file("/usr/local/otp/releases/sles10_32_R13B04_patched/lib/parsetools-2.0.2/include/yeccpre.hrl", 0). %% %% %CopyrightBegin% %% @@ -194,7 +194,7 @@ yecctoken2string(Other) -> --file("/Users/bjorng/Downloads/otp/bootstrap/lib/compiler/egen/core_parse.erl", 197). +-file("/clearcase/otp/erts/bootstrap/lib/compiler/egen/core_parse.erl", 197). yeccpars2(0=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_0(S, Cat, Ss, Stack, T, Ts, Tzr); diff --git a/bootstrap/lib/kernel/ebin/application_controller.beam b/bootstrap/lib/kernel/ebin/application_controller.beam Binary files differindex 093c2adbdf..113faeda01 100644 --- a/bootstrap/lib/kernel/ebin/application_controller.beam +++ b/bootstrap/lib/kernel/ebin/application_controller.beam diff --git a/bootstrap/lib/kernel/ebin/application_master.beam b/bootstrap/lib/kernel/ebin/application_master.beam Binary files differindex 1d82fcd682..602dc36104 100644 --- a/bootstrap/lib/kernel/ebin/application_master.beam +++ b/bootstrap/lib/kernel/ebin/application_master.beam diff --git a/bootstrap/lib/kernel/ebin/application_starter.beam b/bootstrap/lib/kernel/ebin/application_starter.beam Binary files differindex e33c9a5028..405d2f388a 100644 --- a/bootstrap/lib/kernel/ebin/application_starter.beam +++ b/bootstrap/lib/kernel/ebin/application_starter.beam diff --git a/bootstrap/lib/kernel/ebin/auth.beam b/bootstrap/lib/kernel/ebin/auth.beam Binary files differindex 9fc133efe7..3c038f87aa 100644 --- a/bootstrap/lib/kernel/ebin/auth.beam +++ b/bootstrap/lib/kernel/ebin/auth.beam diff --git a/bootstrap/lib/kernel/ebin/code.beam b/bootstrap/lib/kernel/ebin/code.beam Binary files differindex e82b91cf8e..bca88dfe7c 100644 --- a/bootstrap/lib/kernel/ebin/code.beam +++ b/bootstrap/lib/kernel/ebin/code.beam diff --git a/bootstrap/lib/kernel/ebin/code_server.beam b/bootstrap/lib/kernel/ebin/code_server.beam Binary files differindex 5bf9b13367..8f95f91348 100644 --- a/bootstrap/lib/kernel/ebin/code_server.beam +++ b/bootstrap/lib/kernel/ebin/code_server.beam diff --git a/bootstrap/lib/kernel/ebin/disk_log.beam b/bootstrap/lib/kernel/ebin/disk_log.beam Binary files differindex 86927f1125..b432811d6e 100644 --- a/bootstrap/lib/kernel/ebin/disk_log.beam +++ b/bootstrap/lib/kernel/ebin/disk_log.beam diff --git a/bootstrap/lib/kernel/ebin/disk_log_1.beam b/bootstrap/lib/kernel/ebin/disk_log_1.beam Binary files differindex 942e1188ac..96f4e1953f 100644 --- a/bootstrap/lib/kernel/ebin/disk_log_1.beam +++ b/bootstrap/lib/kernel/ebin/disk_log_1.beam diff --git a/bootstrap/lib/kernel/ebin/disk_log_server.beam b/bootstrap/lib/kernel/ebin/disk_log_server.beam Binary files differindex 46d7a9f546..089b5d578b 100644 --- a/bootstrap/lib/kernel/ebin/disk_log_server.beam +++ b/bootstrap/lib/kernel/ebin/disk_log_server.beam diff --git a/bootstrap/lib/kernel/ebin/dist_ac.beam b/bootstrap/lib/kernel/ebin/dist_ac.beam Binary files differindex 3060733116..59c75602ec 100644 --- a/bootstrap/lib/kernel/ebin/dist_ac.beam +++ b/bootstrap/lib/kernel/ebin/dist_ac.beam diff --git a/bootstrap/lib/kernel/ebin/dist_util.beam b/bootstrap/lib/kernel/ebin/dist_util.beam Binary files differindex d823f8d5c6..167a70e99d 100644 --- a/bootstrap/lib/kernel/ebin/dist_util.beam +++ b/bootstrap/lib/kernel/ebin/dist_util.beam diff --git a/bootstrap/lib/kernel/ebin/erl_boot_server.beam b/bootstrap/lib/kernel/ebin/erl_boot_server.beam Binary files differindex 52d638fb32..d88224b5d0 100644 --- a/bootstrap/lib/kernel/ebin/erl_boot_server.beam +++ b/bootstrap/lib/kernel/ebin/erl_boot_server.beam diff --git a/bootstrap/lib/kernel/ebin/erl_ddll.beam b/bootstrap/lib/kernel/ebin/erl_ddll.beam Binary files differindex 81daa5376b..c83b5e393c 100644 --- a/bootstrap/lib/kernel/ebin/erl_ddll.beam +++ b/bootstrap/lib/kernel/ebin/erl_ddll.beam diff --git a/bootstrap/lib/kernel/ebin/erl_epmd.beam b/bootstrap/lib/kernel/ebin/erl_epmd.beam Binary files differindex 9ba74e3303..09746d0403 100644 --- a/bootstrap/lib/kernel/ebin/erl_epmd.beam +++ b/bootstrap/lib/kernel/ebin/erl_epmd.beam diff --git a/bootstrap/lib/kernel/ebin/erts_debug.beam b/bootstrap/lib/kernel/ebin/erts_debug.beam Binary files differindex 26288e0633..9108d7e6d5 100644 --- a/bootstrap/lib/kernel/ebin/erts_debug.beam +++ b/bootstrap/lib/kernel/ebin/erts_debug.beam diff --git a/bootstrap/lib/kernel/ebin/file.beam b/bootstrap/lib/kernel/ebin/file.beam Binary files differindex 0f11da59e1..2504c16024 100644 --- a/bootstrap/lib/kernel/ebin/file.beam +++ b/bootstrap/lib/kernel/ebin/file.beam diff --git a/bootstrap/lib/kernel/ebin/file_io_server.beam b/bootstrap/lib/kernel/ebin/file_io_server.beam Binary files differindex 9b02183180..ce14722f4c 100644 --- a/bootstrap/lib/kernel/ebin/file_io_server.beam +++ b/bootstrap/lib/kernel/ebin/file_io_server.beam diff --git a/bootstrap/lib/kernel/ebin/file_server.beam b/bootstrap/lib/kernel/ebin/file_server.beam Binary files differindex 37e598a10f..70bdb58805 100644 --- a/bootstrap/lib/kernel/ebin/file_server.beam +++ b/bootstrap/lib/kernel/ebin/file_server.beam diff --git a/bootstrap/lib/kernel/ebin/gen_sctp.beam b/bootstrap/lib/kernel/ebin/gen_sctp.beam Binary files differindex f66b4635a2..a55e9090a5 100644 --- a/bootstrap/lib/kernel/ebin/gen_sctp.beam +++ b/bootstrap/lib/kernel/ebin/gen_sctp.beam diff --git a/bootstrap/lib/kernel/ebin/global.beam b/bootstrap/lib/kernel/ebin/global.beam Binary files differindex 4dc43450f0..20053eb877 100644 --- a/bootstrap/lib/kernel/ebin/global.beam +++ b/bootstrap/lib/kernel/ebin/global.beam diff --git a/bootstrap/lib/kernel/ebin/global_group.beam b/bootstrap/lib/kernel/ebin/global_group.beam Binary files differindex 6e9d6e8dfd..00d03a24f5 100644 --- a/bootstrap/lib/kernel/ebin/global_group.beam +++ b/bootstrap/lib/kernel/ebin/global_group.beam diff --git a/bootstrap/lib/kernel/ebin/global_search.beam b/bootstrap/lib/kernel/ebin/global_search.beam Binary files differindex 8270772543..fe18f8f49a 100644 --- a/bootstrap/lib/kernel/ebin/global_search.beam +++ b/bootstrap/lib/kernel/ebin/global_search.beam diff --git a/bootstrap/lib/kernel/ebin/group.beam b/bootstrap/lib/kernel/ebin/group.beam Binary files differindex 8e75aaef55..b72a13dbc7 100644 --- a/bootstrap/lib/kernel/ebin/group.beam +++ b/bootstrap/lib/kernel/ebin/group.beam diff --git a/bootstrap/lib/kernel/ebin/heart.beam b/bootstrap/lib/kernel/ebin/heart.beam Binary files differindex e2aa55f9b0..9d381acaff 100644 --- a/bootstrap/lib/kernel/ebin/heart.beam +++ b/bootstrap/lib/kernel/ebin/heart.beam diff --git a/bootstrap/lib/kernel/ebin/inet.beam b/bootstrap/lib/kernel/ebin/inet.beam Binary files differindex a8983e79c1..c712be3bdc 100644 --- a/bootstrap/lib/kernel/ebin/inet.beam +++ b/bootstrap/lib/kernel/ebin/inet.beam diff --git a/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam b/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam Binary files differindex 1f9ace4ad5..c2dac7dee1 100644 --- a/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam +++ b/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam diff --git a/bootstrap/lib/kernel/ebin/inet_config.beam b/bootstrap/lib/kernel/ebin/inet_config.beam Binary files differindex ad3f46010e..edc1e2f6fb 100644 --- a/bootstrap/lib/kernel/ebin/inet_config.beam +++ b/bootstrap/lib/kernel/ebin/inet_config.beam diff --git a/bootstrap/lib/kernel/ebin/inet_db.beam b/bootstrap/lib/kernel/ebin/inet_db.beam Binary files differindex 7009d9b9c1..2bba1e88c9 100644 --- a/bootstrap/lib/kernel/ebin/inet_db.beam +++ b/bootstrap/lib/kernel/ebin/inet_db.beam diff --git a/bootstrap/lib/kernel/ebin/inet_dns.beam b/bootstrap/lib/kernel/ebin/inet_dns.beam Binary files differindex 59e8936722..cfd46c29da 100644 --- a/bootstrap/lib/kernel/ebin/inet_dns.beam +++ b/bootstrap/lib/kernel/ebin/inet_dns.beam diff --git a/bootstrap/lib/kernel/ebin/inet_gethost_native.beam b/bootstrap/lib/kernel/ebin/inet_gethost_native.beam Binary files differindex e712d25405..0b901a8f27 100644 --- a/bootstrap/lib/kernel/ebin/inet_gethost_native.beam +++ b/bootstrap/lib/kernel/ebin/inet_gethost_native.beam diff --git a/bootstrap/lib/kernel/ebin/inet_parse.beam b/bootstrap/lib/kernel/ebin/inet_parse.beam Binary files differindex 926f21e99c..914397158a 100644 --- a/bootstrap/lib/kernel/ebin/inet_parse.beam +++ b/bootstrap/lib/kernel/ebin/inet_parse.beam diff --git a/bootstrap/lib/kernel/ebin/inet_res.beam b/bootstrap/lib/kernel/ebin/inet_res.beam Binary files differindex 3b6f72aaa0..0167a10b36 100644 --- a/bootstrap/lib/kernel/ebin/inet_res.beam +++ b/bootstrap/lib/kernel/ebin/inet_res.beam diff --git a/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam b/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam Binary files differindex 07f6ad2521..6c98977be5 100644 --- a/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam +++ b/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam diff --git a/bootstrap/lib/kernel/ebin/inet_udp.beam b/bootstrap/lib/kernel/ebin/inet_udp.beam Binary files differindex 2ac9537087..7bd4848f07 100644 --- a/bootstrap/lib/kernel/ebin/inet_udp.beam +++ b/bootstrap/lib/kernel/ebin/inet_udp.beam diff --git a/bootstrap/lib/kernel/ebin/kernel.beam b/bootstrap/lib/kernel/ebin/kernel.beam Binary files differindex 3eea9dda68..471ab154e8 100644 --- a/bootstrap/lib/kernel/ebin/kernel.beam +++ b/bootstrap/lib/kernel/ebin/kernel.beam diff --git a/bootstrap/lib/kernel/ebin/kernel_config.beam b/bootstrap/lib/kernel/ebin/kernel_config.beam Binary files differindex 73431675bf..da5fa04de5 100644 --- a/bootstrap/lib/kernel/ebin/kernel_config.beam +++ b/bootstrap/lib/kernel/ebin/kernel_config.beam diff --git a/bootstrap/lib/kernel/ebin/net_adm.beam b/bootstrap/lib/kernel/ebin/net_adm.beam Binary files differindex 02b6c8b486..21d54cac85 100644 --- a/bootstrap/lib/kernel/ebin/net_adm.beam +++ b/bootstrap/lib/kernel/ebin/net_adm.beam diff --git a/bootstrap/lib/kernel/ebin/net_kernel.beam b/bootstrap/lib/kernel/ebin/net_kernel.beam Binary files differindex 50b4c7ac4c..562ee24678 100644 --- a/bootstrap/lib/kernel/ebin/net_kernel.beam +++ b/bootstrap/lib/kernel/ebin/net_kernel.beam diff --git a/bootstrap/lib/kernel/ebin/os.beam b/bootstrap/lib/kernel/ebin/os.beam Binary files differindex 4a4051d0c1..4b3bcf80dd 100644 --- a/bootstrap/lib/kernel/ebin/os.beam +++ b/bootstrap/lib/kernel/ebin/os.beam diff --git a/bootstrap/lib/kernel/ebin/packages.beam b/bootstrap/lib/kernel/ebin/packages.beam Binary files differindex 710fc55908..cbe6bc6590 100644 --- a/bootstrap/lib/kernel/ebin/packages.beam +++ b/bootstrap/lib/kernel/ebin/packages.beam diff --git a/bootstrap/lib/kernel/ebin/pg2.beam b/bootstrap/lib/kernel/ebin/pg2.beam Binary files differindex 51912f2263..b14425b01c 100644 --- a/bootstrap/lib/kernel/ebin/pg2.beam +++ b/bootstrap/lib/kernel/ebin/pg2.beam diff --git a/bootstrap/lib/kernel/ebin/ram_file.beam b/bootstrap/lib/kernel/ebin/ram_file.beam Binary files differindex f9488df846..402c7ea2d3 100644 --- a/bootstrap/lib/kernel/ebin/ram_file.beam +++ b/bootstrap/lib/kernel/ebin/ram_file.beam diff --git a/bootstrap/lib/kernel/ebin/rpc.beam b/bootstrap/lib/kernel/ebin/rpc.beam Binary files differindex 1763808337..5fe7a7fffe 100644 --- a/bootstrap/lib/kernel/ebin/rpc.beam +++ b/bootstrap/lib/kernel/ebin/rpc.beam diff --git a/bootstrap/lib/kernel/ebin/standard_error.beam b/bootstrap/lib/kernel/ebin/standard_error.beam Binary files differindex 95edb1860a..62ab951bff 100644 --- a/bootstrap/lib/kernel/ebin/standard_error.beam +++ b/bootstrap/lib/kernel/ebin/standard_error.beam diff --git a/bootstrap/lib/kernel/ebin/user.beam b/bootstrap/lib/kernel/ebin/user.beam Binary files differindex 0f2fe211ab..76e9973a93 100644 --- a/bootstrap/lib/kernel/ebin/user.beam +++ b/bootstrap/lib/kernel/ebin/user.beam diff --git a/bootstrap/lib/kernel/ebin/user_drv.beam b/bootstrap/lib/kernel/ebin/user_drv.beam Binary files differindex 3feffb9332..ddb0442f28 100644 --- a/bootstrap/lib/kernel/ebin/user_drv.beam +++ b/bootstrap/lib/kernel/ebin/user_drv.beam diff --git a/bootstrap/lib/kernel/ebin/wrap_log_reader.beam b/bootstrap/lib/kernel/ebin/wrap_log_reader.beam Binary files differindex cdb87c3fd5..9f648c9a42 100644 --- a/bootstrap/lib/kernel/ebin/wrap_log_reader.beam +++ b/bootstrap/lib/kernel/ebin/wrap_log_reader.beam diff --git a/bootstrap/lib/stdlib/ebin/array.beam b/bootstrap/lib/stdlib/ebin/array.beam Binary files differindex a3049ae953..1c26f19403 100644 --- a/bootstrap/lib/stdlib/ebin/array.beam +++ b/bootstrap/lib/stdlib/ebin/array.beam diff --git a/bootstrap/lib/stdlib/ebin/base64.beam b/bootstrap/lib/stdlib/ebin/base64.beam Binary files differindex 101ffc3904..d48d8d6f58 100644 --- a/bootstrap/lib/stdlib/ebin/base64.beam +++ b/bootstrap/lib/stdlib/ebin/base64.beam diff --git a/bootstrap/lib/stdlib/ebin/beam_lib.beam b/bootstrap/lib/stdlib/ebin/beam_lib.beam Binary files differindex 58123d66be..e7ba44d542 100644 --- a/bootstrap/lib/stdlib/ebin/beam_lib.beam +++ b/bootstrap/lib/stdlib/ebin/beam_lib.beam diff --git a/bootstrap/lib/stdlib/ebin/binary.beam b/bootstrap/lib/stdlib/ebin/binary.beam Binary files differnew file mode 100644 index 0000000000..5180c122d2 --- /dev/null +++ b/bootstrap/lib/stdlib/ebin/binary.beam diff --git a/bootstrap/lib/stdlib/ebin/c.beam b/bootstrap/lib/stdlib/ebin/c.beam Binary files differindex ea36930179..099bb5ad90 100644 --- a/bootstrap/lib/stdlib/ebin/c.beam +++ b/bootstrap/lib/stdlib/ebin/c.beam diff --git a/bootstrap/lib/stdlib/ebin/dets.beam b/bootstrap/lib/stdlib/ebin/dets.beam Binary files differindex 8b637ab064..ccd277b7ad 100644 --- a/bootstrap/lib/stdlib/ebin/dets.beam +++ b/bootstrap/lib/stdlib/ebin/dets.beam diff --git a/bootstrap/lib/stdlib/ebin/dets_utils.beam b/bootstrap/lib/stdlib/ebin/dets_utils.beam Binary files differindex 36d38c4e9a..b0c3e351d2 100644 --- a/bootstrap/lib/stdlib/ebin/dets_utils.beam +++ b/bootstrap/lib/stdlib/ebin/dets_utils.beam diff --git a/bootstrap/lib/stdlib/ebin/dets_v8.beam b/bootstrap/lib/stdlib/ebin/dets_v8.beam Binary files differindex 6537f0e44d..f48768ca53 100644 --- a/bootstrap/lib/stdlib/ebin/dets_v8.beam +++ b/bootstrap/lib/stdlib/ebin/dets_v8.beam diff --git a/bootstrap/lib/stdlib/ebin/dets_v9.beam b/bootstrap/lib/stdlib/ebin/dets_v9.beam Binary files differindex 2a247effc1..0694437929 100644 --- a/bootstrap/lib/stdlib/ebin/dets_v9.beam +++ b/bootstrap/lib/stdlib/ebin/dets_v9.beam diff --git a/bootstrap/lib/stdlib/ebin/dict.beam b/bootstrap/lib/stdlib/ebin/dict.beam Binary files differindex 3d0b4194b6..ebf01cb9b5 100644 --- a/bootstrap/lib/stdlib/ebin/dict.beam +++ b/bootstrap/lib/stdlib/ebin/dict.beam diff --git a/bootstrap/lib/stdlib/ebin/digraph.beam b/bootstrap/lib/stdlib/ebin/digraph.beam Binary files differindex 41043bf729..38195e8957 100644 --- a/bootstrap/lib/stdlib/ebin/digraph.beam +++ b/bootstrap/lib/stdlib/ebin/digraph.beam diff --git a/bootstrap/lib/stdlib/ebin/digraph_utils.beam b/bootstrap/lib/stdlib/ebin/digraph_utils.beam Binary files differindex e0c15a218a..ce329ab2ab 100644 --- a/bootstrap/lib/stdlib/ebin/digraph_utils.beam +++ b/bootstrap/lib/stdlib/ebin/digraph_utils.beam diff --git a/bootstrap/lib/stdlib/ebin/edlin.beam b/bootstrap/lib/stdlib/ebin/edlin.beam Binary files differindex fe51f7f417..9fc93d042c 100644 --- a/bootstrap/lib/stdlib/ebin/edlin.beam +++ b/bootstrap/lib/stdlib/ebin/edlin.beam diff --git a/bootstrap/lib/stdlib/ebin/epp.beam b/bootstrap/lib/stdlib/ebin/epp.beam Binary files differindex 71e0d21db1..8059231d6e 100644 --- a/bootstrap/lib/stdlib/ebin/epp.beam +++ b/bootstrap/lib/stdlib/ebin/epp.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_bits.beam b/bootstrap/lib/stdlib/ebin/erl_bits.beam Binary files differindex 7b1f8bb764..d338fe3778 100644 --- a/bootstrap/lib/stdlib/ebin/erl_bits.beam +++ b/bootstrap/lib/stdlib/ebin/erl_bits.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_compile.beam b/bootstrap/lib/stdlib/ebin/erl_compile.beam Binary files differindex cc4ef260d0..3f0cb585e8 100644 --- a/bootstrap/lib/stdlib/ebin/erl_compile.beam +++ b/bootstrap/lib/stdlib/ebin/erl_compile.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_eval.beam b/bootstrap/lib/stdlib/ebin/erl_eval.beam Binary files differindex dfd10fb4bf..cac3a46319 100644 --- a/bootstrap/lib/stdlib/ebin/erl_eval.beam +++ b/bootstrap/lib/stdlib/ebin/erl_eval.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_expand_records.beam b/bootstrap/lib/stdlib/ebin/erl_expand_records.beam Binary files differindex 2a2ec9b4e1..983fe23879 100644 --- a/bootstrap/lib/stdlib/ebin/erl_expand_records.beam +++ b/bootstrap/lib/stdlib/ebin/erl_expand_records.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_internal.beam b/bootstrap/lib/stdlib/ebin/erl_internal.beam Binary files differindex 1609ae4997..bb2cbef866 100644 --- a/bootstrap/lib/stdlib/ebin/erl_internal.beam +++ b/bootstrap/lib/stdlib/ebin/erl_internal.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_lint.beam b/bootstrap/lib/stdlib/ebin/erl_lint.beam Binary files differindex 21ec2e638f..f2b85fadb7 100644 --- a/bootstrap/lib/stdlib/ebin/erl_lint.beam +++ b/bootstrap/lib/stdlib/ebin/erl_lint.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_parse.beam b/bootstrap/lib/stdlib/ebin/erl_parse.beam Binary files differindex 1a61eb31ac..0d7c12e53f 100644 --- a/bootstrap/lib/stdlib/ebin/erl_parse.beam +++ b/bootstrap/lib/stdlib/ebin/erl_parse.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_pp.beam b/bootstrap/lib/stdlib/ebin/erl_pp.beam Binary files differindex 161db6cef0..eb7462cb0e 100644 --- a/bootstrap/lib/stdlib/ebin/erl_pp.beam +++ b/bootstrap/lib/stdlib/ebin/erl_pp.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_scan.beam b/bootstrap/lib/stdlib/ebin/erl_scan.beam Binary files differindex 0b04a411b5..cffdda03ae 100644 --- a/bootstrap/lib/stdlib/ebin/erl_scan.beam +++ b/bootstrap/lib/stdlib/ebin/erl_scan.beam diff --git a/bootstrap/lib/stdlib/ebin/erl_tar.beam b/bootstrap/lib/stdlib/ebin/erl_tar.beam Binary files differindex 40d41d0202..369e5a8c6d 100644 --- a/bootstrap/lib/stdlib/ebin/erl_tar.beam +++ b/bootstrap/lib/stdlib/ebin/erl_tar.beam diff --git a/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam b/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam Binary files differindex ae5a7020ea..13a91def18 100644 --- a/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam +++ b/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam diff --git a/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam b/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam Binary files differindex 6065cfa8f1..50dd448b1b 100644 --- a/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam +++ b/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam diff --git a/bootstrap/lib/stdlib/ebin/escript.beam b/bootstrap/lib/stdlib/ebin/escript.beam Binary files differindex 3c4b3f4eb6..15f1cb8354 100644 --- a/bootstrap/lib/stdlib/ebin/escript.beam +++ b/bootstrap/lib/stdlib/ebin/escript.beam diff --git a/bootstrap/lib/stdlib/ebin/ets.beam b/bootstrap/lib/stdlib/ebin/ets.beam Binary files differindex 70916dd1ae..bcb1b9684c 100644 --- a/bootstrap/lib/stdlib/ebin/ets.beam +++ b/bootstrap/lib/stdlib/ebin/ets.beam diff --git a/bootstrap/lib/stdlib/ebin/eval_bits.beam b/bootstrap/lib/stdlib/ebin/eval_bits.beam Binary files differindex de2d528f2e..1db24ccfc9 100644 --- a/bootstrap/lib/stdlib/ebin/eval_bits.beam +++ b/bootstrap/lib/stdlib/ebin/eval_bits.beam diff --git a/bootstrap/lib/stdlib/ebin/file_sorter.beam b/bootstrap/lib/stdlib/ebin/file_sorter.beam Binary files differindex f03cd21072..1a6e54f2ab 100644 --- a/bootstrap/lib/stdlib/ebin/file_sorter.beam +++ b/bootstrap/lib/stdlib/ebin/file_sorter.beam diff --git a/bootstrap/lib/stdlib/ebin/filelib.beam b/bootstrap/lib/stdlib/ebin/filelib.beam Binary files differindex e03b753c09..8a59a62379 100644 --- a/bootstrap/lib/stdlib/ebin/filelib.beam +++ b/bootstrap/lib/stdlib/ebin/filelib.beam diff --git a/bootstrap/lib/stdlib/ebin/filename.beam b/bootstrap/lib/stdlib/ebin/filename.beam Binary files differindex f419480f6e..4cdb6064d2 100644 --- a/bootstrap/lib/stdlib/ebin/filename.beam +++ b/bootstrap/lib/stdlib/ebin/filename.beam diff --git a/bootstrap/lib/stdlib/ebin/gb_sets.beam b/bootstrap/lib/stdlib/ebin/gb_sets.beam Binary files differindex 1ce3e0bd83..1928430e56 100644 --- a/bootstrap/lib/stdlib/ebin/gb_sets.beam +++ b/bootstrap/lib/stdlib/ebin/gb_sets.beam diff --git a/bootstrap/lib/stdlib/ebin/gb_trees.beam b/bootstrap/lib/stdlib/ebin/gb_trees.beam Binary files differindex c462bee0c1..7bebf1a54e 100644 --- a/bootstrap/lib/stdlib/ebin/gb_trees.beam +++ b/bootstrap/lib/stdlib/ebin/gb_trees.beam diff --git a/bootstrap/lib/stdlib/ebin/gen.beam b/bootstrap/lib/stdlib/ebin/gen.beam Binary files differindex 4b047eb838..3ad4d282f0 100644 --- a/bootstrap/lib/stdlib/ebin/gen.beam +++ b/bootstrap/lib/stdlib/ebin/gen.beam diff --git a/bootstrap/lib/stdlib/ebin/gen_event.beam b/bootstrap/lib/stdlib/ebin/gen_event.beam Binary files differindex 69a18e0c6e..264071fe5f 100644 --- a/bootstrap/lib/stdlib/ebin/gen_event.beam +++ b/bootstrap/lib/stdlib/ebin/gen_event.beam diff --git a/bootstrap/lib/stdlib/ebin/gen_fsm.beam b/bootstrap/lib/stdlib/ebin/gen_fsm.beam Binary files differindex 4d7528be15..73df87a7ef 100644 --- a/bootstrap/lib/stdlib/ebin/gen_fsm.beam +++ b/bootstrap/lib/stdlib/ebin/gen_fsm.beam diff --git a/bootstrap/lib/stdlib/ebin/gen_server.beam b/bootstrap/lib/stdlib/ebin/gen_server.beam Binary files differindex 8d76d138f1..3b066ada0b 100644 --- a/bootstrap/lib/stdlib/ebin/gen_server.beam +++ b/bootstrap/lib/stdlib/ebin/gen_server.beam diff --git a/bootstrap/lib/stdlib/ebin/io.beam b/bootstrap/lib/stdlib/ebin/io.beam Binary files differindex a9f24817b3..36c276166c 100644 --- a/bootstrap/lib/stdlib/ebin/io.beam +++ b/bootstrap/lib/stdlib/ebin/io.beam diff --git a/bootstrap/lib/stdlib/ebin/io_lib.beam b/bootstrap/lib/stdlib/ebin/io_lib.beam Binary files differindex af10b8d0e9..c0af612d77 100644 --- a/bootstrap/lib/stdlib/ebin/io_lib.beam +++ b/bootstrap/lib/stdlib/ebin/io_lib.beam diff --git a/bootstrap/lib/stdlib/ebin/io_lib_format.beam b/bootstrap/lib/stdlib/ebin/io_lib_format.beam Binary files differindex 16907bb3aa..25f8f7b37a 100644 --- a/bootstrap/lib/stdlib/ebin/io_lib_format.beam +++ b/bootstrap/lib/stdlib/ebin/io_lib_format.beam diff --git a/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam b/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam Binary files differindex 6b8b7a3267..9a8b68c6e0 100644 --- a/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam +++ b/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam diff --git a/bootstrap/lib/stdlib/ebin/lib.beam b/bootstrap/lib/stdlib/ebin/lib.beam Binary files differindex d7e591ed35..fb08310f36 100644 --- a/bootstrap/lib/stdlib/ebin/lib.beam +++ b/bootstrap/lib/stdlib/ebin/lib.beam diff --git a/bootstrap/lib/stdlib/ebin/ms_transform.beam b/bootstrap/lib/stdlib/ebin/ms_transform.beam Binary files differindex 0dc991553b..918c2537ea 100644 --- a/bootstrap/lib/stdlib/ebin/ms_transform.beam +++ b/bootstrap/lib/stdlib/ebin/ms_transform.beam diff --git a/bootstrap/lib/stdlib/ebin/otp_internal.beam b/bootstrap/lib/stdlib/ebin/otp_internal.beam Binary files differindex e2550578e7..cac4a97ae0 100644 --- a/bootstrap/lib/stdlib/ebin/otp_internal.beam +++ b/bootstrap/lib/stdlib/ebin/otp_internal.beam diff --git a/bootstrap/lib/stdlib/ebin/pg.beam b/bootstrap/lib/stdlib/ebin/pg.beam Binary files differindex aadf03ca28..026d102a75 100644 --- a/bootstrap/lib/stdlib/ebin/pg.beam +++ b/bootstrap/lib/stdlib/ebin/pg.beam diff --git a/bootstrap/lib/stdlib/ebin/pool.beam b/bootstrap/lib/stdlib/ebin/pool.beam Binary files differindex 35c2da9051..74377d404b 100644 --- a/bootstrap/lib/stdlib/ebin/pool.beam +++ b/bootstrap/lib/stdlib/ebin/pool.beam diff --git a/bootstrap/lib/stdlib/ebin/proc_lib.beam b/bootstrap/lib/stdlib/ebin/proc_lib.beam Binary files differindex c366aafadf..f6c7a4f748 100644 --- a/bootstrap/lib/stdlib/ebin/proc_lib.beam +++ b/bootstrap/lib/stdlib/ebin/proc_lib.beam diff --git a/bootstrap/lib/stdlib/ebin/proplists.beam b/bootstrap/lib/stdlib/ebin/proplists.beam Binary files differindex 378392c791..bed96c6b1a 100644 --- a/bootstrap/lib/stdlib/ebin/proplists.beam +++ b/bootstrap/lib/stdlib/ebin/proplists.beam diff --git a/bootstrap/lib/stdlib/ebin/qlc.beam b/bootstrap/lib/stdlib/ebin/qlc.beam Binary files differindex 27dd5d5be0..2e05a4c546 100644 --- a/bootstrap/lib/stdlib/ebin/qlc.beam +++ b/bootstrap/lib/stdlib/ebin/qlc.beam diff --git a/bootstrap/lib/stdlib/ebin/qlc_pt.beam b/bootstrap/lib/stdlib/ebin/qlc_pt.beam Binary files differindex 10349ebd1a..92b1bc8bee 100644 --- a/bootstrap/lib/stdlib/ebin/qlc_pt.beam +++ b/bootstrap/lib/stdlib/ebin/qlc_pt.beam diff --git a/bootstrap/lib/stdlib/ebin/re.beam b/bootstrap/lib/stdlib/ebin/re.beam Binary files differindex 06c02fc10c..fb8888ad58 100644 --- a/bootstrap/lib/stdlib/ebin/re.beam +++ b/bootstrap/lib/stdlib/ebin/re.beam diff --git a/bootstrap/lib/stdlib/ebin/regexp.beam b/bootstrap/lib/stdlib/ebin/regexp.beam Binary files differindex f45899702c..d021c5779b 100644 --- a/bootstrap/lib/stdlib/ebin/regexp.beam +++ b/bootstrap/lib/stdlib/ebin/regexp.beam diff --git a/bootstrap/lib/stdlib/ebin/sets.beam b/bootstrap/lib/stdlib/ebin/sets.beam Binary files differindex b8ce3ebe89..9be4e8ab5b 100644 --- a/bootstrap/lib/stdlib/ebin/sets.beam +++ b/bootstrap/lib/stdlib/ebin/sets.beam diff --git a/bootstrap/lib/stdlib/ebin/shell.beam b/bootstrap/lib/stdlib/ebin/shell.beam Binary files differindex a537d0936e..737223aaf8 100644 --- a/bootstrap/lib/stdlib/ebin/shell.beam +++ b/bootstrap/lib/stdlib/ebin/shell.beam diff --git a/bootstrap/lib/stdlib/ebin/sofs.beam b/bootstrap/lib/stdlib/ebin/sofs.beam Binary files differindex d8e984f217..51af30d7e8 100644 --- a/bootstrap/lib/stdlib/ebin/sofs.beam +++ b/bootstrap/lib/stdlib/ebin/sofs.beam diff --git a/bootstrap/lib/stdlib/ebin/stdlib.app b/bootstrap/lib/stdlib/ebin/stdlib.app index b7cb765910..880e85627e 100644 --- a/bootstrap/lib/stdlib/ebin/stdlib.app +++ b/bootstrap/lib/stdlib/ebin/stdlib.app @@ -23,6 +23,7 @@ {modules, [array, base64, beam_lib, + binary, c, calendar, dets, diff --git a/bootstrap/lib/stdlib/ebin/supervisor.beam b/bootstrap/lib/stdlib/ebin/supervisor.beam Binary files differindex 0526384a20..9cbf8912fe 100644 --- a/bootstrap/lib/stdlib/ebin/supervisor.beam +++ b/bootstrap/lib/stdlib/ebin/supervisor.beam diff --git a/bootstrap/lib/stdlib/ebin/sys.beam b/bootstrap/lib/stdlib/ebin/sys.beam Binary files differindex 5a75152833..e08ec9e70d 100644 --- a/bootstrap/lib/stdlib/ebin/sys.beam +++ b/bootstrap/lib/stdlib/ebin/sys.beam diff --git a/bootstrap/lib/stdlib/ebin/timer.beam b/bootstrap/lib/stdlib/ebin/timer.beam Binary files differindex 9d9d42f96d..a20cc97935 100644 --- a/bootstrap/lib/stdlib/ebin/timer.beam +++ b/bootstrap/lib/stdlib/ebin/timer.beam diff --git a/bootstrap/lib/stdlib/ebin/unicode.beam b/bootstrap/lib/stdlib/ebin/unicode.beam Binary files differindex 66d6991283..4ca769b9a2 100644 --- a/bootstrap/lib/stdlib/ebin/unicode.beam +++ b/bootstrap/lib/stdlib/ebin/unicode.beam diff --git a/bootstrap/lib/stdlib/ebin/zip.beam b/bootstrap/lib/stdlib/ebin/zip.beam Binary files differindex f0df604d79..6c5b31cd1f 100644 --- a/bootstrap/lib/stdlib/ebin/zip.beam +++ b/bootstrap/lib/stdlib/ebin/zip.beam diff --git a/bootstrap/lib/stdlib/egen/erl_parse.erl b/bootstrap/lib/stdlib/egen/erl_parse.erl index 2f985589c9..9271bfd74c 100644 --- a/bootstrap/lib/stdlib/egen/erl_parse.erl +++ b/bootstrap/lib/stdlib/egen/erl_parse.erl @@ -1,6 +1,6 @@ -module(erl_parse). -export([parse/1, parse_and_scan/1, format_error/1]). --file("erl_parse.yrl", 491). +-file("erl_parse.yrl", 492). -export([parse_form/1,parse_exprs/1,parse_term/1]). -export([normalise/1,abstract/1,tokens/1,tokens/2]). @@ -109,6 +109,10 @@ find_arity_from_specs([Spec|_]) -> {type, _, 'fun', [{type, _, product, Args},_]} = Fun, length(Args). +build_def(LHS, Types) -> + IsSubType = {atom, ?line(LHS), is_subtype}, + {type, ?line(LHS), constraint, [IsSubType, [LHS, Types]]}. + lift_unions(T1, {type, _La, union, List}) -> {type, ?line(T1), union, [T1|List]}; lift_unions(T1, T2) -> @@ -547,7 +551,7 @@ get_attribute(L, Name) -> get_attributes(L) -> erl_scan:attributes_info(L). --file("/usr/local/lib/erlang/lib/parsetools-2.0.2/include/yeccpre.hrl", 0). +-file("/usr/local/otp/releases/sles10_32_R13B04_patched/lib/parsetools-2.0.2/include/yeccpre.hrl", 0). %% %% %CopyrightBegin% %% @@ -728,7 +732,7 @@ yecctoken2string(Other) -> --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 731). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 735). yeccpars2(0=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_0(S, Cat, Ss, Stack, T, Ts, Tzr); @@ -1413,55 +1417,55 @@ yeccpars2(339=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2(340=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_340(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(341=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_341(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(342=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_342(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(343=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(344=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_344(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(342=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_342(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(343=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_343(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(344=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_344(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(345=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_345(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(346=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_346(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(347=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_347(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(348=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_348(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(348=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_348(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(349=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_349(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(350=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_350(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(351=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_351(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(350=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_350(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(351=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_351(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(352=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_352(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(353=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_353(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(354=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_354(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(353=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_353(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(354=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_354(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(355=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_355(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(356=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_356(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(356=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_356(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(357=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_357(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(358=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_358(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(359=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_359(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(360=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_360(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(361=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_361(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(360=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_360(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(361=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_361(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(362=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_362(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(363=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_363(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(364=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_364(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(365=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_365(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(364=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_364(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(365=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_365(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(366=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_366(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(367=S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -1472,182 +1476,178 @@ yeccpars2(369=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_369(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(370=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_370(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(371=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_371(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(371=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_371(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(372=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_372(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(373=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_373(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(374=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_374(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(375=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_375(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(375=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_375(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(376=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_376(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(377=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_377(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(378=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_378(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(379=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_379(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(378=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_378(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(379=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_379(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(380=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_380(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(381=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(382=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_382(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_381(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(382=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_382(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(383=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_383(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(384=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_384(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(384=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_384(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(385=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_385(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(386=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_386(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(387=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_387(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(387=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(388=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_388(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(389=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_389(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(390=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_390(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(390=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_390(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(391=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_391(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(392=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_392(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(393=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_393(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(394=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(392=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_392(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(393=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_393(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(394=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_394(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(395=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_395(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(395=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_395(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(396=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_396(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(397=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_397(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(398=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_398(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(399=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_331(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(400=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_400(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(401=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_401(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(402=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(402=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_402(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(403=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_403(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(404=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_331(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(405=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_405(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_404(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(405=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_405(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(406=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_406(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(407=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_407(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(408=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_408(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(409=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_409(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(410=S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2(408=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(411=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_411(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(412=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_412(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(409=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_409(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(410=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_410(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(411=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_401(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(412=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_412(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(413=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_406(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_295(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(414=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_414(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(415=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_295(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_415(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(416=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_416(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(417=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_417(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(417=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_417(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(418=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_418(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(419=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_419(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(420=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_420(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(420=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_45(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(421=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_421(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(422=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_45(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(423=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_423(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(424=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_424(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(425=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_425(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(426=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2(422=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_422(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(423=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_423(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(424=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(425=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_425(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(426=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_426(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(427=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_427(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(428=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_428(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(428=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_68(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(429=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_429(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(430=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_68(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(430=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_430(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(431=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_431(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(432=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_432(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(433=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_433(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(434=S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2(432=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_45(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(435=S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2(433=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(436=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_436(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(434=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_434(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(435=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_435(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(436=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_45(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(437=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_437(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(438=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_45(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(439=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_439(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(440=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_440(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(438=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_438(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(439=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_439(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(440=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_440(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(441=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_441(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(442=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_442(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(443=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_443(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_423(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(443=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_443(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(444=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_425(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(445=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_445(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_444(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(445=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_445(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(446=S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_446(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(447=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_447(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(447=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_447(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(448=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_448(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_10(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(449=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_449(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(450=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_10(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(451=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_451(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(452=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2(450=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_83(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(453=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_453(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(451=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_451(S, Cat, Ss, Stack, T, Ts, Tzr); +yeccpars2(452=S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_452(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(453=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_453(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(454=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_454(S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_10(S, Cat, Ss, Stack, T, Ts, Tzr); %% yeccpars2(455=S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_455(S, Cat, Ss, Stack, T, Ts, Tzr); -yeccpars2(456=S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_10(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(457=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_457(S, Cat, Ss, Stack, T, Ts, Tzr); -%% yeccpars2(458=S, Cat, Ss, Stack, T, Ts, Tzr) -> -%% yeccpars2_458(S, Cat, Ss, Stack, T, Ts, Tzr); +%% yeccpars2(456=S, Cat, Ss, Stack, T, Ts, Tzr) -> +%% yeccpars2_456(S, Cat, Ss, Stack, T, Ts, Tzr); yeccpars2(Other, _, _, _, _, _, _) -> erlang:error({yecc_bug,"1.3",{missing_state_in_action_table, Other}}). @@ -1661,32 +1661,32 @@ yeccpars2_1(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_rule(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_2(S, ';', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 454, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 452, Ss, Stack, T, Ts, Tzr); yeccpars2_2(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_2_(Stack), yeccgoto_rule_clauses(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_3(S, dot, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 453, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 451, Ss, Stack, T, Ts, Tzr). yeccpars2_4(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_4_(Stack), yeccgoto_function(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_5(S, ';', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 448, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 446, Ss, Stack, T, Ts, Tzr); yeccpars2_5(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_5_(Stack), yeccgoto_function_clauses(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_6(S, dot, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 447, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 445, Ss, Stack, T, Ts, Tzr). yeccpars2_7(_S, '$end', _Ss, Stack, _T, _Ts, _Tzr) -> {ok, hd(Stack)}. yeccpars2_8(S, dot, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 446, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 444, Ss, Stack, T, Ts, Tzr). yeccpars2_9(S, atom, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 292, Ss, Stack, T, Ts, Tzr); @@ -3075,7 +3075,7 @@ yeccpars2_291(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_292(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 44, Ss, Stack, T, Ts, Tzr); yeccpars2_292(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 422, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 420, Ss, Stack, T, Ts, Tzr); yeccpars2_292(S, '+', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 47, Ss, Stack, T, Ts, Tzr); yeccpars2_292(S, '-', Ss, Stack, T, Ts, Tzr) -> @@ -3155,16 +3155,16 @@ yeccpars2_305(_S, Cat, Ss, Stack, T, Ts, Tzr) -> %% yeccpars2_306: see yeccpars2_295 yeccpars2_307(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 417, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 415, Ss, Stack, T, Ts, Tzr). yeccpars2_308(S, ';', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 415, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 413, Ss, Stack, T, Ts, Tzr); yeccpars2_308(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_308_(Stack), yeccgoto_type_sigs(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). yeccpars2_309(S, 'when', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 406, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 401, Ss, Stack, T, Ts, Tzr); yeccpars2_309(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type_sig(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3195,24 +3195,24 @@ yeccpars2_cont_310(S, '{', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 327, Ss, Stack, T, Ts, Tzr). yeccpars2_311(S, '|', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 404, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 399, Ss, Stack, T, Ts, Tzr); yeccpars2_311(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_top_type_100(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_312(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 401, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 396, Ss, Stack, T, Ts, Tzr). yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_top_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_314(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 399, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 394, Ss, Stack, T, Ts, Tzr); yeccpars2_314(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_314_(Stack), yeccgoto_top_types(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). -yeccpars2_315(S, '.', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 396, Ss, Stack, T, Ts, Tzr); +yeccpars2_315(S, '..', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 392, Ss, Stack, T, Ts, Tzr); yeccpars2_315(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3220,7 +3220,7 @@ yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_317(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 385, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 381, Ss, Stack, T, Ts, Tzr). yeccpars2_318(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); @@ -3232,20 +3232,20 @@ yeccpars2_318(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). yeccpars2_319(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 381, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 377, Ss, Stack, T, Ts, Tzr). yeccpars2_320(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 380, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 376, Ss, Stack, T, Ts, Tzr). yeccpars2_321(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 366, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 362, Ss, Stack, T, Ts, Tzr); yeccpars2_321(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 367, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 363, Ss, Stack, T, Ts, Tzr). yeccpars2_322(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); yeccpars2_322(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 357, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 355, Ss, Stack, T, Ts, Tzr); yeccpars2_322(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 325, Ss, Stack, T, Ts, Tzr); yeccpars2_322(S, var, Ss, Stack, T, Ts, Tzr) -> @@ -3254,9 +3254,9 @@ 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, 346, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 344, Ss, Stack, T, Ts, Tzr); yeccpars2_323(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 347, Ss, Stack, T, Ts, Tzr); + yeccpars1(S, 345, Ss, Stack, T, Ts, Tzr); yeccpars2_323(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_type(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3318,7 +3318,7 @@ yeccpars2_334(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 338, Ss, Stack, T, Ts, Tzr). yeccpars2_335(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 345, Ss, Stack, T, Ts, Tzr). + yeccpars1(S, 343, Ss, Stack, T, Ts, Tzr). yeccpars2_336(_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_fun_type_100(hd(Ss), Cat, Ss, Stack, T, Ts, Tzr). @@ -3327,7 +3327,7 @@ yeccpars2_337(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 319, Ss, Stack, T, Ts, Tzr); yeccpars2_337(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); -yeccpars2_337(S, '.', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_337(S, '...', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 339, Ss, Stack, T, Ts, Tzr); yeccpars2_337(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 325, Ss, Stack, T, Ts, Tzr); @@ -3341,520 +3341,517 @@ yeccpars2_338(_S, Cat, Ss, Stack, T, Ts, Tzr) -> NewStack = yeccpars2_338_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_339(S, '.', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_339(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 340, Ss, Stack, T, Ts, Tzr). -yeccpars2_340(S, '.', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_340(S, '->', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 341, Ss, Stack, T, Ts, Tzr). -yeccpars2_341(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 342, Ss, Stack, T, Ts, Tzr). - -yeccpars2_342(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 343, Ss, Stack, T, Ts, Tzr). +%% yeccpars2_341: see yeccpars2_318 -%% yeccpars2_343: see yeccpars2_318 - -yeccpars2_344(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - [_,_,_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_344_(Stack), +yeccpars2_342(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + [_,_,_,_|Nss] = Ss, + NewStack = yeccpars2_342_(Stack), yeccgoto_fun_type_100(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_345(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_343(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, - NewStack = yeccpars2_345_(Stack), + NewStack = yeccpars2_343_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_346(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 354, Ss, Stack, T, Ts, Tzr); -yeccpars2_346(S, '-', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_344(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 352, Ss, Stack, T, Ts, Tzr); +yeccpars2_344(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); -yeccpars2_346(S, integer, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_344(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 325, Ss, Stack, T, Ts, Tzr); -yeccpars2_346(S, var, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_344(S, var, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 326, Ss, Stack, T, Ts, Tzr); -yeccpars2_346(S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_344(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). -yeccpars2_347(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 348, Ss, Stack, T, Ts, Tzr). +yeccpars2_345(S, atom, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 346, Ss, Stack, T, Ts, Tzr). -yeccpars2_348(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 349, Ss, Stack, T, Ts, Tzr). +yeccpars2_346(S, '(', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 347, Ss, Stack, T, Ts, Tzr). -yeccpars2_349(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 351, Ss, Stack, T, Ts, Tzr); -yeccpars2_349(S, '-', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_347(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 349, Ss, Stack, T, Ts, Tzr); +yeccpars2_347(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); -yeccpars2_349(S, integer, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_347(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 325, Ss, Stack, T, Ts, Tzr); -yeccpars2_349(S, var, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_347(S, var, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 326, Ss, Stack, T, Ts, Tzr); -yeccpars2_349(S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_347(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_310(S, Cat, Ss, Stack, T, Ts, Tzr). -yeccpars2_350(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 352, Ss, Stack, T, Ts, Tzr). +yeccpars2_348(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 350, Ss, Stack, T, Ts, Tzr). -yeccpars2_351(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_349(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_351_(Stack), + NewStack = yeccpars2_349_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_352(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_350(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_352_(Stack), + NewStack = yeccpars2_350_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_353(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 355, Ss, Stack, T, Ts, Tzr). +yeccpars2_351(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 353, Ss, Stack, T, Ts, Tzr). -yeccpars2_354(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_352(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_354_(Stack), + NewStack = yeccpars2_352_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_355(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_353(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, - NewStack = yeccpars2_355_(Stack), + NewStack = yeccpars2_353_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_356(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 358, Ss, Stack, T, Ts, Tzr); -yeccpars2_356(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 359, Ss, Stack, T, Ts, Tzr). +yeccpars2_354(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 356, Ss, Stack, T, Ts, Tzr); +yeccpars2_354(S, ']', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 357, Ss, Stack, T, Ts, Tzr). -yeccpars2_357(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_355(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_357_(Stack), + NewStack = yeccpars2_355_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_358(S, '.', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 360, Ss, Stack, T, Ts, Tzr). +yeccpars2_356(S, '...', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 358, Ss, Stack, T, Ts, Tzr). -yeccpars2_359(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_357(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_359_(Stack), + NewStack = yeccpars2_357_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_360(S, '.', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 361, Ss, Stack, T, Ts, Tzr). - -yeccpars2_361(S, '.', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 362, Ss, Stack, T, Ts, Tzr). - -yeccpars2_362(S, ']', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 363, Ss, Stack, T, Ts, Tzr). +yeccpars2_358(S, ']', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 359, Ss, Stack, T, Ts, Tzr). -yeccpars2_363(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - [_,_,_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_363_(Stack), +yeccpars2_359(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + [_,_,_,_|Nss] = Ss, + NewStack = yeccpars2_359_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_364(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 379, Ss, Stack, T, Ts, Tzr). +yeccpars2_360(S, '>>', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 375, Ss, Stack, T, Ts, Tzr). -yeccpars2_365(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 373, Ss, Stack, T, Ts, Tzr); -yeccpars2_365(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 374, Ss, Stack, T, Ts, Tzr). +yeccpars2_361(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 369, Ss, Stack, T, Ts, Tzr); +yeccpars2_361(S, '>>', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 370, Ss, Stack, T, Ts, Tzr). -yeccpars2_366(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_362(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_366_(Stack), + NewStack = yeccpars2_362_(Stack), yeccgoto_binary_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_367(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 368, Ss, Stack, T, Ts, Tzr). +yeccpars2_363(S, ':', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 364, Ss, Stack, T, Ts, Tzr). -yeccpars2_368(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 369, Ss, Stack, T, Ts, Tzr); -yeccpars2_368(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 370, Ss, Stack, T, Ts, Tzr). +yeccpars2_364(S, integer, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 365, Ss, Stack, T, Ts, Tzr); +yeccpars2_364(S, var, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 366, Ss, Stack, T, Ts, Tzr). -yeccpars2_369(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_365(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_369_(Stack), + NewStack = yeccpars2_365_(Stack), yeccgoto_bin_base_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_370(S, '*', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 371, Ss, Stack, T, Ts, Tzr). +yeccpars2_366(S, '*', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 367, Ss, Stack, T, Ts, Tzr). -yeccpars2_371(S, integer, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 372, Ss, Stack, T, Ts, Tzr). +yeccpars2_367(S, integer, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 368, Ss, Stack, T, Ts, Tzr). -yeccpars2_372(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_368(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_372_(Stack), + NewStack = yeccpars2_368_(Stack), yeccgoto_bin_unit_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_373(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 376, Ss, Stack, T, Ts, Tzr). +yeccpars2_369(S, var, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 372, Ss, Stack, T, Ts, Tzr). -yeccpars2_374(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_370(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_374_(Stack), + NewStack = yeccpars2_370_(Stack), yeccgoto_binary_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_375(S, '>>', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 378, Ss, Stack, T, Ts, Tzr). +yeccpars2_371(S, '>>', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 374, Ss, Stack, T, Ts, Tzr). -yeccpars2_376(S, ':', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 377, Ss, Stack, T, Ts, Tzr). +yeccpars2_372(S, ':', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 373, Ss, Stack, T, Ts, Tzr). -yeccpars2_377(S, var, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 370, Ss, Stack, T, Ts, Tzr). +yeccpars2_373(S, var, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 366, Ss, Stack, T, Ts, Tzr). -yeccpars2_378(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_374(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_378_(Stack), + NewStack = yeccpars2_374_(Stack), yeccgoto_binary_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_379(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_375(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_379_(Stack), + NewStack = yeccpars2_375_(Stack), yeccgoto_binary_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_380(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_376(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_380_(Stack), + NewStack = yeccpars2_376_(Stack), yeccgoto_int_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_381: see yeccpars2_318 +%% yeccpars2_377: see yeccpars2_318 -yeccpars2_382(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_378(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, - NewStack = yeccpars2_382_(Stack), + NewStack = yeccpars2_378_(Stack), yeccgoto_fun_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_383(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 384, Ss, Stack, T, Ts, Tzr). +yeccpars2_379(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 380, Ss, Stack, T, Ts, Tzr). -yeccpars2_384(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_380(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_384_(Stack), + NewStack = yeccpars2_380_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_385(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 386, Ss, Stack, T, Ts, Tzr). +yeccpars2_381(S, '{', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 382, Ss, Stack, T, Ts, Tzr). -yeccpars2_386(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 389, Ss, Stack, T, Ts, Tzr); -yeccpars2_386(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 390, Ss, Stack, T, Ts, Tzr). +yeccpars2_382(S, atom, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 385, Ss, Stack, T, Ts, Tzr); +yeccpars2_382(S, '}', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 386, Ss, Stack, T, Ts, Tzr). -yeccpars2_387(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 395, Ss, Stack, T, Ts, Tzr). +yeccpars2_383(S, '}', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 391, Ss, Stack, T, Ts, Tzr). -yeccpars2_388(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 393, Ss, Stack, T, Ts, Tzr); -yeccpars2_388(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_388_(Stack), +yeccpars2_384(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 389, Ss, Stack, T, Ts, Tzr); +yeccpars2_384(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_384_(Stack), yeccgoto_field_types(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). -yeccpars2_389(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 391, Ss, Stack, T, Ts, Tzr). +yeccpars2_385(S, '::', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 387, Ss, Stack, T, Ts, Tzr). -yeccpars2_390(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_386(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, - NewStack = yeccpars2_390_(Stack), + NewStack = yeccpars2_386_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_391: see yeccpars2_318 +%% yeccpars2_387: see yeccpars2_318 -yeccpars2_392(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_388(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_392_(Stack), + NewStack = yeccpars2_388_(Stack), yeccgoto_field_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_393(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 389, Ss, Stack, T, Ts, Tzr). +yeccpars2_389(S, atom, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 385, Ss, Stack, T, Ts, Tzr). -yeccpars2_394(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_390(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_394_(Stack), + NewStack = yeccpars2_390_(Stack), yeccgoto_field_types(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_395(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_391(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_395_(Stack), + NewStack = yeccpars2_391_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_396(S, '.', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 397, Ss, Stack, T, Ts, Tzr). - -yeccpars2_397(S, '-', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_392(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 320, Ss, Stack, T, Ts, Tzr); -yeccpars2_397(S, integer, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_392(S, integer, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 325, Ss, Stack, T, Ts, Tzr). -yeccpars2_398(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - [_,_,_|Nss] = Ss, - NewStack = yeccpars2_398_(Stack), +yeccpars2_393(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + [_,_|Nss] = Ss, + NewStack = yeccpars2_393_(Stack), yeccgoto_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_399: see yeccpars2_318 +%% yeccpars2_394: see yeccpars2_318 -yeccpars2_400(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_395(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_400_(Stack), + NewStack = yeccpars2_395_(Stack), yeccgoto_top_types(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_401(S, '->', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 402, Ss, Stack, T, Ts, Tzr). +yeccpars2_396(S, '->', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 397, Ss, Stack, T, Ts, Tzr). -%% yeccpars2_402: see yeccpars2_318 +%% yeccpars2_397: see yeccpars2_318 -yeccpars2_403(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_398(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_403_(Stack), + NewStack = yeccpars2_398_(Stack), yeccgoto_fun_type(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_404: see yeccpars2_331 +%% yeccpars2_399: see yeccpars2_331 -yeccpars2_405(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_400(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_405_(Stack), + NewStack = yeccpars2_400_(Stack), yeccgoto_top_type_100(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_406(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 409, Ss, Stack, T, Ts, Tzr). +yeccpars2_401(S, atom, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 404, Ss, Stack, T, Ts, Tzr); +yeccpars2_401(S, var, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 405, Ss, Stack, T, Ts, Tzr). -yeccpars2_407(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_402(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_407_(Stack), + NewStack = yeccpars2_402_(Stack), yeccgoto_type_sig(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_408(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 413, Ss, Stack, T, Ts, Tzr); -yeccpars2_408(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_408_(Stack), +yeccpars2_403(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 411, Ss, Stack, T, Ts, Tzr); +yeccpars2_403(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_403_(Stack), yeccgoto_type_guards(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). -yeccpars2_409(S, '(', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 410, Ss, Stack, T, Ts, Tzr). +yeccpars2_404(S, '(', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 408, Ss, Stack, T, Ts, Tzr). -%% yeccpars2_410: see yeccpars2_318 +yeccpars2_405(S, '::', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 406, Ss, Stack, T, Ts, Tzr). -yeccpars2_411(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 412, Ss, Stack, T, Ts, Tzr). +%% yeccpars2_406: see yeccpars2_318 -yeccpars2_412(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_407(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + [_,_|Nss] = Ss, + NewStack = yeccpars2_407_(Stack), + yeccgoto_type_guard(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). + +%% yeccpars2_408: see yeccpars2_318 + +yeccpars2_409(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 410, Ss, Stack, T, Ts, Tzr). + +yeccpars2_410(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, - NewStack = yeccpars2_412_(Stack), + NewStack = yeccpars2_410_(Stack), yeccgoto_type_guard(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_413: see yeccpars2_406 +%% yeccpars2_411: see yeccpars2_401 -yeccpars2_414(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_412(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_414_(Stack), + NewStack = yeccpars2_412_(Stack), yeccgoto_type_guards(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_415: see yeccpars2_295 +%% yeccpars2_413: see yeccpars2_295 -yeccpars2_416(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_414(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_416_(Stack), + NewStack = yeccpars2_414_(Stack), yeccgoto_type_sigs(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_417(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_415(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_|Nss] = Ss, - NewStack = yeccpars2_417_(Stack), + NewStack = yeccpars2_415_(Stack), yeccgoto_type_spec(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_418(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_416(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_418_(Stack), + NewStack = yeccpars2_416_(Stack), yeccgoto_type_spec(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_419(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_417(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_419_(Stack), + NewStack = yeccpars2_417_(Stack), yeccgoto_attribute(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_420(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 444, Ss, Stack, T, Ts, Tzr); -yeccpars2_420(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 426, Ss, Stack, T, Ts, Tzr); -yeccpars2_420(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_420_(Stack), +yeccpars2_418(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 442, Ss, Stack, T, Ts, Tzr); +yeccpars2_418(S, '::', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 424, Ss, Stack, T, Ts, Tzr); +yeccpars2_418(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_418_(Stack), yeccgoto_attr_val(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). -yeccpars2_421(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_419(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_421_(Stack), + NewStack = yeccpars2_419_(Stack), yeccgoto_attribute(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_422: see yeccpars2_45 +%% yeccpars2_420: see yeccpars2_45 -yeccpars2_423(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 443, Ss, Stack, T, Ts, Tzr). +yeccpars2_421(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 441, Ss, Stack, T, Ts, Tzr). -yeccpars2_424(S, ')', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_422(S, ')', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 210, Ss, Stack, T, Ts, Tzr); -yeccpars2_424(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 425, Ss, Stack, T, Ts, Tzr); -yeccpars2_424(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 426, Ss, Stack, T, Ts, Tzr). +yeccpars2_422(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 423, Ss, Stack, T, Ts, Tzr); +yeccpars2_422(S, '::', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 424, Ss, Stack, T, Ts, Tzr). -yeccpars2_425(S, '#', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, '#', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 44, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, '(', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, '(', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 45, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, '+', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, '+', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 47, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, '-', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, '-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 48, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, '.', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, '.', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 49, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, atom, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, atom, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 52, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, 'bnot', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, 'bnot', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 54, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, 'catch', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, 'catch', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 56, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, 'not', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, 'not', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 62, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, var, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, var, Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 67, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, '{', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 430, Ss, Stack, T, Ts, Tzr); -yeccpars2_425(S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_423(S, '{', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 428, Ss, Stack, T, Ts, Tzr); +yeccpars2_423(S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_cont_13(S, Cat, Ss, Stack, T, Ts, Tzr). -%% yeccpars2_426: see yeccpars2_318 +%% yeccpars2_424: see yeccpars2_318 -yeccpars2_427(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_425(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_427_(Stack), + NewStack = yeccpars2_425_(Stack), yeccgoto_typed_attr_val(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_428(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_426(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_428_(Stack), + NewStack = yeccpars2_426_(Stack), yeccgoto_typed_attr_val(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_429(S, ')', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 442, Ss, Stack, T, Ts, Tzr). +yeccpars2_427(S, ')', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 440, Ss, Stack, T, Ts, Tzr). -%% yeccpars2_430: see yeccpars2_68 +%% yeccpars2_428: see yeccpars2_68 -yeccpars2_431(S, '}', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 441, Ss, Stack, T, Ts, Tzr). +yeccpars2_429(S, '}', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 439, Ss, Stack, T, Ts, Tzr). -yeccpars2_432(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 438, Ss, Stack, T, Ts, Tzr); -yeccpars2_432(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_432_(Stack), +yeccpars2_430(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 436, Ss, Stack, T, Ts, Tzr); +yeccpars2_430(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_430_(Stack), yeccgoto_typed_exprs(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). -yeccpars2_433(S, ',', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 434, Ss, Stack, T, Ts, Tzr); -yeccpars2_433(S, '::', Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 435, Ss, Stack, T, Ts, Tzr); -yeccpars2_433(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_433_(Stack), +yeccpars2_431(S, ',', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 432, Ss, Stack, T, Ts, Tzr); +yeccpars2_431(S, '::', Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 433, Ss, Stack, T, Ts, Tzr); +yeccpars2_431(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_431_(Stack), yeccgoto_exprs(hd(Ss), Cat, Ss, NewStack, T, Ts, Tzr). -%% yeccpars2_434: see yeccpars2_45 +%% yeccpars2_432: see yeccpars2_45 -%% yeccpars2_435: see yeccpars2_318 +%% yeccpars2_433: see yeccpars2_318 -yeccpars2_436(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_434(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_436_(Stack), + NewStack = yeccpars2_434_(Stack), yeccgoto_typed_expr(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_437(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_435(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_437_(Stack), + NewStack = yeccpars2_435_(Stack), yeccgoto_typed_exprs(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_438: see yeccpars2_45 +%% yeccpars2_436: see yeccpars2_45 -yeccpars2_439(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_437(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_439_(Stack), + NewStack = yeccpars2_437_(Stack), yeccgoto_typed_exprs(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_440(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_438(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_440_(Stack), + NewStack = yeccpars2_438_(Stack), yeccgoto_typed_exprs(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_441(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_439(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_441_(Stack), + NewStack = yeccpars2_439_(Stack), yeccgoto_typed_record_fields(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_442(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_440(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_442_(Stack), + NewStack = yeccpars2_440_(Stack), yeccgoto_attr_val(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_443(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_441(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_,_,_|Nss] = Ss, - NewStack = yeccpars2_443_(Stack), + NewStack = yeccpars2_441_(Stack), yeccgoto_attribute(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_444: see yeccpars2_425 +%% yeccpars2_442: see yeccpars2_423 -yeccpars2_445(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_443(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_445_(Stack), + NewStack = yeccpars2_443_(Stack), yeccgoto_attr_val(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_446(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_444(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_446_(Stack), + NewStack = yeccpars2_444_(Stack), yeccgoto_form(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_447(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_445(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_447_(Stack), + NewStack = yeccpars2_445_(Stack), yeccgoto_form(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -yeccpars2_448(S, atom, Ss, Stack, T, Ts, Tzr) -> - yeccpars1(S, 450, Ss, Stack, T, Ts, Tzr). +yeccpars2_446(S, atom, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 448, Ss, Stack, T, Ts, Tzr). -yeccpars2_449(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_447(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_449_(Stack), + NewStack = yeccpars2_447_(Stack), yeccgoto_function_clauses(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_450: see yeccpars2_10 +%% yeccpars2_448: see yeccpars2_10 -yeccpars2_451(S, 'when', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_449(S, 'when', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 84, Ss, Stack, T, Ts, Tzr); -yeccpars2_451(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_451_(Stack), - yeccpars2_83(452, Cat, [451 | Ss], NewStack, T, Ts, Tzr). +yeccpars2_449(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_449_(Stack), + yeccpars2_83(450, Cat, [449 | Ss], NewStack, T, Ts, Tzr). -%% yeccpars2_452: see yeccpars2_83 +%% yeccpars2_450: see yeccpars2_83 -yeccpars2_453(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_451(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_|Nss] = Ss, - NewStack = yeccpars2_453_(Stack), + NewStack = yeccpars2_451_(Stack), 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). +yeccpars2_452(S, atom, Ss, Stack, T, Ts, Tzr) -> + yeccpars1(S, 454, Ss, Stack, T, Ts, Tzr). -yeccpars2_455(_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccpars2_453(_S, Cat, Ss, Stack, T, Ts, Tzr) -> [_,_|Nss] = Ss, - NewStack = yeccpars2_455_(Stack), + NewStack = yeccpars2_453_(Stack), yeccgoto_rule_clauses(hd(Nss), Cat, Nss, NewStack, T, Ts, Tzr). -%% yeccpars2_456: see yeccpars2_10 +%% yeccpars2_454: see yeccpars2_10 -yeccpars2_457(S, 'when', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_455(S, 'when', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 84, Ss, Stack, T, Ts, Tzr); -yeccpars2_457(_S, Cat, Ss, Stack, T, Ts, Tzr) -> - NewStack = yeccpars2_457_(Stack), - yeccpars2_458(458, Cat, [457 | Ss], NewStack, T, Ts, Tzr). +yeccpars2_455(_S, Cat, Ss, Stack, T, Ts, Tzr) -> + NewStack = yeccpars2_455_(Stack), + yeccpars2_456(456, Cat, [455 | Ss], NewStack, T, Ts, Tzr). -yeccpars2_458(S, ':-', Ss, Stack, T, Ts, Tzr) -> +yeccpars2_456(S, ':-', Ss, Stack, T, Ts, Tzr) -> yeccpars1(S, 290, Ss, Stack, T, Ts, Tzr). yeccgoto_add_op(33, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -3868,9 +3865,9 @@ yeccgoto_argument_list(59, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_151(151, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_argument_list(161, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_151(151, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_argument_list(450=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_argument_list(448=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_12(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_argument_list(456=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_argument_list(454=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_12(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_atomic(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -3977,27 +3974,27 @@ yeccgoto_atomic(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_atomic(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_atomic(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_atomic(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_atomic(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_atomic(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_atomic(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_atomic(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_atomic(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_atomic(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_atomic(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_atomic(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_atomic(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_atomic(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_43(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_attr_val(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_421(_S, Cat, Ss, Stack, T, Ts, Tzr). + yeccpars2_419(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_attribute(0, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_8(8, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_bin_base_type(321, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_365(365, Cat, Ss, Stack, T, Ts, Tzr). + yeccpars2_361(361, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_bin_element(50, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_186(186, Cat, Ss, Stack, T, Ts, Tzr); @@ -4010,9 +4007,9 @@ yeccgoto_bin_elements(188=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_189(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_bin_unit_type(321, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_364(364, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_bin_unit_type(373, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_375(375, Cat, Ss, Stack, T, Ts, Tzr). + yeccpars2_360(360, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_bin_unit_type(369, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_371(371, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_binary(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); @@ -4118,17 +4115,17 @@ yeccgoto_binary(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_133(133, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_binary(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_42(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_binary_comprehension(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4235,17 +4232,17 @@ yeccgoto_binary_comprehension(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_binary_comprehension(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_comprehension(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_comprehension(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_comprehension(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_comprehension(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_comprehension(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_comprehension(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_comprehension(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_comprehension(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_comprehension(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_comprehension(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_comprehension(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_comprehension(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_41(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_binary_type(310=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4260,27 +4257,29 @@ yeccgoto_binary_type(331=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_binary_type(337=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(343=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(341=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(346=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(344=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(349=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(347=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(381=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(377=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(391=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(387=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(399=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(394=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_binary_type(397=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(402=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(399=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(404=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(406=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(410=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(408=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(426=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(424=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_binary_type(435=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_binary_type(433=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_316(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_bit_expr(50, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4405,25 +4404,25 @@ yeccgoto_case_expr(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_case_expr(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_case_expr(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_case_expr(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_case_expr(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_case_expr(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_case_expr(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_case_expr(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_case_expr(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_case_expr(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_case_expr(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_case_expr(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_case_expr(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_case_expr(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_40(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_clause_args(10, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_11(11, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_clause_args(450, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_451(451, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_clause_args(456, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_457(457, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_clause_args(448, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_449(449, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_clause_args(454, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_455(455, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_clause_body(83=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_89(_S, Cat, Ss, Stack, T, Ts, Tzr); @@ -4443,7 +4442,7 @@ yeccgoto_clause_body(159=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_160(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_clause_body(287=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_289(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_clause_body(452=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_clause_body(450=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_289(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_clause_guard(11, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4458,10 +4457,10 @@ yeccgoto_clause_guard(102, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_83(103, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_clause_guard(151, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_83(159, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_clause_guard(451, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_83(452, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_clause_guard(457, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_458(458, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_clause_guard(449, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_83(450, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_clause_guard(455, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_456(456, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_comp_op(34, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_230(238, Cat, Ss, Stack, T, Ts, Tzr). @@ -4559,18 +4558,18 @@ yeccgoto_expr(228, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_expr(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_132(132, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr(292, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_420(420, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr(422, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_424(424, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr(425, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_418(418, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_expr(420, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_422(422, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_expr(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_39(39, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr(430, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_433(433, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr(434, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_433(433, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr(438, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_433(433, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr(428, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_431(431, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_expr(432, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_431(431, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_expr(436, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_431(431, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_expr(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_39(39, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_100(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4653,17 +4652,17 @@ yeccgoto_expr_100(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_100(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_100(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_100(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_100(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_100(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_100(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_100(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_100(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_100(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_100(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_100(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_100(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_100(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_38(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_150(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4748,17 +4747,17 @@ yeccgoto_expr_150(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_150(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_150(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_150(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_150(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_150(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_150(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_150(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_150(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_150(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_150(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_150(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_150(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_150(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_37(37, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_160(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4845,17 +4844,17 @@ yeccgoto_expr_160(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_160(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_160(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_160(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_160(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_160(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_160(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_160(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_160(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_160(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_160(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_160(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_160(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_160(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_36(36, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_200(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -4942,17 +4941,17 @@ yeccgoto_expr_200(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_200(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_200(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_200(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_200(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_200(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_200(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_200(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_200(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_200(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_200(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_200(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_200(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_200(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_35(35, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_300(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5043,17 +5042,17 @@ yeccgoto_expr_300(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_300(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_300(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_300(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_300(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_300(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_300(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_300(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_300(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_300(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_300(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_300(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_300(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_300(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_34(34, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_400(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5144,17 +5143,17 @@ yeccgoto_expr_400(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_400(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_400(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_400(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_400(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_400(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_400(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_400(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_400(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_400(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_400(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_400(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_400(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_400(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_33(33, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_500(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5247,17 +5246,17 @@ yeccgoto_expr_500(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_500(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_500(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_500(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_500(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_500(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_500(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_500(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_500(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_500(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_500(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_500(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_500(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_500(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_32(32, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_600(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5352,17 +5351,17 @@ yeccgoto_expr_600(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_600(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_600(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_600(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_600(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_600(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_600(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_600(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_600(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_600(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_600(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_600(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_600(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_600(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_31(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_700(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5459,17 +5458,17 @@ yeccgoto_expr_700(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_700(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_700(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_700(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_700(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_700(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_700(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_700(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_700(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_700(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_700(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_700(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_700(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_700(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_30(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_800(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5566,17 +5565,17 @@ yeccgoto_expr_800(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_800(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_800(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_800(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_800(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_800(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_800(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_800(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_800(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_800(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_800(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_800(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_800(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_800(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_29(29, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_900(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5673,17 +5672,17 @@ yeccgoto_expr_900(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_900(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_900(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_900(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_900(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_900(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_900(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_900(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_900(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_900(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_900(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_900(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_900(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_900(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_28(28, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_expr_max(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5790,17 +5789,17 @@ yeccgoto_expr_max(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_expr_max(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_max(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_max(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_max(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_max(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_max(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_max(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_max(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_max(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_max(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_max(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_expr_max(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_expr_max(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_27(27, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_exprs(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5827,26 +5826,26 @@ yeccgoto_exprs(146, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_86(86, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_exprs(228=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_229(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_exprs(425, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_429(429, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_exprs(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_exprs(423, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_427(427, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_exprs(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_69(69, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_exprs(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_exprs(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_229(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_exprs(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_440(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_exprs(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_445(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_exprs(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_438(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_exprs(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_443(_S, Cat, Ss, Stack, T, Ts, Tzr). -yeccgoto_field_type(386, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_388(388, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_field_type(393, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_388(388, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_field_type(382, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_384(384, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_field_type(389, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_384(384, Cat, Ss, Stack, T, Ts, Tzr). -yeccgoto_field_types(386, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_387(387, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_field_types(393=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_394(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_field_types(382, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_383(383, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_field_types(389=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_390(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_form(0, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_7(7, Cat, Ss, Stack, T, Ts, Tzr). @@ -5965,17 +5964,17 @@ yeccgoto_fun_expr(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_fun_expr(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_expr(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_expr(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_expr(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_expr(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_expr(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_expr(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_expr(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_expr(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_expr(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_expr(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_expr(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_expr(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_25(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_fun_type(295, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -5984,7 +5983,7 @@ yeccgoto_fun_type(306, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_309(309, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_fun_type(334=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_336(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_fun_type(415, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_fun_type(413, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_309(309, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_fun_type_100(334, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6087,28 +6086,28 @@ yeccgoto_function_call(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_function_call(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_call(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_call(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_call(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_call(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_call(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_call(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_call(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_call(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_call(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_call(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_call(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_call(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_24(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_function_clause(0, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_5(5, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_clause(448, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_function_clause(446, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_5(5, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_function_clauses(0=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_4(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_function_clauses(448=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_449(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_function_clauses(446=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_447(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_guard(60, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_83(144, Cat, Ss, Stack, T, Ts, Tzr); @@ -6233,17 +6232,17 @@ yeccgoto_if_expr(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_if_expr(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_if_expr(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_if_expr(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_if_expr(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_if_expr(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_if_expr(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_if_expr(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_if_expr(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_if_expr(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_if_expr(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_if_expr(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_if_expr(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_if_expr(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_23(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_int_type(310, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6258,29 +6257,31 @@ yeccgoto_int_type(331, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_int_type(337, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(343, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(341, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(346, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(344, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(349, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(347, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(381, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(377, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(391, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(387, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(397=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_398(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(399, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(392=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_393(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_int_type(394, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(402, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(397, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(404, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(399, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_int_type(406, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(410, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(408, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(426, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(424, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_int_type(435, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_int_type(433, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_315(315, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_lc_expr(129, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6405,17 +6406,17 @@ yeccgoto_list(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_list(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_22(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_list_comprehension(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6524,17 +6525,17 @@ yeccgoto_list_comprehension(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_list_comprehension(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list_comprehension(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list_comprehension(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list_comprehension(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list_comprehension(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list_comprehension(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list_comprehension(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list_comprehension(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list_comprehension(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list_comprehension(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list_comprehension(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_list_comprehension(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_list_comprehension(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_21(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_list_op(33, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6647,17 +6648,17 @@ yeccgoto_prefix_op(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_prefix_op(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_prefix_op(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_prefix_op(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_prefix_op(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_prefix_op(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_prefix_op(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_prefix_op(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_prefix_op(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_prefix_op(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_prefix_op(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_prefix_op(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_prefix_op(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_prefix_op(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_20(20, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_query_expr(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6764,17 +6765,17 @@ yeccgoto_query_expr(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_query_expr(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_query_expr(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_query_expr(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_query_expr(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_query_expr(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_query_expr(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_query_expr(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_query_expr(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_query_expr(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_query_expr(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_query_expr(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_query_expr(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_query_expr(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_19(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_receive_expr(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6881,17 +6882,17 @@ yeccgoto_receive_expr(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_receive_expr(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_receive_expr(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_receive_expr(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_receive_expr(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_receive_expr(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_receive_expr(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_receive_expr(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_receive_expr(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_receive_expr(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_receive_expr(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_receive_expr(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_receive_expr(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_receive_expr(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_18(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_record_expr(13, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -6988,17 +6989,17 @@ yeccgoto_record_expr(290, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_record_expr(292, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_record_expr(422, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_record_expr(420, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_record_expr(425, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_record_expr(423, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_record_expr(430, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_record_expr(428, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_record_expr(434, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_record_expr(432, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_record_expr(438, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_record_expr(436, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_record_expr(444, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_record_expr(442, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_17(17, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_record_field(214, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -7023,18 +7024,18 @@ yeccgoto_rule(0, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_rule_body(287=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_288(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_rule_body(458=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_rule_body(456=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_288(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_rule_clause(0, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_2(2, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_rule_clause(454, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_rule_clause(452, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_2(2, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_rule_clauses(0=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_1(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_rule_clauses(454=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_455(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_rule_clauses(452=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_453(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_spec_fun(293, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_295(295, Cat, Ss, Stack, T, Ts, Tzr); @@ -7147,17 +7148,17 @@ yeccgoto_strings(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_strings(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_strings(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_strings(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_strings(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_strings(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_strings(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_strings(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_strings(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_strings(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_strings(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_strings(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_strings(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_strings(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_16(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_tail(171=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -7168,33 +7169,35 @@ yeccgoto_tail(179=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccgoto_top_type(310, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_top_type(318, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_383(383, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_379(379, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_top_type(322, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_356(356, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_354(354, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_top_type(327, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_top_type(337, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(343=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_344(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(346, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type(341=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_342(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type(344, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(349, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type(347, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(381=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_382(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(391=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_392(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(399, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type(377=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_378(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type(387=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_388(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type(394, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(402=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_403(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(410, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type(397=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_398(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type(406=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_407(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type(408, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_314(314, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(426=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_427(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type(435=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_436(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_top_type(424=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_425(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type(433=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_434(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_top_type_100(310=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); @@ -7208,27 +7211,29 @@ yeccgoto_top_type_100(331=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_332(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_top_type_100(337=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(343=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(341=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(346=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(344=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(349=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(347=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(381=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(377=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(391=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(387=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(399=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(394=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(402=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(397=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(404=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_405(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(410=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(399=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_400(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type_100(406=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_type_100(408=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(426=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(424=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_type_100(435=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_top_type_100(433=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_313(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_top_types(310, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -7237,14 +7242,14 @@ yeccgoto_top_types(327, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_328(328, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_top_types(337, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_312(312, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_types(346, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_353(353, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_types(349, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_350(350, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_types(399=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_400(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_top_types(410, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_411(411, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_top_types(344, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_351(351, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_types(347, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_348(348, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_types(394=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_395(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_top_types(408, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_409(409, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_try_catch(72=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_73(_S, Cat, Ss, Stack, T, Ts, Tzr); @@ -7365,17 +7370,17 @@ yeccgoto_try_expr(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_try_expr(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_try_expr(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_try_expr(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_try_expr(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_try_expr(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_try_expr(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_try_expr(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_try_expr(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_try_expr(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_try_expr(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_try_expr(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_try_expr(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_try_expr(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_15(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_tuple(13=_S, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -7482,17 +7487,17 @@ yeccgoto_tuple(290=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_tuple(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_tuple(422=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_tuple(420=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_tuple(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_tuple(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_tuple(430=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_tuple(428=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_tuple(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_tuple(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_tuple(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_tuple(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_tuple(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_tuple(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_14(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_type(310, Cat, Ss, Stack, T, Ts, Tzr) -> @@ -7507,82 +7512,84 @@ yeccgoto_type(331, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_type(337, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(343, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(341, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(346, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(344, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(349, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(347, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(381, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(377, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(391, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(387, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(399, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(394, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(402, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(397, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(404, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(399, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_type(406, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(410, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(408, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(426, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(424, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type(435, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type(433, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_311(311, Cat, Ss, Stack, T, Ts, Tzr). -yeccgoto_type_guard(406, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_408(408, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type_guard(413, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_408(408, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_type_guard(401, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_403(403, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_type_guard(411, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_403(403, Cat, Ss, Stack, T, Ts, Tzr). -yeccgoto_type_guards(406=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_407(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type_guards(413=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_414(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_type_guards(401=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_402(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_type_guards(411=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_412(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_type_sig(295, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_308(308, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_type_sig(306, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_308(308, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type_sig(415, Cat, Ss, Stack, T, Ts, Tzr) -> +yeccgoto_type_sig(413, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_308(308, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_type_sigs(295=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_418(_S, Cat, Ss, Stack, T, Ts, Tzr); + yeccpars2_416(_S, Cat, Ss, Stack, T, Ts, Tzr); yeccgoto_type_sigs(306, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_307(307, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_type_sigs(415=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_416(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_type_sigs(413=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_414(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_type_spec(293=_S, Cat, Ss, Stack, T, Ts, Tzr) -> yeccpars2_294(_S, Cat, Ss, Stack, T, Ts, Tzr). yeccgoto_typed_attr_val(292=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_419(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_typed_attr_val(422, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_423(423, Cat, Ss, Stack, T, Ts, Tzr). - -yeccgoto_typed_expr(430, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_432(432, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_typed_expr(434, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_432(432, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_typed_expr(438, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_432(432, Cat, Ss, Stack, T, Ts, Tzr). - -yeccgoto_typed_exprs(430, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_431(431, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_typed_exprs(434=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_437(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_typed_exprs(438=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_439(_S, Cat, Ss, Stack, T, Ts, Tzr). + yeccpars2_417(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_typed_attr_val(420, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_421(421, Cat, Ss, Stack, T, Ts, Tzr). + +yeccgoto_typed_expr(428, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_430(430, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_typed_expr(432, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_430(430, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_typed_expr(436, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_430(430, Cat, Ss, Stack, T, Ts, Tzr). + +yeccgoto_typed_exprs(428, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_429(429, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_typed_exprs(432=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_435(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_typed_exprs(436=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_437(_S, Cat, Ss, Stack, T, Ts, Tzr). -yeccgoto_typed_record_fields(425=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_428(_S, Cat, Ss, Stack, T, Ts, Tzr); -yeccgoto_typed_record_fields(444=_S, Cat, Ss, Stack, T, Ts, Tzr) -> - yeccpars2_428(_S, Cat, Ss, Stack, T, Ts, Tzr). +yeccgoto_typed_record_fields(423=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_426(_S, Cat, Ss, Stack, T, Ts, Tzr); +yeccgoto_typed_record_fields(442=_S, Cat, Ss, Stack, T, Ts, Tzr) -> + yeccpars2_426(_S, Cat, Ss, Stack, T, Ts, Tzr). -compile({inline,yeccpars2_1_/1}). --file("erl_parse.yrl", 476). +-file("erl_parse.yrl", 477). yeccpars2_1_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7590,7 +7597,7 @@ yeccpars2_1_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_2_/1}). --file("erl_parse.yrl", 478). +-file("erl_parse.yrl", 479). yeccpars2_2_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7598,7 +7605,7 @@ yeccpars2_2_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_4_/1}). --file("erl_parse.yrl", 186). +-file("erl_parse.yrl", 187). yeccpars2_4_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7606,7 +7613,7 @@ yeccpars2_4_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_5_/1}). --file("erl_parse.yrl", 188). +-file("erl_parse.yrl", 189). yeccpars2_5_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7614,14 +7621,14 @@ yeccpars2_5_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_11_/1}). --file("erl_parse.yrl", 198). +-file("erl_parse.yrl", 199). yeccpars2_11_(__Stack0) -> [begin [ ] end | __Stack0]. -compile({inline,yeccpars2_12_/1}). --file("erl_parse.yrl", 195). +-file("erl_parse.yrl", 196). yeccpars2_12_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7629,43 +7636,43 @@ yeccpars2_12_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_39_/1}). --file("erl_parse.yrl", 427). +-file("erl_parse.yrl", 428). yeccpars2_39_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7639). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7646). -compile({inline,yeccpars2_46_/1}). --file("erl_parse.yrl", 423). +-file("erl_parse.yrl", 424). yeccpars2_46_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { [ ] , ? line ( __1 ) } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7648). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7655). -compile({inline,yeccpars2_70_/1}). --file("erl_parse.yrl", 314). +-file("erl_parse.yrl", 315). yeccpars2_70_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { tuple , ? line ( __1 ) , [ ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7657). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7664). -compile({inline,yeccpars2_71_/1}). --file("erl_parse.yrl", 315). +-file("erl_parse.yrl", 316). yeccpars2_71_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { tuple , ? line ( __1 ) , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7666). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7673). -compile({inline,yeccpars2_73_/1}). --file("erl_parse.yrl", 397). +-file("erl_parse.yrl", 398). yeccpars2_73_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7673,14 +7680,14 @@ yeccpars2_73_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_77_/1}). --file("erl_parse.yrl", 198). +-file("erl_parse.yrl", 199). yeccpars2_77_(__Stack0) -> [begin [ ] end | __Stack0]. -compile({inline,yeccpars2_79_/1}). --file("erl_parse.yrl", 366). +-file("erl_parse.yrl", 367). yeccpars2_79_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7688,16 +7695,16 @@ yeccpars2_79_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_81_/1}). --file("erl_parse.yrl", 367). +-file("erl_parse.yrl", 368). yeccpars2_81_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7698). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7705). -compile({inline,yeccpars2_82_/1}). --file("erl_parse.yrl", 395). +-file("erl_parse.yrl", 396). yeccpars2_82_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7705,7 +7712,7 @@ yeccpars2_82_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_85_/1}). --file("erl_parse.yrl", 197). +-file("erl_parse.yrl", 198). yeccpars2_85_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -7713,7 +7720,7 @@ yeccpars2_85_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_86_/1}). --file("erl_parse.yrl", 430). +-file("erl_parse.yrl", 431). yeccpars2_86_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7721,16 +7728,16 @@ yeccpars2_86_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_88_/1}). --file("erl_parse.yrl", 431). +-file("erl_parse.yrl", 432). yeccpars2_88_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7731). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7738). -compile({inline,yeccpars2_89_/1}). --file("erl_parse.yrl", 370). +-file("erl_parse.yrl", 371). yeccpars2_89_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7738,7 +7745,7 @@ yeccpars2_89_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_91_/1}). --file("erl_parse.yrl", 200). +-file("erl_parse.yrl", 201). yeccpars2_91_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -7746,7 +7753,7 @@ yeccpars2_91_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_93_/1}). --file("erl_parse.yrl", 406). +-file("erl_parse.yrl", 407). yeccpars2_93_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7754,22 +7761,22 @@ yeccpars2_93_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_94_/1}). --file("erl_parse.yrl", 198). +-file("erl_parse.yrl", 199). yeccpars2_94_(__Stack0) -> [begin [ ] end | __Stack0]. -compile({inline,yeccpars2_98_/1}). --file("erl_parse.yrl", 198). +-file("erl_parse.yrl", 199). yeccpars2_98_(__Stack0) -> [begin [ ] end | __Stack0]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7770). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7777). -compile({inline,yeccpars2_100_/1}). --file("erl_parse.yrl", 416). +-file("erl_parse.yrl", 417). yeccpars2_100_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7778,15 +7785,15 @@ yeccpars2_100_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_102_/1}). --file("erl_parse.yrl", 198). +-file("erl_parse.yrl", 199). yeccpars2_102_(__Stack0) -> [begin [ ] end | __Stack0]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7787). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7794). -compile({inline,yeccpars2_104_/1}). --file("erl_parse.yrl", 413). +-file("erl_parse.yrl", 414). yeccpars2_104_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7794,9 +7801,9 @@ yeccpars2_104_(__Stack0) -> { clause , L , [ { tuple , L , [ __1 , __3 , { var , L , '_' } ] } ] , __4 , __5 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7797). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7804). -compile({inline,yeccpars2_106_/1}). --file("erl_parse.yrl", 410). +-file("erl_parse.yrl", 411). yeccpars2_106_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7805,7 +7812,7 @@ yeccpars2_106_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_108_/1}). --file("erl_parse.yrl", 407). +-file("erl_parse.yrl", 408). yeccpars2_108_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7813,7 +7820,7 @@ yeccpars2_108_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_110_/1}). --file("erl_parse.yrl", 400). +-file("erl_parse.yrl", 401). yeccpars2_110_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7821,7 +7828,7 @@ yeccpars2_110_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_112_/1}). --file("erl_parse.yrl", 402). +-file("erl_parse.yrl", 403). yeccpars2_112_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7829,43 +7836,43 @@ yeccpars2_112_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_114_/1}). --file("erl_parse.yrl", 404). +-file("erl_parse.yrl", 405). yeccpars2_114_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { [ ] , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7839). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7846). -compile({inline,yeccpars2_115_/1}). --file("erl_parse.yrl", 441). +-file("erl_parse.yrl", 442). yeccpars2_115_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { string , ? line ( __1 ) , element ( 3 , __1 ) ++ element ( 3 , __2 ) } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7848). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7855). -compile({inline,yeccpars2_120_/1}). --file("erl_parse.yrl", 375). +-file("erl_parse.yrl", 376). yeccpars2_120_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { 'receive' , ? line ( __1 ) , [ ] , __3 , __4 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7857). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7864). -compile({inline,yeccpars2_122_/1}). --file("erl_parse.yrl", 373). +-file("erl_parse.yrl", 374). yeccpars2_122_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { 'receive' , ? line ( __1 ) , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7866). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7873). -compile({inline,yeccpars2_125_/1}). --file("erl_parse.yrl", 377). +-file("erl_parse.yrl", 378). yeccpars2_125_(__Stack0) -> [__6,__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7873,25 +7880,25 @@ yeccpars2_125_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_131_/1}). --file("erl_parse.yrl", 307). +-file("erl_parse.yrl", 308). yeccpars2_131_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7883). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7890). -compile({inline,yeccpars2_135_/1}). --file("erl_parse.yrl", 312). +-file("erl_parse.yrl", 313). yeccpars2_135_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { b_generate , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7892). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7899). -compile({inline,yeccpars2_137_/1}). --file("erl_parse.yrl", 311). +-file("erl_parse.yrl", 312). yeccpars2_137_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7899,25 +7906,25 @@ yeccpars2_137_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_139_/1}). --file("erl_parse.yrl", 308). +-file("erl_parse.yrl", 309). yeccpars2_139_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7909). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7916). -compile({inline,yeccpars2_140_/1}). --file("erl_parse.yrl", 304). +-file("erl_parse.yrl", 305). yeccpars2_140_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { lc , ? line ( __1 ) , __2 , __4 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7918). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7925). -compile({inline,yeccpars2_141_/1}). --file("erl_parse.yrl", 420). +-file("erl_parse.yrl", 421). yeccpars2_141_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7925,16 +7932,16 @@ yeccpars2_141_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_143_/1}). --file("erl_parse.yrl", 356). +-file("erl_parse.yrl", 357). yeccpars2_143_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7935). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7942). -compile({inline,yeccpars2_145_/1}). --file("erl_parse.yrl", 360). +-file("erl_parse.yrl", 361). yeccpars2_145_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -7942,16 +7949,16 @@ yeccpars2_145_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_147_/1}). --file("erl_parse.yrl", 357). +-file("erl_parse.yrl", 358). yeccpars2_147_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7952). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7959). -compile({inline,yeccpars2_148_/1}). --file("erl_parse.yrl", 354). +-file("erl_parse.yrl", 355). yeccpars2_148_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7959,7 +7966,7 @@ yeccpars2_148_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_150_/1}). --file("erl_parse.yrl", 387). +-file("erl_parse.yrl", 388). yeccpars2_150_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -7967,24 +7974,24 @@ yeccpars2_150_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_151_/1}). --file("erl_parse.yrl", 198). +-file("erl_parse.yrl", 199). yeccpars2_151_(__Stack0) -> [begin [ ] end | __Stack0]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7976). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7983). -compile({inline,yeccpars2_157_/1}). --file("erl_parse.yrl", 383). +-file("erl_parse.yrl", 384). yeccpars2_157_(__Stack0) -> [__6,__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { 'fun' , ? line ( __1 ) , { function , element ( 3 , __2 ) , element ( 3 , __4 ) , element ( 3 , __6 ) } } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 7985). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 7992). -compile({inline,yeccpars2_158_/1}). --file("erl_parse.yrl", 381). +-file("erl_parse.yrl", 382). yeccpars2_158_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -7992,7 +7999,7 @@ yeccpars2_158_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_160_/1}). --file("erl_parse.yrl", 391). +-file("erl_parse.yrl", 392). yeccpars2_160_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8001,70 +8008,70 @@ yeccpars2_160_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_162_/1}). --file("erl_parse.yrl", 388). +-file("erl_parse.yrl", 389). yeccpars2_162_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8011). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8018). -compile({inline,yeccpars2_163_/1}). --file("erl_parse.yrl", 385). +-file("erl_parse.yrl", 386). yeccpars2_163_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin build_fun ( ? line ( __1 ) , __2 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8020). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8027). -compile({inline,yeccpars2_164_/1}). --file("erl_parse.yrl", 203). +-file("erl_parse.yrl", 204). yeccpars2_164_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { 'catch' , ? line ( __1 ) , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8029). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8036). -compile({inline,yeccpars2_168_/1}). --file("erl_parse.yrl", 364). +-file("erl_parse.yrl", 365). yeccpars2_168_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { 'case' , ? line ( __1 ) , __2 , __4 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8038). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8045). -compile({inline,yeccpars2_170_/1}). --file("erl_parse.yrl", 259). +-file("erl_parse.yrl", 260). yeccpars2_170_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { block , ? line ( __1 ) , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8047). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8054). -compile({inline,yeccpars2_172_/1}). --file("erl_parse.yrl", 268). +-file("erl_parse.yrl", 269). yeccpars2_172_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { nil , ? line ( __1 ) } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8056). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8063). -compile({inline,yeccpars2_173_/1}). --file("erl_parse.yrl", 269). +-file("erl_parse.yrl", 270). yeccpars2_173_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { cons , ? line ( __1 ) , __2 , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8065). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8072). -compile({inline,yeccpars2_175_/1}). --file("erl_parse.yrl", 271). +-file("erl_parse.yrl", 272). yeccpars2_175_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -8072,16 +8079,16 @@ yeccpars2_175_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_178_/1}). --file("erl_parse.yrl", 272). +-file("erl_parse.yrl", 273). yeccpars2_178_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin __2 end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8082). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8089). -compile({inline,yeccpars2_180_/1}). --file("erl_parse.yrl", 273). +-file("erl_parse.yrl", 274). yeccpars2_180_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8089,23 +8096,23 @@ yeccpars2_180_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_183_/1}). --file("erl_parse.yrl", 289). +-file("erl_parse.yrl", 290). yeccpars2_183_(__Stack0) -> [begin default end | __Stack0]. -compile({inline,yeccpars2_186_/1}). --file("erl_parse.yrl", 279). +-file("erl_parse.yrl", 280). yeccpars2_186_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8106). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8113). -compile({inline,yeccpars2_187_/1}). --file("erl_parse.yrl", 276). +-file("erl_parse.yrl", 277). yeccpars2_187_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -8113,25 +8120,25 @@ yeccpars2_187_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_189_/1}). --file("erl_parse.yrl", 280). +-file("erl_parse.yrl", 281). yeccpars2_189_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8123). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8130). -compile({inline,yeccpars2_190_/1}). --file("erl_parse.yrl", 277). +-file("erl_parse.yrl", 278). yeccpars2_190_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { bin , ? line ( __1 ) , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8132). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8139). -compile({inline,yeccpars2_193_/1}). --file("erl_parse.yrl", 306). +-file("erl_parse.yrl", 307). yeccpars2_193_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8139,23 +8146,23 @@ yeccpars2_193_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_194_/1}). --file("erl_parse.yrl", 292). +-file("erl_parse.yrl", 293). yeccpars2_194_(__Stack0) -> [begin default end | __Stack0]. -compile({inline,yeccpars2_197_/1}). --file("erl_parse.yrl", 288). +-file("erl_parse.yrl", 289). yeccpars2_197_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin __2 end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8156). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8163). -compile({inline,yeccpars2_198_/1}). --file("erl_parse.yrl", 283). +-file("erl_parse.yrl", 284). yeccpars2_198_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8163,7 +8170,7 @@ yeccpars2_198_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_200_/1}). --file("erl_parse.yrl", 291). +-file("erl_parse.yrl", 292). yeccpars2_200_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -8171,7 +8178,7 @@ yeccpars2_200_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_201_/1}). --file("erl_parse.yrl", 295). +-file("erl_parse.yrl", 296). yeccpars2_201_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -8179,7 +8186,7 @@ yeccpars2_201_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_202_/1}). --file("erl_parse.yrl", 297). +-file("erl_parse.yrl", 298). yeccpars2_202_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -8187,7 +8194,7 @@ yeccpars2_202_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_204_/1}). --file("erl_parse.yrl", 298). +-file("erl_parse.yrl", 299). yeccpars2_204_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8195,25 +8202,25 @@ yeccpars2_204_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_206_/1}). --file("erl_parse.yrl", 294). +-file("erl_parse.yrl", 295). yeccpars2_206_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8205). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8212). -compile({inline,yeccpars2_207_/1}). --file("erl_parse.yrl", 285). +-file("erl_parse.yrl", 286). yeccpars2_207_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin ? mkop1 ( __1 , __2 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8214). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8221). -compile({inline,yeccpars2_208_/1}). --file("erl_parse.yrl", 245). +-file("erl_parse.yrl", 246). yeccpars2_208_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -8221,16 +8228,16 @@ yeccpars2_208_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_210_/1}). --file("erl_parse.yrl", 258). +-file("erl_parse.yrl", 259). yeccpars2_210_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin __2 end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8231). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8238). -compile({inline,yeccpars2_212_/1}). --file("erl_parse.yrl", 329). +-file("erl_parse.yrl", 330). yeccpars2_212_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8238,7 +8245,7 @@ yeccpars2_212_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_216_/1}). --file("erl_parse.yrl", 342). +-file("erl_parse.yrl", 343). yeccpars2_216_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin @@ -8246,25 +8253,25 @@ yeccpars2_216_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_219_/1}). --file("erl_parse.yrl", 339). +-file("erl_parse.yrl", 340). yeccpars2_219_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin [ ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8256). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8263). -compile({inline,yeccpars2_221_/1}). --file("erl_parse.yrl", 345). +-file("erl_parse.yrl", 346). yeccpars2_221_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { record_field , ? line ( __1 ) , __1 , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8265). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8272). -compile({inline,yeccpars2_223_/1}). --file("erl_parse.yrl", 346). +-file("erl_parse.yrl", 347). yeccpars2_223_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8272,7 +8279,7 @@ yeccpars2_223_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_225_/1}). --file("erl_parse.yrl", 343). +-file("erl_parse.yrl", 344). yeccpars2_225_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8280,16 +8287,16 @@ yeccpars2_225_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_226_/1}). --file("erl_parse.yrl", 340). +-file("erl_parse.yrl", 341). yeccpars2_226_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin __2 end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8290). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8297). -compile({inline,yeccpars2_227_/1}). --file("erl_parse.yrl", 327). +-file("erl_parse.yrl", 328). yeccpars2_227_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8297,178 +8304,178 @@ yeccpars2_227_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_229_/1}). --file("erl_parse.yrl", 428). +-file("erl_parse.yrl", 429). yeccpars2_229_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8307). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8314). -compile({inline,yeccpars2_232_/1}). --file("erl_parse.yrl", 206). +-file("erl_parse.yrl", 207). yeccpars2_232_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { match , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8316). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8323). -compile({inline,yeccpars2_233_/1}). --file("erl_parse.yrl", 207). +-file("erl_parse.yrl", 208). yeccpars2_233_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8325). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8332). -compile({inline,yeccpars2_235_/1}). --file("erl_parse.yrl", 210). +-file("erl_parse.yrl", 211). yeccpars2_235_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8334). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8341). -compile({inline,yeccpars2_237_/1}). --file("erl_parse.yrl", 213). +-file("erl_parse.yrl", 214). yeccpars2_237_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8343). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8350). -compile({inline,yeccpars2_247_/1}). --file("erl_parse.yrl", 217). +-file("erl_parse.yrl", 218). yeccpars2_247_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8352). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8359). -compile({inline,yeccpars2_260_/1}). --file("erl_parse.yrl", 225). +-file("erl_parse.yrl", 226). yeccpars2_260_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8361). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8368). -compile({inline,yeccpars2_268_/1}). --file("erl_parse.yrl", 229). +-file("erl_parse.yrl", 230). yeccpars2_268_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8370). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8377). -compile({inline,yeccpars2_269_/1}). --file("erl_parse.yrl", 221). +-file("erl_parse.yrl", 222). yeccpars2_269_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin ? mkop2 ( __1 , __2 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8379). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8386). -compile({inline,yeccpars2_270_/1}). --file("erl_parse.yrl", 351). +-file("erl_parse.yrl", 352). yeccpars2_270_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { call , ? line ( __1 ) , __1 , element ( 1 , __2 ) } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8388). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8395). -compile({inline,yeccpars2_273_/1}). --file("erl_parse.yrl", 241). +-file("erl_parse.yrl", 242). yeccpars2_273_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { remote , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8397). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8404). -compile({inline,yeccpars2_274_/1}). --file("erl_parse.yrl", 247). +-file("erl_parse.yrl", 248). yeccpars2_274_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { record_field , ? line ( __2 ) , __1 , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8406). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8413). -compile({inline,yeccpars2_277_/1}). --file("erl_parse.yrl", 333). +-file("erl_parse.yrl", 334). yeccpars2_277_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { record , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __4 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8415). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8422). -compile({inline,yeccpars2_279_/1}). --file("erl_parse.yrl", 331). +-file("erl_parse.yrl", 332). yeccpars2_279_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { record_field , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __5 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8424). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8431). -compile({inline,yeccpars2_280_/1}). --file("erl_parse.yrl", 424). +-file("erl_parse.yrl", 425). yeccpars2_280_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { __2 , ? line ( __1 ) } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8433). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8440). -compile({inline,yeccpars2_281_/1}). --file("erl_parse.yrl", 233). +-file("erl_parse.yrl", 234). yeccpars2_281_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin ? mkop1 ( __1 , __2 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8442). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8449). -compile({inline,yeccpars2_284_/1}). --file("erl_parse.yrl", 337). +-file("erl_parse.yrl", 338). yeccpars2_284_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { record , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __4 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8451). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8458). -compile({inline,yeccpars2_286_/1}). --file("erl_parse.yrl", 335). +-file("erl_parse.yrl", 336). yeccpars2_286_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { record_field , ? line ( __2 ) , __1 , element ( 3 , __3 ) , __5 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8460). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8467). -compile({inline,yeccpars2_288_/1}). --file("erl_parse.yrl", 482). +-file("erl_parse.yrl", 483). yeccpars2_288_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { clause , ? line ( __1 ) , element ( 3 , __1 ) , __2 , __3 , __4 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8469). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8476). -compile({inline,yeccpars2_289_/1}). --file("erl_parse.yrl", 192). +-file("erl_parse.yrl", 193). yeccpars2_289_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin @@ -8476,7 +8483,7 @@ yeccpars2_289_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_291_/1}). --file("erl_parse.yrl", 484). +-file("erl_parse.yrl", 485). yeccpars2_291_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin @@ -8524,137 +8531,137 @@ yeccpars2_308_(__Stack0) -> end | __Stack]. -compile({inline,yeccpars2_314_/1}). --file("erl_parse.yrl", 112). +-file("erl_parse.yrl", 113). yeccpars2_314_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8534). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8541). -compile({inline,yeccpars2_329_/1}). --file("erl_parse.yrl", 135). +-file("erl_parse.yrl", 136). yeccpars2_329_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , tuple , [ ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8543). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8550). -compile({inline,yeccpars2_330_/1}). --file("erl_parse.yrl", 136). +-file("erl_parse.yrl", 137). yeccpars2_330_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , tuple , __2 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8552). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8559). -compile({inline,yeccpars2_332_/1}). --file("erl_parse.yrl", 115). +-file("erl_parse.yrl", 116). yeccpars2_332_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { ann_type , ? line ( __1 ) , [ __1 , __3 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8561). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8568). -compile({inline,yeccpars2_338_/1}). --file("erl_parse.yrl", 144). +-file("erl_parse.yrl", 145). yeccpars2_338_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , 'fun' , [ ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8570). --compile({inline,yeccpars2_344_/1}). --file("erl_parse.yrl", 152). -yeccpars2_344_(__Stack0) -> - [__7,__6,__5,__4,__3,__2,__1 | __Stack] = __Stack0, +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8577). +-compile({inline,yeccpars2_342_/1}). +-file("erl_parse.yrl", 153). +yeccpars2_342_(__Stack0) -> + [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , 'fun' , - [ { type , ? line ( __1 ) , any } , __7 ] } + [ { type , ? line ( __1 ) , any } , __5 ] } end | __Stack]. --compile({inline,yeccpars2_345_/1}). --file("erl_parse.yrl", 145). -yeccpars2_345_(__Stack0) -> +-compile({inline,yeccpars2_343_/1}). +-file("erl_parse.yrl", 146). +yeccpars2_343_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin __3 end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8588). --compile({inline,yeccpars2_351_/1}). --file("erl_parse.yrl", 127). -yeccpars2_351_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8595). +-compile({inline,yeccpars2_349_/1}). +-file("erl_parse.yrl", 128). +yeccpars2_349_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { remote_type , ? line ( __1 ) , [ __1 , __3 , [ ] ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8598). --compile({inline,yeccpars2_352_/1}). --file("erl_parse.yrl", 129). -yeccpars2_352_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8605). +-compile({inline,yeccpars2_350_/1}). +-file("erl_parse.yrl", 130). +yeccpars2_350_(__Stack0) -> [__6,__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { remote_type , ? line ( __1 ) , [ __1 , __3 , __5 ] } end | __Stack]. --compile({inline,yeccpars2_354_/1}). --file("erl_parse.yrl", 124). -yeccpars2_354_(__Stack0) -> +-compile({inline,yeccpars2_352_/1}). +-file("erl_parse.yrl", 125). +yeccpars2_352_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin build_gen_type ( __1 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8616). --compile({inline,yeccpars2_355_/1}). --file("erl_parse.yrl", 125). -yeccpars2_355_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8623). +-compile({inline,yeccpars2_353_/1}). +-file("erl_parse.yrl", 126). +yeccpars2_353_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , normalise ( __1 ) , __3 } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8626). --compile({inline,yeccpars2_357_/1}). --file("erl_parse.yrl", 131). -yeccpars2_357_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8633). +-compile({inline,yeccpars2_355_/1}). +-file("erl_parse.yrl", 132). +yeccpars2_355_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , nil , [ ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8635). --compile({inline,yeccpars2_359_/1}). --file("erl_parse.yrl", 132). -yeccpars2_359_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8642). +-compile({inline,yeccpars2_357_/1}). +-file("erl_parse.yrl", 133). +yeccpars2_357_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , list , [ __2 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8644). --compile({inline,yeccpars2_363_/1}). --file("erl_parse.yrl", 133). -yeccpars2_363_(__Stack0) -> - [__7,__6,__5,__4,__3,__2,__1 | __Stack] = __Stack0, +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8651). +-compile({inline,yeccpars2_359_/1}). +-file("erl_parse.yrl", 134). +yeccpars2_359_(__Stack0) -> + [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , nonempty_list , [ __2 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8654). --compile({inline,yeccpars2_366_/1}). --file("erl_parse.yrl", 168). -yeccpars2_366_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8661). +-compile({inline,yeccpars2_362_/1}). +-file("erl_parse.yrl", 169). +yeccpars2_362_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , binary , @@ -8662,395 +8669,403 @@ yeccpars2_366_(__Stack0) -> abstract ( 0 , ? line ( __1 ) ) ] } end | __Stack]. --compile({inline,yeccpars2_369_/1}). --file("erl_parse.yrl", 178). -yeccpars2_369_(__Stack0) -> +-compile({inline,yeccpars2_365_/1}). +-file("erl_parse.yrl", 179). +yeccpars2_365_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin build_bin_type ( [ __1 ] , __3 ) end | __Stack]. --compile({inline,yeccpars2_372_/1}). --file("erl_parse.yrl", 180). -yeccpars2_372_(__Stack0) -> +-compile({inline,yeccpars2_368_/1}). +-file("erl_parse.yrl", 181). +yeccpars2_368_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin build_bin_type ( [ __1 , __3 ] , __5 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8681). --compile({inline,yeccpars2_374_/1}). --file("erl_parse.yrl", 171). -yeccpars2_374_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8688). +-compile({inline,yeccpars2_370_/1}). +-file("erl_parse.yrl", 172). +yeccpars2_370_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , binary , [ __2 , abstract ( 0 , ? line ( __1 ) ) ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8691). --compile({inline,yeccpars2_378_/1}). --file("erl_parse.yrl", 176). -yeccpars2_378_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8698). +-compile({inline,yeccpars2_374_/1}). +-file("erl_parse.yrl", 177). +yeccpars2_374_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , binary , [ __2 , __4 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8700). --compile({inline,yeccpars2_379_/1}). --file("erl_parse.yrl", 173). -yeccpars2_379_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8707). +-compile({inline,yeccpars2_375_/1}). +-file("erl_parse.yrl", 174). +yeccpars2_375_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , binary , [ abstract ( 0 , ? line ( __1 ) ) , __2 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8710). --compile({inline,yeccpars2_380_/1}). --file("erl_parse.yrl", 148). -yeccpars2_380_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8717). +-compile({inline,yeccpars2_376_/1}). +-file("erl_parse.yrl", 149). +yeccpars2_376_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin abstract ( - normalise ( __2 ) , ? line ( __2 ) ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8720). --compile({inline,yeccpars2_382_/1}). --file("erl_parse.yrl", 156). -yeccpars2_382_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8727). +-compile({inline,yeccpars2_378_/1}). +-file("erl_parse.yrl", 157). +yeccpars2_378_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , 'fun' , [ { type , ? line ( __1 ) , product , [ ] } , __4 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8730). --compile({inline,yeccpars2_384_/1}). --file("erl_parse.yrl", 121). -yeccpars2_384_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8737). +-compile({inline,yeccpars2_380_/1}). +-file("erl_parse.yrl", 122). +yeccpars2_380_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { paren_type , ? line ( __2 ) , [ __2 ] } end | __Stack]. --compile({inline,yeccpars2_388_/1}). --file("erl_parse.yrl", 162). -yeccpars2_388_(__Stack0) -> +-compile({inline,yeccpars2_384_/1}). +-file("erl_parse.yrl", 163). +yeccpars2_384_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8747). --compile({inline,yeccpars2_390_/1}). --file("erl_parse.yrl", 137). -yeccpars2_390_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8754). +-compile({inline,yeccpars2_386_/1}). +-file("erl_parse.yrl", 138). +yeccpars2_386_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , record , [ __2 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8756). --compile({inline,yeccpars2_392_/1}). --file("erl_parse.yrl", 165). -yeccpars2_392_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8763). +-compile({inline,yeccpars2_388_/1}). +-file("erl_parse.yrl", 166). +yeccpars2_388_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , field_type , [ __1 , __3 ] } end | __Stack]. --compile({inline,yeccpars2_394_/1}). --file("erl_parse.yrl", 163). -yeccpars2_394_(__Stack0) -> +-compile({inline,yeccpars2_390_/1}). +-file("erl_parse.yrl", 164). +yeccpars2_390_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8774). --compile({inline,yeccpars2_395_/1}). --file("erl_parse.yrl", 138). -yeccpars2_395_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8781). +-compile({inline,yeccpars2_391_/1}). +-file("erl_parse.yrl", 139). +yeccpars2_391_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , record , [ __2 | __4 ] } end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8784). --compile({inline,yeccpars2_398_/1}). --file("erl_parse.yrl", 142). -yeccpars2_398_(__Stack0) -> - [__4,__3,__2,__1 | __Stack] = __Stack0, +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8791). +-compile({inline,yeccpars2_393_/1}). +-file("erl_parse.yrl", 143). +yeccpars2_393_(__Stack0) -> + [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , range , - [ __1 , __4 ] } + [ __1 , __3 ] } end | __Stack]. --compile({inline,yeccpars2_400_/1}). --file("erl_parse.yrl", 113). -yeccpars2_400_(__Stack0) -> +-compile({inline,yeccpars2_395_/1}). +-file("erl_parse.yrl", 114). +yeccpars2_395_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8802). --compile({inline,yeccpars2_403_/1}). --file("erl_parse.yrl", 159). -yeccpars2_403_(__Stack0) -> +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8809). +-compile({inline,yeccpars2_398_/1}). +-file("erl_parse.yrl", 160). +yeccpars2_398_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , 'fun' , [ { type , ? line ( __1 ) , product , __2 } , __5 ] } end | __Stack]. --compile({inline,yeccpars2_405_/1}). --file("erl_parse.yrl", 119). -yeccpars2_405_(__Stack0) -> +-compile({inline,yeccpars2_400_/1}). +-file("erl_parse.yrl", 120). +yeccpars2_400_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin lift_unions ( __1 , __3 ) end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8820). --compile({inline,yeccpars2_407_/1}). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8827). +-compile({inline,yeccpars2_402_/1}). -file("erl_parse.yrl", 103). -yeccpars2_407_(__Stack0) -> +yeccpars2_402_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , bounded_fun , [ __1 , __3 ] } end | __Stack]. --compile({inline,yeccpars2_408_/1}). +-compile({inline,yeccpars2_403_/1}). -file("erl_parse.yrl", 106). -yeccpars2_408_(__Stack0) -> +yeccpars2_403_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8838). --compile({inline,yeccpars2_412_/1}). +-compile({inline,yeccpars2_407_/1}). +-file("erl_parse.yrl", 111). +yeccpars2_407_(__Stack0) -> + [__3,__2,__1 | __Stack] = __Stack0, + [begin + build_def ( __1 , __3 ) + end | __Stack]. + +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8853). +-compile({inline,yeccpars2_410_/1}). -file("erl_parse.yrl", 109). -yeccpars2_412_(__Stack0) -> +yeccpars2_410_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { type , ? line ( __1 ) , constraint , [ __1 , __3 ] } end | __Stack]. --compile({inline,yeccpars2_414_/1}). +-compile({inline,yeccpars2_412_/1}). -file("erl_parse.yrl", 107). -yeccpars2_414_(__Stack0) -> +yeccpars2_412_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_416_/1}). +-compile({inline,yeccpars2_414_/1}). -file("erl_parse.yrl", 100). -yeccpars2_416_(__Stack0) -> +yeccpars2_414_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_417_/1}). +-compile({inline,yeccpars2_415_/1}). -file("erl_parse.yrl", 78). -yeccpars2_417_(__Stack0) -> +yeccpars2_415_(__Stack0) -> [__4,__3,__2,__1 | __Stack] = __Stack0, [begin { __2 , __3 } end | __Stack]. --compile({inline,yeccpars2_418_/1}). +-compile({inline,yeccpars2_416_/1}). -file("erl_parse.yrl", 77). -yeccpars2_418_(__Stack0) -> +yeccpars2_416_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin { __1 , __2 } end | __Stack]. --compile({inline,yeccpars2_419_/1}). +-compile({inline,yeccpars2_417_/1}). -file("erl_parse.yrl", 73). -yeccpars2_419_(__Stack0) -> +yeccpars2_417_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin build_typed_attribute ( __2 , __3 ) end | __Stack]. --compile({inline,yeccpars2_420_/1}). --file("erl_parse.yrl", 182). -yeccpars2_420_(__Stack0) -> +-compile({inline,yeccpars2_418_/1}). +-file("erl_parse.yrl", 183). +yeccpars2_418_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --compile({inline,yeccpars2_421_/1}). +-compile({inline,yeccpars2_419_/1}). -file("erl_parse.yrl", 72). -yeccpars2_421_(__Stack0) -> +yeccpars2_419_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin build_attribute ( __2 , __3 ) end | __Stack]. --compile({inline,yeccpars2_427_/1}). +-compile({inline,yeccpars2_425_/1}). -file("erl_parse.yrl", 88). -yeccpars2_427_(__Stack0) -> +yeccpars2_425_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { type_def , __1 , __3 } end | __Stack]. --compile({inline,yeccpars2_428_/1}). +-compile({inline,yeccpars2_426_/1}). -file("erl_parse.yrl", 87). -yeccpars2_428_(__Stack0) -> +yeccpars2_426_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { typed_record , __1 , __3 } end | __Stack]. --compile({inline,yeccpars2_432_/1}). +-compile({inline,yeccpars2_430_/1}). -file("erl_parse.yrl", 92). -yeccpars2_432_(__Stack0) -> +yeccpars2_430_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --compile({inline,yeccpars2_433_/1}). --file("erl_parse.yrl", 427). -yeccpars2_433_(__Stack0) -> +-compile({inline,yeccpars2_431_/1}). +-file("erl_parse.yrl", 428). +yeccpars2_431_(__Stack0) -> [__1 | __Stack] = __Stack0, [begin [ __1 ] end | __Stack]. --compile({inline,yeccpars2_436_/1}). +-compile({inline,yeccpars2_434_/1}). -file("erl_parse.yrl", 97). -yeccpars2_436_(__Stack0) -> +yeccpars2_434_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { typed , __1 , __3 } end | __Stack]. --compile({inline,yeccpars2_437_/1}). +-compile({inline,yeccpars2_435_/1}). -file("erl_parse.yrl", 94). -yeccpars2_437_(__Stack0) -> +yeccpars2_435_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_439_/1}). +-compile({inline,yeccpars2_437_/1}). -file("erl_parse.yrl", 93). -yeccpars2_439_(__Stack0) -> +yeccpars2_437_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_440_/1}). +-compile({inline,yeccpars2_438_/1}). -file("erl_parse.yrl", 95). -yeccpars2_440_(__Stack0) -> +yeccpars2_438_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --file("/Users/bjorng/Downloads/otp/bootstrap/lib/stdlib/egen/erl_parse.erl", 8968). --compile({inline,yeccpars2_441_/1}). +-file("/clearcase/otp/erts/bootstrap/lib/stdlib/egen/erl_parse.erl", 8983). +-compile({inline,yeccpars2_439_/1}). -file("erl_parse.yrl", 90). -yeccpars2_441_(__Stack0) -> +yeccpars2_439_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin { tuple , ? line ( __1 ) , __2 } end | __Stack]. --compile({inline,yeccpars2_442_/1}). --file("erl_parse.yrl", 184). -yeccpars2_442_(__Stack0) -> +-compile({inline,yeccpars2_440_/1}). +-file("erl_parse.yrl", 185). +yeccpars2_440_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin [ __2 | __4 ] end | __Stack]. --compile({inline,yeccpars2_443_/1}). +-compile({inline,yeccpars2_441_/1}). -file("erl_parse.yrl", 74). -yeccpars2_443_(__Stack0) -> +yeccpars2_441_(__Stack0) -> [__5,__4,__3,__2,__1 | __Stack] = __Stack0, [begin build_typed_attribute ( __2 , __4 ) end | __Stack]. --compile({inline,yeccpars2_445_/1}). --file("erl_parse.yrl", 183). -yeccpars2_445_(__Stack0) -> +-compile({inline,yeccpars2_443_/1}). +-file("erl_parse.yrl", 184). +yeccpars2_443_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_446_/1}). +-compile({inline,yeccpars2_444_/1}). -file("erl_parse.yrl", 68). -yeccpars2_446_(__Stack0) -> +yeccpars2_444_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin __1 end | __Stack]. --compile({inline,yeccpars2_447_/1}). +-compile({inline,yeccpars2_445_/1}). -file("erl_parse.yrl", 69). -yeccpars2_447_(__Stack0) -> +yeccpars2_445_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin __1 end | __Stack]. --compile({inline,yeccpars2_449_/1}). --file("erl_parse.yrl", 189). -yeccpars2_449_(__Stack0) -> +-compile({inline,yeccpars2_447_/1}). +-file("erl_parse.yrl", 190). +yeccpars2_447_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_451_/1}). --file("erl_parse.yrl", 198). -yeccpars2_451_(__Stack0) -> +-compile({inline,yeccpars2_449_/1}). +-file("erl_parse.yrl", 199). +yeccpars2_449_(__Stack0) -> [begin [ ] end | __Stack0]. --compile({inline,yeccpars2_453_/1}). +-compile({inline,yeccpars2_451_/1}). -file("erl_parse.yrl", 70). -yeccpars2_453_(__Stack0) -> +yeccpars2_451_(__Stack0) -> [__2,__1 | __Stack] = __Stack0, [begin __1 end | __Stack]. --compile({inline,yeccpars2_455_/1}). --file("erl_parse.yrl", 479). -yeccpars2_455_(__Stack0) -> +-compile({inline,yeccpars2_453_/1}). +-file("erl_parse.yrl", 480). +yeccpars2_453_(__Stack0) -> [__3,__2,__1 | __Stack] = __Stack0, [begin [ __1 | __3 ] end | __Stack]. --compile({inline,yeccpars2_457_/1}). --file("erl_parse.yrl", 198). -yeccpars2_457_(__Stack0) -> +-compile({inline,yeccpars2_455_/1}). +-file("erl_parse.yrl", 199). +yeccpars2_455_(__Stack0) -> [begin [ ] end | __Stack0]. --file("erl_parse.yrl", 1037). +-file("erl_parse.yrl", 1042). diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index e683f161f1..c3c0dd77d7 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -407,7 +407,7 @@ iolist() = [char() | binary() | iolist()] </desc> </func> <func> - <name>erlang:binary_to_term(Binary, Opts) -> term()</name> + <name>binary_to_term(Binary, Opts) -> term()</name> <fsummary>Decode an Erlang external term format binary</fsummary> <type> <v>Opts = [safe]</v> diff --git a/erts/doc/src/match_spec.xml b/erts/doc/src/match_spec.xml index d6492198ca..f0390c9db8 100644 --- a/erts/doc/src/match_spec.xml +++ b/erts/doc/src/match_spec.xml @@ -60,7 +60,7 @@ <section> <title>Grammar</title> - <p>A match_spec can be described in this <em>informal</em> grammar:</p> + <p>A match_spec used in tracing can be described in this <em>informal</em> grammar:</p> <list type="bulleted"> <item>MatchExpression ::= [ MatchFunction, ... ] </item> @@ -117,6 +117,52 @@ <c><![CDATA[display]]></c> | <c><![CDATA[caller]]></c> | <c><![CDATA[set_tcw]]></c> | <c><![CDATA[silent]]></c></item> </list> + + <p>A match_spec used in ets can be described in this <em>informal</em> grammar:</p> + <list type="bulleted"> + <item>MatchExpression ::= [ MatchFunction, ... ] + </item> + <item>MatchFunction ::= { MatchHead, MatchConditions, MatchBody } + </item> + <item>MatchHead ::= MatchVariable | <c><![CDATA['_']]></c> | { MatchHeadPart, ... } + </item> + <item>MatchHeadPart ::= term() | MatchVariable | <c><![CDATA['_']]></c></item> + <item>MatchVariable ::= '$<number>' + </item> + <item>MatchConditions ::= [ MatchCondition, ...] | <c><![CDATA[[]]]></c></item> + <item>MatchCondition ::= { GuardFunction } | + { GuardFunction, ConditionExpression, ... } + </item> + <item>BoolFunction ::= <c><![CDATA[is_atom]]></c> | <c><![CDATA[is_constant]]></c> | + <c><![CDATA[is_float]]></c> | <c><![CDATA[is_integer]]></c> | <c><![CDATA[is_list]]></c> | + <c><![CDATA[is_number]]></c> | <c><![CDATA[is_pid]]></c> | <c><![CDATA[is_port]]></c> | + <c><![CDATA[is_reference]]></c> | <c><![CDATA[is_tuple]]></c> | <c><![CDATA[is_binary]]></c> | + <c><![CDATA[is_function]]></c> | <c><![CDATA[is_record]]></c> | <c><![CDATA[is_seq_trace]]></c> | + <c><![CDATA['and']]></c> | <c><![CDATA['or']]></c> | <c><![CDATA['not']]></c> | <c><![CDATA['xor']]></c> | + <c><![CDATA[andalso]]></c> | <c><![CDATA[orelse]]></c></item> + <item>ConditionExpression ::= ExprMatchVariable | { GuardFunction } | + { GuardFunction, ConditionExpression, ... } | TermConstruct + </item> + <item>ExprMatchVariable ::= MatchVariable (bound in the MatchHead) | + <c><![CDATA['$_']]></c> | <c><![CDATA['$$']]></c></item> + <item>TermConstruct = {{}} | {{ ConditionExpression, ... }} | + <c><![CDATA[[]]]></c> | [ConditionExpression, ...] | NonCompositeTerm | Constant + </item> + <item>NonCompositeTerm ::= term() (not list or tuple) + </item> + <item>Constant ::= {<c><![CDATA[const]]></c>, term()} + </item> + <item>GuardFunction ::= BoolFunction | <c><![CDATA[abs]]></c> | + <c><![CDATA[element]]></c> | <c><![CDATA[hd]]></c> | <c><![CDATA[length]]></c> | <c><![CDATA[node]]></c> | + <c><![CDATA[round]]></c> | <c><![CDATA[size]]></c> | <c><![CDATA[tl]]></c> | <c><![CDATA[trunc]]></c> | + <c><![CDATA['+']]></c> | <c><![CDATA['-']]></c> | <c><![CDATA['*']]></c> | <c><![CDATA['div']]></c> | + <c><![CDATA['rem']]></c> | <c><![CDATA['band']]></c> | <c><![CDATA['bor']]></c> | <c><![CDATA['bxor']]></c> | + <c><![CDATA['bnot']]></c> | <c><![CDATA['bsl']]></c> | <c><![CDATA['bsr']]></c> | <c><![CDATA['>']]></c> | + <c><![CDATA['>=']]></c> | <c><![CDATA['<']]></c> | <c><![CDATA['=<']]></c> | <c><![CDATA['=:=']]></c> | + <c><![CDATA['==']]></c> | <c><![CDATA['=/=']]></c> | <c><![CDATA['/=']]></c> | <c><![CDATA[self]]></c> | + <c><![CDATA[get_tcw]]></c></item> + <item>MatchBody ::= [ ConditionExpression, ... ]</item> + </list> </section> <section> @@ -453,8 +499,8 @@ <section> <title>Differences between match specifications in ETS and tracing</title> <p>ETS match specifications are there to produce a return - value. Usually the expression contains one single - <c><![CDATA[ActionTerm]]></c> which defines the return value without having + value. Usually the <c><![CDATA[MatchBody]]></c> contains one single + <c><![CDATA[ConditionExpression]]></c> which defines the return value without having any side effects. Calls with side effects are not allowed in the ETS context.</p> <p>When tracing there is no return value to produce, the diff --git a/erts/emulator/beam/erl_trace.c b/erts/emulator/beam/erl_trace.c index 8addfcf5ad..381a182e39 100644 --- a/erts/emulator/beam/erl_trace.c +++ b/erts/emulator/beam/erl_trace.c @@ -1941,11 +1941,13 @@ trace_proc(Process *c_p, Process *t_p, Eterm what, Eterm data) Eterm* hp; int need; + ERTS_SMP_LC_ASSERT((erts_proc_lc_my_proc_locks(t_p) != 0) || erts_is_system_blocked(0)); if (is_internal_port(t_p->tracer_proc)) { #define LOCAL_HEAP_SIZE (5+5) DeclareTmpHeapNoproc(local_heap,LOCAL_HEAP_SIZE); UseTmpHeapNoproc(LOCAL_HEAP_SIZE); + hp = local_heap; mess = TUPLE4(hp, am_trace, t_p->id, what, data); hp += 5; @@ -2727,6 +2729,8 @@ trace_port(Port *t_p, Eterm what, Eterm data) { Eterm mess; Eterm* hp; + ERTS_SMP_LC_ASSERT(erts_lc_is_port_locked(t_p) || erts_is_system_blocked(0)); + if (is_internal_port(t_p->tracer_proc)) { #define LOCAL_HEAP_SIZE (5+5) DeclareTmpHeapNoproc(local_heap,LOCAL_HEAP_SIZE); diff --git a/erts/emulator/beam/register.c b/erts/emulator/beam/register.c index 964c10a380..900ebcbbf7 100644 --- a/erts/emulator/beam/register.c +++ b/erts/emulator/beam/register.c @@ -476,8 +476,9 @@ int erts_unregister_name(Process *c_p, * on c_prt. */ - if (!c_p) + if (!c_p) { c_p_locks = 0; + } current_c_p_locks = c_p_locks; restart: @@ -489,9 +490,15 @@ int erts_unregister_name(Process *c_p, if (is_non_value(name)) { /* Unregister current process name */ ASSERT(c_p); - if (c_p->reg) +#ifdef ERTS_SMP + if (current_c_p_locks != c_p_locks) { + erts_smp_proc_lock(c_p, c_p_locks); + current_c_p_locks = c_p_locks; + } +#endif + if (c_p->reg) { r.name = c_p->reg->name; - else { + } else { /* Name got unregistered while main lock was released */ res = 0; goto done; @@ -533,24 +540,25 @@ int erts_unregister_name(Process *c_p, } } else if (rp->p) { - Process* p = rp->p; + #ifdef ERTS_SMP erts_proc_safelock(c_p, current_c_p_locks, c_p_locks, rp->p, - 0, + (c_p == rp->p) ? current_c_p_locks : 0, ERTS_PROC_LOCK_MAIN); current_c_p_locks = c_p_locks; #endif - p->reg = NULL; + rp->p->reg = NULL; + if (IS_TRACED_FL(rp->p, F_TRACE_PROCS)) { + trace_proc(c_p, rp->p, am_unregister, r.name); + } #ifdef ERTS_SMP - if (rp->p != c_p) + if (rp->p != c_p) { erts_smp_proc_unlock(rp->p, ERTS_PROC_LOCK_MAIN); -#endif - if (IS_TRACED_FL(p, F_TRACE_PROCS)) { - trace_proc(c_p, p, am_unregister, r.name); } +#endif } hash_erase(&process_reg, (void*) &r); res = 1; @@ -560,14 +568,17 @@ int erts_unregister_name(Process *c_p, reg_write_unlock(); if (c_prt != port) { - if (port) + if (port) { erts_smp_port_unlock(port); - if (c_prt) + } + if (c_prt) { erts_smp_port_lock(c_prt); + } } #ifdef ERTS_SMP - if (c_p && !current_c_p_locks) + if (c_p && !current_c_p_locks) { erts_smp_proc_lock(c_p, c_p_locks); + } #endif return res; } diff --git a/erts/emulator/drivers/win32/win_efile.c b/erts/emulator/drivers/win32/win_efile.c index d5f2b79706..24b6fb30dc 100644 --- a/erts/emulator/drivers/win32/win_efile.c +++ b/erts/emulator/drivers/win32/win_efile.c @@ -689,7 +689,8 @@ Sint64* pSize; /* Where to store the size of the file. */ if (flags & EFILE_MODE_APPEND) { crFlags = OPEN_ALWAYS; } - fd = CreateFile(name, access, FILE_SHARE_READ | FILE_SHARE_WRITE, + fd = CreateFile(name, access, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, crFlags, FILE_ATTRIBUTE_NORMAL, NULL); /* diff --git a/erts/emulator/test/binary_SUITE.erl b/erts/emulator/test/binary_SUITE.erl index 7ecc31aa29..77d2579848 100644 --- a/erts/emulator/test/binary_SUITE.erl +++ b/erts/emulator/test/binary_SUITE.erl @@ -438,11 +438,11 @@ terms(Config) when is_list(Config) -> ok end, Term = binary_to_term(Bin), - Term = erlang:binary_to_term(Bin, [safe]), + Term = binary_to_term(Bin, [safe]), Unaligned = make_unaligned_sub_binary(Bin), Term = binary_to_term(Unaligned), - Term = erlang:binary_to_term(Unaligned, []), - Term = erlang:binary_to_term(Bin, [safe]), + Term = binary_to_term(Unaligned, []), + Term = binary_to_term(Bin, [safe]), BinC = erlang:term_to_binary(Term, [compressed]), Term = binary_to_term(BinC), true = size(BinC) =< size(Bin), @@ -542,7 +542,7 @@ bad_bin_to_term(BadBin) -> {'EXIT',{badarg,_}} = (catch binary_to_term(BadBin)). bad_bin_to_term(BadBin,Opts) -> - {'EXIT',{badarg,_}} = (catch erlang:binary_to_term(BadBin,Opts)). + {'EXIT',{badarg,_}} = (catch binary_to_term(BadBin,Opts)). safe_binary_to_term2(doc) -> "Test safety options for binary_to_term/2"; safe_binary_to_term2(Config) when is_list(Config) -> @@ -553,7 +553,7 @@ safe_binary_to_term2(Config) when is_list(Config) -> BadRef = <<131,114,0,3,BadHostAtom/binary,0,<<0,0,0,255>>/binary, Empty/binary,Empty/binary>>, ?line bad_bin_to_term(BadRef, [safe]), % good ref, with a bad atom - ?line fullsweep_after = erlang:binary_to_term(<<131,100,0,15,"fullsweep_after">>, [safe]), % should be a good atom + ?line fullsweep_after = binary_to_term(<<131,100,0,15,"fullsweep_after">>, [safe]), % should be a good atom BadExtFun = <<131,113,100,0,4,98,108,117,101,100,0,4,109,111,111,110,97,3>>, ?line bad_bin_to_term(BadExtFun, [safe]), ok. diff --git a/lib/compiler/src/beam_dead.erl b/lib/compiler/src/beam_dead.erl index 7b4cd814a2..bb93110176 100644 --- a/lib/compiler/src/beam_dead.erl +++ b/lib/compiler/src/beam_dead.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2002-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2002-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 %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% @@ -281,12 +281,12 @@ forward([{test,is_eq_exact,_,[Dst,Src]}=I,{move,Src,Dst}|Is], D, Lc, Acc) -> forward([I|Is], D, Lc, Acc); forward([{test,is_nil,_,[Dst]}=I,{move,nil,Dst}|Is], D, Lc, Acc) -> forward([I|Is], D, Lc, Acc); -forward([{test,is_eq_exact,_,[_,{atom,_}]}=I|Is], D, Lc, [{label,_}|_]=Acc) -> +forward([{test,is_eq_exact,_,_}=I|Is], D, Lc, Acc) -> case Is of [{label,_}|_] -> forward(Is, D, Lc, [I|Acc]); _ -> forward(Is, D, Lc+1, [{label,Lc},I|Acc]) end; -forward([{test,is_ne_exact,_,[_,{atom,_}]}=I|Is], D, Lc, [{label,_}|_]=Acc) -> +forward([{test,is_ne_exact,_,_}=I|Is], D, Lc, Acc) -> case Is of [{label,_}|_] -> forward(Is, D, Lc, [I|Acc]); _ -> forward(Is, D, Lc+1, [{label,Lc},I|Acc]) @@ -371,10 +371,10 @@ backward([{test,bs_start_match2,{f,To0},Live,[Src|_]=Info,Dst}|Is], D, Acc) -> To = shortcut_bs_start_match(To0, Src, D), I = {test,bs_start_match2,{f,To},Live,Info,Dst}, backward(Is, D, [I|Acc]); -backward([{test,is_eq_exact=Op,{f,To0},[Reg,{atom,Val}]=Ops}|Is], D, Acc) -> +backward([{test,is_eq_exact,{f,To0},[Reg,{atom,Val}]=Ops}|Is], D, Acc) -> To1 = shortcut_bs_test(To0, Is, D), To = shortcut_fail_label(To1, Reg, Val, D), - I = {test,Op,{f,To},Ops}, + I = combine_eqs(To, Ops, D, Acc), backward(Is, D, [I|Acc]); backward([{test,Op,{f,To0},Ops0}|Is], D, Acc) -> To1 = shortcut_bs_test(To0, Is, D), @@ -394,7 +394,10 @@ backward([{test,Op,{f,To0},Ops0}|Is], D, Acc) -> _Code -> To2 end, - I = {test,Op,{f,To},Ops0}, + I = case Op of + is_eq_exact -> combine_eqs(To, Ops0, D, Acc); + _ -> {test,Op,{f,To},Ops0} + end, backward(Is, D, [I|Acc]); backward([{test,Op,{f,To0},Live,Ops0,Dst}|Is], D, Acc) -> To1 = shortcut_bs_test(To0, Is, D), @@ -519,6 +522,41 @@ bif_to_test(Name, Args, Fail) -> not_possible() -> throw(not_possible). +%% combine_eqs(To, Operands, Acc) -> Instruction. +%% Combine two is_eq_exact instructions or (an is_eq_exact +%% instruction and a select_val instruction) to a select_val +%% instruction if possible. +%% +%% Example: +%% +%% is_eq_exact F1 Reg Lit1 select_val Reg F2 [ Lit1 L1 +%% L1: . Lit2 L2 ] +%% . +%% . ==> +%% . +%% F1: is_eq_exact F2 Reg Lit2 F1: is_eq_exact F2 Reg Lit2 +%% L2: .... L2: +%% +combine_eqs(To, [Reg,{Type,_}=Lit1]=Ops, D, [{label,L1}|_]) + when Type =:= atom; Type =:= integer -> + case beam_utils:code_at(To, D) of + [{test,is_eq_exact,{f,F2},[Reg,{Type,_}=Lit2]}, + {label,L2}|_] when Lit1 =/= Lit2 -> + {select_val,Reg,{f,F2},{list,[Lit1,{f,L1},Lit2,{f,L2}]}}; + [{select_val,Reg,{f,F2},{list,[{Type,_}|_]=List0}}|_] -> + List = remove_from_list(Lit1, List0), + {select_val,Reg,{f,F2},{list,[Lit1,{f,L1}|List]}}; + _Is -> + {test,is_eq_exact,{f,To},Ops} + end; +combine_eqs(To, Ops, _D, _Acc) -> + {test,is_eq_exact,{f,To},Ops}. + +remove_from_list(Lit, [Lit,{f,_}|T]) -> + T; +remove_from_list(Lit, [Val,{f,_}=Fail|T]) -> + [Val,Fail|remove_from_list(Lit, T)]; +remove_from_list(_, []) -> []. %% shortcut_bs_test(TargetLabel, [Instruction], D) -> TargetLabel' %% Try to shortcut the failure label for a bit syntax matching. diff --git a/lib/compiler/src/beam_peep.erl b/lib/compiler/src/beam_peep.erl index d03ac4b1f4..f39fc50b95 100644 --- a/lib/compiler/src/beam_peep.erl +++ b/lib/compiler/src/beam_peep.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2008-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2008-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 %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% @@ -64,22 +64,7 @@ function({function,Name,Arity,CLabel,Is0}) -> %% InEncoding =:= latin1, OutEncoding =:= unicode; %% InEncoding =:= latin1, OutEncoding =:= utf8 -> %% -%% (2) Code like -%% -%% is_ne_exact Fail Reg Literal1 -%% is_ne_exact Fail Reg Literal2 -%% is_ne_exact Fail Reg Literal3 -%% is_eq_exact UltimateFail Reg Literal4 -%% Fail: .... -%% -%% can be rewritten to -%% -%% select_val Reg UltimateFail [ Literal1 Fail -%% Literal2 Fail -%% Literal3 Fail -%% Literal4 Fail ] -%% -%% (3) A select_val/4 instruction that only verifies that +%% (2) A select_val/4 instruction that only verifies that %% its argument is either 'true' or 'false' can be %% be replaced with an is_boolean/2 instruction. That is: %% @@ -132,7 +117,7 @@ peep([{test,Op,_,Ops}=I|Is], SeenTests0, Acc) -> false -> %% Remember that we have seen this test. SeenTests = gb_sets:insert(Test, SeenTests0), - make_select_val(I, Is, SeenTests, Acc) + peep(Is, SeenTests, [I|Acc]) end end; peep([{select_val,Src,Fail, @@ -151,33 +136,6 @@ peep([I|Is], _, Acc) -> peep(Is, gb_sets:empty(), [I|Acc]); peep([], _, Acc) -> reverse(Acc). -make_select_val({test,is_ne_exact,{f,Fail},[Val,Lit]}=I0, - Is0, SeenTests, Acc) -> - try - Type = case Lit of - {atom,_} -> atom; - {integer,_} -> integer; - _ -> throw(impossible) - end, - {I,Is} = make_select_val_1(Is0, Fail, Val, Type, [Lit,{f,Fail}]), - peep([I|Is], SeenTests, Acc) - catch - impossible -> - peep(Is0, SeenTests, [I0|Acc]) - end; -make_select_val(I, Is, SeenTests, Acc) -> - peep(Is, SeenTests, [I|Acc]). - -make_select_val_1([{test,is_ne_exact,{f,Fail},[Val,{Type,_}=Lit]}|Is], - Fail, Val, Type, Acc) -> - make_select_val_1(Is, Fail, Val, Type, [Lit,{f,Fail}|Acc]); -make_select_val_1([{test,is_eq_exact,{f,UltimateFail},[Val,{Type,_}=Lit]} | - [{label,Fail}|_]=Is], Fail, Val, Type, Acc) -> - Choices = [Lit,{f,Fail}|Acc], - I = {select_val,Val,{f,UltimateFail},{list,Choices}}, - {I,Is}; -make_select_val_1(_Is, _Fail, _Val, _Type, _Acc) -> throw(impossible). - kill_seen(Dst, Seen0) -> gb_sets:from_ordset(kill_seen_1(gb_sets:to_list(Seen0), Dst)). @@ -187,5 +145,3 @@ kill_seen_1([{_,Ops}=Test|T], Dst) -> false -> [Test|kill_seen_1(T, Dst)] end; kill_seen_1([], _) -> []. - - diff --git a/lib/compiler/src/sys_core_fold.erl b/lib/compiler/src/sys_core_fold.erl index 6202f07479..96015fbe58 100644 --- a/lib/compiler/src/sys_core_fold.erl +++ b/lib/compiler/src/sys_core_fold.erl @@ -1038,6 +1038,8 @@ fold_non_lit_args(Call, lists, append, [Arg1,Arg2], _) -> eval_append(Call, Arg1, Arg2); fold_non_lit_args(Call, erlang, setelement, [Arg1,Arg2,Arg3], _) -> eval_setelement(Call, Arg1, Arg2, Arg3); +fold_non_lit_args(Call, erlang, is_record, [Arg1,Arg2,Arg3], Sub) -> + eval_is_record(Call, Arg1, Arg2, Arg3, Sub); fold_non_lit_args(Call, erlang, N, Args, Sub) -> NumArgs = length(Args), case erl_internal:comp_op(N, NumArgs) of @@ -1194,19 +1196,22 @@ eval_element(Call, #c_literal{val=Pos}, #c_tuple{es=Es}, _Types) when is_integer true -> eval_failure(Call, badarg) end; -%% eval_element(Call, #c_literal{val=Pos}, #c_var{name=V}, Types) -%% when is_integer(Pos) -> -%% case orddict:find(V, Types#sub.t) of -%% {ok,#c_tuple{es=Elements}} -> -%% if -%% 1 =< Pos, Pos =< length(Elements) -> -%% lists:nth(Pos, Elements); -%% true -> -%% eval_failure(Call, badarg) -%% end; -%% error -> -%% Call -%% end; +eval_element(Call, #c_literal{val=Pos}, #c_var{name=V}, Types) + when is_integer(Pos) -> + case orddict:find(V, Types#sub.t) of + {ok,#c_tuple{es=Elements}} -> + if + 1 =< Pos, Pos =< length(Elements) -> + case lists:nth(Pos, Elements) of + #c_alias{var=Alias} -> Alias; + Res -> Res + end; + true -> + eval_failure(Call, badarg) + end; + error -> + Call + end; eval_element(Call, Pos, Tuple, _Types) -> case is_not_integer(Pos) orelse is_not_tuple(Tuple) of true -> @@ -1215,6 +1220,20 @@ eval_element(Call, Pos, Tuple, _Types) -> Call end. +%% eval_is_record(Call, Var, Tag, Size, Types) -> Val. +%% Evaluates is_record/3 using type information. +%% +eval_is_record(Call, #c_var{name=V}, #c_literal{val=NeededTag}=Lit, + #c_literal{val=Size}, Types) -> + case orddict:find(V, Types#sub.t) of + {ok,#c_tuple{es=[#c_literal{val=Tag}|_]=Es}} -> + Lit#c_literal{val=Tag =:= NeededTag andalso + length(Es) =:= Size}; + _ -> + Call + end; +eval_is_record(Call, _, _, _, _) -> Call. + %% is_not_integer(Core) -> true | false. %% Returns true if Core is definitely not an integer. diff --git a/lib/kernel/src/file.erl b/lib/kernel/src/file.erl index a694ed0708..a37614e424 100644 --- a/lib/kernel/src/file.erl +++ b/lib/kernel/src/file.erl @@ -369,7 +369,7 @@ advise(_, _, _, _) -> -spec read(File :: io_device(), Size :: non_neg_integer()) -> 'eof' | {'ok', [char()] | binary()} | {'error', posix()}. -read(File, Sz) when is_pid(File), is_integer(Sz), Sz >= 0 -> +read(File, Sz) when (is_pid(File) orelse is_atom(File)), is_integer(Sz), Sz >= 0 -> case io:request(File, {get_chars, '', Sz}) of Data when is_list(Data); is_binary(Data) -> {ok, Data}; @@ -385,7 +385,7 @@ read(_, _) -> -spec read_line(File :: io_device()) -> 'eof' | {'ok', [char()] | binary()} | {'error', posix()}. -read_line(File) when is_pid(File) -> +read_line(File) when (is_pid(File) orelse is_atom(File)) -> case io:request(File, {get_line, ''}) of Data when is_list(Data); is_binary(Data) -> {ok, Data}; @@ -439,7 +439,7 @@ pread(_, _, _) -> -spec write(File :: io_device(), Byte :: iodata()) -> 'ok' | {'error', posix()}. -write(File, Bytes) when is_pid(File) -> +write(File, Bytes) when (is_pid(File) orelse is_atom(File)) -> case make_binary(Bytes) of Bin when is_binary(Bin) -> io:request(File, {put_chars,Bin}); diff --git a/lib/kernel/src/inet_dns.erl b/lib/kernel/src/inet_dns.erl index 669a361c9d..1289e176c7 100644 --- a/lib/kernel/src/inet_dns.erl +++ b/lib/kernel/src/inet_dns.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1997-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 1997-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 %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% -module(inet_dns). @@ -129,27 +129,33 @@ do_decode(<<Id:16, RA:1,PR:1,_:2,Rcode:4, QdCount:16,AnCount:16,NsCount:16,ArCount:16, QdBuf/binary>>=Buffer) -> - {AnBuf,QdList} = decode_query_section(QdBuf,QdCount,Buffer), - {NsBuf,AnList} = decode_rr_section(AnBuf,AnCount,Buffer), - {ArBuf,NsList} = decode_rr_section(NsBuf,NsCount,Buffer), - {Rest,ArList} = decode_rr_section(ArBuf,ArCount,Buffer), + {AnBuf,QdList,QdTC} = decode_query_section(QdBuf,QdCount,Buffer), + {NsBuf,AnList,AnTC} = decode_rr_section(AnBuf,AnCount,Buffer), + {ArBuf,NsList,NsTC} = decode_rr_section(NsBuf,NsCount,Buffer), + {Rest,ArList,ArTC} = decode_rr_section(ArBuf,ArCount,Buffer), case Rest of <<>> -> + HdrTC = decode_boolean(TC), DnsHdr = #dns_header{id=Id, qr=decode_boolean(QR), opcode=decode_opcode(Opcode), aa=decode_boolean(AA), - tc=decode_boolean(TC), + tc=HdrTC, rd=decode_boolean(RD), ra=decode_boolean(RA), pr=decode_boolean(PR), rcode=Rcode}, - #dns_rec{header=DnsHdr, - qdlist=QdList, - anlist=AnList, - nslist=NsList, - arlist=ArList}; + case QdTC or AnTC or NsTC or ArTC of + true when not HdrTC -> + throw(?DECODE_ERROR); + _ -> + #dns_rec{header=DnsHdr, + qdlist=QdList, + anlist=AnList, + nslist=NsList, + arlist=ArList} + end; _ -> %% Garbage data after DNS message throw(?DECODE_ERROR) @@ -161,8 +167,10 @@ do_decode(_) -> decode_query_section(Bin, N, Buffer) -> decode_query_section(Bin, N, Buffer, []). +decode_query_section(<<>>=Rest, N, _Buffer, Qs) -> + {Rest,reverse(Qs),N =/= 0}; decode_query_section(Rest, 0, _Buffer, Qs) -> - {Rest,reverse(Qs)}; + {Rest,reverse(Qs),false}; decode_query_section(Bin, N, Buffer, Qs) -> case decode_name(Bin, Buffer) of {<<Type:16,Class:16,Rest/binary>>,Name} -> @@ -179,8 +187,10 @@ decode_query_section(Bin, N, Buffer, Qs) -> decode_rr_section(Bin, N, Buffer) -> decode_rr_section(Bin, N, Buffer, []). +decode_rr_section(<<>>=Rest, N, _Buffer, RRs) -> + {Rest,reverse(RRs),N =/= 0}; decode_rr_section(Rest, 0, _Buffer, RRs) -> - {Rest,reverse(RRs)}; + {Rest,reverse(RRs),false}; decode_rr_section(Bin, N, Buffer, RRs) -> case decode_name(Bin, Buffer) of {<<T:16/unsigned,C:16/unsigned,TTL:4/binary, diff --git a/lib/kernel/src/inet_res.erl b/lib/kernel/src/inet_res.erl index 9b9e078898..de0f23bf24 100644 --- a/lib/kernel/src/inet_res.erl +++ b/lib/kernel/src/inet_res.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1997-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 1997-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 %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% %% RFC 1035, 2671, 2782, 2915. @@ -592,6 +592,7 @@ query_retries(_Q, _NSs, _Timer, Retry, Retry, S) -> query_retries(Q, NSs, Timer, Retry, I, S0) -> Num = length(NSs), if Num =:= 0 -> + udp_close(S0), {error,timeout}; true -> case query_nss(Q, NSs, Timer, Retry, I, S0, []) of diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl index dec353d6f2..0e17c059e5 100644 --- a/lib/kernel/src/net_kernel.erl +++ b/lib/kernel/src/net_kernel.erl @@ -503,7 +503,10 @@ handle_call({new_ticktime,T,TP}, From, #state{tick = #tick{ticker = Tckr, handle_call({new_ticktime,From,_}, _, #state{tick = #tick_change{time = T}} = State) -> - async_reply({reply, {ongoing_change_to, T}, State}, From). + async_reply({reply, {ongoing_change_to, T}, State}, From); + +handle_call(_Msg, _From, State) -> + {noreply, State}. %% ------------------------------------------------------------ %% handle_cast. diff --git a/lib/kernel/src/os.erl b/lib/kernel/src/os.erl index d0b498edc9..75a11a8afd 100644 --- a/lib/kernel/src/os.erl +++ b/lib/kernel/src/os.erl @@ -50,7 +50,7 @@ find_executable(Name, Path) -> relative -> find_executable1(Name, split_path(Path), Extensions); _ -> - case verify_executable(Name, Extensions) of + case verify_executable(Name, Extensions, Extensions) of {ok, Complete} -> Complete; error -> @@ -60,7 +60,7 @@ find_executable(Name, Path) -> find_executable1(Name, [Base|Rest], Extensions) -> Complete0 = filename:join(Base, Name), - case verify_executable(Complete0, Extensions) of + case verify_executable(Complete0, Extensions, Extensions) of {ok, Complete} -> Complete; error -> @@ -69,7 +69,7 @@ find_executable1(Name, [Base|Rest], Extensions) -> find_executable1(_Name, [], _Extensions) -> false. -verify_executable(Name0, [Ext|Rest]) -> +verify_executable(Name0, [Ext|Rest], OrigExtensions) -> Name1 = Name0 ++ Ext, case os:type() of vxworks -> @@ -78,7 +78,7 @@ verify_executable(Name0, [Ext|Rest]) -> {ok, _} -> {ok, Name1}; _ -> - verify_executable(Name0, Rest) + verify_executable(Name0, Rest, OrigExtensions) end; _ -> case file:read_file_info(Name1) of @@ -87,12 +87,30 @@ verify_executable(Name0, [Ext|Rest]) -> %% on Unix, since we test if any execution bit is set. {ok, Name1}; _ -> - verify_executable(Name0, Rest) + verify_executable(Name0, Rest, OrigExtensions) end end; -verify_executable(_, []) -> +verify_executable(Name, [], OrigExtensions) when OrigExtensions =/= [""] -> %% Windows + %% Will only happen on windows, hence case insensitivity + case can_be_full_name(string:to_lower(Name),OrigExtensions) of + true -> + verify_executable(Name,[""],[""]); + _ -> + error + end; +verify_executable(_, [], _) -> error. +can_be_full_name(_Name,[]) -> + false; +can_be_full_name(Name,[H|T]) -> + case lists:suffix(H,Name) of %% Name is in lowercase, cause this is a windows thing + true -> + true; + _ -> + can_be_full_name(Name,T) + end. + split_path(Path) -> case type() of {win32, _} -> @@ -119,6 +137,7 @@ reverse_element(List) -> lists:reverse(List). -spec extensions() -> [string()]. +%% Extensions in lower case extensions() -> case type() of {win32, _} -> [".exe",".com",".cmd",".bat"]; diff --git a/lib/kernel/test/file_SUITE.erl b/lib/kernel/test/file_SUITE.erl index 1d652679b0..15bab0dccd 100644 --- a/lib/kernel/test/file_SUITE.erl +++ b/lib/kernel/test/file_SUITE.erl @@ -84,6 +84,8 @@ -export([advise/1]). +-export([standard_io/1,mini_server/1]). + %% Debug exports -export([create_file_slow/2, create_file/2, create_bin/2]). -export([verify_file/2, verify_bin/3]). @@ -103,7 +105,8 @@ all(suite) -> compression, links, copy, delayed_write, read_ahead, segment_read, segment_write, ipread, pid2name, interleaved_read_write, - otp_5814, large_file, read_line_1, read_line_2, read_line_3, read_line_4], + otp_5814, large_file, read_line_1, read_line_2, read_line_3, read_line_4, + standard_io], fini}. init(Config) when is_list(Config) -> @@ -172,6 +175,85 @@ time_dist({_D1, _T1} = DT1, {_D2, _T2} = DT2) -> - calendar:datetime_to_gregorian_seconds(DT1). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +mini_server(Parent) -> + receive + die -> + ok; + {io_request,From,To,{put_chars,Data}} -> + Parent ! {io_request,From,To,{put_chars,Data}}, + From ! {io_reply, To, ok}, + mini_server(Parent); + {io_request,From,To,{get_chars,'',N}} -> + Parent ! {io_request,From,To,{get_chars,'',N}}, + From ! {io_reply, To, {ok, lists:duplicate(N,$a)}}, + mini_server(Parent); + {io_request,From,To,{get_line,''}} -> + Parent ! {io_request,From,To,{get_line,''}}, + From ! {io_reply, To, {ok, "hej\n"}}, + mini_server(Parent) + end. + +standard_io(suite) -> + []; +standard_io(doc) -> + ["Test that standard i/o-servers work with file module"]; +standard_io(Config) when is_list(Config) -> + %% Really just a smoke test + ?line Pid = spawn(?MODULE,mini_server,[self()]), + ?line register(mini_server,Pid), + ?line ok = file:write(mini_server,<<"hej\n">>), + ?line receive + {io_request,_,_,{put_chars,<<"hej\n">>}} -> + ok + after 1000 -> + exit(noreply) + end, + ?line {ok,"aaaaa"} = file:read(mini_server,5), + ?line receive + {io_request,_,_,{get_chars,'',5}} -> + ok + after 1000 -> + exit(noreply) + end, + ?line {ok,"hej\n"} = file:read_line(mini_server), + ?line receive + {io_request,_,_,{get_line,''}} -> + ok + after 1000 -> + exit(noreply) + end, + ?line OldGL = group_leader(), + ?line group_leader(Pid,self()), + ?line ok = file:write(standard_io,<<"hej\n">>), + ?line group_leader(OldGL,self()), + ?line receive + {io_request,_,_,{put_chars,<<"hej\n">>}} -> + ok + after 1000 -> + exit(noreply) + end, + ?line group_leader(Pid,self()), + ?line {ok,"aaaaa"} = file:read(standard_io,5), + ?line group_leader(OldGL,self()), + ?line receive + {io_request,_,_,{get_chars,'',5}} -> + ok + after 1000 -> + exit(noreply) + end, + ?line group_leader(Pid,self()), + ?line {ok,"hej\n"} = file:read_line(standard_io), + ?line group_leader(OldGL,self()), + ?line receive + {io_request,_,_,{get_line,''}} -> + ok + after 1000 -> + exit(noreply) + end, + Pid ! die, + receive after 1000 -> ok end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% read_write_file(suite) -> []; read_write_file(doc) -> []; diff --git a/lib/kernel/test/os_SUITE.erl b/lib/kernel/test/os_SUITE.erl index 6a3534b094..ace9501d18 100644 --- a/lib/kernel/test/os_SUITE.erl +++ b/lib/kernel/test/os_SUITE.erl @@ -137,6 +137,13 @@ find_executable(Config) when is_list(Config) -> ?line find_exe(Abin, "my_ar", ".exe", Path), ?line find_exe(Abin, "my_ascii", ".com", Path), ?line find_exe(Abin, "my_adb", ".bat", Path), + %% OTP-3626 find names of executables given with extension + ?line find_exe(Abin, "my_ar.exe", "", Path), + ?line find_exe(Abin, "my_ascii.com", "", Path), + ?line find_exe(Abin, "my_adb.bat", "", Path), + ?line find_exe(Abin, "my_ar.EXE", "", Path), + ?line find_exe(Abin, "my_ascii.COM", "", Path), + ?line find_exe(Abin, "MY_ADB.BAT", "", Path), %% Search for programs in Abin (second element in PATH). ?line find_exe(Abin, "my_ar", ".exe", Path), diff --git a/lib/megaco/doc/src/megaco.xml b/lib/megaco/doc/src/megaco.xml index 0fb9d5aac6..ae9e250965 100644 --- a/lib/megaco/doc/src/megaco.xml +++ b/lib/megaco/doc/src/megaco.xml @@ -4,7 +4,7 @@ <erlref> <header> <copyright> - <year>2000</year><year>2009</year> + <year>2000</year><year>2010</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + </legalnotice> <title>megaco</title> @@ -40,6 +40,16 @@ <section> <title>DATA TYPES</title> <code type="none"><![CDATA[ +megaco_mid() = ip4Address() | ip6Address() | + domainName() | deviceName() | + mtpAddress() +ip4Address() = #'IP4Address'{} +ip6Address() = #'IP6Address'{} +domainName() = #'DomainName'{} +deviceName() = pathName() +pathName() = ia5String(1..64) +mtpAddress() = octetString(2..4) + action_request() = #'ActionRequest'{} action_reply() = #'ActionReply'{} error_desc() = #'ErrorDescriptor'{} diff --git a/lib/megaco/doc/src/notes.xml b/lib/megaco/doc/src/notes.xml index ab17dd50ca..99a3784402 100644 --- a/lib/megaco/doc/src/notes.xml +++ b/lib/megaco/doc/src/notes.xml @@ -66,6 +66,16 @@ <list type="bulleted"> <item> + <p>A raise condition when, during high load, processing + both the original and a resent message and delivering + this as two separate messages to the user. </p> + <p>Note that this solution only protects against multiple + reply deliveries! </p> + <p>Own Id: OTP-8529</p> + <p>Aux Id: Seq 10915</p> + </item> + + <item> <p>Fix shared libraries installation. </p> <p>The flex shared lib(s) were incorrectly installed as data files. </p> @@ -73,6 +83,13 @@ <p>Own Id: OTP-8627</p> </item> + <item> + <p>Eliminated a possible raise condition while creating + pending counters. </p> + <p>Own Id: OTP-8634</p> + <p>Aux Id: Seq 11579</p> + </item> + </list> </section> diff --git a/lib/megaco/src/app/megaco.appup.src b/lib/megaco/src/app/megaco.appup.src index 5df31f2923..f939f5e6cf 100644 --- a/lib/megaco/src/app/megaco.appup.src +++ b/lib/megaco/src/app/megaco.appup.src @@ -133,13 +133,16 @@ [ {"3.14", [ + {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, + {update, megaco_monitor, soft, soft_purge, soft_purge, []}, {update, megaco_config, soft, soft_purge, soft_purge, []} ] }, {"3.13", [ - {load_module, megaco_messenger, soft_purge, soft_purge, []}, + {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, {load_module, megaco_filter, soft_purge, soft_purge, []}, + {update, megaco_monitor, soft, soft_purge, soft_purge, []}, {update, megaco_config, soft, soft_purge, soft_purge, []}, {update, megaco_flex_scanner_handler, {advanced, downgrade_to_pre_3_13_1}, soft_purge, soft_purge, []} @@ -173,13 +176,16 @@ [ {"3.14", [ + {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, + {update, megaco_monitor, soft, soft_purge, soft_purge, []}, {update, megaco_config, soft, soft_purge, soft_purge, []} ] }, {"3.13", [ - {load_module, megaco_messenger, soft_purge, soft_purge, []}, + {load_module, megaco_messenger, soft_purge, soft_purge, [megaco_monitor]}, {load_module, megaco_filter, soft_purge, soft_purge, []}, + {update, megaco_monitor, soft, soft_purge, soft_purge, []}, {update, megaco_config, soft, soft_purge, soft_purge, []}, {update, megaco_flex_scanner_handler, {advanced, upgrade_from_pre_3_13_1}, soft_purge, soft_purge, []} diff --git a/lib/megaco/src/app/megaco_internal.hrl b/lib/megaco/src/app/megaco_internal.hrl index adbaacacef..2c124e9060 100644 --- a/lib/megaco/src/app/megaco_internal.hrl +++ b/lib/megaco/src/app/megaco_internal.hrl @@ -1,19 +1,19 @@ %% %% %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 %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% @@ -139,6 +139,22 @@ [?APPLICATION, ?MODULE, self()|A]))). +-define(megaco_ereport(Label, Report), + ?megaco_report(error_report, Label, Report)). + +-define(megaco_wreport(Label, Report), + ?megaco_report(warning_report, Label, Report)). + +-define(megaco_ireport(Label, Report), + ?megaco_report(info_report, Label, Report)). + +-define(megaco_report(Func, Label, Report), + (catch error_logger:Func([{label, Label}, + {application, ?APPLICATION}, + {module, ?MODULE}, + {process, self()} | Report]))). + + %%%---------------------------------------------------------------------- %%% Default (ignore) value of the Extra argument to the %%% megaco:receive_message/5 and process_received_message functions/5. diff --git a/lib/megaco/src/engine/megaco_config.erl b/lib/megaco/src/engine/megaco_config.erl index 0445f10838..6805db790d 100644 --- a/lib/megaco/src/engine/megaco_config.erl +++ b/lib/megaco/src/engine/megaco_config.erl @@ -628,31 +628,19 @@ incr_counter(Item, Incr) -> end catch error:_ -> + %% Counter does not exist, so try creat it try begin cre_counter(Item, Incr) end catch exit:_ -> - %% Ok, some other process got there before us, - %% so try again + %% This is a raise condition. + %% When we tried to update the counter above, it + %% did not exist, but now it does... ets:update_counter(megaco_config, Item, Incr) end end. -%% incr_counter(Item, Incr) -> -%% case (catch ets:update_counter(megaco_config, Item, Incr)) of -%% {'EXIT', _} -> -%% case (catch cre_counter(Item, Incr)) of -%% {'EXIT', _} -> -%% %% Ok, some other process got there before us, -%% %% so try again -%% ets:update_counter(megaco_config, Item, Incr); -%% NewVal -> -%% NewVal -%% end; -%% NewVal -> -%% NewVal -%% end. cre_counter(Item, Initial) -> case whereis(?SERVER) =:= self() of @@ -660,8 +648,8 @@ cre_counter(Item, Initial) -> case call({cre_counter, Item, Initial}) of {ok, Value} -> Value; - Error -> - exit(Error) + {error, Reason} -> + exit({failed_creating_counter, Item, Initial, Reason}) end; true -> %% Check that the counter does not already exists @@ -671,7 +659,7 @@ cre_counter(Item, Initial) -> ets:insert(megaco_config, {Item, Initial}), {ok, Initial}; [_] -> - %% Ouch, now what? + %% Possibly a raise condition {error, already_exists} end diff --git a/lib/megaco/src/engine/megaco_messenger.erl b/lib/megaco/src/engine/megaco_messenger.erl index 5756e8e896..5fad29931b 100644 --- a/lib/megaco/src/engine/megaco_messenger.erl +++ b/lib/megaco/src/engine/megaco_messenger.erl @@ -1541,30 +1541,6 @@ check_pending_limit(Limit, Direction, TransId) -> aborted end. -%% check_pending_limit(infinity, _, _) -> -%% {ok, 0}; -%% check_pending_limit(Limit, Direction, TransId) -> -%% ?rt2("check pending limit", [Direction, Limit, TransId]), -%% case (catch megaco_config:get_pending_counter(Direction, TransId)) of -%% {'EXIT', _} -> -%% %% This function is only called when we "know" the -%% %% counter to exist. So, the only reason that this -%% %% would happen is of the counter has been removed. -%% %% This only happen if the pending limit has been -%% %% reached. In any case, this is basically the same -%% %% as aborted! -%% ?rt2("check pending limit - exit", []), -%% aborted; -%% Val when Val =< Limit -> -%% %% Since we have no intention to increment here, it -%% %% is ok to be _at_ the limit -%% ?rt2("check pending limit - ok", [Val]), -%% {ok, Val}; -%% _Val -> -%% ?rt2("check pending limit - aborted", [_Val]), -%% aborted -%% end. - check_and_maybe_incr_pending_limit(infinity, _, _) -> ok; @@ -1572,59 +1548,42 @@ check_and_maybe_incr_pending_limit(Limit, Direction, TransId) -> %% %% We need this kind of test to detect when we _pass_ the limit %% - ?rt2("check and maybe incr pending limit", [Direction, Limit, TransId]), + ?rt2("check and maybe incr pending limit", [{direction, Direction}, + {transaction_id, TransId}, + {counter_limit, Limit}]), try megaco_config:get_pending_counter(Direction, TransId) of Val when Val > Limit -> - ?rt2("check and maybe incr - aborted", [Direction, Val, Limit]), + ?rt2("check and maybe incr - aborted", [{counter_value, Val}]), aborted; % Already passed the limit Val -> - ?rt2("check and maybe incr - incr", [Direction, Val, Limit]), + ?rt2("check and maybe incr - incr", [{counter_value, Val}]), megaco_config:incr_pending_counter(Direction, TransId), if Val < Limit -> ok; % Still within the limit true -> ?rt2("check and maybe incr - error", - [Direction, Val, Limit]), + [{counter_value, Val}]), error % Passed the limit end catch _:_ -> %% Has not been created yet (connect). - megaco_config:cre_pending_counter(Direction, TransId, 1), - ok + %% Try create it, but bevare of possible raise condition + try + begin + megaco_config:cre_pending_counter(Direction, TransId, 1), + ok + end + catch + _:_ -> + %% Ouch, raise condition, increment instead... + megaco_config:incr_pending_counter(Direction, TransId), + ok + end end. -%% check_and_maybe_incr_pending_limit(infinity, _, _) -> -%% ok; -%% check_and_maybe_incr_pending_limit(Limit, Direction, TransId) -> -%% %% -%% %% We need this kind of test to detect when we _pass_ the limit -%% %% -%% ?rt2("check and maybe incr pending limit", [Direction, Limit, TransId]), -%% case (catch megaco_config:get_pending_counter(Direction, TransId)) of -%% {'EXIT', _} -> -%% %% Has not been created yet (connect). -%% megaco_config:cre_pending_counter(Direction, TransId, 1), -%% ok; -%% Val when Val > Limit -> -%% ?rt2("check and maybe incr - aborted", [Direction, Val, Limit]), -%% aborted; % Already passed the limit -%% Val -> -%% ?rt2("check and maybe incr - incr", [Direction, Val, Limit]), -%% megaco_config:incr_pending_counter(Direction, TransId), -%% if -%% Val < Limit -> -%% ok; % Still within the limit -%% true -> -%% ?rt2("check and maybe incr - error", -%% [Direction, Val, Limit]), -%% error % Passed the limit -%% end -%% end. - - %% BUGBUG BUGBUG BUGBUG %% %% Do we know that the Rep is still valid? A previous transaction @@ -2648,33 +2607,84 @@ handle_reply( handle_reply(#conn_data{conn_handle = CH} = CD, T, Extra) -> TransId = to_local_trans_id(CD), ?rt2("handle reply", [T, TransId]), - case megaco_monitor:lookup_request(TransId) of - [Req] when (is_record(Req, request) andalso - (CD#conn_data.cancel =:= true)) -> + case {megaco_monitor:request_lockcnt_inc(TransId), + megaco_monitor:lookup_request(TransId)} of + {_Cnt, [Req]} when (is_record(Req, request) andalso + (CD#conn_data.cancel =:= true)) -> ?TC_AWAIT_REPLY_EVENT(true), + ?report_trace(CD, "trans reply - cancel(1)", [T]), do_handle_reply_cancel(CD, Req, T); - [#request{remote_mid = RMid} = Req] when ((RMid =:= preliminary_mid) orelse - (RMid =:= CH#megaco_conn_handle.remote_mid)) -> + {Cnt, [#request{remote_mid = RMid} = Req]} when + ((Cnt =:= 1) andalso + ((RMid =:= preliminary_mid) orelse + (RMid =:= CH#megaco_conn_handle.remote_mid))) -> + ?TC_AWAIT_REPLY_EVENT(false), + %% Just in case conn_data got update after our lookup + %% but before we looked up the request record, we + %% check the cancel field again. + case megaco_config:conn_info(CD, cancel) of + true -> + ?report_trace(CD, "trans reply - cancel(2)", [T]), + megaco_monitor:request_lockcnt_del(TransId), + do_handle_reply_cancel(CD, Req, T); + false -> + ?report_trace(CD, "trans reply", [T]), + do_handle_reply(CD, Req, TransId, T, Extra) + end; + + {Cnt, [#request{remote_mid = RMid} = _Req]} when + (is_integer(Cnt) andalso + ((RMid =:= preliminary_mid) orelse + (RMid =:= CH#megaco_conn_handle.remote_mid))) -> + ?TC_AWAIT_REPLY_EVENT(false), + %% Ok, someone got there before me, now what? + %% This is a plain old raise condition + ?report_important(CD, "trans reply - raise condition", + [T, {request_lockcnt, Cnt}]), + megaco_monitor:request_lockcnt_dec(TransId); + + %% no counter + {_Cnt, [#request{remote_mid = RMid} = Req]} when + ((RMid =:= preliminary_mid) orelse + (RMid =:= CH#megaco_conn_handle.remote_mid)) -> ?TC_AWAIT_REPLY_EVENT(false), + %% The counter does not exist. + %% This can only mean a code upgrade raise condition. + %% That is, this request record was created before + %% this feature (the counters) was instroduced. + %% The simples solution is this is to behave exactly as + %% before, that is pass it along, and leave it to the + %% user to figure out. + %% Just in case conn_data got update after our lookup %% but before we looked up the request record, we %% check the cancel field again. + ?report_verbose(CD, "trans reply - old style", [T]), case megaco_config:conn_info(CD, cancel) of true -> + megaco_monitor:request_lockcnt_del(TransId), do_handle_reply_cancel(CD, Req, T); false -> do_handle_reply(CD, Req, TransId, T, Extra) end; - [#request{user_mod = UserMod, - user_args = UserArgs, - reply_action = Action, - reply_data = UserData, - remote_mid = RMid}] -> + {Cnt, [#request{user_mod = UserMod, + user_args = UserArgs, + reply_action = Action, + reply_data = UserData, + remote_mid = RMid}]} -> ?report_trace(CD, "received trans reply with invalid remote mid", - [T, RMid]), + [{transaction, T}, + {remote_mid, RMid}, + {request_lockcnt, Cnt}]), + if + is_integer(Cnt) -> + megaco_monitor:request_lockcnt_dec(TransId); + true -> + ok + end, WrongMid = CH#megaco_conn_handle.remote_mid, T2 = transform_transaction_reply_enc(CD#conn_data.protocol_version, T), @@ -2685,7 +2695,15 @@ handle_reply(#conn_data{conn_handle = CH} = CD, T, Extra) -> reply_data = UserData}, return_reply(CD2, TransId, UserReply, Extra); - [] -> + {Cnt, []} when is_integer(Cnt) -> + ?TC_AWAIT_REPLY_EVENT(undefined), + ?report_trace(CD, "trans reply (no receiver)", + [T, {request_lockcnt, Cnt}]), + megaco_monitor:request_lockcnt_dec(TransId), + return_unexpected_trans(CD, T, Extra); + + %% No counter + {_Cnt, []} -> ?TC_AWAIT_REPLY_EVENT(undefined), ?report_trace(CD, "trans reply (no receiver)", [T]), return_unexpected_trans(CD, T, Extra) @@ -2716,6 +2734,7 @@ do_handle_reply(CD, %% This is the first reply (maybe of many) megaco_monitor:delete_request(TransId), + megaco_monitor:request_lockcnt_del(TransId), megaco_monitor:cancel_apply_after(Ref), % OTP-4843 megaco_config:del_pending_counter(recv, TransId), % OTP-7189 @@ -3739,6 +3758,11 @@ insert_requests(ConnData, ConnHandle, insert_request(ConnData, ConnHandle, TransId, Action, Data, InitTimer, LongTimer) -> + %% We dont check the result of the lock-counter creation because + %% the only way it could already exist is if the transaction-id + %% range has wrapped and an old counter was not deleted. + megaco_monitor:request_lockcnt_cre(TransId), + #megaco_conn_handle{remote_mid = RemoteMid} = ConnHandle, #conn_data{protocol_version = Version, user_mod = UserMod, @@ -4323,6 +4347,7 @@ cancel_request(ConnData, Req, Reason) -> cancel_request2(ConnData, TransId, UserReply) -> megaco_monitor:delete_request(TransId), + megaco_monitor:request_lockcnt_del(TransId), megaco_config:del_pending_counter(recv, TransId), % OTP-7189 Serial = TransId#trans_id.serial, ConnData2 = ConnData#conn_data{serial = Serial}, @@ -4380,29 +4405,67 @@ receive_reply_remote(ConnData, UserReply) -> receive_reply_remote(ConnData, UserReply, Extra) -> TransId = to_local_trans_id(ConnData), - case (catch megaco_monitor:lookup_request(TransId)) of - [#request{timer_ref = {_Type, Ref}} = Req] -> %% OTP-4843 + case {megaco_monitor:request_lockcnt_inc(TransId), + (catch megaco_monitor:lookup_request(TransId))} of + {Cnt, [Req]} when (Cnt =:= 1) andalso is_record(Req, request) -> %% Don't care about Req and Rep version diff - megaco_monitor:delete_request(TransId), - megaco_monitor:cancel_apply_after(Ref), % OTP-4843 - megaco_config:del_pending_counter(recv, TransId), % OTP-7189 - - UserMod = Req#request.user_mod, - UserArgs = Req#request.user_args, - Action = Req#request.reply_action, - UserData = Req#request.reply_data, - ConnData2 = ConnData#conn_data{user_mod = UserMod, - user_args = UserArgs, - reply_action = Action, - reply_data = UserData}, - return_reply(ConnData2, TransId, UserReply, Extra); - + do_receive_reply_remote(ConnData, TransId, Req, UserReply, Extra); + + {Cnt, [Req]} when is_integer(Cnt) andalso is_record(Req, request) -> + %% Another process is accessing, handle as unexpected + %% (so it has a possibillity to get logged). + ?report_important(ConnData, "trans reply (no receiver)", + [{user_reply, UserReply}, + {request_lockcnt, Cnt}]), + megaco_monitor:request_lockcnt_dec(TransId), + return_unexpected_trans_reply(ConnData, TransId, UserReply, Extra); + + %% no counter + {_Cnt, [Req]} when is_record(Req, request) -> + %% The counter does not exist. + %% This can only mean a code upgrade raise condition. + %% That is, this request record was created before + %% this feature (the counters) was instroduced. + %% The simples solution to this is to behave exactly as + %% before, that is, pass it along, and leave it to the + %% user to figure out. + ?report_trace(ConnData, + "remote reply - " + "code upgrade raise condition", + [{user_reply, UserReply}]), + do_receive_reply_remote(ConnData, TransId, Req, UserReply, Extra); + + {Cnt, _} when is_integer(Cnt) -> + ?report_trace(ConnData, "trans reply (no receiver)", + [{user_reply, UserReply}, {request_lockcnt, Cnt}]), + megaco_monitor:request_lockcnt_dec(TransId), + return_unexpected_trans_reply(ConnData, TransId, UserReply, Extra); + _ -> ?report_trace(ConnData, "remote reply (no receiver)", - [UserReply]), + [{user_reply, UserReply}]), return_unexpected_trans_reply(ConnData, TransId, UserReply, Extra) end. +do_receive_reply_remote(ConnData, TransId, + #request{timer_ref = {_Type, Ref}, + user_mod = UserMod, + user_args = UserArgs, + reply_action = Action, + reply_data = UserData} = _Req, + UserReply, Extra) -> + megaco_monitor:delete_request(TransId), + megaco_monitor:request_lockcnt_del(TransId), + megaco_monitor:cancel_apply_after(Ref), % OTP-4843 + megaco_config:del_pending_counter(recv, TransId), % OTP-7189 + + ConnData2 = ConnData#conn_data{user_mod = UserMod, + user_args = UserArgs, + reply_action = Action, + reply_data = UserData}, + return_reply(ConnData2, TransId, UserReply, Extra). + + cancel_reply(ConnData, #reply{state = waiting_for_ack, user_mod = UserMod, user_args = UserArgs} = Rep, Reason) -> diff --git a/lib/megaco/src/engine/megaco_monitor.erl b/lib/megaco/src/engine/megaco_monitor.erl index f95a20cf58..29275371be 100644 --- a/lib/megaco/src/engine/megaco_monitor.erl +++ b/lib/megaco/src/engine/megaco_monitor.erl @@ -1,19 +1,19 @@ %% %% %CopyrightBegin% -%% -%% Copyright Ericsson AB 2000-2009. All Rights Reserved. -%% +%% +%% Copyright Ericsson AB 2000-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 %% compliance with the License. You should have received a copy of the %% Erlang Public License along with this software. If not, it can be %% retrieved online at http://www.erlang.org/. -%% +%% %% Software distributed under the License is distributed on an "AS IS" %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See %% the License for the specific language governing rights and limitations %% under the License. -%% +%% %% %CopyrightEnd% %% @@ -51,6 +51,11 @@ update_request_field/3, update_request_fields/2, delete_request/1, + request_lockcnt_cre/1, + request_lockcnt_del/1, + request_lockcnt_inc/1, + request_lockcnt_dec/1, + lookup_reply/1, lookup_reply_field/2, match_replies/1, @@ -115,6 +120,24 @@ update_request_fields(Key, NewFields) when is_list(NewFields) -> delete_request(Key) -> ets:delete(megaco_requests, Key). + +request_lockcnt_cre(TransId) -> + Key = {TransId, lockcnt}, + ets:insert_new(megaco_requests, {Key, 1}). + +request_lockcnt_del(TransId) -> + Key = {TransId, lockcnt}, + ets:delete(megaco_requests, Key). + +request_lockcnt_inc(TransId) -> + Key = {TransId, lockcnt}, + (catch ets:update_counter(megaco_requests, Key, 1)). + +request_lockcnt_dec(TransId) -> + Key = {TransId, lockcnt}, + (catch ets:update_counter(megaco_requests, Key, -1)). + + lookup_reply(Key) -> ets:lookup(megaco_replies, Key). diff --git a/lib/megaco/vsn.mk b/lib/megaco/vsn.mk index cf5957460d..cab3a1a4e0 100644 --- a/lib/megaco/vsn.mk +++ b/lib/megaco/vsn.mk @@ -19,10 +19,10 @@ APPLICATION = megaco MEGACO_VSN = 3.14.1 -PRE_VSN = +PRE_VSN =-p03 APP_VSN = "$(APPLICATION)-$(MEGACO_VSN)$(PRE_VSN)" -TICKETS = OTP-8561 OTP-8627 +TICKETS = OTP-8529 OTP-8561 OTP-8627 OTP-8634 TICKETS_3_14 = OTP-8317 OTP-8323 OTP-8328 OTP-8362 OTP-8403 diff --git a/lib/public_key/asn1/OTP-PKIX.asn1 b/lib/public_key/asn1/OTP-PKIX.asn1 index 2bcacc0990..c0cf440496 100644 --- a/lib/public_key/asn1/OTP-PKIX.asn1 +++ b/lib/public_key/asn1/OTP-PKIX.asn1 @@ -313,7 +313,7 @@ SupportedPublicKeyAlgorithms PUBLIC-KEY-ALGORITHM-CLASS ::= { dsa-with-sha1 SIGNATURE-ALGORITHM-CLASS ::= { ID id-dsa-with-sha1 - TYPE NULL } -- XXX Must be empty and not NULL + TYPE Dss-Parms } -- -- RSA Keys and Signatures diff --git a/lib/ssh/src/ssh_cli.erl b/lib/ssh/src/ssh_cli.erl index 2764ea2e43..e3b6ffa125 100644 --- a/lib/ssh/src/ssh_cli.erl +++ b/lib/ssh/src/ssh_cli.erl @@ -327,7 +327,7 @@ window_change(Tty, OldTty, Buf) {[], Buf}; window_change(Tty, OldTty, {Buf, BufTail, Col}) -> M1 = move_cursor(Col, 0, OldTty), - N = max(Tty#ssh_pty.width - OldTty#ssh_pty.width, 0) * 2, + N = erlang:max(Tty#ssh_pty.width - OldTty#ssh_pty.width, 0) * 2, S = lists:reverse(Buf, [BufTail | lists:duplicate(N, $ )]), M2 = move_cursor(length(Buf) + length(BufTail) + N, Col, Tty), {[M1, S | M2], {Buf, BufTail, Col}}. @@ -398,10 +398,6 @@ nthtail(0, A) -> A; nthtail(N, [_ | A]) when N > 0 -> nthtail(N-1, A); nthtail(_, _) -> []. -%%% utils -max(A, B) when A > B -> A; -max(_A, B) -> B. - ifelse(Cond, A, B) -> case Cond of true -> A; diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl index 822ef8f8f9..d46002c494 100644 --- a/lib/ssh/src/ssh_connection_handler.erl +++ b/lib/ssh/src/ssh_connection_handler.erl @@ -527,7 +527,7 @@ handle_info({Protocol, Socket, Data}, Statename, %% Implementations SHOULD decrypt the length after receiving the %% first 8 (or cipher block size, whichever is larger) bytes of a %% packet. (RFC 4253: Section 6 - Binary Packet Protocol) - case size(EncData0) + size(Data) >= max(8, BlockSize) of + case size(EncData0) + size(Data) >= erlang:max(8, BlockSize) of true -> {Ssh, SshPacketLen, DecData, EncData} = @@ -758,11 +758,6 @@ after_new_keys(#state{renegotiate = false, ssh_params = #ssh{role = server}} = State) -> {userauth, State}. -max(N, M) when N > M -> - N; -max(_, M) -> - M. - handle_ssh_packet_data(RemainingSshPacketLen, DecData, EncData, StateName, State) -> EncSize = size(EncData), diff --git a/lib/stdlib/src/erl_expand_records.erl b/lib/stdlib/src/erl_expand_records.erl index a38b7639d8..18c467db81 100644 --- a/lib/stdlib/src/erl_expand_records.erl +++ b/lib/stdlib/src/erl_expand_records.erl @@ -95,8 +95,9 @@ forms([F | Fs0], St0) -> forms([], St) -> {[],St}. clauses([{clause,Line,H0,G0,B0} | Cs0], St0) -> - {H,St1} = head(H0, St0), - {G,St2} = guard(G0, St1), + {H1,St1} = head(H0, St0), + {G1,St2} = guard(G0, St1), + {H,G} = optimize_is_record(H1, G1), {B,St3} = exprs(B0, St2), {Cs,St4} = clauses(Cs0, St3), {[{clause,Line,H,G,B} | Cs],St4}; @@ -800,5 +801,132 @@ imported(F, A, St) -> error -> no end. +%%% +%%% Replace is_record/3 in guards with matching if possible. +%%% + +optimize_is_record(H0, G0) -> + case opt_rec_vars(G0) of + [] -> + {H0,G0}; + Rs0 -> + {H,Rs} = opt_pattern_list(H0, Rs0), + G = opt_remove(G0, Rs), + {H,G} + end. + + +%% opt_rec_vars(Guards) -> Vars. +%% Search through the guard expression, looking for +%% variables referenced in those is_record/3 calls that +%% will fail the entire guard if they evaluate to 'false' +%% +%% In the following code +%% +%% f(X, Y, Z) when is_record(X, r1) andalso +%% (is_record(Y, r2) orelse is_record(Z, r3)) +%% +%% the entire guard will be false if the record test for +%% X fails, and the clause can be rewritten to: +%% +%% f({r1,...}=X, Y, Z) when true andalso +%% (is_record(Y, r2) or is_record(Z, r3)) +%% +opt_rec_vars([G|Gs]) -> + Rs = opt_rec_vars_1(G, orddict:new()), + opt_rec_vars(Gs, Rs); +opt_rec_vars([]) -> orddict:new(). + +opt_rec_vars([G|Gs], Rs0) -> + Rs1 = opt_rec_vars_1(G, orddict:new()), + Rs = ordsets:intersection(Rs0, Rs1), + opt_rec_vars(Gs, Rs); +opt_rec_vars([], Rs) -> Rs. + +opt_rec_vars_1([T|Ts], Rs0) -> + Rs = opt_rec_vars_2(T, Rs0), + opt_rec_vars_1(Ts, Rs); +opt_rec_vars_1([], Rs) -> Rs. + +opt_rec_vars_2({op,_,'and',A1,A2}, Rs) -> + opt_rec_vars_1([A1,A2], Rs); +opt_rec_vars_2({op,_,'andalso',A1,A2}, Rs) -> + opt_rec_vars_1([A1,A2], Rs); +opt_rec_vars_2({op,_,'orelse',Arg,{atom,_,fail}}, Rs) -> + %% Since the second argument guarantees failure, + %% it is safe to inspect the first argument. + opt_rec_vars_2(Arg, Rs); +opt_rec_vars_2({call,_,{remote,_,{atom,_,erlang},{atom,_,is_record}}, + [{var,_,V},{atom,_,Tag},{integer,_,Sz}]}, Rs) -> + orddict:store(V, {Tag,Sz}, Rs); +opt_rec_vars_2({call,_,{atom,_,is_record}, + [{var,_,V},{atom,_,Tag},{integer,_,Sz}]}, Rs) -> + orddict:store(V, {Tag,Sz}, Rs); +opt_rec_vars_2(_, Rs) -> Rs. + +opt_pattern_list(Ps, Rs) -> + opt_pattern_list(Ps, Rs, []). + +opt_pattern_list([P0|Ps], Rs0, Acc) -> + {P,Rs} = opt_pattern(P0, Rs0), + opt_pattern_list(Ps, Rs, [P|Acc]); +opt_pattern_list([], Rs, Acc) -> + {reverse(Acc),Rs}. + +opt_pattern({var,_,V}=Var, Rs0) -> + case orddict:find(V, Rs0) of + {ok,{Tag,Sz}} -> + Rs = orddict:store(V, {remove,Tag,Sz}, Rs0), + {opt_var(Var, Tag, Sz),Rs}; + _ -> + {Var,Rs0} + end; +opt_pattern({cons,Line,H0,T0}, Rs0) -> + {H,Rs1} = opt_pattern(H0, Rs0), + {T,Rs} = opt_pattern(T0, Rs1), + {{cons,Line,H,T},Rs}; +opt_pattern({tuple,Line,Es0}, Rs0) -> + {Es,Rs} = opt_pattern_list(Es0, Rs0), + {{tuple,Line,Es},Rs}; +opt_pattern({match,Line,Pa0,Pb0}, Rs0) -> + {Pa,Rs1} = opt_pattern(Pa0, Rs0), + {Pb,Rs} = opt_pattern(Pb0, Rs1), + {{match,Line,Pa,Pb},Rs}; +opt_pattern(P, Rs) -> {P,Rs}. + +opt_var({var,Line,_}=Var, Tag, Sz) -> + Rp = record_pattern(2, -1, ignore, Sz, Line, [{atom,Line,Tag}]), + {match,Line,{tuple,Line,Rp},Var}. + +opt_remove(Gs, Rs) -> + [opt_remove_1(G, Rs) || G <- Gs]. + +opt_remove_1(Ts, Rs) -> + [opt_remove_2(T, Rs) || T <- Ts]. + +opt_remove_2({op,L,'and'=Op,A1,A2}, Rs) -> + {op,L,Op,opt_remove_2(A1, Rs),opt_remove_2(A2, Rs)}; +opt_remove_2({op,L,'andalso'=Op,A1,A2}, Rs) -> + {op,L,Op,opt_remove_2(A1, Rs),opt_remove_2(A2, Rs)}; +opt_remove_2({op,L,'orelse',A1,A2}, Rs) -> + {op,L,'orelse',opt_remove_2(A1, Rs),A2}; +opt_remove_2({call,Line,{remote,_,{atom,_,erlang},{atom,_,is_record}}, + [{var,_,V},{atom,_,Tag},{integer,_,Sz}]}=A, Rs) -> + case orddict:find(V, Rs) of + {ok,{remove,Tag,Sz}} -> + {atom,Line,true}; + _ -> + A + end; +opt_remove_2({call,Line,{atom,_,is_record}, + [{var,_,V},{atom,_,Tag},{integer,_,Sz}]}=A, Rs) -> + case orddict:find(V, Rs) of + {ok,{remove,Tag,Sz}} -> + {atom,Line,true}; + _ -> + A + end; +opt_remove_2(A, _) -> A. + neg_line(L) -> erl_parse:set_line(L, fun(Line) -> -abs(Line) end). diff --git a/lib/stdlib/src/erl_internal.erl b/lib/stdlib/src/erl_internal.erl index 2471c545dd..f78d8dc609 100644 --- a/lib/stdlib/src/erl_internal.erl +++ b/lib/stdlib/src/erl_internal.erl @@ -238,6 +238,7 @@ bif(binary_to_existing_atom, 2) -> true; bif(binary_to_list, 1) -> true; bif(binary_to_list, 3) -> true; bif(binary_to_term, 1) -> true; +bif(binary_to_term, 2) -> true; bif(bitsize, 1) -> true; bif(bit_size, 1) -> true; bif(bitstring_to_list, 1) -> true; diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl index 94ad560549..2cc5c6a5ac 100644 --- a/lib/stdlib/src/erl_lint.erl +++ b/lib/stdlib/src/erl_lint.erl @@ -242,10 +242,10 @@ format_error({untyped_record,T}) -> format_error({unbound_var,V}) -> io_lib:format("variable ~w is unbound", [V]); format_error({unsafe_var,V,{What,Where}}) -> - io_lib:format("variable ~w unsafe in ~w ~s", + io_lib:format("variable ~w unsafe in ~w ~s", [V,What,format_where(Where)]); format_error({exported_var,V,{What,Where}}) -> - io_lib:format("variable ~w exported from ~w ~s", + io_lib:format("variable ~w exported from ~w ~s", [V,What,format_where(Where)]); format_error({shadowed_var,V,In}) -> io_lib:format("variable ~w shadowed in ~w", [V,In]); @@ -296,16 +296,16 @@ format_error({unused_type, {TypeName, Arity}}) -> io_lib:format("type ~w~s is unused", [TypeName, gen_type_paren(Arity)]); format_error({new_builtin_type, {TypeName, Arity}}) -> io_lib:format("type ~w~s is a new builtin type; " - "its (re)definition is allowed only until the next release", + "its (re)definition is allowed only until the next release", [TypeName, gen_type_paren(Arity)]); format_error({builtin_type, {TypeName, Arity}}) -> - io_lib:format("type ~w~s is a builtin type; it cannot be redefined", + io_lib:format("type ~w~s is a builtin type; it cannot be redefined", [TypeName, gen_type_paren(Arity)]); format_error({renamed_type, OldName, NewName}) -> io_lib:format("type ~w() is now called ~w(); " "please use the new name instead", [OldName, NewName]); format_error({redefine_type, {TypeName, Arity}}) -> - io_lib:format("type ~w~s already defined", + io_lib:format("type ~w~s already defined", [TypeName, gen_type_paren(Arity)]); format_error({type_syntax, Constr}) -> io_lib:format("bad ~w type", [Constr]); @@ -354,7 +354,7 @@ pseudolocals() -> %% %% Used by erl_eval.erl to check commands. -%% +%% exprs(Exprs, BindingsList) -> exprs_opt(Exprs, BindingsList, []). @@ -362,7 +362,7 @@ exprs_opt(Exprs, BindingsList, Opts) -> {St0,Vs} = foldl(fun({{record,_SequenceNumber,_Name},Attr0}, {St1,Vs1}) -> Attr = zip_file_and_line(Attr0, "none"), {attribute_state(Attr, St1),Vs1}; - ({V,_}, {St1,Vs1}) -> + ({V,_}, {St1,Vs1}) -> {St1,[{V,{bound,unused,[]}} | Vs1]} end, {start("nofile",Opts),[]}, BindingsList), Vt = orddict:from_list(Vs), @@ -391,7 +391,7 @@ module(Forms) -> Opts = compiler_options(Forms), St = forms(Forms, start("nofile", Opts)), return_status(St). - + module(Forms, FileName) -> Opts = compiler_options(Forms), St = forms(Forms, start(FileName, Opts)), @@ -506,7 +506,7 @@ pack_errors(Es) -> %% Sort on line number. pack_warnings(Ws) -> - [{File,lists:sort([W || {F,W} <- Ws, F =:= File])} || + [{File,lists:sort([W || {F,W} <- Ws, F =:= File])} || File <- lists:usort([F || {F,_} <- Ws])]. %% add_error(ErrorDescriptor, State) -> State' @@ -516,13 +516,13 @@ pack_warnings(Ws) -> add_error(E, St) -> St#lint{errors=[{St#lint.file,E}|St#lint.errors]}. -add_error(FileLine, E, St) -> +add_error(FileLine, E, St) -> {File,Location} = loc(FileLine), add_error({Location,erl_lint,E}, St#lint{file = File}). add_warning(W, St) -> St#lint{warnings=[{St#lint.file,W}|St#lint.warnings]}. -add_warning(FileLine, W, St) -> +add_warning(FileLine, W, St) -> {File,Location} = loc(FileLine), add_warning({Location,erl_lint,W}, St#lint{file = File}). @@ -561,7 +561,7 @@ pre_scan([_ | Fs], St) -> pre_scan(Fs, St); pre_scan([], St) -> St. - + includes_qlc_hrl(Forms, St) -> %% QLC calls erl_lint several times, sometimes with the compile %% attribute removed. The file attribute, however, is left as is. @@ -735,12 +735,12 @@ is_bif_clash(Name, Arity, #lint{clashes=Clashes}) -> not_deprecated(Forms, St0) -> %% There are no line numbers in St0#lint.compile. - MFAsL = [{MFA,L} || + MFAsL = [{MFA,L} || {attribute, L, compile, Args} <- Forms, {nowarn_deprecated_function, MFAs0} <- lists:flatten([Args]), MFA <- lists:flatten([MFAs0])], Nowarn = [MFA || {MFA,_L} <- MFAsL], - Bad = [MFAL || {{M,F,A},_L}=MFAL <- MFAsL, + Bad = [MFAL || {{M,F,A},_L}=MFAL <- MFAsL, otp_internal:obsolete(M, F, A) =:= no], St1 = func_line_warning(bad_nowarn_deprecated_function, Bad, St0), St1#lint{not_deprecated = ordsets:from_list(Nowarn)}. @@ -862,7 +862,7 @@ check_deprecated(Forms, St0) -> Bad = [{E,L} || {attribute, L, deprecated, Depr} <- Forms, D <- lists:flatten([Depr]), E <- depr_cat(D, X, Mod)], - foldl(fun ({E,L}, St1) -> + foldl(fun ({E,L}, St1) -> add_error(L, E, St1) end, St0, Bad). @@ -912,7 +912,7 @@ check_imports(Forms, St0) -> true -> Usage = St0#lint.usage, Unused = ordsets:subtract(St0#lint.imports, Usage#usage.imported), - Imports = [{{FA,list_to_atom(package_to_string(Mod))},L} + Imports = [{{FA,list_to_atom(package_to_string(Mod))},L} || {attribute,L,import,{Mod,Fs}} <- Forms, FA <- lists:usort(Fs)], Bad = [{FM,L} || FM <- Unused, {FM2,L} <- Imports, FM =:= FM2], @@ -932,7 +932,7 @@ check_unused_functions(Forms, St0) -> Opts = St1#lint.compile, case member(export_all, Opts) orelse not is_warn_enabled(unused_function, St1) of - true -> + true -> St1; false -> Nowarn = nowarn_function(nowarn_unused_function, Opts), @@ -1008,7 +1008,7 @@ check_option_functions(Forms, Tag0, Type, St0) -> func_line_error(Type, Bad, St0). nowarn_function(Tag, Opts) -> - ordsets:from_list([FA || {Tag1,FAs} <- Opts, + ordsets:from_list([FA || {Tag1,FAs} <- Opts, Tag1 =:= Tag, FA <- lists:flatten([FAs])]). @@ -1048,10 +1048,10 @@ check_unused_records(Forms, St0) -> %% functions count. Usage = St0#lint.usage, UsedRecords = sets:to_list(Usage#usage.used_records), - URecs = foldl(fun (Used, Recs) -> - dict:erase(Used, Recs) + URecs = foldl(fun (Used, Recs) -> + dict:erase(Used, Recs) end, St0#lint.records, UsedRecords), - Unused = [{Name,FileLine} || + Unused = [{Name,FileLine} || {Name,{FileLine,_Fields}} <- dict:to_list(URecs), element(1, loc(FileLine)) =:= FirstFile], foldl(fun ({N,L}, St) -> @@ -1061,14 +1061,14 @@ check_unused_records(Forms, St0) -> St0 end. -%% For storing the import list we use the orddict module. +%% For storing the import list we use the orddict module. %% We know an empty set is []. %% export(Line, Exports, State) -> State. %% Mark functions as exported, also as called from the export line. export(Line, Es, #lint{exports = Es0, called = Called} = St0) -> - {Es1,C1,St1} = + {Es1,C1,St1} = foldl(fun (NA, {E,C,St2}) -> St = case gb_sets:is_element(NA, E) of true -> @@ -1196,7 +1196,7 @@ call_function(Line, F, A, #lint{usage=Usage0,called=Cd,func=Func}=St) -> is_function_exported(Name, Arity, #lint{exports=Exports,compile=Compile}) -> gb_sets:is_element({Name,Arity}, Exports) orelse member(export_all, Compile). - + %% function(Line, Name, Arity, Clauses, State) -> State. function(Line, instance, _Arity, _Cs, St) when St#lint.global_vt =/= [] -> @@ -1258,7 +1258,7 @@ head([P|Ps], Vt, Old, St0) -> {vtmerge_pat(Pvt, Psvt),vtmerge_pat(Bvt1,Bvt2),St2}; head([], _Vt, _Env, St) -> {[],[],St}. -%% pattern(Pattern, VarTable, Old, BinVarTable, State) -> +%% pattern(Pattern, VarTable, Old, BinVarTable, State) -> %% {UpdVarTable,BinVarTable,State}. %% Check pattern return variables. Old is the set of variables used for %% deciding whether an occurrence is a binding occurrence or a use, and @@ -1276,7 +1276,7 @@ pattern(P, Vt, St) -> pattern({var,_Line,'_'}, _Vt, _Old, _Bvt, St) -> {[],[],St}; %Ignore anonymous variable -pattern({var,Line,V}, _Vt, Old, Bvt, St) -> +pattern({var,Line,V}, _Vt, Old, Bvt, St) -> pat_var(V, Line, Old, Bvt, St); pattern({char,_Line,_C}, _Vt, _Old, _Bvt, St) -> {[],[],St}; pattern({integer,_Line,_I}, _Vt, _Old, _Bvt, St) -> {[],[],St}; @@ -1294,7 +1294,7 @@ pattern({tuple,_Line,Ps}, Vt, Old, Bvt, St) -> %%pattern({struct,_Line,_Tag,Ps}, Vt, Old, Bvt, St) -> %% pattern_list(Ps, Vt, Old, Bvt, St); pattern({record_index,Line,Name,Field}, _Vt, _Old, _Bvt, St) -> - {Vt1,St1} = + {Vt1,St1} = check_record(Line, Name, St, fun (Dfs, St1) -> pattern_field(Field, Name, Dfs, St1) @@ -1309,7 +1309,7 @@ pattern({record_field,Line,_,_}=M, _Vt, _Old, _Bvt, St0) -> end; pattern({record,Line,Name,Pfs}, Vt, Old, Bvt, St) -> case dict:find(Name, St#lint.records) of - {ok,{_Line,Fields}} -> + {ok,{_Line,Fields}} -> St1 = used_record(Name, St), pattern_fields(Pfs, Name, Fields, Vt, Old, Bvt, St1); error -> {[],[],add_error(Line, {undefined_record,Name}, St)} @@ -1369,7 +1369,7 @@ reject_bin_alias({cons,_,H1,T1}, {cons,_,H2,T2}, St0) -> reject_bin_alias(T1, T2, St); reject_bin_alias({tuple,_,Es1}, {tuple,_,Es2}, St) -> reject_bin_alias_list(Es1, Es2, St); -reject_bin_alias({record,_,Name1,Pfs1}, {record,_,Name2,Pfs2}, +reject_bin_alias({record,_,Name1,Pfs1}, {record,_,Name2,Pfs2}, #lint{records=Recs}=St) -> case {dict:find(Name1, Recs),dict:find(Name2, Recs)} of {{ok,{_Line1,Fields1}},{ok,{_Line2,Fields2}}} -> @@ -1451,7 +1451,7 @@ is_pattern_expr_1({op,_Line,Op,A1,A2}) -> erl_internal:arith_op(Op, 2) andalso all(fun is_pattern_expr/1, [A1,A2]); is_pattern_expr_1(_Other) -> false. -%% pattern_bin([Element], VarTable, Old, BinVarTable, State) -> +%% pattern_bin([Element], VarTable, Old, BinVarTable, State) -> %% {UpdVarTable,UpdBinVarTable,State}. %% Check a pattern group. BinVarTable are used binsize variables. @@ -1498,7 +1498,7 @@ good_string_size_type(default, Ts) -> end, Ts); good_string_size_type(_, _) -> false. -%% pat_bit_expr(Pattern, OldVarTable, BinVarTable,State) -> +%% pat_bit_expr(Pattern, OldVarTable, BinVarTable,State) -> %% {UpdVarTable,UpdBinVarTable,State}. %% Check pattern bit expression, only allow really valid patterns! @@ -1513,7 +1513,7 @@ pat_bit_expr(P, _Old, _Bvt, St) -> false -> {[],[],add_error(element(2, P), illegal_pattern, St)} end. -%% pat_bit_size(Size, VarTable, BinVarTable, State) -> +%% pat_bit_size(Size, VarTable, BinVarTable, State) -> %% {Value,UpdVarTable,UpdBinVarTable,State}. %% Check pattern size expression, only allow really valid sizes! @@ -1596,7 +1596,7 @@ bit_size_check(Line, Size, #bittype{type=Type,unit=Unit}, St) -> Sz = Unit * Size, %Total number of bits! St2 = elemtype_check(Line, Type, Sz, St), {Sz,St2}. - + elemtype_check(_Line, float, 32, St) -> St; elemtype_check(_Line, float, 64, St) -> St; elemtype_check(Line, float, _Size, St) -> @@ -1710,7 +1710,7 @@ gexpr({call,_Line,{atom,_Lr,is_record},[E,{atom,Ln,Name}]}, Vt, St0) -> gexpr({call,Line,{atom,_Lr,is_record},[E,R]}, Vt, St0) -> {Asvt,St1} = gexpr_list([E,R], Vt, St0), {Asvt,add_error(Line, illegal_guard_expr, St1)}; -gexpr({call,Line,{remote,_Lr,{atom,_Lm,erlang},{atom,Lf,is_record}},[E,A]}, +gexpr({call,Line,{remote,_Lr,{atom,_Lm,erlang},{atom,Lf,is_record}},[E,A]}, Vt, St0) -> gexpr({call,Line,{atom,Lf,is_record},[E,A]}, Vt, St0); gexpr({call,_Line,{atom,_Lr,is_record},[E,{atom,_,_Name},{integer,_,_}]}, @@ -1777,7 +1777,7 @@ is_guard_test(E) -> %% is_guard_test(Expression, Forms) -> boolean(). is_guard_test(Expression, Forms) -> RecordAttributes = [A || A = {attribute, _, record, _D} <- Forms], - St0 = foldl(fun(Attr0, St1) -> + St0 = foldl(fun(Attr0, St1) -> Attr = zip_file_and_line(Attr0, "none"), attribute_state(Attr, St1) end, start(), RecordAttributes), @@ -1798,7 +1798,7 @@ is_guard_test2(G, RDs) -> %% is_guard_expr(Expression) -> boolean(). %% Test if an expression is a guard expression. -is_guard_expr(E) -> is_gexpr(E, []). +is_guard_expr(E) -> is_gexpr(E, []). is_gexpr({var,_L,_V}, _RDs) -> true; is_gexpr({char,_L,_C}, _RDs) -> true; @@ -1820,7 +1820,7 @@ is_gexpr({record_field,_L,Rec,_Name,Field}, RDs) -> is_gexpr({record,L,Name,Inits}, RDs) -> is_gexpr_fields(Inits, L, Name, RDs); is_gexpr({bin,_L,Fs}, RDs) -> - all(fun ({bin_element,_Line,E,Sz,_Ts}) -> + all(fun ({bin_element,_Line,E,Sz,_Ts}) -> is_gexpr(E, RDs) and (Sz =:= default orelse is_gexpr(Sz, RDs)) end, Fs); is_gexpr({call,_L,{atom,_Lf,F},As}, RDs) -> @@ -1902,8 +1902,8 @@ expr({record_index,Line,Name,Field}, _Vt, St) -> fun (Dfs, St1) -> record_field(Field, Name, Dfs, St1) end); expr({record,Line,Name,Inits}, Vt, St) -> check_record(Line, Name, St, - fun (Dfs, St1) -> - init_fields(Inits, Line, Name, Dfs, Vt, St1) + fun (Dfs, St1) -> + init_fields(Inits, Line, Name, Dfs, Vt, St1) end); expr({record_field,Line,_,_}=M, _Vt, St0) -> case expand_package(M, St0) of @@ -1969,7 +1969,7 @@ expr({'fun',Line,Body}, Vt, St) -> expr({call,_Line,{atom,_Lr,is_record},[E,{atom,Ln,Name}]}, Vt, St0) -> {Rvt,St1} = expr(E, Vt, St0), {Rvt,exist_record(Ln, Name, St1)}; -expr({call,Line,{remote,_Lr,{atom,_Lm,erlang},{atom,Lf,is_record}},[E,A]}, +expr({call,Line,{remote,_Lr,{atom,_Lm,erlang},{atom,Lf,is_record}},[E,A]}, Vt, St0) -> expr({call,Line,{atom,Lf,is_record},[E,A]}, Vt, St0); expr({call,L,{tuple,Lt,[{atom,Lm,erlang},{atom,Lf,is_record}]},As}, Vt, St) -> @@ -1995,7 +1995,7 @@ expr({call,Line,{atom,La,F},As}, Vt, St0) -> case erl_internal:bif(F, A) of true -> St3 = deprecated_function(Line, erlang, F, As, St2), - {Asvt,case is_warn_enabled(bif_clash, St3) andalso + {Asvt,case is_warn_enabled(bif_clash, St3) andalso is_bif_clash(F, A, St3) of false -> St3; @@ -2155,7 +2155,7 @@ def_fields(Fs0, Name, St0) -> foldl(fun ({record_field,Lf,{atom,La,F},V}, {Fs,St}) -> case exist_field(F, Fs) of true -> {Fs,add_error(Lf, {redefine_field,Name,F}, St)}; - false -> + false -> St1 = St#lint{recdef_top = true}, {_,St2} = expr(V, [], St1), %% Warnings and errors found are kept, but @@ -2306,7 +2306,7 @@ init_fields(Ifs, Line, Name, Dfs, Vt0, St0) -> Defs = init_fields(Ifs, Line, Dfs), {_,St2} = check_fields(Defs, Name, Dfs, Vt1, St1, fun expr/3), {Vt1,St1#lint{usage = St2#lint.usage}}. - + ginit_fields(Ifs, Line, Name, Dfs, Vt0, St0) -> {Vt1,St1} = check_fields(Ifs, Name, Dfs, Vt0, St0, fun gexpr/3), Defs = init_fields(Ifs, Line, Dfs), @@ -2316,7 +2316,7 @@ ginit_fields(Ifs, Line, Name, Dfs, Vt0, St0) -> IllErrs = [E || {_File,{_Line,erl_lint,illegal_guard_expr}}=E <- Errors], St4 = St1#lint{usage = Usage, errors = IllErrs ++ St1#lint.errors}, {Vt1,St4}. - + %% Default initializations to be carried out init_fields(Ifs, Line, Dfs) -> [ {record_field,Lf,{atom,La,F},copy_expr(Di, Line)} || @@ -2394,7 +2394,7 @@ check_type({ann_type, _L, [_Var, Type]}, SeenVars, St) -> check_type(Type, SeenVars, St); check_type({paren_type, _L, [Type]}, SeenVars, St) -> check_type(Type, SeenVars, St); -check_type({remote_type, L, [{atom, _, Mod}, {atom, _, Name}, Args]}, +check_type({remote_type, L, [{atom, _, Mod}, {atom, _, Name}, Args]}, SeenVars, #lint{module=CurrentMod} = St) -> St1 = case (dict:is_key({Name, length(Args)}, default_types()) @@ -2432,7 +2432,7 @@ check_type({type, L, 'fun', [Dom, Range]}, SeenVars, St) -> check_type({type, -1, product, [Dom, Range]}, SeenVars, St1); check_type({type, L, range, [From, To]}, SeenVars, St) -> St1 = - case {From, To} of + case {erl_eval:partial_eval(From), erl_eval:partial_eval(To)} of {{integer, _, X}, {integer, _, Y}} when X < Y -> St; _ -> add_error(L, {type_syntax, range}, St) end, @@ -2441,8 +2441,8 @@ check_type({type, _L, tuple, any}, SeenVars, St) -> {SeenVars, St}; check_type({type, _L, any}, SeenVars, St) -> {SeenVars, St}; check_type({type, L, binary, [Base, Unit]}, SeenVars, St) -> St1 = - case {Base, Unit} of - {{integer, _, BaseVal}, + case {erl_eval:partial_eval(Base), erl_eval:partial_eval(Unit)} of + {{integer, _, BaseVal}, {integer, _, UnitVal}} when BaseVal >= 0, UnitVal >= 0 -> St; _ -> add_error(L, {type_syntax, binary}, St) end, @@ -2467,7 +2467,13 @@ check_type({type, La, TypeName, Args}, SeenVars, #lint{usage=Usage} = St) -> UsedTypes = dict:store({TypeName, Arity}, La, OldUsed), St#lint{usage=Usage#usage{used_types=UsedTypes}} end, - check_type({type, -1, product, Args}, SeenVars, St1). + check_type({type, -1, product, Args}, SeenVars, St1); +check_type(I, SeenVars, St) -> + case erl_eval:partial_eval(I) of + {integer,_ILn,_Integer} -> {SeenVars, St}; + _Other -> + {SeenVars, add_error(element(2, I), {type_syntax, integer}, St)} + end. check_record_types(Line, Name, Fields, SeenVars, St) -> case dict:find(Name, St#lint.records) of @@ -2475,12 +2481,12 @@ check_record_types(Line, Name, Fields, SeenVars, St) -> case lists:all(fun({type, _, field_type, _}) -> true; (_) -> false end, Fields) of - true -> + true -> check_record_types(Fields, Name, DefFields, SeenVars, St, []); false -> {SeenVars, add_error(Line, {type_syntax, record}, St)} end; - error -> + error -> {SeenVars, add_error(Line, {undefined_record, Name}, St)} end. @@ -2606,7 +2612,7 @@ spec_decl(Line, MFA0, TypeSpecs, St0 = #lint{specs = Specs, module = Mod}) -> check_specs([FunType|Left], Arity, St0) -> {FunType1, CTypes} = case FunType of - {type, _, bounded_fun, [FT = {type, _, 'fun', _}, Cs]} -> + {type, _, bounded_fun, [FT = {type, _, 'fun', _}, Cs]} -> Types0 = [T || {type, _, constraint, [_, T]} <- Cs], {FT, lists:append(Types0)}; {type, _, 'fun', _} = FT -> {FT, []} @@ -2679,7 +2685,7 @@ check_unused_types(Forms, St = #lint{usage=Usage, types=Types}) -> {FirstFile, _} -> case dict:is_key(Type, UsedTypes) of true -> AccSt; - false -> + false -> add_warning(FileLine, {unused_type, Type}, AccSt) @@ -2834,7 +2840,7 @@ fun_clause({clause,_Line,H,G,B}, Vt0, St0) -> %% %% used variable has been used %% unused variable has been bound but not used -%% +%% %% Lines is a list of line numbers where the variable was bound. %% %% Report variable errors/warnings as soon as possible and then change @@ -2864,9 +2870,9 @@ pat_var(V, Line, Vt, Bvt, St) -> case orddict:find(V, Bvt) of {ok, {bound,_Usage,Ls}} -> {[],[{V,{bound,used,Ls}}],St}; - error -> + error -> case orddict:find(V, Vt) of - {ok,{bound,_Usage,Ls}} -> + {ok,{bound,_Usage,Ls}} -> {[{V,{bound,used,Ls}}],[],St}; {ok,{{unsafe,In},_Usage,Ls}} -> {[{V,{bound,used,Ls}}],[], @@ -2919,7 +2925,7 @@ pat_binsize_var(V, Line, Vt, Bvt, St) -> expr_var(V, Line, Vt, St0) -> case orddict:find(V, Vt) of - {ok,{bound,_Usage,Ls}} -> + {ok,{bound,_Usage,Ls}} -> {[{V,{bound,used,Ls}}],St0}; {ok,{{unsafe,In},_Usage,Ls}} -> {[{V,{bound,used,Ls}}], @@ -2957,7 +2963,7 @@ check_old_unused_vars(Vt, Vt0, St0) -> warn_unused_vars(U, Vt, St0). unused_vars(Vt, Vt0, _St0) -> - U0 = orddict:filter(fun (V, {_State,unused,_Ls}) -> + U0 = orddict:filter(fun (V, {_State,unused,_Ls}) -> case atom_to_list(V) of "_"++_ -> false; _ -> true @@ -2973,7 +2979,7 @@ warn_unused_vars(U, Vt, St0) -> false -> St0; true -> foldl(fun ({V,{_,unused,Ls}}, St) -> - foldl(fun (L, St2) -> + foldl(fun (L, St2) -> add_warning(L, {unused_var,V}, St2) end, St, Ls) @@ -3073,7 +3079,7 @@ vt_no_unsafe(Vt) -> [V || {_,{S,_U,_L}}=V <- Vt, -ifdef(NOTUSED). vunion(Vs1, Vs2) -> ordsets:union(vtnames(Vs1), vtnames(Vs2)). -vunion(Vss) -> foldl(fun (Vs, Uvs) -> +vunion(Vss) -> foldl(fun (Vs, Uvs) -> ordsets:union(vtnames(Vs), Uvs) end, [], Vss). @@ -3103,7 +3109,7 @@ modify_line(T, F0) -> %% Forms. modify_line1({function,F,A}, _Mf) -> {function,F,A}; modify_line1({function,M,F,A}, _Mf) -> {function,M,F,A}; -modify_line1({attribute,L,record,{Name,Fields}}, Mf) -> +modify_line1({attribute,L,record,{Name,Fields}}, Mf) -> {attribute,Mf(L),record,{Name,modify_line1(Fields, Mf)}}; modify_line1({attribute,L,spec,{Fun,Types}}, Mf) -> {attribute,Mf(L),spec,{Fun,modify_line1(Types, Mf)}}; @@ -3118,7 +3124,7 @@ modify_line1({warning,W}, _Mf) -> {warning,W}; modify_line1({error,W}, _Mf) -> {error,W}; %% Expressions. modify_line1({clauses,Cs}, Mf) -> {clauses,modify_line1(Cs, Mf)}; -modify_line1({typed_record_field,Field,Type}, Mf) -> +modify_line1({typed_record_field,Field,Type}, Mf) -> {typed_record_field,modify_line1(Field, Mf),modify_line1(Type, Mf)}; modify_line1({Tag,L}, Mf) -> {Tag,Mf(L)}; modify_line1({Tag,L,E1}, Mf) -> @@ -3154,7 +3160,7 @@ check_record_info_call(Line,_La,_As,St) -> has_wildcard_field([{record_field,_Lf,{var,_La,'_'},_Val}|_Fs]) -> true; has_wildcard_field([_|Fs]) -> has_wildcard_field(Fs); has_wildcard_field([]) -> false. - + %% check_remote_function(Line, ModuleName, FuncName, [Arg], State) -> State. %% Perform checks on known remote calls. @@ -3170,7 +3176,7 @@ check_remote_function(Line, M, F, As, St0) -> check_qlc_hrl(Line, M, F, As, St) -> Arity = length(As), case As of - [{lc,_L,_E,_Qs}|_] when M =:= qlc, F =:= q, + [{lc,_L,_E,_Qs}|_] when M =:= qlc, F =:= q, Arity < 3, not St#lint.xqlc -> add_warning(Line, {missing_qlc_hrl, Arity}, St); _ -> @@ -3355,11 +3361,11 @@ extract_sequence(3, [$.,_|Fmt], Need) -> extract_sequence(4, Fmt, Need); extract_sequence(3, Fmt, Need) -> extract_sequence(4, Fmt, Need); -extract_sequence(4, [$t, $c | Fmt], Need) -> - extract_sequence(5, [$c|Fmt], Need); -extract_sequence(4, [$t, $s | Fmt], Need) -> - extract_sequence(5, [$s|Fmt], Need); -extract_sequence(4, [$t, C | _Fmt], _Need) -> +extract_sequence(4, [$t, $c | Fmt], Need) -> + extract_sequence(5, [$c|Fmt], Need); +extract_sequence(4, [$t, $s | Fmt], Need) -> + extract_sequence(5, [$s|Fmt], Need); +extract_sequence(4, [$t, C | _Fmt], _Need) -> {error,"invalid control ~t" ++ [C]}; extract_sequence(4, Fmt, Need) -> extract_sequence(5, Fmt, Need); diff --git a/lib/stdlib/src/erl_parse.yrl b/lib/stdlib/src/erl_parse.yrl index 141ee18afd..bb4b18cf9b 100644 --- a/lib/stdlib/src/erl_parse.yrl +++ b/lib/stdlib/src/erl_parse.yrl @@ -47,7 +47,7 @@ opt_bit_size_expr bit_size_expr opt_bit_type_list bit_type_list bit_type top_type top_type_100 top_types type typed_expr typed_attr_val type_sig type_sigs type_guard type_guards fun_type fun_type_100 binary_type type_spec spec_fun typed_exprs typed_record_fields field_types field_type -bin_base_type bin_unit_type int_type. +bin_base_type bin_unit_type type_200 type_300 type_400 type_500. Terminals char integer float atom string var @@ -120,8 +120,24 @@ top_types -> top_type ',' top_types : ['$1'|'$3']. top_type -> var '::' top_type_100 : {ann_type, ?line('$1'), ['$1','$3']}. top_type -> top_type_100 : '$1'. -top_type_100 -> type : '$1'. -top_type_100 -> type '|' top_type_100 : lift_unions('$1','$3'). +top_type_100 -> type_200 : '$1'. +top_type_100 -> type_200 '|' top_type_100 : lift_unions('$1','$3'). + +type_200 -> type_300 '..' type_300 : {type, ?line('$1'), range, + [skip_paren('$1'), + skip_paren('$3')]}. +type_200 -> type_300 : '$1'. + +type_300 -> type_300 add_op type_400 : ?mkop2(skip_paren('$1'), + '$2', skip_paren('$3')). +type_300 -> type_400 : '$1'. + +type_400 -> type_400 mult_op type_500 : ?mkop2(skip_paren('$1'), + '$2', skip_paren('$3')). +type_400 -> type_500 : '$1'. + +type_500 -> prefix_op type : ?mkop1('$1', skip_paren('$2')). +type_500 -> type : '$1'. type -> '(' top_type ')' : {paren_type, ?line('$2'), ['$2']}. type -> var : '$1'. @@ -143,16 +159,10 @@ type -> '#' atom '{' '}' : {type, ?line('$1'), record, ['$2']}. type -> '#' atom '{' field_types '}' : {type, ?line('$1'), record, ['$2'|'$4']}. type -> binary_type : '$1'. -type -> int_type : '$1'. -type -> int_type '..' int_type : {type, ?line('$1'), range, - ['$1', '$3']}. +type -> integer : '$1'. type -> 'fun' '(' ')' : {type, ?line('$1'), 'fun', []}. type -> 'fun' '(' fun_type_100 ')' : '$3'. -int_type -> integer : '$1'. -int_type -> '-' integer : abstract(-normalise('$2'), - ?line('$2')). - fun_type_100 -> '(' '...' ')' '->' top_type : {type, ?line('$1'), 'fun', [{type, ?line('$1'), any}, '$5']}. @@ -180,9 +190,9 @@ binary_type -> '<<' bin_unit_type '>>' : {type, ?line('$1'),binary, binary_type -> '<<' bin_base_type ',' bin_unit_type '>>' : {type, ?line('$1'), binary, ['$2', '$4']}. -bin_base_type -> var ':' integer : build_bin_type(['$1'], '$3'). +bin_base_type -> var ':' type : build_bin_type(['$1'], '$3'). -bin_unit_type -> var ':' var '*' integer : build_bin_type(['$1', '$3'], '$5'). +bin_unit_type -> var ':' var '*' type : build_bin_type(['$1', '$3'], '$5'). attr_val -> expr : ['$1']. attr_val -> expr ',' exprs : ['$1' | '$3']. @@ -607,6 +617,11 @@ lift_unions(T1, {type, _La, union, List}) -> lift_unions(T1, T2) -> {type, ?line(T1), union, [T1, T2]}. +skip_paren({paren_type,_L,[Type]}) -> + skip_paren(Type); +skip_paren(Type) -> + Type. + build_gen_type({atom, La, tuple}) -> {type, La, tuple, any}; build_gen_type({atom, La, Name}) -> @@ -615,7 +630,7 @@ build_gen_type({atom, La, Name}) -> build_bin_type([{var, _, '_'}|Left], Int) -> build_bin_type(Left, Int); build_bin_type([], Int) -> - Int; + skip_paren(Int); build_bin_type([{var, La, _}|_], _) -> ret_err(La, "Bad binary type"). diff --git a/lib/stdlib/src/erl_pp.erl b/lib/stdlib/src/erl_pp.erl index 0859bf0466..df4a20b833 100644 --- a/lib/stdlib/src/erl_pp.erl +++ b/lib/stdlib/src/erl_pp.erl @@ -115,7 +115,7 @@ lattribute({attribute,_Line,Name,Arg}, Hook) -> lattribute(module, {M,Vs}, _Hook) -> attr("module",[{var,0,pname(M)}, - foldr(fun(V, C) -> {cons,0,{var,0,V},C} + foldr(fun(V, C) -> {cons,0,{var,0,V},C} end, {nil,0}, Vs)]); lattribute(module, M, _Hook) -> attr("module", [{var,0,pname(M)}]); @@ -140,7 +140,7 @@ typeattr(Tag, {TypeName,Type,Args}, _Hook) -> ltype({ann_type,_Line,[V,T]}) -> typed(lexpr(V, none), T); ltype({paren_type,_Line,[T]}) -> - [$(,ltype(T),$)]; + [$(,ltype(T),$)]; ltype({type,_Line,union,Ts}) -> {seq,[],[],[' |'],ltypes(Ts)}; ltype({type,_Line,list,[T]}) -> @@ -153,7 +153,7 @@ ltype({type,Line,tuple,any}) -> simple_type({atom,Line,tuple}, []); ltype({type,_Line,tuple,Ts}) -> tuple_type(Ts, fun ltype/1); -ltype({type,_Line,record,[N|Fs]}) -> +ltype({type,_Line,record,[{atom,_,N}|Fs]}) -> record_type(N, Fs); ltype({type,_Line,range,[_I1,_I2]=Es}) -> expr_list(Es, '..', fun lexpr/2, none); @@ -174,12 +174,15 @@ ltype({atom,_,T}) -> ltype(E) -> lexpr(E, 0, none). -binary_type({integer,_,Int1}=I1, {integer,_,Int2}=I2) -> - E1 = [[leaf("_:"),lexpr(I1, 0, none)] || Int1 =/= 0], - E2 = [[leaf("_:_*"),lexpr(I2, 0, none)] || Int2 =/= 0], +binary_type(I1, I2) -> + B = [[] || {integer,_,0} <- [I1]] =:= [], + U = [[] || {integer,_,0} <- [I2]] =:= [], + P = max_prec(), + E1 = [[leaf("_:"),lexpr(I1, P, none)] || B], + E2 = [[leaf("_:_*"),lexpr(I2, P, none)] || U], {seq,'<<','>>',[$,],E1++E2}. -record_type({atom,_,Name}, Fields) -> +record_type(Name, Fields) -> {first,[record_name(Name)],field_types(Fields)}. field_types(Fs) -> @@ -443,7 +446,7 @@ lexpr({op,_,Op,Arg}, Prec, Hook) -> Ol = leaf(format("~s ", [Op])), El = [Ol,lexpr(Arg, R, Hook)], maybe_paren(P, Prec, El); -lexpr({op,_,Op,Larg,Rarg}, Prec, Hook) when Op =:= 'orelse'; +lexpr({op,_,Op,Larg,Rarg}, Prec, Hook) when Op =:= 'orelse'; Op =:= 'andalso' -> %% Breaks lines since R12B. {L,P,R} = inop_prec(Op), @@ -727,15 +730,15 @@ frmt(Item, I) -> %%% and indentation are inserted between IPs. %%% - {first,I,IP2}: IP2 follows after I, and is output with an indentation %%% updated with the width of I. -%%% - {seq,Before,After,Separator,IPs}: a sequence of Is separated by -%%% Separator. Before is output before IPs, and the indentation of IPs +%%% - {seq,Before,After,Separator,IPs}: a sequence of Is separated by +%%% Separator. Before is output before IPs, and the indentation of IPs %%% is updated with the width of Before. After follows after IPs. %%% - {force_nl,ExtraInfo,I}: fun-info (a comment) forces linebreak before I. %%% - {prefer_nl,Sep,IPs}: forces linebreak between Is unlesss negative %%% indentation. %%% - {string,S}: a string. %%% - {hook,...}, {ehook,...}: hook expressions. -%%% +%%% %%% list, first, seq, force_nl, and prefer_nl all accept IPs, where each %%% element is either an item or a tuple {step|cstep,I1,I2}. step means %%% that I2 is output after linebreak and an incremented indentation. @@ -761,7 +764,7 @@ f({seq,Before,After,Sep,LItems}, I0, ST, WT) -> {CharsL,SizeL} = unz(CharsSizeL), {BCharsL,BSizeL} = unz1([BCharsSize]), Sizes = BSizeL ++ SizeL, - NSepChars = if + NSepChars = if is_list(Sep), Sep =/= [] -> erlang:max(0, length(CharsL)-1); true -> @@ -876,7 +879,7 @@ nl_indent(I, T) when I > 0 -> [$\n|spaces(I, T)]. same_line(I0, SizeL, NSepChars) -> - try + try Size = lists:sum(SizeL) + NSepChars, true = incr(I0, Size) =< ?MAXLINE, {yes,Size} @@ -956,9 +959,9 @@ write_a_string(S, N, Len) -> -define(N_SPACES, 30). spacetab() -> - {[_|L],_} = mapfoldl(fun(_, A) -> {A,[$\s|A]} + {[_|L],_} = mapfoldl(fun(_, A) -> {A,[$\s|A]} end, [], lists:seq(0, ?N_SPACES)), - list_to_tuple(L). + list_to_tuple(L). spaces(N, T) when N =< ?N_SPACES -> element(N, T); @@ -966,7 +969,7 @@ spaces(N, T) -> [element(?N_SPACES, T)|spaces(N-?N_SPACES, T)]. wordtable() -> - L = [begin {leaf,Sz,S} = leaf(W), {S,Sz} end || + L = [begin {leaf,Sz,S} = leaf(W), {S,Sz} end || W <- [" ->"," =","<<",">>","[]","after","begin","case","catch", "end","fun","if","of","receive","try","when"," ::","..", " |"]], diff --git a/lib/stdlib/test/erl_pp_SUITE.erl b/lib/stdlib/test/erl_pp_SUITE.erl index 66730b7b94..c57541fba9 100644 --- a/lib/stdlib/test/erl_pp_SUITE.erl +++ b/lib/stdlib/test/erl_pp_SUITE.erl @@ -46,7 +46,7 @@ neg_indent/1, tickets/1, otp_6321/1, otp_6911/1, otp_6914/1, otp_8150/1, otp_8238/1, - otp_8473/1, otp_8522/1, otp_8567/1]). + otp_8473/1, otp_8522/1, otp_8567/1, otp_8664/1]). %% Internal export. -export([ehook/6]). @@ -765,7 +765,7 @@ neg_indent(Config) when is_list(Config) -> tickets(suite) -> [otp_6321, otp_6911, otp_6914, otp_8150, otp_8238, otp_8473, otp_8522, - otp_8567]. + otp_8567, otp_8664]. otp_6321(doc) -> "OTP_6321. Bug fix of exprs()."; @@ -995,6 +995,38 @@ otp_8567(Config) when is_list(Config) -> ok. +otp_8664(doc) -> + "OTP_8664. Types with integer expressions."; +otp_8664(suite) -> []; +otp_8664(Config) when is_list(Config) -> + FileName = filename('otp_8664.erl', Config), + C1 = <<"-module(otp_8664).\n" + "-export([t/0]).\n" + "-define(A, -3).\n" + "-define(B, (?A*(-1 band (((2)))))).\n" + "-type t1() :: ?B | ?A.\n" + "-type t2() :: ?B-1 .. -?B.\n" + "-type t3() :: 9 band (8 - 3) | 1+2 | 5 band 3.\n" + "-type b1() :: <<_:_*(3-(-1))>>\n" + " | <<_:(-(?B))>>\n" + " | <<_:4>>.\n" + "-type u() :: 1 .. 2 | 3.. 4 | (8-3) ..6 | 5+0..6.\n" + "-type t() :: t1() | t2() | t3() | b1() | u().\n" + "-spec t() -> t().\n" + "t() -> 3.\n">>, + ?line ok = file:write_file(FileName, C1), + ?line {ok, _, []} = compile:file(FileName, [return]), + + C2 = <<"-module(otp_8664).\n" + "-export([t/0]).\n" + "-spec t() -> 9 and 4.\n" + "t() -> 0.\n">>, + ?line ok = file:write_file(FileName, C2), + ?line {error,[{_,[{3,erl_lint,{type_syntax,integer}}]}],_} = + compile:file(FileName, [return]), + + ok. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% compile(Config, Tests) -> diff --git a/lib/stdlib/test/qlc_SUITE.erl b/lib/stdlib/test/qlc_SUITE.erl index aa12ed57da..e21de8770a 100644 --- a/lib/stdlib/test/qlc_SUITE.erl +++ b/lib/stdlib/test/qlc_SUITE.erl @@ -3184,7 +3184,9 @@ lookup2(Config) when is_list(Config) -> [] = qlc:e(Q), false = lookup_keys(Q) end, [{1,b},{2,3}])">>, - {warnings,[{{3,48},qlc,nomatch_filter}]}}, + {warnings,[{2,sys_core_fold,nomatch_guard}, + {3,qlc,nomatch_filter}, + {3,sys_core_fold,{eval_failure,badarg}}]}}, <<"etsc(fun(E) -> Q = qlc:q([X || {X} <- ets:table(E), element(1,{X}) =:= 1]), |