aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bootstrap/bin/start.bootbin5306 -> 5324 bytes
-rw-r--r--bootstrap/bin/start.script30
-rw-r--r--bootstrap/bin/start_clean.bootbin5306 -> 5324 bytes
-rw-r--r--bootstrap/bin/start_clean.script30
-rw-r--r--bootstrap/lib/compiler/ebin/beam_asm.beambin9168 -> 9028 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_block.beambin13040 -> 12964 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_bool.beambin14928 -> 14880 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_bsm.beambin12308 -> 12196 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_clean.beambin10192 -> 10128 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_dead.beambin10908 -> 11456 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_disasm.beambin23300 -> 23268 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_flatten.beambin3256 -> 3252 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_jump.beambin8984 -> 8936 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_opcodes.beambin6748 -> 6756 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_peep.beambin3176 -> 2356 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_receive.beambin5388 -> 5392 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_trim.beambin7764 -> 7764 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_type.beambin13236 -> 13016 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_utils.beambin13096 -> 12776 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/beam_validator.beambin31536 -> 31328 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/cerl.beambin28432 -> 28236 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/compile.beambin31804 -> 31408 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/core_lib.beambin5068 -> 5072 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/core_lint.beambin10660 -> 10656 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/core_parse.beambin34380 -> 34380 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/core_pp.beambin11204 -> 11148 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/core_scan.beambin6276 -> 6268 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/erl_bifs.beambin2024 -> 2100 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/rec_env.beambin4412 -> 4312 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/sys_core_fold.beambin41752 -> 42184 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/sys_expand_pmod.beambin7608 -> 7616 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/sys_pre_expand.beambin14064 -> 14044 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/v3_codegen.beambin48048 -> 47904 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/v3_core.beambin45328 -> 44984 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/v3_kernel.beambin40832 -> 40832 bytes
-rw-r--r--bootstrap/lib/compiler/ebin/v3_life.beambin21600 -> 21568 bytes
-rw-r--r--bootstrap/lib/compiler/egen/beam_opcodes.erl8
-rw-r--r--bootstrap/lib/compiler/egen/core_parse.erl4
-rw-r--r--bootstrap/lib/kernel/ebin/application_controller.beambin28120 -> 27960 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/application_master.beambin5940 -> 5944 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/application_starter.beambin1200 -> 1204 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/auth.beambin5912 -> 5908 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/code.beambin5732 -> 5716 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/code_server.beambin23788 -> 23736 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/disk_log.beambin37120 -> 36428 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/disk_log_1.beambin22836 -> 22820 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/disk_log_server.beambin5952 -> 5948 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/dist_ac.beambin24808 -> 24776 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/dist_util.beambin9436 -> 9536 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/erl_boot_server.beambin5272 -> 5268 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/erl_ddll.beambin2456 -> 2464 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/erl_epmd.beambin7668 -> 7644 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/erts_debug.beambin2640 -> 2608 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/file.beambin11012 -> 11224 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/file_io_server.beambin12816 -> 13004 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/file_server.beambin4852 -> 4828 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/gen_sctp.beambin3144 -> 3144 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/global.beambin29508 -> 29332 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/global_group.beambin16296 -> 16224 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/global_search.beambin2768 -> 2768 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/group.beambin10580 -> 10884 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/heart.beambin3632 -> 3624 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet.beambin18228 -> 17984 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet6_tcp_dist.beambin5864 -> 5856 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_config.beambin8304 -> 8280 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_db.beambin24820 -> 24716 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_dns.beambin18484 -> 18712 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_gethost_native.beambin9724 -> 9680 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_parse.beambin11980 -> 11968 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_res.beambin14260 -> 14216 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_tcp_dist.beambin6112 -> 6116 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/inet_udp.beambin1812 -> 1808 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/kernel.beambin3564 -> 3556 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/kernel_config.beambin2564 -> 2556 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/net_adm.beambin2864 -> 2864 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/net_kernel.beambin21048 -> 21308 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/os.beambin4648 -> 4644 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/packages.beambin2100 -> 2096 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/pg2.beambin6956 -> 6984 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/ram_file.beambin6084 -> 6512 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/rpc.beambin8200 -> 8204 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/standard_error.beambin3460 -> 3460 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/user.beambin11448 -> 11460 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/user_drv.beambin9480 -> 9324 bytes
-rw-r--r--bootstrap/lib/kernel/ebin/wrap_log_reader.beambin3220 -> 3156 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/array.beambin10720 -> 10720 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/base64.beambin3836 -> 3828 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/beam_lib.beambin16168 -> 16528 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/binary.beambin0 -> 2480 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/c.beambin12524 -> 12520 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/dets.beambin49020 -> 48608 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/dets_utils.beambin26024 -> 26012 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/dets_v8.beambin25388 -> 25152 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/dets_v9.beambin46524 -> 46124 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/dict.beambin8596 -> 8604 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/digraph.beambin7684 -> 7664 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/digraph_utils.beambin6228 -> 6252 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/edlin.beambin7296 -> 7392 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/epp.beambin21924 -> 21816 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_bits.beambin2468 -> 2468 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_compile.beambin4744 -> 4736 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_eval.beambin21624 -> 21588 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_expand_records.beambin17056 -> 19756 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_internal.beambin3912 -> 3928 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_lint.beambin72444 -> 72352 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_parse.beambin62612 -> 62612 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_pp.beambin21332 -> 21300 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_scan.beambin30292 -> 30204 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/erl_tar.beambin14648 -> 14600 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/error_logger_file_h.beambin4596 -> 4588 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/error_logger_tty_h.beambin4332 -> 4332 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/escript.beambin15328 -> 15284 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/ets.beambin18140 -> 18080 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/eval_bits.beambin6140 -> 6136 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/file_sorter.beambin28356 -> 28336 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/filelib.beambin6376 -> 6388 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/filename.beambin8672 -> 8644 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/gb_sets.beambin7520 -> 7544 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/gb_trees.beambin4612 -> 4624 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/gen.beambin3408 -> 3412 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/gen_event.beambin11916 -> 12356 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/gen_fsm.beambin8832 -> 9056 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/gen_server.beambin11720 -> 11948 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/io.beambin6176 -> 6176 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/io_lib.beambin8308 -> 8300 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/io_lib_format.beambin10948 -> 10964 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/io_lib_pretty.beambin11280 -> 11260 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/lib.beambin8104 -> 8100 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/ms_transform.beambin16884 -> 16896 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/otp_internal.beambin7792 -> 7768 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/pg.beambin1936 -> 1932 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/pool.beambin3520 -> 3520 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/proc_lib.beambin8476 -> 8472 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/proplists.beambin4576 -> 4560 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/qlc.beambin64404 -> 64200 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/qlc_pt.beambin66008 -> 65996 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/re.beambin11312 -> 11296 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/regexp.beambin7896 -> 7860 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/sets.beambin6736 -> 6736 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/shell.beambin28144 -> 28160 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/sofs.beambin39096 -> 39076 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/stdlib.app1
-rw-r--r--bootstrap/lib/stdlib/ebin/supervisor.beambin15184 -> 14984 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/sys.beambin6860 -> 6804 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/timer.beambin4836 -> 4732 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/unicode.beambin10792 -> 10808 bytes
-rw-r--r--bootstrap/lib/stdlib/ebin/zip.beambin24644 -> 24568 bytes
-rw-r--r--bootstrap/lib/stdlib/egen/erl_parse.erl2213
-rw-r--r--erts/doc/src/erlang.xml2
-rw-r--r--erts/doc/src/match_spec.xml52
-rw-r--r--erts/emulator/beam/erl_trace.c4
-rw-r--r--erts/emulator/beam/register.c37
-rw-r--r--erts/emulator/drivers/win32/win_efile.c3
-rw-r--r--erts/emulator/test/binary_SUITE.erl10
-rw-r--r--lib/compiler/src/beam_dead.erl58
-rw-r--r--lib/compiler/src/beam_peep.erl58
-rw-r--r--lib/compiler/src/sys_core_fold.erl45
-rw-r--r--lib/kernel/src/file.erl6
-rw-r--r--lib/kernel/src/inet_dns.erl44
-rw-r--r--lib/kernel/src/inet_res.erl11
-rw-r--r--lib/kernel/src/net_kernel.erl5
-rw-r--r--lib/kernel/src/os.erl31
-rw-r--r--lib/kernel/test/file_SUITE.erl84
-rw-r--r--lib/kernel/test/os_SUITE.erl7
-rw-r--r--lib/megaco/doc/src/megaco.xml16
-rw-r--r--lib/megaco/doc/src/notes.xml17
-rw-r--r--lib/megaco/src/app/megaco.appup.src10
-rw-r--r--lib/megaco/src/app/megaco_internal.hrl26
-rw-r--r--lib/megaco/src/engine/megaco_config.erl26
-rw-r--r--lib/megaco/src/engine/megaco_messenger.erl239
-rw-r--r--lib/megaco/src/engine/megaco_monitor.erl33
-rw-r--r--lib/megaco/vsn.mk4
-rw-r--r--lib/public_key/asn1/OTP-PKIX.asn12
-rw-r--r--lib/ssh/src/ssh_cli.erl6
-rw-r--r--lib/ssh/src/ssh_connection_handler.erl7
-rw-r--r--lib/stdlib/src/erl_expand_records.erl132
-rw-r--r--lib/stdlib/src/erl_internal.erl1
-rw-r--r--lib/stdlib/src/erl_lint.erl144
-rw-r--r--lib/stdlib/src/erl_parse.yrl41
-rw-r--r--lib/stdlib/src/erl_pp.erl35
-rw-r--r--lib/stdlib/test/erl_pp_SUITE.erl36
-rw-r--r--lib/stdlib/test/qlc_SUITE.erl4
182 files changed, 2019 insertions, 1503 deletions
diff --git a/bootstrap/bin/start.boot b/bootstrap/bin/start.boot
index 940541dbf8..71d72c4b7d 100644
--- a/bootstrap/bin/start.boot
+++ b/bootstrap/bin/start.boot
Binary files differ
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
index 940541dbf8..71d72c4b7d 100644
--- a/bootstrap/bin/start_clean.boot
+++ b/bootstrap/bin/start_clean.boot
Binary files differ
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
index 2db98a2013..23046bac9f 100644
--- a/bootstrap/lib/compiler/ebin/beam_asm.beam
+++ b/bootstrap/lib/compiler/ebin/beam_asm.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_block.beam b/bootstrap/lib/compiler/ebin/beam_block.beam
index e494c90788..4d71b65e23 100644
--- a/bootstrap/lib/compiler/ebin/beam_block.beam
+++ b/bootstrap/lib/compiler/ebin/beam_block.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_bool.beam b/bootstrap/lib/compiler/ebin/beam_bool.beam
index a1ff7e705d..ef6e7823cc 100644
--- a/bootstrap/lib/compiler/ebin/beam_bool.beam
+++ b/bootstrap/lib/compiler/ebin/beam_bool.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_bsm.beam b/bootstrap/lib/compiler/ebin/beam_bsm.beam
index 87bdc81d1e..fb331ee690 100644
--- a/bootstrap/lib/compiler/ebin/beam_bsm.beam
+++ b/bootstrap/lib/compiler/ebin/beam_bsm.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_clean.beam b/bootstrap/lib/compiler/ebin/beam_clean.beam
index 9127a20bda..0b28815f2a 100644
--- a/bootstrap/lib/compiler/ebin/beam_clean.beam
+++ b/bootstrap/lib/compiler/ebin/beam_clean.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_dead.beam b/bootstrap/lib/compiler/ebin/beam_dead.beam
index bdba7d1bfd..56288dc79e 100644
--- a/bootstrap/lib/compiler/ebin/beam_dead.beam
+++ b/bootstrap/lib/compiler/ebin/beam_dead.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_disasm.beam b/bootstrap/lib/compiler/ebin/beam_disasm.beam
index b58b44c68c..c8e2b27623 100644
--- a/bootstrap/lib/compiler/ebin/beam_disasm.beam
+++ b/bootstrap/lib/compiler/ebin/beam_disasm.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_flatten.beam b/bootstrap/lib/compiler/ebin/beam_flatten.beam
index 8546e1233a..402f2a14ae 100644
--- a/bootstrap/lib/compiler/ebin/beam_flatten.beam
+++ b/bootstrap/lib/compiler/ebin/beam_flatten.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_jump.beam b/bootstrap/lib/compiler/ebin/beam_jump.beam
index 2643874e07..1ee7b725fb 100644
--- a/bootstrap/lib/compiler/ebin/beam_jump.beam
+++ b/bootstrap/lib/compiler/ebin/beam_jump.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_opcodes.beam b/bootstrap/lib/compiler/ebin/beam_opcodes.beam
index 8c5378e05e..6ded472cb0 100644
--- a/bootstrap/lib/compiler/ebin/beam_opcodes.beam
+++ b/bootstrap/lib/compiler/ebin/beam_opcodes.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_peep.beam b/bootstrap/lib/compiler/ebin/beam_peep.beam
index 9fcb2536c8..279dd272b5 100644
--- a/bootstrap/lib/compiler/ebin/beam_peep.beam
+++ b/bootstrap/lib/compiler/ebin/beam_peep.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_receive.beam b/bootstrap/lib/compiler/ebin/beam_receive.beam
index ef7afd8113..4d88e80acd 100644
--- a/bootstrap/lib/compiler/ebin/beam_receive.beam
+++ b/bootstrap/lib/compiler/ebin/beam_receive.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_trim.beam b/bootstrap/lib/compiler/ebin/beam_trim.beam
index 74b0cec2f6..5c0d405843 100644
--- a/bootstrap/lib/compiler/ebin/beam_trim.beam
+++ b/bootstrap/lib/compiler/ebin/beam_trim.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_type.beam b/bootstrap/lib/compiler/ebin/beam_type.beam
index 2f2b518994..cccf58b7a4 100644
--- a/bootstrap/lib/compiler/ebin/beam_type.beam
+++ b/bootstrap/lib/compiler/ebin/beam_type.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_utils.beam b/bootstrap/lib/compiler/ebin/beam_utils.beam
index 51975f77d4..7b9c08439e 100644
--- a/bootstrap/lib/compiler/ebin/beam_utils.beam
+++ b/bootstrap/lib/compiler/ebin/beam_utils.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/beam_validator.beam b/bootstrap/lib/compiler/ebin/beam_validator.beam
index e04c9efa69..9dda0621c0 100644
--- a/bootstrap/lib/compiler/ebin/beam_validator.beam
+++ b/bootstrap/lib/compiler/ebin/beam_validator.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/cerl.beam b/bootstrap/lib/compiler/ebin/cerl.beam
index b0fef4fd1a..9f45f9f441 100644
--- a/bootstrap/lib/compiler/ebin/cerl.beam
+++ b/bootstrap/lib/compiler/ebin/cerl.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/compile.beam b/bootstrap/lib/compiler/ebin/compile.beam
index 3d44822af6..3db3a08335 100644
--- a/bootstrap/lib/compiler/ebin/compile.beam
+++ b/bootstrap/lib/compiler/ebin/compile.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/core_lib.beam b/bootstrap/lib/compiler/ebin/core_lib.beam
index 43c29138b8..8796f7e13e 100644
--- a/bootstrap/lib/compiler/ebin/core_lib.beam
+++ b/bootstrap/lib/compiler/ebin/core_lib.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/core_lint.beam b/bootstrap/lib/compiler/ebin/core_lint.beam
index 75e8b9b162..e7db1d3f72 100644
--- a/bootstrap/lib/compiler/ebin/core_lint.beam
+++ b/bootstrap/lib/compiler/ebin/core_lint.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/core_parse.beam b/bootstrap/lib/compiler/ebin/core_parse.beam
index 19202ce827..631c5d6aba 100644
--- a/bootstrap/lib/compiler/ebin/core_parse.beam
+++ b/bootstrap/lib/compiler/ebin/core_parse.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/core_pp.beam b/bootstrap/lib/compiler/ebin/core_pp.beam
index 94baecf93c..fb9001c52f 100644
--- a/bootstrap/lib/compiler/ebin/core_pp.beam
+++ b/bootstrap/lib/compiler/ebin/core_pp.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/core_scan.beam b/bootstrap/lib/compiler/ebin/core_scan.beam
index d9a088f4c6..cd2146d722 100644
--- a/bootstrap/lib/compiler/ebin/core_scan.beam
+++ b/bootstrap/lib/compiler/ebin/core_scan.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/erl_bifs.beam b/bootstrap/lib/compiler/ebin/erl_bifs.beam
index 8132234cb1..128f8a88d2 100644
--- a/bootstrap/lib/compiler/ebin/erl_bifs.beam
+++ b/bootstrap/lib/compiler/ebin/erl_bifs.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/rec_env.beam b/bootstrap/lib/compiler/ebin/rec_env.beam
index 9e3d93482e..8a1de81396 100644
--- a/bootstrap/lib/compiler/ebin/rec_env.beam
+++ b/bootstrap/lib/compiler/ebin/rec_env.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/sys_core_fold.beam b/bootstrap/lib/compiler/ebin/sys_core_fold.beam
index 6d96618ce7..f780a2fae6 100644
--- a/bootstrap/lib/compiler/ebin/sys_core_fold.beam
+++ b/bootstrap/lib/compiler/ebin/sys_core_fold.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam b/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam
index c0b1ebd802..3323279d7d 100644
--- a/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam
+++ b/bootstrap/lib/compiler/ebin/sys_expand_pmod.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/sys_pre_expand.beam b/bootstrap/lib/compiler/ebin/sys_pre_expand.beam
index 2333028391..919e97fe3e 100644
--- a/bootstrap/lib/compiler/ebin/sys_pre_expand.beam
+++ b/bootstrap/lib/compiler/ebin/sys_pre_expand.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/v3_codegen.beam b/bootstrap/lib/compiler/ebin/v3_codegen.beam
index d55373f6ac..5555d01b2a 100644
--- a/bootstrap/lib/compiler/ebin/v3_codegen.beam
+++ b/bootstrap/lib/compiler/ebin/v3_codegen.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/v3_core.beam b/bootstrap/lib/compiler/ebin/v3_core.beam
index df65af76c7..5d889ea4f3 100644
--- a/bootstrap/lib/compiler/ebin/v3_core.beam
+++ b/bootstrap/lib/compiler/ebin/v3_core.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/v3_kernel.beam b/bootstrap/lib/compiler/ebin/v3_kernel.beam
index 2f3efc7dfb..f87360f259 100644
--- a/bootstrap/lib/compiler/ebin/v3_kernel.beam
+++ b/bootstrap/lib/compiler/ebin/v3_kernel.beam
Binary files differ
diff --git a/bootstrap/lib/compiler/ebin/v3_life.beam b/bootstrap/lib/compiler/ebin/v3_life.beam
index 3b39cffbf9..3f0a409447 100644
--- a/bootstrap/lib/compiler/ebin/v3_life.beam
+++ b/bootstrap/lib/compiler/ebin/v3_life.beam
Binary files differ
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
index 093c2adbdf..113faeda01 100644
--- a/bootstrap/lib/kernel/ebin/application_controller.beam
+++ b/bootstrap/lib/kernel/ebin/application_controller.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/application_master.beam b/bootstrap/lib/kernel/ebin/application_master.beam
index 1d82fcd682..602dc36104 100644
--- a/bootstrap/lib/kernel/ebin/application_master.beam
+++ b/bootstrap/lib/kernel/ebin/application_master.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/application_starter.beam b/bootstrap/lib/kernel/ebin/application_starter.beam
index e33c9a5028..405d2f388a 100644
--- a/bootstrap/lib/kernel/ebin/application_starter.beam
+++ b/bootstrap/lib/kernel/ebin/application_starter.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/auth.beam b/bootstrap/lib/kernel/ebin/auth.beam
index 9fc133efe7..3c038f87aa 100644
--- a/bootstrap/lib/kernel/ebin/auth.beam
+++ b/bootstrap/lib/kernel/ebin/auth.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/code.beam b/bootstrap/lib/kernel/ebin/code.beam
index e82b91cf8e..bca88dfe7c 100644
--- a/bootstrap/lib/kernel/ebin/code.beam
+++ b/bootstrap/lib/kernel/ebin/code.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/code_server.beam b/bootstrap/lib/kernel/ebin/code_server.beam
index 5bf9b13367..8f95f91348 100644
--- a/bootstrap/lib/kernel/ebin/code_server.beam
+++ b/bootstrap/lib/kernel/ebin/code_server.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/disk_log.beam b/bootstrap/lib/kernel/ebin/disk_log.beam
index 86927f1125..b432811d6e 100644
--- a/bootstrap/lib/kernel/ebin/disk_log.beam
+++ b/bootstrap/lib/kernel/ebin/disk_log.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/disk_log_1.beam b/bootstrap/lib/kernel/ebin/disk_log_1.beam
index 942e1188ac..96f4e1953f 100644
--- a/bootstrap/lib/kernel/ebin/disk_log_1.beam
+++ b/bootstrap/lib/kernel/ebin/disk_log_1.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/disk_log_server.beam b/bootstrap/lib/kernel/ebin/disk_log_server.beam
index 46d7a9f546..089b5d578b 100644
--- a/bootstrap/lib/kernel/ebin/disk_log_server.beam
+++ b/bootstrap/lib/kernel/ebin/disk_log_server.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/dist_ac.beam b/bootstrap/lib/kernel/ebin/dist_ac.beam
index 3060733116..59c75602ec 100644
--- a/bootstrap/lib/kernel/ebin/dist_ac.beam
+++ b/bootstrap/lib/kernel/ebin/dist_ac.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/dist_util.beam b/bootstrap/lib/kernel/ebin/dist_util.beam
index d823f8d5c6..167a70e99d 100644
--- a/bootstrap/lib/kernel/ebin/dist_util.beam
+++ b/bootstrap/lib/kernel/ebin/dist_util.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/erl_boot_server.beam b/bootstrap/lib/kernel/ebin/erl_boot_server.beam
index 52d638fb32..d88224b5d0 100644
--- a/bootstrap/lib/kernel/ebin/erl_boot_server.beam
+++ b/bootstrap/lib/kernel/ebin/erl_boot_server.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/erl_ddll.beam b/bootstrap/lib/kernel/ebin/erl_ddll.beam
index 81daa5376b..c83b5e393c 100644
--- a/bootstrap/lib/kernel/ebin/erl_ddll.beam
+++ b/bootstrap/lib/kernel/ebin/erl_ddll.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/erl_epmd.beam b/bootstrap/lib/kernel/ebin/erl_epmd.beam
index 9ba74e3303..09746d0403 100644
--- a/bootstrap/lib/kernel/ebin/erl_epmd.beam
+++ b/bootstrap/lib/kernel/ebin/erl_epmd.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/erts_debug.beam b/bootstrap/lib/kernel/ebin/erts_debug.beam
index 26288e0633..9108d7e6d5 100644
--- a/bootstrap/lib/kernel/ebin/erts_debug.beam
+++ b/bootstrap/lib/kernel/ebin/erts_debug.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/file.beam b/bootstrap/lib/kernel/ebin/file.beam
index 0f11da59e1..2504c16024 100644
--- a/bootstrap/lib/kernel/ebin/file.beam
+++ b/bootstrap/lib/kernel/ebin/file.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/file_io_server.beam b/bootstrap/lib/kernel/ebin/file_io_server.beam
index 9b02183180..ce14722f4c 100644
--- a/bootstrap/lib/kernel/ebin/file_io_server.beam
+++ b/bootstrap/lib/kernel/ebin/file_io_server.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/file_server.beam b/bootstrap/lib/kernel/ebin/file_server.beam
index 37e598a10f..70bdb58805 100644
--- a/bootstrap/lib/kernel/ebin/file_server.beam
+++ b/bootstrap/lib/kernel/ebin/file_server.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/gen_sctp.beam b/bootstrap/lib/kernel/ebin/gen_sctp.beam
index f66b4635a2..a55e9090a5 100644
--- a/bootstrap/lib/kernel/ebin/gen_sctp.beam
+++ b/bootstrap/lib/kernel/ebin/gen_sctp.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/global.beam b/bootstrap/lib/kernel/ebin/global.beam
index 4dc43450f0..20053eb877 100644
--- a/bootstrap/lib/kernel/ebin/global.beam
+++ b/bootstrap/lib/kernel/ebin/global.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/global_group.beam b/bootstrap/lib/kernel/ebin/global_group.beam
index 6e9d6e8dfd..00d03a24f5 100644
--- a/bootstrap/lib/kernel/ebin/global_group.beam
+++ b/bootstrap/lib/kernel/ebin/global_group.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/global_search.beam b/bootstrap/lib/kernel/ebin/global_search.beam
index 8270772543..fe18f8f49a 100644
--- a/bootstrap/lib/kernel/ebin/global_search.beam
+++ b/bootstrap/lib/kernel/ebin/global_search.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/group.beam b/bootstrap/lib/kernel/ebin/group.beam
index 8e75aaef55..b72a13dbc7 100644
--- a/bootstrap/lib/kernel/ebin/group.beam
+++ b/bootstrap/lib/kernel/ebin/group.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/heart.beam b/bootstrap/lib/kernel/ebin/heart.beam
index e2aa55f9b0..9d381acaff 100644
--- a/bootstrap/lib/kernel/ebin/heart.beam
+++ b/bootstrap/lib/kernel/ebin/heart.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet.beam b/bootstrap/lib/kernel/ebin/inet.beam
index a8983e79c1..c712be3bdc 100644
--- a/bootstrap/lib/kernel/ebin/inet.beam
+++ b/bootstrap/lib/kernel/ebin/inet.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam b/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam
index 1f9ace4ad5..c2dac7dee1 100644
--- a/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam
+++ b/bootstrap/lib/kernel/ebin/inet6_tcp_dist.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_config.beam b/bootstrap/lib/kernel/ebin/inet_config.beam
index ad3f46010e..edc1e2f6fb 100644
--- a/bootstrap/lib/kernel/ebin/inet_config.beam
+++ b/bootstrap/lib/kernel/ebin/inet_config.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_db.beam b/bootstrap/lib/kernel/ebin/inet_db.beam
index 7009d9b9c1..2bba1e88c9 100644
--- a/bootstrap/lib/kernel/ebin/inet_db.beam
+++ b/bootstrap/lib/kernel/ebin/inet_db.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_dns.beam b/bootstrap/lib/kernel/ebin/inet_dns.beam
index 59e8936722..cfd46c29da 100644
--- a/bootstrap/lib/kernel/ebin/inet_dns.beam
+++ b/bootstrap/lib/kernel/ebin/inet_dns.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_gethost_native.beam b/bootstrap/lib/kernel/ebin/inet_gethost_native.beam
index e712d25405..0b901a8f27 100644
--- a/bootstrap/lib/kernel/ebin/inet_gethost_native.beam
+++ b/bootstrap/lib/kernel/ebin/inet_gethost_native.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_parse.beam b/bootstrap/lib/kernel/ebin/inet_parse.beam
index 926f21e99c..914397158a 100644
--- a/bootstrap/lib/kernel/ebin/inet_parse.beam
+++ b/bootstrap/lib/kernel/ebin/inet_parse.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_res.beam b/bootstrap/lib/kernel/ebin/inet_res.beam
index 3b6f72aaa0..0167a10b36 100644
--- a/bootstrap/lib/kernel/ebin/inet_res.beam
+++ b/bootstrap/lib/kernel/ebin/inet_res.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam b/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam
index 07f6ad2521..6c98977be5 100644
--- a/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam
+++ b/bootstrap/lib/kernel/ebin/inet_tcp_dist.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/inet_udp.beam b/bootstrap/lib/kernel/ebin/inet_udp.beam
index 2ac9537087..7bd4848f07 100644
--- a/bootstrap/lib/kernel/ebin/inet_udp.beam
+++ b/bootstrap/lib/kernel/ebin/inet_udp.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/kernel.beam b/bootstrap/lib/kernel/ebin/kernel.beam
index 3eea9dda68..471ab154e8 100644
--- a/bootstrap/lib/kernel/ebin/kernel.beam
+++ b/bootstrap/lib/kernel/ebin/kernel.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/kernel_config.beam b/bootstrap/lib/kernel/ebin/kernel_config.beam
index 73431675bf..da5fa04de5 100644
--- a/bootstrap/lib/kernel/ebin/kernel_config.beam
+++ b/bootstrap/lib/kernel/ebin/kernel_config.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/net_adm.beam b/bootstrap/lib/kernel/ebin/net_adm.beam
index 02b6c8b486..21d54cac85 100644
--- a/bootstrap/lib/kernel/ebin/net_adm.beam
+++ b/bootstrap/lib/kernel/ebin/net_adm.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/net_kernel.beam b/bootstrap/lib/kernel/ebin/net_kernel.beam
index 50b4c7ac4c..562ee24678 100644
--- a/bootstrap/lib/kernel/ebin/net_kernel.beam
+++ b/bootstrap/lib/kernel/ebin/net_kernel.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/os.beam b/bootstrap/lib/kernel/ebin/os.beam
index 4a4051d0c1..4b3bcf80dd 100644
--- a/bootstrap/lib/kernel/ebin/os.beam
+++ b/bootstrap/lib/kernel/ebin/os.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/packages.beam b/bootstrap/lib/kernel/ebin/packages.beam
index 710fc55908..cbe6bc6590 100644
--- a/bootstrap/lib/kernel/ebin/packages.beam
+++ b/bootstrap/lib/kernel/ebin/packages.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/pg2.beam b/bootstrap/lib/kernel/ebin/pg2.beam
index 51912f2263..b14425b01c 100644
--- a/bootstrap/lib/kernel/ebin/pg2.beam
+++ b/bootstrap/lib/kernel/ebin/pg2.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/ram_file.beam b/bootstrap/lib/kernel/ebin/ram_file.beam
index f9488df846..402c7ea2d3 100644
--- a/bootstrap/lib/kernel/ebin/ram_file.beam
+++ b/bootstrap/lib/kernel/ebin/ram_file.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/rpc.beam b/bootstrap/lib/kernel/ebin/rpc.beam
index 1763808337..5fe7a7fffe 100644
--- a/bootstrap/lib/kernel/ebin/rpc.beam
+++ b/bootstrap/lib/kernel/ebin/rpc.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/standard_error.beam b/bootstrap/lib/kernel/ebin/standard_error.beam
index 95edb1860a..62ab951bff 100644
--- a/bootstrap/lib/kernel/ebin/standard_error.beam
+++ b/bootstrap/lib/kernel/ebin/standard_error.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/user.beam b/bootstrap/lib/kernel/ebin/user.beam
index 0f2fe211ab..76e9973a93 100644
--- a/bootstrap/lib/kernel/ebin/user.beam
+++ b/bootstrap/lib/kernel/ebin/user.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/user_drv.beam b/bootstrap/lib/kernel/ebin/user_drv.beam
index 3feffb9332..ddb0442f28 100644
--- a/bootstrap/lib/kernel/ebin/user_drv.beam
+++ b/bootstrap/lib/kernel/ebin/user_drv.beam
Binary files differ
diff --git a/bootstrap/lib/kernel/ebin/wrap_log_reader.beam b/bootstrap/lib/kernel/ebin/wrap_log_reader.beam
index cdb87c3fd5..9f648c9a42 100644
--- a/bootstrap/lib/kernel/ebin/wrap_log_reader.beam
+++ b/bootstrap/lib/kernel/ebin/wrap_log_reader.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/array.beam b/bootstrap/lib/stdlib/ebin/array.beam
index a3049ae953..1c26f19403 100644
--- a/bootstrap/lib/stdlib/ebin/array.beam
+++ b/bootstrap/lib/stdlib/ebin/array.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/base64.beam b/bootstrap/lib/stdlib/ebin/base64.beam
index 101ffc3904..d48d8d6f58 100644
--- a/bootstrap/lib/stdlib/ebin/base64.beam
+++ b/bootstrap/lib/stdlib/ebin/base64.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/beam_lib.beam b/bootstrap/lib/stdlib/ebin/beam_lib.beam
index 58123d66be..e7ba44d542 100644
--- a/bootstrap/lib/stdlib/ebin/beam_lib.beam
+++ b/bootstrap/lib/stdlib/ebin/beam_lib.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/binary.beam b/bootstrap/lib/stdlib/ebin/binary.beam
new file mode 100644
index 0000000000..5180c122d2
--- /dev/null
+++ b/bootstrap/lib/stdlib/ebin/binary.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/c.beam b/bootstrap/lib/stdlib/ebin/c.beam
index ea36930179..099bb5ad90 100644
--- a/bootstrap/lib/stdlib/ebin/c.beam
+++ b/bootstrap/lib/stdlib/ebin/c.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/dets.beam b/bootstrap/lib/stdlib/ebin/dets.beam
index 8b637ab064..ccd277b7ad 100644
--- a/bootstrap/lib/stdlib/ebin/dets.beam
+++ b/bootstrap/lib/stdlib/ebin/dets.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/dets_utils.beam b/bootstrap/lib/stdlib/ebin/dets_utils.beam
index 36d38c4e9a..b0c3e351d2 100644
--- a/bootstrap/lib/stdlib/ebin/dets_utils.beam
+++ b/bootstrap/lib/stdlib/ebin/dets_utils.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/dets_v8.beam b/bootstrap/lib/stdlib/ebin/dets_v8.beam
index 6537f0e44d..f48768ca53 100644
--- a/bootstrap/lib/stdlib/ebin/dets_v8.beam
+++ b/bootstrap/lib/stdlib/ebin/dets_v8.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/dets_v9.beam b/bootstrap/lib/stdlib/ebin/dets_v9.beam
index 2a247effc1..0694437929 100644
--- a/bootstrap/lib/stdlib/ebin/dets_v9.beam
+++ b/bootstrap/lib/stdlib/ebin/dets_v9.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/dict.beam b/bootstrap/lib/stdlib/ebin/dict.beam
index 3d0b4194b6..ebf01cb9b5 100644
--- a/bootstrap/lib/stdlib/ebin/dict.beam
+++ b/bootstrap/lib/stdlib/ebin/dict.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/digraph.beam b/bootstrap/lib/stdlib/ebin/digraph.beam
index 41043bf729..38195e8957 100644
--- a/bootstrap/lib/stdlib/ebin/digraph.beam
+++ b/bootstrap/lib/stdlib/ebin/digraph.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/digraph_utils.beam b/bootstrap/lib/stdlib/ebin/digraph_utils.beam
index e0c15a218a..ce329ab2ab 100644
--- a/bootstrap/lib/stdlib/ebin/digraph_utils.beam
+++ b/bootstrap/lib/stdlib/ebin/digraph_utils.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/edlin.beam b/bootstrap/lib/stdlib/ebin/edlin.beam
index fe51f7f417..9fc93d042c 100644
--- a/bootstrap/lib/stdlib/ebin/edlin.beam
+++ b/bootstrap/lib/stdlib/ebin/edlin.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/epp.beam b/bootstrap/lib/stdlib/ebin/epp.beam
index 71e0d21db1..8059231d6e 100644
--- a/bootstrap/lib/stdlib/ebin/epp.beam
+++ b/bootstrap/lib/stdlib/ebin/epp.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_bits.beam b/bootstrap/lib/stdlib/ebin/erl_bits.beam
index 7b1f8bb764..d338fe3778 100644
--- a/bootstrap/lib/stdlib/ebin/erl_bits.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_bits.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_compile.beam b/bootstrap/lib/stdlib/ebin/erl_compile.beam
index cc4ef260d0..3f0cb585e8 100644
--- a/bootstrap/lib/stdlib/ebin/erl_compile.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_compile.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_eval.beam b/bootstrap/lib/stdlib/ebin/erl_eval.beam
index dfd10fb4bf..cac3a46319 100644
--- a/bootstrap/lib/stdlib/ebin/erl_eval.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_eval.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_expand_records.beam b/bootstrap/lib/stdlib/ebin/erl_expand_records.beam
index 2a2ec9b4e1..983fe23879 100644
--- a/bootstrap/lib/stdlib/ebin/erl_expand_records.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_expand_records.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_internal.beam b/bootstrap/lib/stdlib/ebin/erl_internal.beam
index 1609ae4997..bb2cbef866 100644
--- a/bootstrap/lib/stdlib/ebin/erl_internal.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_internal.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_lint.beam b/bootstrap/lib/stdlib/ebin/erl_lint.beam
index 21ec2e638f..f2b85fadb7 100644
--- a/bootstrap/lib/stdlib/ebin/erl_lint.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_lint.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_parse.beam b/bootstrap/lib/stdlib/ebin/erl_parse.beam
index 1a61eb31ac..0d7c12e53f 100644
--- a/bootstrap/lib/stdlib/ebin/erl_parse.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_parse.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_pp.beam b/bootstrap/lib/stdlib/ebin/erl_pp.beam
index 161db6cef0..eb7462cb0e 100644
--- a/bootstrap/lib/stdlib/ebin/erl_pp.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_pp.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_scan.beam b/bootstrap/lib/stdlib/ebin/erl_scan.beam
index 0b04a411b5..cffdda03ae 100644
--- a/bootstrap/lib/stdlib/ebin/erl_scan.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_scan.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/erl_tar.beam b/bootstrap/lib/stdlib/ebin/erl_tar.beam
index 40d41d0202..369e5a8c6d 100644
--- a/bootstrap/lib/stdlib/ebin/erl_tar.beam
+++ b/bootstrap/lib/stdlib/ebin/erl_tar.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam b/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam
index ae5a7020ea..13a91def18 100644
--- a/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam
+++ b/bootstrap/lib/stdlib/ebin/error_logger_file_h.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam b/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam
index 6065cfa8f1..50dd448b1b 100644
--- a/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam
+++ b/bootstrap/lib/stdlib/ebin/error_logger_tty_h.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/escript.beam b/bootstrap/lib/stdlib/ebin/escript.beam
index 3c4b3f4eb6..15f1cb8354 100644
--- a/bootstrap/lib/stdlib/ebin/escript.beam
+++ b/bootstrap/lib/stdlib/ebin/escript.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/ets.beam b/bootstrap/lib/stdlib/ebin/ets.beam
index 70916dd1ae..bcb1b9684c 100644
--- a/bootstrap/lib/stdlib/ebin/ets.beam
+++ b/bootstrap/lib/stdlib/ebin/ets.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/eval_bits.beam b/bootstrap/lib/stdlib/ebin/eval_bits.beam
index de2d528f2e..1db24ccfc9 100644
--- a/bootstrap/lib/stdlib/ebin/eval_bits.beam
+++ b/bootstrap/lib/stdlib/ebin/eval_bits.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/file_sorter.beam b/bootstrap/lib/stdlib/ebin/file_sorter.beam
index f03cd21072..1a6e54f2ab 100644
--- a/bootstrap/lib/stdlib/ebin/file_sorter.beam
+++ b/bootstrap/lib/stdlib/ebin/file_sorter.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/filelib.beam b/bootstrap/lib/stdlib/ebin/filelib.beam
index e03b753c09..8a59a62379 100644
--- a/bootstrap/lib/stdlib/ebin/filelib.beam
+++ b/bootstrap/lib/stdlib/ebin/filelib.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/filename.beam b/bootstrap/lib/stdlib/ebin/filename.beam
index f419480f6e..4cdb6064d2 100644
--- a/bootstrap/lib/stdlib/ebin/filename.beam
+++ b/bootstrap/lib/stdlib/ebin/filename.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/gb_sets.beam b/bootstrap/lib/stdlib/ebin/gb_sets.beam
index 1ce3e0bd83..1928430e56 100644
--- a/bootstrap/lib/stdlib/ebin/gb_sets.beam
+++ b/bootstrap/lib/stdlib/ebin/gb_sets.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/gb_trees.beam b/bootstrap/lib/stdlib/ebin/gb_trees.beam
index c462bee0c1..7bebf1a54e 100644
--- a/bootstrap/lib/stdlib/ebin/gb_trees.beam
+++ b/bootstrap/lib/stdlib/ebin/gb_trees.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/gen.beam b/bootstrap/lib/stdlib/ebin/gen.beam
index 4b047eb838..3ad4d282f0 100644
--- a/bootstrap/lib/stdlib/ebin/gen.beam
+++ b/bootstrap/lib/stdlib/ebin/gen.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/gen_event.beam b/bootstrap/lib/stdlib/ebin/gen_event.beam
index 69a18e0c6e..264071fe5f 100644
--- a/bootstrap/lib/stdlib/ebin/gen_event.beam
+++ b/bootstrap/lib/stdlib/ebin/gen_event.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/gen_fsm.beam b/bootstrap/lib/stdlib/ebin/gen_fsm.beam
index 4d7528be15..73df87a7ef 100644
--- a/bootstrap/lib/stdlib/ebin/gen_fsm.beam
+++ b/bootstrap/lib/stdlib/ebin/gen_fsm.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/gen_server.beam b/bootstrap/lib/stdlib/ebin/gen_server.beam
index 8d76d138f1..3b066ada0b 100644
--- a/bootstrap/lib/stdlib/ebin/gen_server.beam
+++ b/bootstrap/lib/stdlib/ebin/gen_server.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/io.beam b/bootstrap/lib/stdlib/ebin/io.beam
index a9f24817b3..36c276166c 100644
--- a/bootstrap/lib/stdlib/ebin/io.beam
+++ b/bootstrap/lib/stdlib/ebin/io.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/io_lib.beam b/bootstrap/lib/stdlib/ebin/io_lib.beam
index af10b8d0e9..c0af612d77 100644
--- a/bootstrap/lib/stdlib/ebin/io_lib.beam
+++ b/bootstrap/lib/stdlib/ebin/io_lib.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/io_lib_format.beam b/bootstrap/lib/stdlib/ebin/io_lib_format.beam
index 16907bb3aa..25f8f7b37a 100644
--- a/bootstrap/lib/stdlib/ebin/io_lib_format.beam
+++ b/bootstrap/lib/stdlib/ebin/io_lib_format.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam b/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
index 6b8b7a3267..9a8b68c6e0 100644
--- a/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
+++ b/bootstrap/lib/stdlib/ebin/io_lib_pretty.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/lib.beam b/bootstrap/lib/stdlib/ebin/lib.beam
index d7e591ed35..fb08310f36 100644
--- a/bootstrap/lib/stdlib/ebin/lib.beam
+++ b/bootstrap/lib/stdlib/ebin/lib.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/ms_transform.beam b/bootstrap/lib/stdlib/ebin/ms_transform.beam
index 0dc991553b..918c2537ea 100644
--- a/bootstrap/lib/stdlib/ebin/ms_transform.beam
+++ b/bootstrap/lib/stdlib/ebin/ms_transform.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/otp_internal.beam b/bootstrap/lib/stdlib/ebin/otp_internal.beam
index e2550578e7..cac4a97ae0 100644
--- a/bootstrap/lib/stdlib/ebin/otp_internal.beam
+++ b/bootstrap/lib/stdlib/ebin/otp_internal.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/pg.beam b/bootstrap/lib/stdlib/ebin/pg.beam
index aadf03ca28..026d102a75 100644
--- a/bootstrap/lib/stdlib/ebin/pg.beam
+++ b/bootstrap/lib/stdlib/ebin/pg.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/pool.beam b/bootstrap/lib/stdlib/ebin/pool.beam
index 35c2da9051..74377d404b 100644
--- a/bootstrap/lib/stdlib/ebin/pool.beam
+++ b/bootstrap/lib/stdlib/ebin/pool.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/proc_lib.beam b/bootstrap/lib/stdlib/ebin/proc_lib.beam
index c366aafadf..f6c7a4f748 100644
--- a/bootstrap/lib/stdlib/ebin/proc_lib.beam
+++ b/bootstrap/lib/stdlib/ebin/proc_lib.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/proplists.beam b/bootstrap/lib/stdlib/ebin/proplists.beam
index 378392c791..bed96c6b1a 100644
--- a/bootstrap/lib/stdlib/ebin/proplists.beam
+++ b/bootstrap/lib/stdlib/ebin/proplists.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/qlc.beam b/bootstrap/lib/stdlib/ebin/qlc.beam
index 27dd5d5be0..2e05a4c546 100644
--- a/bootstrap/lib/stdlib/ebin/qlc.beam
+++ b/bootstrap/lib/stdlib/ebin/qlc.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/qlc_pt.beam b/bootstrap/lib/stdlib/ebin/qlc_pt.beam
index 10349ebd1a..92b1bc8bee 100644
--- a/bootstrap/lib/stdlib/ebin/qlc_pt.beam
+++ b/bootstrap/lib/stdlib/ebin/qlc_pt.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/re.beam b/bootstrap/lib/stdlib/ebin/re.beam
index 06c02fc10c..fb8888ad58 100644
--- a/bootstrap/lib/stdlib/ebin/re.beam
+++ b/bootstrap/lib/stdlib/ebin/re.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/regexp.beam b/bootstrap/lib/stdlib/ebin/regexp.beam
index f45899702c..d021c5779b 100644
--- a/bootstrap/lib/stdlib/ebin/regexp.beam
+++ b/bootstrap/lib/stdlib/ebin/regexp.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/sets.beam b/bootstrap/lib/stdlib/ebin/sets.beam
index b8ce3ebe89..9be4e8ab5b 100644
--- a/bootstrap/lib/stdlib/ebin/sets.beam
+++ b/bootstrap/lib/stdlib/ebin/sets.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/shell.beam b/bootstrap/lib/stdlib/ebin/shell.beam
index a537d0936e..737223aaf8 100644
--- a/bootstrap/lib/stdlib/ebin/shell.beam
+++ b/bootstrap/lib/stdlib/ebin/shell.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/sofs.beam b/bootstrap/lib/stdlib/ebin/sofs.beam
index d8e984f217..51af30d7e8 100644
--- a/bootstrap/lib/stdlib/ebin/sofs.beam
+++ b/bootstrap/lib/stdlib/ebin/sofs.beam
Binary files differ
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
index 0526384a20..9cbf8912fe 100644
--- a/bootstrap/lib/stdlib/ebin/supervisor.beam
+++ b/bootstrap/lib/stdlib/ebin/supervisor.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/sys.beam b/bootstrap/lib/stdlib/ebin/sys.beam
index 5a75152833..e08ec9e70d 100644
--- a/bootstrap/lib/stdlib/ebin/sys.beam
+++ b/bootstrap/lib/stdlib/ebin/sys.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/timer.beam b/bootstrap/lib/stdlib/ebin/timer.beam
index 9d9d42f96d..a20cc97935 100644
--- a/bootstrap/lib/stdlib/ebin/timer.beam
+++ b/bootstrap/lib/stdlib/ebin/timer.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/unicode.beam b/bootstrap/lib/stdlib/ebin/unicode.beam
index 66d6991283..4ca769b9a2 100644
--- a/bootstrap/lib/stdlib/ebin/unicode.beam
+++ b/bootstrap/lib/stdlib/ebin/unicode.beam
Binary files differ
diff --git a/bootstrap/lib/stdlib/ebin/zip.beam b/bootstrap/lib/stdlib/ebin/zip.beam
index f0df604d79..6c5b31cd1f 100644
--- a/bootstrap/lib/stdlib/ebin/zip.beam
+++ b/bootstrap/lib/stdlib/ebin/zip.beam
Binary files differ
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 ::= '$&lt;number&gt;'
+ </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]),