]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.2.0894: filetype: ed script files not recognised v9.2.0894
authorDoug Kearns <dougkearns@gmail.com>
Sat, 1 Aug 2026 13:57:32 +0000 (13:57 +0000)
committerChristian Brabandt <cb@256bit.org>
Sat, 1 Aug 2026 13:57:32 +0000 (13:57 +0000)
Problem:  filetype: ed script files not recognised.
Solution: Add filetype detection for *.ed files and shebang lines,
          include syntax script and syntax tests.

Features of the ed syntax file:
- BSD and GNU extensions are supported
- Andrew L. Moore's ed extensions are not supported
- Rebuild synmenu.vim

closes: #19602

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
72 files changed:
.github/MAINTAINERS
runtime/autoload/dist/ft.vim
runtime/autoload/dist/script.vim
runtime/makemenu.vim
runtime/synmenu.vim
runtime/syntax/ed.vim [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_00.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_01.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_02.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_03.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_04.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_05.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_06.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_07.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_08.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_09.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_10.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_11.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_12.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_13.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_14.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_addresses_15.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_00.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_01.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_02.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_03.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_04.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_05.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_06.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_07.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_08.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_09.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_10.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_11.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_12.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_13.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_14.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_15.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_16.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_17.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_18.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_19.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_20.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_21.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_22.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_23.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_24.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_25.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_26.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_27.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_28.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_29.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_30.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_31.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_32.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_33.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_34.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_35.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_36.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_37.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_38.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_39.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_40.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_41.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_42.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_43.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_44.dump [new file with mode: 0644]
runtime/syntax/testdir/dumps/ed_commands_45.dump [new file with mode: 0644]
runtime/syntax/testdir/input/ed_addresses.ed [new file with mode: 0644]
runtime/syntax/testdir/input/ed_commands.ed [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index 44ccadf6b46df25793ecd19933b5b026557af97f..9b221eb7a2482ed64895ea2a618749b1f40de888 100644 (file)
@@ -544,6 +544,7 @@ runtime/syntax/dot.vim                                      @mmottl
 runtime/syntax/doxygen.vim                             @frogonwheels
 runtime/syntax/dtd.vim                                 @chrisbra
 runtime/syntax/dts.vim                                 @zonque
+runtime/syntax/ed.vim                                  @dkearns
 runtime/syntax/editorconfig.vim                                @gpanders
 runtime/syntax/eiffel.vim                              @jocelyn
 runtime/syntax/erlang.vim                              @hcs42
index 0d1e7119ce3029b3208714637bfb000cb3349dd6..398e2ae26b89f5adf85af1ade1c77940a3978d31 100644 (file)
@@ -3,7 +3,7 @@ vim9script
 # Vim functions for file type detection
 #
 # Maintainer:          The Vim Project <https://github.com/vim/vim>
-# Last Change:         2026 Jul 28
+# Last Change:         2026 Jul 30
 # Former Maintainer:   Bram Moolenaar <Bram@vim.org>
 
 # These functions are moved here from runtime/filetype.vim to make startup
@@ -2053,6 +2053,8 @@ const ft_from_ext = {
   "overlay": "dts",
   # Embedix Component Description
   "ecd": "ecd",
+  # ed(1)
+  "ed": "ed",
   # ERicsson LANGuage; Yaws is erlang too
   "erl": "erlang",
   "hrl": "erlang",
index 3f9a5acfd0638a180cb147e233ca27a98ce85f35..61e6cec592a5f87e6b4460d39e2be536a18115dc 100644 (file)
@@ -243,6 +243,10 @@ export def Exe2filetype(name: string, line1: string): string
   elseif name =~ '^vim\>'
     return 'vim'
 
+    # ed(1)
+  elseif name =~ '^ed\>'
+    return 'ed'
+
   endif
 
   return ''
index 6611f737cdc8fbcb20d54d3b19633396952838dc..79d188a92e01945d5663ba0972f6c74d125a23a0 100644 (file)
@@ -1,8 +1,8 @@
 vim9script
 
 # Script to define the syntax menu in synmenu.vim
-# Maintainer:  The Vim Project <https://github.com/vim/vim>
-# Last Change: 2025 Mar 09
+# Maintainer:          The Vim Project <https://github.com/vim/vim>
+# Last Change:         2026 Jul 30
 # Former Maintainer:   Bram Moolenaar <Bram@vim.org>
 
 # This is used by "make menu" in the src directory.
@@ -205,6 +205,7 @@ SynMenu DE.Dylan.Dylan\ interface:dylanintr
 SynMenu DE.Dylan.Dylan\ lid:dylanlid
 
 SynMenu DE.EDIF:edif
+SynMenu DE.Ed:ed
 SynMenu DE.Eiffel:eiffel
 SynMenu DE.Eight:8th
 SynMenu DE.Elinks\ config:elinks
index c26c128b3c237e78df78f50421d07d645807b95d..17241ff281ba32af72876e9d73facb68339b8783 100644 (file)
@@ -110,46 +110,46 @@ an 50.20.110 &Syntax.C.C++ :cal SetSyn("cpp")<CR>
 an 50.20.120 &Syntax.C.C# :cal SetSyn("cs")<CR>
 an 50.20.130 &Syntax.C.Cabal\ Haskell\ build\ file :cal SetSyn("cabal")<CR>
 an 50.20.140 &Syntax.C.Calendar :cal SetSyn("calendar")<CR>
-an 50.20.140 &Syntax.C.Cangjie :cal SetSyn("cangjie")<CR>
-an 50.20.150 &Syntax.C.Cascading\ Style\ Sheets :cal SetSyn("css")<CR>
-an 50.20.160 &Syntax.C.CDL :cal SetSyn("cdl")<CR>
-an 50.20.170 &Syntax.C.Cdrdao\ TOC :cal SetSyn("cdrtoc")<CR>
-an 50.20.180 &Syntax.C.Cdrdao\ config :cal SetSyn("cdrdaoconf")<CR>
-an 50.20.190 &Syntax.C.Century\ Term :cal SetSyn("cterm")<CR>
-an 50.20.200 &Syntax.C.CH\ script :cal SetSyn("ch")<CR>
-an 50.20.210 &Syntax.C.ChaiScript :cal SetSyn("chaiscript")<CR>
-an 50.20.220 &Syntax.C.ChangeLog :cal SetSyn("changelog")<CR>
-an 50.20.230 &Syntax.C.CHILL :cal SetSyn("chill")<CR>
-an 50.20.240 &Syntax.C.Cheetah\ template :cal SetSyn("cheetah")<CR>
-an 50.20.250 &Syntax.C.Chicken :cal SetSyn("chicken")<CR>
-an 50.20.260 &Syntax.C.ChordPro :cal SetSyn("chordpro")<CR>
-an 50.20.270 &Syntax.C.Clean :cal SetSyn("clean")<CR>
-an 50.20.280 &Syntax.C.Clever :cal SetSyn("cl")<CR>
-an 50.20.290 &Syntax.C.Clipper :cal SetSyn("clipper")<CR>
-an 50.20.300 &Syntax.C.Clojure :cal SetSyn("clojure")<CR>
-an 50.20.310 &Syntax.C.Cmake :cal SetSyn("cmake")<CR>
-an 50.20.320 &Syntax.C.Cmod :cal SetSyn("cmod")<CR>
-an 50.20.330 &Syntax.C.Cmusrc :cal SetSyn("cmusrc")<CR>
-an 50.20.340 &Syntax.C.Cobol :cal SetSyn("cobol")<CR>
-an 50.20.350 &Syntax.C.Coco/R :cal SetSyn("coco")<CR>
-an 50.20.360 &Syntax.C.Cold\ Fusion :cal SetSyn("cf")<CR>
-an 50.20.370 &Syntax.C.Conary\ Recipe :cal SetSyn("conaryrecipe")<CR>
-an 50.20.380 &Syntax.C.Config.Cfg\ Config\ file :cal SetSyn("cfg")<CR>
-an 50.20.390 &Syntax.C.Config.Configure\.in :cal SetSyn("config")<CR>
-an 50.20.400 &Syntax.C.Config.Generic\ Config\ file :cal SetSyn("conf")<CR>
-an 50.20.410 &Syntax.C.CRM114 :cal SetSyn("crm")<CR>
-an 50.20.420 &Syntax.C.Crontab :cal SetSyn("crontab")<CR>
-an 50.20.430 &Syntax.C.CSDL :cal SetSyn("csdl")<CR>
-an 50.20.440 &Syntax.C.CSP :cal SetSyn("csp")<CR>
-an 50.20.450 &Syntax.C.Ctrl-H :cal SetSyn("ctrlh")<CR>
-an 50.20.460 &Syntax.C.Cucumber :cal SetSyn("cucumber")<CR>
-an 50.20.470 &Syntax.C.CUDA :cal SetSyn("cuda")<CR>
-an 50.20.480 &Syntax.C.CUPL.CUPL :cal SetSyn("cupl")<CR>
-an 50.20.490 &Syntax.C.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
-an 50.20.500 &Syntax.C.CVS.commit\ file :cal SetSyn("cvs")<CR>
-an 50.20.510 &Syntax.C.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
-an 50.20.520 &Syntax.C.Cyn++ :cal SetSyn("cynpp")<CR>
-an 50.20.530 &Syntax.C.Cynlib :cal SetSyn("cynlib")<CR>
+an 50.20.150 &Syntax.C.Cangjie :cal SetSyn("cangjie")<CR>
+an 50.20.160 &Syntax.C.Cascading\ Style\ Sheets :cal SetSyn("css")<CR>
+an 50.20.170 &Syntax.C.CDL :cal SetSyn("cdl")<CR>
+an 50.20.180 &Syntax.C.Cdrdao\ TOC :cal SetSyn("cdrtoc")<CR>
+an 50.20.190 &Syntax.C.Cdrdao\ config :cal SetSyn("cdrdaoconf")<CR>
+an 50.20.200 &Syntax.C.Century\ Term :cal SetSyn("cterm")<CR>
+an 50.20.210 &Syntax.C.CH\ script :cal SetSyn("ch")<CR>
+an 50.20.220 &Syntax.C.ChaiScript :cal SetSyn("chaiscript")<CR>
+an 50.20.230 &Syntax.C.ChangeLog :cal SetSyn("changelog")<CR>
+an 50.20.240 &Syntax.C.CHILL :cal SetSyn("chill")<CR>
+an 50.20.250 &Syntax.C.Cheetah\ template :cal SetSyn("cheetah")<CR>
+an 50.20.260 &Syntax.C.Chicken :cal SetSyn("chicken")<CR>
+an 50.20.270 &Syntax.C.ChordPro :cal SetSyn("chordpro")<CR>
+an 50.20.280 &Syntax.C.Clean :cal SetSyn("clean")<CR>
+an 50.20.290 &Syntax.C.Clever :cal SetSyn("cl")<CR>
+an 50.20.300 &Syntax.C.Clipper :cal SetSyn("clipper")<CR>
+an 50.20.310 &Syntax.C.Clojure :cal SetSyn("clojure")<CR>
+an 50.20.320 &Syntax.C.Cmake :cal SetSyn("cmake")<CR>
+an 50.20.330 &Syntax.C.Cmod :cal SetSyn("cmod")<CR>
+an 50.20.340 &Syntax.C.Cmusrc :cal SetSyn("cmusrc")<CR>
+an 50.20.350 &Syntax.C.Cobol :cal SetSyn("cobol")<CR>
+an 50.20.360 &Syntax.C.Coco/R :cal SetSyn("coco")<CR>
+an 50.20.370 &Syntax.C.Cold\ Fusion :cal SetSyn("cf")<CR>
+an 50.20.380 &Syntax.C.Conary\ Recipe :cal SetSyn("conaryrecipe")<CR>
+an 50.20.390 &Syntax.C.Config.Cfg\ Config\ file :cal SetSyn("cfg")<CR>
+an 50.20.400 &Syntax.C.Config.Configure\.in :cal SetSyn("config")<CR>
+an 50.20.410 &Syntax.C.Config.Generic\ Config\ file :cal SetSyn("conf")<CR>
+an 50.20.420 &Syntax.C.CRM114 :cal SetSyn("crm")<CR>
+an 50.20.430 &Syntax.C.Crontab :cal SetSyn("crontab")<CR>
+an 50.20.440 &Syntax.C.CSDL :cal SetSyn("csdl")<CR>
+an 50.20.450 &Syntax.C.CSP :cal SetSyn("csp")<CR>
+an 50.20.460 &Syntax.C.Ctrl-H :cal SetSyn("ctrlh")<CR>
+an 50.20.470 &Syntax.C.Cucumber :cal SetSyn("cucumber")<CR>
+an 50.20.480 &Syntax.C.CUDA :cal SetSyn("cuda")<CR>
+an 50.20.490 &Syntax.C.CUPL.CUPL :cal SetSyn("cupl")<CR>
+an 50.20.500 &Syntax.C.CUPL.Simulation :cal SetSyn("cuplsim")<CR>
+an 50.20.510 &Syntax.C.CVS.commit\ file :cal SetSyn("cvs")<CR>
+an 50.20.520 &Syntax.C.CVS.cvsrc :cal SetSyn("cvsrc")<CR>
+an 50.20.530 &Syntax.C.Cyn++ :cal SetSyn("cynpp")<CR>
+an 50.20.540 &Syntax.C.Cynlib :cal SetSyn("cynlib")<CR>
 an 50.30.100 &Syntax.DE.D :cal SetSyn("d")<CR>
 an 50.30.110 &Syntax.DE.Dart :cal SetSyn("dart")<CR>
 an 50.30.120 &Syntax.DE.Datascript :cal SetSyn("datascript")<CR>
@@ -189,23 +189,24 @@ an 50.30.450 &Syntax.DE.Dylan.Dylan :cal SetSyn("dylan")<CR>
 an 50.30.460 &Syntax.DE.Dylan.Dylan\ interface :cal SetSyn("dylanintr")<CR>
 an 50.30.470 &Syntax.DE.Dylan.Dylan\ lid :cal SetSyn("dylanlid")<CR>
 an 50.30.490 &Syntax.DE.EDIF :cal SetSyn("edif")<CR>
-an 50.30.500 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
-an 50.30.510 &Syntax.DE.Eight :cal SetSyn("8th")<CR>
-an 50.30.520 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
-an 50.30.530 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
-an 50.30.540 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
-an 50.30.550 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
-an 50.30.560 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
-an 50.30.570 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
-an 50.30.580 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
-an 50.30.590 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
-an 50.30.600 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
-an 50.30.610 &Syntax.DE.Euphoria\ 3 :cal SetSyn("euphoria3")<CR>
-an 50.30.620 &Syntax.DE.Euphoria\ 4 :cal SetSyn("euphoria4")<CR>
-an 50.30.630 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
-an 50.30.640 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
-an 50.30.650 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
-an 50.30.660 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
+an 50.30.500 &Syntax.DE.Ed :cal SetSyn("ed")<CR>
+an 50.30.510 &Syntax.DE.Eiffel :cal SetSyn("eiffel")<CR>
+an 50.30.520 &Syntax.DE.Eight :cal SetSyn("8th")<CR>
+an 50.30.530 &Syntax.DE.Elinks\ config :cal SetSyn("elinks")<CR>
+an 50.30.540 &Syntax.DE.Elm\ filter\ rules :cal SetSyn("elmfilt")<CR>
+an 50.30.550 &Syntax.DE.Embedix\ Component\ Description :cal SetSyn("ecd")<CR>
+an 50.30.560 &Syntax.DE.ERicsson\ LANGuage :cal SetSyn("erlang")<CR>
+an 50.30.570 &Syntax.DE.ESMTP\ rc :cal SetSyn("esmtprc")<CR>
+an 50.30.580 &Syntax.DE.ESQL-C :cal SetSyn("esqlc")<CR>
+an 50.30.590 &Syntax.DE.Essbase\ script :cal SetSyn("csc")<CR>
+an 50.30.600 &Syntax.DE.Esterel :cal SetSyn("esterel")<CR>
+an 50.30.610 &Syntax.DE.Eterm\ config :cal SetSyn("eterm")<CR>
+an 50.30.620 &Syntax.DE.Euphoria\ 3 :cal SetSyn("euphoria3")<CR>
+an 50.30.630 &Syntax.DE.Euphoria\ 4 :cal SetSyn("euphoria4")<CR>
+an 50.30.640 &Syntax.DE.Eviews :cal SetSyn("eviews")<CR>
+an 50.30.650 &Syntax.DE.Exim\ conf :cal SetSyn("exim")<CR>
+an 50.30.660 &Syntax.DE.Expect :cal SetSyn("expect")<CR>
+an 50.30.670 &Syntax.DE.Exports :cal SetSyn("exports")<CR>
 an 50.40.100 &Syntax.FG.Falcon :cal SetSyn("falcon")<CR>
 an 50.40.110 &Syntax.FG.Fantom :cal SetSyn("fan")<CR>
 an 50.40.120 &Syntax.FG.Fetchmail :cal SetSyn("fetchmail")<CR>
@@ -257,57 +258,57 @@ an 50.50.170 &Syntax.HIJK.Hercules :cal SetSyn("hercules")<CR>
 an 50.50.180 &Syntax.HIJK.Hex\ dump.XXD :cal SetSyn("xxd")<CR>
 an 50.50.190 &Syntax.HIJK.Hex\ dump.Intel\ MCS51 :cal SetSyn("hex")<CR>
 an 50.50.200 &Syntax.HIJK.Hg\ commit :cal SetSyn("hgcommit")<CR>
-an 50.50.205 &Syntax.HIJK.HIP :cal SetSyn("hip")<CR>
-an 50.50.210 &Syntax.HIJK.Hollywood :cal SetSyn("hollywood")<CR>
-an 50.50.220 &Syntax.HIJK.HTML.HTML :cal SetSyn("html")<CR>
-an 50.50.230 &Syntax.HIJK.HTML.HTML\ with\ M4 :cal SetSyn("htmlm4")<CR>
-an 50.50.240 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR>
-an 50.50.250 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR>
-an 50.50.260 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR>
-an 50.50.270 &Syntax.HIJK.HTML.Vue.js\ HTML\ template :cal SetSyn("vuejs")<CR>
-an 50.50.280 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
-an 50.50.290 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
-an 50.50.300 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
-an 50.50.310 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
-an 50.50.320 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
-an 50.50.340 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
-an 50.50.350 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
-an 50.50.360 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
-an 50.50.370 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
-an 50.50.380 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
-an 50.50.390 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
-an 50.50.400 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
-an 50.50.410 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
-an 50.50.420 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
-an 50.50.430 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
-an 50.50.440 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
-an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
-an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ rpt :cal SetSyn("upstreamrpt")<CR>
-an 50.50.470 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
-an 50.50.480 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
-an 50.50.490 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
-an 50.50.500 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
-an 50.50.510 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
-an 50.50.520 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
-an 50.50.540 &Syntax.HIJK.J :cal SetSyn("j")<CR>
-an 50.50.550 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
-an 50.50.560 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
-an 50.50.570 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
-an 50.50.580 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
-an 50.50.590 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
-an 50.50.600 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
-an 50.50.610 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
-an 50.50.620 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
-an 50.50.630 &Syntax.HIJK.JavaScriptReact :cal SetSyn("javascriptreact")<CR>
-an 50.50.640 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
-an 50.50.650 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
-an 50.50.660 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
-an 50.50.670 &Syntax.HIJK.JSON :cal SetSyn("json")<CR>
-an 50.50.690 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
-an 50.50.700 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
-an 50.50.710 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
-an 50.50.720 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
-an 50.50.730 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
+an 50.50.210 &Syntax.HIJK.HIP :cal SetSyn("hip")<CR>
+an 50.50.220 &Syntax.HIJK.Hollywood :cal SetSyn("hollywood")<CR>
+an 50.50.230 &Syntax.HIJK.HTML.HTML :cal SetSyn("html")<CR>
+an 50.50.240 &Syntax.HIJK.HTML.HTML\ with\ M4 :cal SetSyn("htmlm4")<CR>
+an 50.50.250 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR>
+an 50.50.260 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR>
+an 50.50.270 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR>
+an 50.50.280 &Syntax.HIJK.HTML.Vue.js\ HTML\ template :cal SetSyn("vuejs")<CR>
+an 50.50.290 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
+an 50.50.300 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
+an 50.50.310 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
+an 50.50.320 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
+an 50.50.330 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
+an 50.50.350 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
+an 50.50.360 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
+an 50.50.370 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
+an 50.50.380 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
+an 50.50.390 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
+an 50.50.400 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
+an 50.50.410 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
+an 50.50.420 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
+an 50.50.430 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
+an 50.50.440 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
+an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
+an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
+an 50.50.470 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ rpt :cal SetSyn("upstreamrpt")<CR>
+an 50.50.480 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
+an 50.50.490 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
+an 50.50.500 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
+an 50.50.510 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
+an 50.50.520 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
+an 50.50.530 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
+an 50.50.550 &Syntax.HIJK.J :cal SetSyn("j")<CR>
+an 50.50.560 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
+an 50.50.570 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
+an 50.50.580 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
+an 50.50.590 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
+an 50.50.600 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
+an 50.50.610 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
+an 50.50.620 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
+an 50.50.630 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
+an 50.50.640 &Syntax.HIJK.JavaScriptReact :cal SetSyn("javascriptreact")<CR>
+an 50.50.650 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
+an 50.50.660 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
+an 50.50.670 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
+an 50.50.680 &Syntax.HIJK.JSON :cal SetSyn("json")<CR>
+an 50.50.700 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
+an 50.50.710 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
+an 50.50.720 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
+an 50.50.730 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
+an 50.50.740 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
 an 50.60.100 &Syntax.L.Lace :cal SetSyn("lace")<CR>
 an 50.60.110 &Syntax.L.LambdaProlog :cal SetSyn("lprolog")<CR>
 an 50.60.120 &Syntax.L.Latte :cal SetSyn("latte")<CR>
diff --git a/runtime/syntax/ed.vim b/runtime/syntax/ed.vim
new file mode 100644 (file)
index 0000000..393e225
--- /dev/null
@@ -0,0 +1,616 @@
+" Vim syntax file
+" Language:    ed(1)
+" Maintainer:  Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2026 Jul 30
+
+if exists("b:current_syntax")
+  finish
+endif
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match  edLineStart
+      \ /^/
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommand
+
+" Addresses {{{1
+
+" TODO: Rename edAddress_Line, edAdress_Mark etc?
+syn match   edAddress  contained
+      \ /[.$]\|\d\+\|'[a-z]/
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,edAddressSeparator,@edCommand
+syn region  edAddress_Pattern  contained
+      \ matchgroup=Delimiter
+      \ start=+/+
+      \ end=+/\|$+
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,
+      \                  edAddressSeparator,
+      \                  @edCommand,
+      \                  edAddress_Pattern_Flag
+      \ contains=edRegex_SlashEscape,
+      \                 edRegex_BackslashEscape,
+      \                 edRegex_BracketExpression
+syn region  edAddress_Pattern  contained
+      \ matchgroup=Delimiter
+      \ start=/?/
+      \ end=/?\|$/
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,
+      \                  edAddressSeparator,
+      \                  @edCommand,
+      \                  edAddress_Pattern_Flag
+      \ contains=edRegex_QuestionMarkEscape,
+      \                 edRegex_BackslashEscape,
+      \                 edRegex_BracketExpression
+
+syn match  edAddress_Pattern_Flag  contained
+      \ +[/?]\@1<=I+
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,edAddressSeparator,@edCommand
+
+syn match   edRegex_BracketExpression  contained
+      \ "\[\^\=\]\=\%(\[:.\{-}:\]\|\[\..\{-}\.\]\|\[=.\{-}=\]\|[^]]\)*\]"
+      \ contains=NONE
+      \ transparent
+syn match   edRegex_SlashEscape        contained
+      \ +\\/+
+      \ contains=NONE
+      \ transparent
+syn match   edRegex_QuestionMarkEscape contained
+      \ /\\?/
+      \ contains=NONE
+      \ transparent
+syn match   edRegex_BackslashEscape    contained
+      \ /\\\\/
+      \ contains=NONE
+      \ transparent
+syn match   edRegex_EscapeSequence     contained
+      \ /\\./
+      \ contains=NONE
+      \ transparent
+
+
+syn cluster edAddress
+      \ contains=edAddress,edAddress_Pattern,edAddressModifier_Offset
+
+syn match   edAddressModifier_Offset  contained
+      \ /[+-]\s*\%(\d\+\)\=/
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,edAddressSeparator,@edCommand
+" BSD extension
+syn match   edAddressModifier_Offset  contained
+      \ /\^\s*\%(\d\+\)\=/
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,edAddressSeparator,@edCommand
+syn match   edAddressModifier_Count  contained
+      \ /\d\+/
+      \ skipwhite
+      \ nextgroup=@edAddressModifier,edAddressSeparator,@edCommand
+syn cluster edAddressModifier
+      \ contains=edAddressModifier_Offset,edAddressModifier_Count
+
+syn match   edAddressSeparator contained
+      \ /[,;]/
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommand
+" BSD/GNU extension
+syn match   edAddressSeparator contained
+      \ /%/
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommand
+
+" Commands {{{1
+
+" Append Command {{{2
+syn match   edCommand_Append  contained
+      \ /a/
+      \ skipnl
+      \ nextgroup=@edCommandPrint_InputMode,
+      \                  edArg_InputMode_Text,
+      \                  edArg_InputMode_EndMarker,
+      \                  edLineContinue_InputMode
+
+syn match  edArg_InputMode_EndMarker  contained
+      \ /^\.\ze\%(\s*\\\)\=$/
+
+syn region  edArg_InputMode_Text  contained
+      \ start=/^\%(\.$\)\@!/
+      "\ end=/^\.$/
+      \ matchgroup=edArg_InputMode_EndMarker
+      "\ TODO: remove \\?
+      \ end=/^\.\ze\%(\s*\\\)\=$/
+      \ fold
+syn region  edArg_InputMode_Text_Global  contained
+      \ start=/^\%(\.$\)\@!/
+      \ end=/\ze\\\@1<!\n/
+      \ matchgroup=edArg_InputMode_EndMarker
+      \ end=/^\.\ze\%(\s*\\\)\=$/
+      \ skipwhite
+      \ nextgroup=edLineContinue
+      \ contains=edLineContinue_InputMode_Text
+      \ fold
+
+" Change Command {{{2
+syn match   edCommand_Change  contained
+      \ /c/
+      \ skipnl
+      \ nextgroup=@edCommandPrint_InputMode,
+      \                  edArg_InputMode_Text,
+      \                  edArg_InputMode_EndMarker,
+      \                  edLineContinue_InputMode
+
+" Delete Command {{{2
+syn match   edCommand_Delete  contained
+      \ /d/
+      \ nextgroup=@edCommandPrint
+
+" TODO: maybe implement as a region so that the command list is contained?
+" Global Command {{{2
+syn match   edCommand_Global  contained
+      \ /g/
+      \ nextgroup=edCommand_Global_Arg_Regexp
+syn region  edCommand_Global_Arg_Regexp  contained
+      \ matchgroup=Delimiter
+      \ start=/\z([^\\ \n]\)/
+      \ end=/\z1\|$/
+      \ skipwhite
+      \ nextgroup=@edAddress,
+      \                  edAddressSeparator,
+      \                  @edCommand,
+      \                  edCommand_Global_Arg_Regexp_Flag
+      \ contains=edRegex_EscapeSequence,edRegex_BracketExpression
+
+" GNU extension
+syn match edCommand_Global_Arg_Regexp_Flag  contained
+      \ /[^\\ \n]\@1<=I/
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommand
+
+syn match   edLineContinue_InputMode  contained
+      \ /\\$/
+      \ skipnl
+      \ nextgroup=edArg_InputMode_Text_Global,edArg_InputMode_EndMarker
+syn match   edLineContinue_InputMode_Text  contained /\\$/
+syn match   edLineContinue  /\\$/ skipnl nextgroup=edLineStart
+
+" Interactive Global Command {{{2
+syn match   edCommand_InteractiveGlobal  contained
+      \ /G/
+      \ nextgroup=edCommand_InteractiveGlobal_Arg_Regexp
+syn region  edCommand_InteractiveGlobal_Arg_Regexp  contained
+      \ matchgroup=Delimiter
+      \ start=/\z([^\\ \n]\)/
+      \ end=/\z1\|$/
+      \ nextgroup=edCommand_InteractiveGlobal_Arg_Regexp_Flag
+      \ contains=edRegex_EscapeSequence,edRegex_BracketExpression
+
+" GNU extension
+syn match edCommand_InteractiveGlobal_Arg_Regexp_Flag  contained
+      \ /[^\\ \n]\@1<=I/
+
+syn match   edCommand_Repeat  contained
+      \ /&/
+
+" Insert Command {{{2
+syn match   edCommand_Insert  contained
+      \ /i/
+      \ skipnl
+      \ nextgroup=@edCommandPrint_InputMode,
+      \                  edArg_InputMode_Text,
+      \                  edArg_InputMode_EndMarker,
+      \                  edLineContinue_InputMode
+
+" Join Command {{{2
+syn match   edCommand_Join  contained
+      \ /j/
+      \ nextgroup=@edCommandPrint
+
+" Mark Command {{{2
+syn match   edCommand_Mark  contained
+      \ /k/
+      \ nextgroup=edCommand_Mark_Arg_Name
+syn match   edCommand_Mark_Arg_Name  contained
+      \ /[a-z]/
+      \ nextgroup=@edCommandPrint
+
+" List Command {{{2
+syn match   edCommand_List  contained
+      \ /l/
+      \ nextgroup=@edCommandPrint
+
+syn match edCommand_List_InputMode contained
+      \ /^\@1<!l/
+      \ skipnl
+      \ nextgroup=@edCommandPrint_InputMode,
+      \                  edArg_InputMode_Text,
+      \                  edArg_InputMode_EndMarker,
+      \                  edLineContinue_InputMode
+
+" Move Command {{{2
+syn match   edCommand_Move  contained
+      \ /m/
+      "\ GNU extension
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommandPrint
+
+" Number Command {{{2
+syn match   edCommand_Number  contained
+      \ /n/
+      \ nextgroup=@edCommandPrint
+
+syn match edCommand_Number_InputMode contained
+      \ /^\@1<!n/
+      \ skipnl
+      \ nextgroup=@edCommandPrint_InputMode,
+      \                  edArg_InputMode_Text,
+      \                  edArg_InputMode_EndMarker,
+      \                  edLineContinue_InputMode
+
+" Print Command {{{2
+syn match   edCommand_Print  contained
+      \ /p/
+      \ nextgroup=@edCommandPrint
+
+syn match edCommand_Print_InputMode contained
+      \ /^\@1<!p/
+      \ skipnl
+      \ nextgroup=@edCommandPrint_InputMode,
+      \                  edArg_InputMode_Text,
+      \                  edArg_InputMode_EndMarker,
+      \                  edLineContinue_InputMode
+
+" Read Command {{{2
+syn match   edCommand_Read  contained
+      \ /r\>/
+      \ skipwhite
+      \ nextgroup=edArg_File,edCommand_ShellEscape
+
+" Substitute Command {{{2
+syn match   edCommand_Substitute  contained
+      \ /s/
+      \ nextgroup=edCommand_Substitute_Arg_Regexp
+syn region  edCommand_Substitute_Arg_Regexp  contained
+      \ matchgroup=Delimiter
+      \ start=/\z([^\\ \n]\)/
+      "\ /$/ so we don't run to EOF when editing
+      \ end=/\ze\z1\|$/
+      \ nextgroup=edCommand_Substitute_Arg_Replacement
+      \ contains=edRegex_EscapeSequence,edRegex_BracketExpression
+syn region  edCommand_Substitute_Arg_Replacement  contained
+      \ matchgroup=Delimiter
+      \ start=/\z(.\)/
+      \ skip=/\\$/
+      \ end=/\z1\|$/
+      \ nextgroup=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+      \ contains=edCommand_Substitute_Arg_Replacement_Escape,
+      \                 edCommand_Substitute_Arg_Replacement_Newline,
+      \                 edCommand_Substitute_Arg_Replacement_Match
+
+syn region  edCommand_Substitute_Arg_Replacement  contained
+      \ matchgroup=Delimiter
+      \ start=/\z(.\)%\@=/
+      \ end=/\%(\z1%\)\@<=\%(\z1\|$\)/
+      \ nextgroup=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+      \ contains=edCommand_Substitute_Arg_Replacement_Repeat
+      \ oneline
+
+syn match   edCommand_Substitute_Arg_Replacement_Escape          contained /\\./
+syn match   edCommand_Substitute_Arg_Replacement_Newline  contained /\\$/
+syn match   edCommand_Substitute_Arg_Replacement_Match   contained /&/
+syn match   edCommand_Substitute_Arg_Replacement_Repeat          contained /%/
+
+syn match   edCommand_Substitute_Arg_Flag  contained
+      \ /g/
+      \ nextgroup=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+" GNU extension
+syn match   edCommand_Substitute_Arg_Flag  contained
+      \ /[iI]/
+      \ nextgroup=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+
+syn match   edCommand_Substitute_Arg_Count  contained
+      \ /\d\+/
+      \ nextgroup=edCommand_Substitute_Arg_Flag
+
+syn match  edCommand_Substitute_Arg_Flag  contained
+      \ /[lnp]/
+      \ skipnl
+      \ nextgroup=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+
+" repeat last s command
+" BSD/GNU extension
+
+syn match   edCommand_Substitute  contained
+      \ /s\%(\%([gpr]\|\d\+\)\{1,4}\&\%(.*\([gpr]\).*\1\)\@!\&\%(.*\d\D\+\d\)\@!.*\)\>/
+      \ contains=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+
+syn match   edCommand_Substitute_Arg_Flag  contained
+      \ /r/
+      \ nextgroup=edCommand_Substitute_Arg_Flag,edCommand_Substitute_Arg_Count
+
+" Copy Command {{{2
+syn match   edCommand_Copy  contained
+      \ /t/
+      "\ GNU extension
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommandPrint
+
+" TODO: maybe implement as a region so that the command list is contained?
+" Global Not-Matched Command {{{2
+syn match   edCommand_GlobalNotMatched contained
+      \ /v/
+      \ nextgroup=edCommand_GlobalNotMatched_Arg_Regexp
+syn region  edCommand_GlobalNotMatched_Arg_Regexp  contained
+      \ matchgroup=Delimiter
+      \ start=/\z([^\\ \n]\)/
+      \ end=/\z1\|$/
+      \ skipwhite
+      \ nextgroup=@edAddress,
+      \                  edAddressSeparator,
+      \                  @edCommand,
+      \                  edCommand_GlobalNotMatched_Arg_Regexp_Flag
+      \ contains=edRegex_EscapeSequence,edRegex_BracketExpression
+
+" GNU extension
+syn match edCommand_GlobalNotMatched_Arg_Regexp_Flag  contained
+      \ /[^\\ \n]\@1<=I/
+      \ skipwhite
+      \ nextgroup=@edAddress,edAddressSeparator,@edCommand
+
+" Interactive Global Not-Matched Command {{{2
+syn match   edCommand_InteractiveGlobalNotMatched  contained
+      \ /V/
+      \ nextgroup=edCommand_InteractiveGlobalNotMatched_Arg_Regexp
+syn region  edCommand_InteractiveGlobalNotMatched_Arg_Regexp  contained
+      \ matchgroup=Delimiter
+      \ start=/\z([^\\ \n]\)/
+      \ end=/\z1\|$/
+      \ nextgroup=edCommand_InteractiveGlobalNotMatched_Arg_Regexp_Flag
+      \ contains=edRegex_EscapeSequence,edRegex_BracketExpression
+
+" GNU extension
+syn match edCommand_InteractiveGlobalNotMatched_Arg_Regexp_Flag  contained
+      \ /[^\\ \n]\@1<=I/
+
+" Write Command {{{2
+syn match   edCommand_Write  contained
+      \ /w\>/
+      \ skipwhite
+      \ nextgroup=edArg_File,edCommand_ShellEscape
+
+" Write Append Command {{{2
+" BSD/GNU extension
+syn match   edCommand_WriteAppend  contained
+      \ /W\>/
+      \ skipwhite
+      \ nextgroup=edArg_File,edCommand_ShellEscape
+
+" Write Quit Command {{{2
+" BSD/GNU extension
+syn match   edCommand_WriteQuit  contained
+      \ /wq\>/
+      \ skipwhite
+      \ nextgroup=edArg_File,edCommand_ShellEscape
+
+" Paste Cut Buffer Command {{{2
+" GNU extension
+syn match   edCommand_Paste  contained
+      \ /x/
+      \ nextgroup=@edCommandPrint
+
+" Yank Cut Buffer Command {{{2
+" GNU extension
+syn match   edCommand_Yank  contained
+      \ /y/
+      \ nextgroup=@edCommandPrint
+
+" Scroll Command {{{2
+" BSD/GNU extension
+syn match   edCommand_Scroll  contained
+      \ /z/
+      \ nextgroup=edCommand_Scroll_Arg_Count,@edCommandPrint
+syn match   edCommand_Scroll_Arg_Count contained
+      \ /\d\+/
+      \ nextgroup=@edCommandPrint
+
+" Line Number Command {{{2
+syn match   edCommand_LineNumber  contained
+      \ /=/
+      \ nextgroup=@edCommandPrint
+" }}}
+
+" no address prefix commands
+
+" Edit Command {{{2
+syn match   edCommand_Edit  contained
+      \ /\<e\>/
+      \ skipwhite
+      \ nextgroup=edArg_File,edCommand_ShellEscape
+
+" Edit Without Checking Command {{{2
+syn match   edCommand_EditWithoutChecking  contained
+      \ /\<E\>/
+      \ skipwhite
+      \ nextgroup=edArg_File,edCommand_ShellEscape
+
+" Filename Command {{{2
+syn match   edCommand_Filename contained
+      \ /\<f\>/
+      \ skipwhite
+      \ nextgroup=edArg_File
+
+" Help Command {{{2
+syn match   edCommand_Help  contained
+      \ /\<h/
+      \ nextgroup=@edCommandPrint
+
+" Help-Mode Command {{{2
+syn match   edCommand_HelpMode contained
+      \ /\<H/
+      \ nextgroup=@edCommandPrint
+
+" Prompt Command {{{2
+syn match   edCommand_Prompt  contained
+      \ /\<P/
+      \ nextgroup=@edCommandPrint
+
+" Quit Command {{{2
+syn match   edCommand_Quit  contained
+      \ /\<q\>/
+
+" Quit Without Checking Command {{{2
+syn match   edCommand_QuitWithoutChecking  contained
+      \ /\<Q\>/
+
+" Undo Command {{{2
+syn match   edCommand_Undo  contained
+      \ /\<u/
+      \ nextgroup=@edCommandPrint
+
+" Shell Escape Command {{{2
+syn match   edCommand_ShellEscape  contained
+      \ /!/
+      \ skipwhite
+      \ nextgroup=edCommand_ShellEscape_Arg_Command,
+      \                  edCommand_ShellEscape_Arg_Previous
+syn match   edCommand_ShellEscape_Arg_Command  contained
+      \ /\S.*$/
+      \ contains=edCommand_ShellEscape_Arg_Command_Filename,
+      \                 edCommand_ShellEscape_Arg_Command_FilenameEscape,
+      \                 edCommand_ShellEscape_Arg_Command_BackslashEscape
+
+syn match edCommand_ShellEscape_Arg_Command_Filename  contained
+      \ /%/
+
+syn match   edCommand_ShellEscape_Arg_Command_FilenameEscape   contained /\\%/
+syn match   edCommand_ShellEscape_Arg_Command_BackslashEscape  contained /\\\\/
+
+syn match   edCommand_ShellEscape_Arg_Previous contained
+      \ /!/
+      \ skipwhite
+      \ nextgroup=edCommand_ShellEscape_Arg_Command
+
+" Comment Command {{{2
+" GNU extension
+syn match   edCommand_Comment  contained
+      \ /#.*/
+" }}}
+
+syn cluster edCommand contains=edCommand_\a\+
+
+" Command Args {{{2
+syn match   edArg_File contained /!\@!\S.*$/
+
+" Command Suffixes {{{1
+syn cluster edCommandPrint
+      \ contains=edCommand_List,edCommand_Number,edCommand_Print
+syn cluster edCommandPrint_InputMode
+      \ contains=edCommand_List_InputMode,
+      \                 edCommand_Number_InputMode,
+      \                 edCommand_Print_InputMode
+
+" Syncing {{{1
+
+syn sync fromstart
+
+" Default Highlighting {{{1
+
+" addresses
+
+hi def link edAddress                            Constant
+hi def link edAddressModifier_Offset             Special
+hi def link edAddressModifier_Count              Special
+hi def link edAddress_Pattern_Flag               Special
+
+" commands (addresses)
+
+hi def link edCommand                            Statement
+
+hi def link edCommand_Append                     Statement
+hi def link edCommand_Change                     Statement
+hi def link edCommand_Copy                       Statement
+hi def link edCommand_Delete                     Statement
+hi def link edCommand_GlobalNotMatched           Statement
+hi def link edCommand_Global                     Statement
+hi def link edCommand_Insert                     Statement
+hi def link edCommand_InteractiveGlobalNotMatched Statement
+hi def link edCommand_InteractiveGlobal                  Statement
+hi def link edCommand_Join                       Statement
+hi def link edCommand_LineNumber                 Statement
+hi def link edCommand_List                       Statement
+hi def link edCommand_List_InputMode             edCommand_List
+hi def link edCommand_Mark                       Statement
+hi def link edCommand_Move                       Statement
+hi def link edCommand_Number                     Statement
+hi def link edCommand_Number_InputMode           edCommand_Number
+hi def link edCommand_Paste                      Statement
+hi def link edCommand_Print                      Statement
+hi def link edCommand_Print_InputMode            edCommand_Print
+hi def link edCommand_Read                       Statement
+hi def link edCommand_Repeat                     Statement
+hi def link edCommand_Scroll                     Statement
+hi def link edCommand_Substitute                 Statement
+hi def link edCommand_WriteAppend                Statement
+hi def link edCommand_WriteQuit                          Statement
+hi def link edCommand_Write                      Statement
+hi def link edCommand_Yank                       Statement
+
+" commands (no addresses)
+
+hi def link edCommand_Edit                       Statement
+hi def link edCommand_EditWithoutChecking        Statement
+hi def link edCommand_Filename                   Statement
+hi def link edCommand_HelpMode                   Statement
+hi def link edCommand_Help                       Statement
+hi def link edCommand_Prompt                     Statement
+hi def link edCommand_Quit                       Statement
+hi def link edCommand_QuitWithoutChecking        Statement
+hi def link edCommand_ShellEscape                Statement
+hi def link edCommand_Undo                       Statement
+
+hi def link edCommand_Comment                    Comment
+
+" command args
+
+hi def link edArg_InputMode_Text                 Normal
+hi def link edArg_InputMode_Text_Global                  edArg_InputMode_Text
+hi def link edArg_InputMode_EndMarker            edCommand
+
+hi def link edCommand_Mark_Arg_Name              Constant
+
+hi def link edCommand_Scroll_Arg_Count           Number
+
+hi def link edCommand_ShellEscape_Arg_Command_Filename           Special
+hi def link edCommand_ShellEscape_Arg_Command_FilenameEscape     Special
+hi def link edCommand_ShellEscape_Arg_Command_BackslashEscape    Special
+hi def link edCommand_ShellEscape_Arg_Previous                   Constant
+
+hi def link edCommand_Substitute_Arg_Replacement_Escape                  Special
+hi def link edCommand_Substitute_Arg_Replacement_Newline         Special
+hi def link edCommand_Substitute_Arg_Replacement_Match           Special
+hi def link edCommand_Substitute_Arg_Replacement_Repeat                  Special
+hi def link edCommand_Substitute_Arg_Flag                        Special
+hi def link edCommand_Substitute_Arg_Count                       Special
+
+hi def link edCommand_Global_Arg_Regexp_Flag                     Special
+hi def link edCommand_InteractiveGlobal_Arg_Regexp_Flag                  Special
+hi def link edCommand_GlobalNotMatched_Arg_Regexp_Flag           Special
+hi def link edCommand_InteractiveGlobalNotMatched_Arg_Regexp_Flag Special
+
+" line continuation
+
+hi def link edLineContinue                       Delimiter
+hi def link edLineContinue_InputMode             edLineContinue
+hi def link edLineContinue_InputMode_Text        edLineContinue
+
+
+" }}}
+
+let b:current_syntax = "ed"
+
+let &cpo = s:cpo_save
+unlet! s:cpo_save
+
+" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_00.dump b/runtime/syntax/testdir/dumps/ed_addresses_00.dump
new file mode 100644 (file)
index 0000000..b319a91
--- /dev/null
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0| |e|d|(|1|)| +0#0000000&@67
+|#+0#0000e05&| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i| |l|i|n|k| |e|d|A|d@1|r|e|s@1|S|e|p|a|r|a|t|o|r| |T|o|d|o| +0#0000000&@26
+@75
+@75
+|#+0#0000e05&| |A|d@1|r|e|s@1|e|s| +0#0000000&@63
+@75
+|.+0#e000002&| +0#0000000&@73
+|$+0#e000002&| +0#0000000&@73
+|4+0#e000002&|2| +0#0000000&@72
+|'+0#e000002&|a| +0#0000000&@72
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@69
+|/+0#e000e06&|f+0#0000000&|o@1| @70
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@69
+|?+0#e000e06&|f+0#0000000&|o@1| @70
+|++0#e000e06&| +0#0000000&@73
+|-+0#e000e06&| +0#0000000&@73
+|++0#e000e06&|4|2| +0#0000000&@71
+|-+0#e000e06&|4|2| +0#0000000&@71
+@75
+@57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_01.dump b/runtime/syntax/testdir/dumps/ed_addresses_01.dump
new file mode 100644 (file)
index 0000000..85a6826
--- /dev/null
@@ -0,0 +1,20 @@
+|?+0#e000e06#ffffff0|f+0#0000000&|o@1| @70
+|++0#e000e06&| +0#0000000&@73
+|-+0#e000e06&| +0#0000000&@73
+|++0#e000e06&|4|2| +0#0000000&@71
+|-+0#e000e06&|4|2| +0#0000000&@71
+> @74
+|.+0#e000002&|p+0#af5f00255&| +0#0000000&@72
+|$+0#e000002&|p+0#af5f00255&| +0#0000000&@72
+|4+0#e000002&|2|p+0#af5f00255&| +0#0000000&@71
+|'+0#e000002&|a|p+0#af5f00255&| +0#0000000&@71
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|p+0#af5f00255&| +0#0000000&@68
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|p+0#af5f00255&| +0#0000000&@68
+|++0#e000e06&|p+0#af5f00255&| +0#0000000&@72
+|-+0#e000e06&|p+0#af5f00255&| +0#0000000&@72
+|++0#e000e06&|4|2|p+0#af5f00255&| +0#0000000&@70
+|-+0#e000e06&|4|2|p+0#af5f00255&| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |p|a|t@1|e|r|n| |d|e|l|i|m|i|t|e|r|s| +0#0000000&@54
+@57|1|9|,|0|-|1| @8|5|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_02.dump b/runtime/syntax/testdir/dumps/ed_addresses_02.dump
new file mode 100644 (file)
index 0000000..30ded8b
--- /dev/null
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |p|a|t@1|e|r|n| |d|e|l|i|m|i|t|e|r|s| +0#0000000&@54
+@75
+|/+0#e000e06&|\+0#0000000&|/|f|o@1|\|/|b|a|r|\|/|/+0#e000e06&| +0#0000000&@60
+|?+0#e000e06&|\+0#0000000&|?|f|o@1|\|?|b|a|r|\|?|?+0#e000e06&| +0#0000000&@60
+|/+0#e000e06&|\+0#0000000&|/|f|o@1|\|/|b|a|r|\|/| @61
+>?+0#e000e06&|\+0#0000000&|?|f|o@1|\|?|b|a|r|\|?| @61
+@75
+|/+0#e000e06&|f+0#0000000&|o@1|[|/|]|b|a|r|/+0#e000e06&| +0#0000000&@63
+|?+0#e000e06&|f+0#0000000&|o@1|[|?|]|b|a|r|?+0#e000e06&| +0#0000000&@63
+|/+0#e000e06&|f+0#0000000&|o@1|[|/|]|b|a|r| @64
+|?+0#e000e06&|f+0#0000000&|o@1|[|?|]|b|a|r| @64
+@75
+@75
+|#+0#0000e05&| |M|o|d|i|f|i|e|r|s| +0#0000000&@63
+@75
+@75
+|#+0#0000e05&| |o|f@1|s|e|t|s| +0#0000000&@65
+@75
+|.+0#e000002&|++0#e000e06&| +0#0000000&@72
+@57|3|7|,|1| @9|1|2|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_03.dump b/runtime/syntax/testdir/dumps/ed_addresses_03.dump
new file mode 100644 (file)
index 0000000..69da5fc
--- /dev/null
@@ -0,0 +1,20 @@
+|.+0#e000002#ffffff0|++0#e000e06&| +0#0000000&@72
+|.+0#e000002&|-+0#e000e06&| +0#0000000&@72
+|.+0#e000002&|++0#e000e06&|4|2| +0#0000000&@70
+|.+0#e000002&|-+0#e000e06&|4|2| +0#0000000&@70
+|.+0#e000002&|++0#e000e06&|4|2|-|4|2| +0#0000000&@67
+>.+0#e000002&|-+0#e000e06&|4|2|+|4|2| +0#0000000&@67
+|.+0#e000002&|++0#e000e06&|-|4|2| +0#0000000&@69
+|.+0#e000002&|-+0#e000e06&|+|4|2| +0#0000000&@69
+|.+0#e000002&|++0#e000e06&|4|2|-| +0#0000000&@69
+|.+0#e000002&|-+0#e000e06&|4|2|+| +0#0000000&@69
+|.+0#e000002&|4+0#e000e06&|2|+|-| +0#0000000&@69
+|.+0#e000002&|4+0#e000e06&|2|-|+| +0#0000000&@69
+@75
+|$+0#e000002&|++0#e000e06&| +0#0000000&@72
+|$+0#e000002&|-+0#e000e06&| +0#0000000&@72
+|$+0#e000002&|++0#e000e06&|4|2| +0#0000000&@70
+|$+0#e000002&|-+0#e000e06&|4|2| +0#0000000&@70
+|$+0#e000002&|++0#e000e06&|4|2|-|4|2| +0#0000000&@67
+|$+0#e000002&|-+0#e000e06&|4|2|+|4|2| +0#0000000&@67
+@57|5@1|,|1| @9|1|9|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_04.dump b/runtime/syntax/testdir/dumps/ed_addresses_04.dump
new file mode 100644 (file)
index 0000000..5df0460
--- /dev/null
@@ -0,0 +1,20 @@
+|$+0#e000002#ffffff0|-+0#e000e06&|4|2|+|4|2| +0#0000000&@67
+|$+0#e000002&|++0#e000e06&|-|4|2| +0#0000000&@69
+|$+0#e000002&|-+0#e000e06&|+|4|2| +0#0000000&@69
+|$+0#e000002&|++0#e000e06&|4|2|-| +0#0000000&@69
+|$+0#e000002&|-+0#e000e06&|4|2|+| +0#0000000&@69
+>$+0#e000002&|4+0#e000e06&|2|+|-| +0#0000000&@69
+|$+0#e000002&|4+0#e000e06&|2|-|+| +0#0000000&@69
+@75
+|4+0#e000002&|2|++0#e000e06&| +0#0000000&@71
+|4+0#e000002&|2|-+0#e000e06&| +0#0000000&@71
+|4+0#e000002&|2|++0#e000e06&|4|2| +0#0000000&@69
+|4+0#e000002&|2|-+0#e000e06&|4|2| +0#0000000&@69
+|4+0#e000002&|2|++0#e000e06&|4|2|-|4|2| +0#0000000&@66
+|4+0#e000002&|2|-+0#e000e06&|4|2|+|4|2| +0#0000000&@66
+|4+0#e000002&|2|++0#e000e06&|-|4|2| +0#0000000&@68
+|4+0#e000002&|2|-+0#e000e06&|+|4|2| +0#0000000&@68
+|4+0#e000002&|2|++0#e000e06&|4|2|-| +0#0000000&@68
+|4+0#e000002&|2|-+0#e000e06&|4|2|+| +0#0000000&@68
+|4+0#e000002&|2| +0#0000000&|4+0#e000e06&|2|+|-| +0#0000000&@67
+@57|7|3|,|1| @9|2|6|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_05.dump b/runtime/syntax/testdir/dumps/ed_addresses_05.dump
new file mode 100644 (file)
index 0000000..0dc85e7
--- /dev/null
@@ -0,0 +1,20 @@
+|4+0#e000002#ffffff0|2| +0#0000000&|4+0#e000e06&|2|+|-| +0#0000000&@67
+|4+0#e000002&|2| +0#0000000&|4+0#e000e06&|2|-|+| +0#0000000&@67
+@75
+|'+0#e000002&|a|++0#e000e06&| +0#0000000&@71
+|'+0#e000002&|a|-+0#e000e06&| +0#0000000&@71
+>'+0#e000002&|a|++0#e000e06&|4|2| +0#0000000&@69
+|'+0#e000002&|a|-+0#e000e06&|4|2| +0#0000000&@69
+|'+0#e000002&|a|++0#e000e06&|4|2|-|4|2| +0#0000000&@66
+|'+0#e000002&|a|-+0#e000e06&|4|2|+|4|2| +0#0000000&@66
+|'+0#e000002&|a|++0#e000e06&|-|4|2| +0#0000000&@68
+|'+0#e000002&|a|-+0#e000e06&|+|4|2| +0#0000000&@68
+|'+0#e000002&|a|++0#e000e06&|4|2|-| +0#0000000&@68
+|'+0#e000002&|a|-+0#e000e06&|4|2|+| +0#0000000&@68
+|'+0#e000002&|a|4+0#e000e06&|2|+|-| +0#0000000&@68
+|'+0#e000002&|a|4+0#e000e06&|2|-|+| +0#0000000&@68
+@75
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|+| +0#0000000&@68
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|-| +0#0000000&@68
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|+|4|2| +0#0000000&@66
+@57|9|1|,|1| @9|3@1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_06.dump b/runtime/syntax/testdir/dumps/ed_addresses_06.dump
new file mode 100644 (file)
index 0000000..5544a9a
--- /dev/null
@@ -0,0 +1,20 @@
+|/+0#e000e06#ffffff0|f+0#0000000&|o@1|/+0#e000e06&|+|4|2| +0#0000000&@66
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|-|4|2| +0#0000000&@66
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|+|4|2|-|4|2| +0#0000000&@63
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|-|4|2|+|4|2| +0#0000000&@63
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|+|-|4|2| +0#0000000&@65
+>/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|-|+|4|2| +0#0000000&@65
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|+|4|2|-| +0#0000000&@65
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|-|4|2|+| +0#0000000&@65
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|4|2|+|-| +0#0000000&@65
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|4|2|-|+| +0#0000000&@65
+@75
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|+| +0#0000000&@68
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|-| +0#0000000&@68
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|+|4|2| +0#0000000&@66
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|-|4|2| +0#0000000&@66
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|+|4|2|-|4|2| +0#0000000&@63
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|-|4|2|+|4|2| +0#0000000&@63
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|+|-|4|2| +0#0000000&@65
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|-|+|4|2| +0#0000000&@65
+@57|1|0|9|,|1| @8|4|0|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_07.dump b/runtime/syntax/testdir/dumps/ed_addresses_07.dump
new file mode 100644 (file)
index 0000000..6baee89
--- /dev/null
@@ -0,0 +1,20 @@
+|?+0#e000e06#ffffff0|f+0#0000000&|o@1|?+0#e000e06&|-|+|4|2| +0#0000000&@65
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|+|4|2|-| +0#0000000&@65
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|-|4|2|+| +0#0000000&@65
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|4|2|+|-| +0#0000000&@65
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|4|2|-|+| +0#0000000&@65
+> @74
+|#+0#0000e05&| |c|o|u|n|t|s| +0#0000000&@66
+@75
+|.+0#e000002&|4+0#e000e06&|2| +0#0000000&@71
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|4|2| +0#0000000&@67
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|4|2| +0#0000000&@67
+@75
+|#+0#0000e05&| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@62
+@75
+|.+0#e000002&| +0#0000000&|-+0#e000e06&| |+| |-|4|2| +0#0000000&|++0#e000e06&|4|2| +0#0000000&|4+0#e000e06&|2| +0#0000000&|4+0#e000e06&|2| +0#0000000&|-+0#e000e06&| |4|2| +0#0000000&|++0#e000e06&| |4|2| +0#0000000&@45
+@75
+@75
+|#+0#0000e05&| |R|a|n|g|e|s| +0#0000000&@66
+@75
+@57|1|2|7|,|0|-|1| @6|4|7|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_08.dump b/runtime/syntax/testdir/dumps/ed_addresses_08.dump
new file mode 100644 (file)
index 0000000..5ce19ca
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|,+0#0000001#ffff4012| +0#0000000#ffffff0@73
+|;+0#0000001#ffff4012| +0#0000000#ffffff0@73
+@75
+|,+0#0000001#ffff4012@1| +0#0000000#ffffff0@72
+>;+0#0000001#ffff4012@1| +0#0000000#ffffff0@72
+|,+0#0000001#ffff4012|;| +0#0000000#ffffff0@72
+|;+0#0000001#ffff4012|,| +0#0000000#ffffff0@72
+@75
+|,+0#0000001#ffff4012|.+0#e000002#ffffff0| +0#0000000&@72
+|,+0#0000001#ffff4012|$+0#e000002#ffffff0| +0#0000000&@72
+|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@71
+|,+0#0000001#ffff4012|'+0#e000002#ffffff0|a| +0#0000000&@71
+|,+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+|,+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1| @69
+|,+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@68
+|,+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1| @69
+|,+0#0000001#ffff4012|++0#e000e06#ffffff0| +0#0000000&@72
+|,+0#0000001#ffff4012|-+0#e000e06#ffffff0| +0#0000000&@72
+@57|1|4|5|,|1| @8|5|4|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_09.dump b/runtime/syntax/testdir/dumps/ed_addresses_09.dump
new file mode 100644 (file)
index 0000000..419467a
--- /dev/null
@@ -0,0 +1,20 @@
+|,+0#0000001#ffff4012|-+0#e000e06#ffffff0| +0#0000000&@72
+|,+0#0000001#ffff4012|++0#e000e06#ffffff0|4|2| +0#0000000&@70
+|,+0#0000001#ffff4012|-+0#e000e06#ffffff0|4|2| +0#0000000&@70
+@75
+|;+0#0000001#ffff4012|.+0#e000002#ffffff0| +0#0000000&@72
+>;+0#0000001#ffff4012|$+0#e000002#ffffff0| +0#0000000&@72
+|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@71
+|;+0#0000001#ffff4012|'+0#e000002#ffffff0|a| +0#0000000&@71
+|;+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+|;+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1| @69
+|;+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@68
+|;+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1| @69
+|;+0#0000001#ffff4012|++0#e000e06#ffffff0| +0#0000000&@72
+|;+0#0000001#ffff4012|-+0#e000e06#ffffff0| +0#0000000&@72
+|;+0#0000001#ffff4012|++0#e000e06#ffffff0|4|2| +0#0000000&@70
+|;+0#0000001#ffff4012|-+0#e000e06#ffffff0|4|2| +0#0000000&@70
+@75
+|.+0#e000002&|,+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|$+0#e000002&|,+0#0000001#ffff4012| +0#0000000#ffffff0@72
+@57|1|6|3|,|1| @8|6|1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_10.dump b/runtime/syntax/testdir/dumps/ed_addresses_10.dump
new file mode 100644 (file)
index 0000000..ddc9d9c
--- /dev/null
@@ -0,0 +1,20 @@
+|$+0#e000002#ffffff0|,+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|4+0#e000002&|2|,+0#0000001#ffff4012| +0#0000000#ffffff0@71
+|'+0#e000002&|a|,+0#0000001#ffff4012| +0#0000000#ffffff0@71
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|,+0#0000001#ffff4012| +0#0000000#ffffff0@68
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|,+0#0000001#ffff4012| +0#0000000#ffffff0@68
+>++0#e000e06&|,+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|-+0#e000e06&|,+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|++0#e000e06&|4|2|,+0#0000001#ffff4012| +0#0000000#ffffff0@70
+|-+0#e000e06&|4|2|,+0#0000001#ffff4012| +0#0000000#ffffff0@70
+@75
+|.+0#e000002&|;+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|$+0#e000002&|;+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|4+0#e000002&|2|;+0#0000001#ffff4012| +0#0000000#ffffff0@71
+|'+0#e000002&|a|;+0#0000001#ffff4012| +0#0000000#ffffff0@71
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|;+0#0000001#ffff4012| +0#0000000#ffffff0@68
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|;+0#0000001#ffff4012| +0#0000000#ffffff0@68
+|++0#e000e06&|;+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|-+0#e000e06&|;+0#0000001#ffff4012| +0#0000000#ffffff0@72
+|++0#e000e06&|4|2|;+0#0000001#ffff4012| +0#0000000#ffffff0@70
+@57|1|8|1|,|1| @8|6|8|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_11.dump b/runtime/syntax/testdir/dumps/ed_addresses_11.dump
new file mode 100644 (file)
index 0000000..dc28282
--- /dev/null
@@ -0,0 +1,20 @@
+|++0#e000e06#ffffff0|4|2|;+0#0000001#ffff4012| +0#0000000#ffffff0@70
+|-+0#e000e06&|4|2|;+0#0000001#ffff4012| +0#0000000#ffffff0@70
+@75
+|.+0#e000002&|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|$+0#e000002&|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+>4+0#e000002&|2|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@69
+|'+0#e000002&|a|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@69
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@66
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@66
+|++0#e000e06&|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|-+0#e000e06&|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|++0#e000e06&|4|2|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@68
+|-+0#e000e06&|4|2|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@68
+@75
+|4+0#e000002&|2|,+0#0000001#ffff4012|.+0#e000002#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|,+0#0000001#ffff4012|$+0#e000002#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|,+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@69
+|4+0#e000002&|2|,+0#0000001#ffff4012|'+0#e000002#ffffff0|a| +0#0000000&@69
+|4+0#e000002&|2|,+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@66
+@57|1|9@1|,|1| @8|7|5|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_12.dump b/runtime/syntax/testdir/dumps/ed_addresses_12.dump
new file mode 100644 (file)
index 0000000..92011c7
--- /dev/null
@@ -0,0 +1,20 @@
+|4+0#e000002#ffffff0|2|,+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@66
+|4+0#e000002&|2|,+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1| @67
+|4+0#e000002&|2|,+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@66
+|4+0#e000002&|2|,+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1| @67
+|4+0#e000002&|2|,+0#0000001#ffff4012|++0#e000e06#ffffff0| +0#0000000&@70
+>4+0#e000002&|2|,+0#0000001#ffff4012|-+0#e000e06#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|,+0#0000001#ffff4012|++0#e000e06#ffffff0|4|2| +0#0000000&@68
+|4+0#e000002&|2|,+0#0000001#ffff4012|-+0#e000e06#ffffff0|4|2| +0#0000000&@68
+@75
+|.+0#e000002&|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|$+0#e000002&|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|4+0#e000002&|2|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@69
+|'+0#e000002&|a|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@69
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@66
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@66
+|++0#e000e06&|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|-+0#e000e06&|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@70
+|++0#e000e06&|4|2|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@68
+|-+0#e000e06&|4|2|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@68
+@57|2|1|7|,|1| @8|8|2|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_13.dump b/runtime/syntax/testdir/dumps/ed_addresses_13.dump
new file mode 100644 (file)
index 0000000..e377448
--- /dev/null
@@ -0,0 +1,20 @@
+|-+0#e000e06#ffffff0|4|2|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@68
+@75
+|4+0#e000002&|2|;+0#0000001#ffff4012|.+0#e000002#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|;+0#0000001#ffff4012|$+0#e000002#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|;+0#0000001#ffff4012|4+0#e000002#ffffff0|2| +0#0000000&@69
+>4+0#e000002&|2|;+0#0000001#ffff4012|'+0#e000002#ffffff0|a| +0#0000000&@69
+|4+0#e000002&|2|;+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@66
+|4+0#e000002&|2|;+0#0000001#ffff4012|/+0#e000e06#ffffff0|f+0#0000000&|o@1| @67
+|4+0#e000002&|2|;+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@66
+|4+0#e000002&|2|;+0#0000001#ffff4012|?+0#e000e06#ffffff0|f+0#0000000&|o@1| @67
+|4+0#e000002&|2|;+0#0000001#ffff4012|++0#e000e06#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|;+0#0000001#ffff4012|-+0#e000e06#ffffff0| +0#0000000&@70
+|4+0#e000002&|2|;+0#0000001#ffff4012|++0#e000e06#ffffff0|4|2| +0#0000000&@68
+|4+0#e000002&|2|;+0#0000001#ffff4012|-+0#e000e06#ffffff0|4|2| +0#0000000&@68
+@75
+@75
+|#+0#0000e05&| |w|h|i|t|e|s|p|a|c|e| +0#0000000&@62
+@75
+|.+0#e000002&| +0#0000000&@4|,+0#0000001#ffff4012| +0#0000000#ffffff0|.+0#e000002&| +0#0000000&@65
+@57|2|3|5|,|1| @8|8|9|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_14.dump b/runtime/syntax/testdir/dumps/ed_addresses_14.dump
new file mode 100644 (file)
index 0000000..142f98e
--- /dev/null
@@ -0,0 +1,20 @@
+|.+0#e000002#ffffff0| +0#0000000&@4|,+0#0000001#ffff4012| +0#0000000#ffffff0|.+0#e000002&| +0#0000000&@65
+|$+0#e000002&| +0#0000000&@4|,+0#0000001#ffff4012| +0#0000000#ffffff0|$+0#e000002&| +0#0000000&@65
+|4+0#e000002&|2| +0#0000000&@3|,+0#0000001#ffff4012| +0#0000000#ffffff0|4+0#e000002&|2| +0#0000000&@64
+|'+0#e000002&|a| +0#0000000&@3|,+0#0000001#ffff4012| +0#0000000#ffffff0|'+0#e000002&|a| +0#0000000&@64
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&|,+0#0000001#ffff4012| +0#0000000#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@61
+>?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&|,+0#0000001#ffff4012| +0#0000000#ffffff0|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@61
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&|,+0#0000001#ffff4012| +0#0000000#ffffff0|/+0#e000e06&|f+0#0000000&|o@1| @62
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&|,+0#0000001#ffff4012| +0#0000000#ffffff0|?+0#e000e06&|f+0#0000000&|o@1| @62
+|++0#e000e06&| @4|,+0#0000001#ffff4012| +0#0000000#ffffff0|++0#e000e06&| +0#0000000&@65
+|-+0#e000e06&| @4|,+0#0000001#ffff4012| +0#0000000#ffffff0|-+0#e000e06&| +0#0000000&@65
+|++0#e000e06&|4|2| +0#0000000&@2|,+0#0000001#ffff4012| +0#0000000#ffffff0|++0#e000e06&|4|2| +0#0000000&@63
+|-+0#e000e06&|4|2| +0#0000000&@2|,+0#0000001#ffff4012| +0#0000000#ffffff0|-+0#e000e06&|4|2| +0#0000000&@63
+@75
+|.+0#e000002&| +0#0000000&@4|;+0#0000001#ffff4012| +0#0000000#ffffff0|.+0#e000002&| +0#0000000&@65
+|$+0#e000002&| +0#0000000&@4|;+0#0000001#ffff4012| +0#0000000#ffffff0|$+0#e000002&| +0#0000000&@65
+|4+0#e000002&|2| +0#0000000&@3|;+0#0000001#ffff4012| +0#0000000#ffffff0|4+0#e000002&|2| +0#0000000&@64
+|'+0#e000002&|a| +0#0000000&@3|;+0#0000001#ffff4012| +0#0000000#ffffff0|'+0#e000002&|a| +0#0000000&@64
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&|;+0#0000001#ffff4012| +0#0000000#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@61
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&|;+0#0000001#ffff4012| +0#0000000#ffffff0|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@61
+@57|2|5|3|,|1| @8|9|6|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_addresses_15.dump b/runtime/syntax/testdir/dumps/ed_addresses_15.dump
new file mode 100644 (file)
index 0000000..eab6c80
--- /dev/null
@@ -0,0 +1,20 @@
+|?+0#e000e06#ffffff0|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&|;+0#0000001#ffff4012| +0#0000000#ffffff0|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&@61
+|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&|;+0#0000001#ffff4012| +0#0000000#ffffff0|/+0#e000e06&|f+0#0000000&|o@1| @62
+|?+0#e000e06&|f+0#0000000&|o@1|?+0#e000e06&| +0#0000000&|;+0#0000001#ffff4012| +0#0000000#ffffff0|?+0#e000e06&|f+0#0000000&|o@1| @62
+|++0#e000e06&| @4|;+0#0000001#ffff4012| +0#0000000#ffffff0|++0#e000e06&| +0#0000000&@65
+|-+0#e000e06&| @4|;+0#0000001#ffff4012| +0#0000000#ffffff0|-+0#e000e06&| +0#0000000&@65
+>++0#e000e06&|4|2| +0#0000000&@2|;+0#0000001#ffff4012| +0#0000000#ffffff0|++0#e000e06&|4|2| +0#0000000&@63
+|-+0#e000e06&|4|2| +0#0000000&@2|;+0#0000001#ffff4012| +0#0000000#ffffff0|-+0#e000e06&|4|2| +0#0000000&@63
+@75
+@75
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|2|7|1|,|1| @8|B|o|t| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_00.dump b/runtime/syntax/testdir/dumps/ed_commands_00.dump
new file mode 100644 (file)
index 0000000..221f110
--- /dev/null
@@ -0,0 +1,20 @@
+>#+0#0000e05#ffffff0| |e|d|(|1|)| |c|o|m@1|a|n|d|s| +0#0000000&@58
+@75
+@75
+|#+0#0000e05&| |A|p@1|e|n|d| |C|o|m@1|a|n|d| +0#0000000&@58
+@75
+@75
+|a+0#af5f00255&| +0#0000000&@73
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|a+0#af5f00255&| +0#0000000&@73
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|a+0#af5f00255&| +0#0000000&@73
+|l|i|n|e| |1| @68
+|l|i|n|e| |2| @68
+|l|i|n|e| |3| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+@57|1|,|1| @10|T|o|p| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_01.dump b/runtime/syntax/testdir/dumps/ed_commands_01.dump
new file mode 100644 (file)
index 0000000..4c81733
--- /dev/null
@@ -0,0 +1,20 @@
+|a+0#af5f00255#ffffff0| +0#0000000&@73
+|l|i|n|e| |1| @68
+|l|i|n|e| |2| @68
+|l|i|n|e| |3| @68
+|.+0#af5f00255&| +0#0000000&@73
+> @74
+|a+0#af5f00255&|n| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|a+0#af5f00255&|l| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|a+0#af5f00255&|p| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|.+0#e000002&|a+0#af5f00255&| +0#0000000&@72
+@57|1|9|,|0|-|1| @8|1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_02.dump b/runtime/syntax/testdir/dumps/ed_commands_02.dump
new file mode 100644 (file)
index 0000000..1eec762
--- /dev/null
@@ -0,0 +1,20 @@
+|.+0#e000002#ffffff0|a+0#af5f00255&| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+> @74
+|a+0#af5f00255&|l|n|p| +0#0000000&@70
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|#+0#0000e05&| |g|l|o|b|a|l| |s|u|b|c|o|m@1|a|n|d| +0#0000000&@55
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1| @68
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+@57|3|7|,|0|-|1| @8|3|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_03.dump b/runtime/syntax/testdir/dumps/ed_commands_03.dump
new file mode 100644 (file)
index 0000000..961ad63
--- /dev/null
@@ -0,0 +1,20 @@
+|g+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+>l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&|\+0#e000e06&| +0#0000000&@72
+|p+0#af5f00255&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#af5f00255&|l|\+0#e000e06&| +0#0000000&@65
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&| +0#0000000&@73
+@75
+|#+0#0000e05&| |C|h|a|n|g|e| |C|o|m@1|a|n|d| +0#0000000&@58
+@75
+@75
+|c+0#af5f00255&| +0#0000000&@73
+|.+0#af5f00255&| +0#0000000&@73
+@75
+@57|5@1|,|1| @10|6|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_04.dump b/runtime/syntax/testdir/dumps/ed_commands_04.dump
new file mode 100644 (file)
index 0000000..d94fb91
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|c+0#af5f00255&| +0#0000000&@73
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+>c+0#af5f00255&| +0#0000000&@73
+|l|i|n|e| |1| @68
+|l|i|n|e| |2| @68
+|l|i|n|e| |3| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|c+0#af5f00255&|n| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|c+0#af5f00255&|l| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+@57|7|3|,|1| @10|8|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_05.dump b/runtime/syntax/testdir/dumps/ed_commands_05.dump
new file mode 100644 (file)
index 0000000..716a2b2
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|c+0#af5f00255&|p| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+>.+0#e000002&|,+0#0000000&|.+0#e000002&|c+0#af5f00255&| +0#0000000&@70
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|c+0#af5f00255&|l|n|p| +0#0000000&@70
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|#+0#0000e05&| |g|l|o|b|a|l| |s|u|b|c|o|m@1|a|n|d| +0#0000000&@55
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|c+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|.+0#af5f00255&| +0#0000000&@73
+@57|9|1|,|1| @9|1|0|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_06.dump b/runtime/syntax/testdir/dumps/ed_commands_06.dump
new file mode 100644 (file)
index 0000000..892b101
--- /dev/null
@@ -0,0 +1,20 @@
+|.+0#af5f00255#ffffff0| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|c+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1| @68
+@75
+>g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|c+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|c+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&|\+0#e000e06&| +0#0000000&@72
+|p+0#af5f00255&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|c+0#af5f00255&|l|\+0#e000e06&| +0#0000000&@65
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&| +0#0000000&@73
+@75
+@75
+@57|1|0|9|,|1| @8|1|2|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_07.dump b/runtime/syntax/testdir/dumps/ed_commands_07.dump
new file mode 100644 (file)
index 0000000..2958d95
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&| |D|e|l|e|t|e| |C|o|m@1|a|n|d| +0#0000000&@58
+@75
+@75
+|d+0#af5f00255&| +0#0000000&@73
+>.+0#e000002&|,+0#0000000&|.+0#e000002&|d+0#af5f00255&| +0#0000000&@70
+@75
+|d+0#af5f00255&|l| +0#0000000&@72
+|d+0#af5f00255&|n| +0#0000000&@72
+|d+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|d+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |E|d|i|t| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+@57|1|2|7|,|1| @8|1|5|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_08.dump b/runtime/syntax/testdir/dumps/ed_commands_08.dump
new file mode 100644 (file)
index 0000000..c0ac47b
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|e+0#af5f00255&| +0#0000000&@73
+|e+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @64
+@75
+|e+0#af5f00255&| +0#0000000&|!+0#af5f00255&|e+0#0000000&|c|h|o| |I|n|p|u|t| |t|e|x|t| @56
+>e+0#af5f00255&| +0#0000000&|!+0#af5f00255&|!+0#e000002&| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |E|d|i|t| |W|i|t|h|o|u|t| |C|h|e|c|k|i|n|g| |C|o|m@1|a|n|d| +0#0000000&@43
+@75
+@75
+|E+0#af5f00255&| +0#0000000&@73
+|E+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @64
+@75
+@75
+|#+0#0000e05&| |F|i|l|e|n|a|m|e| |C|o|m@1|a|n|d| +0#0000000&@56
+@75
+@75
+|f+0#af5f00255&| +0#0000000&@73
+@57|1|4|5|,|1| @8|1|7|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_09.dump b/runtime/syntax/testdir/dumps/ed_commands_09.dump
new file mode 100644 (file)
index 0000000..2a38ada
--- /dev/null
@@ -0,0 +1,20 @@
+|f+0#af5f00255#ffffff0| +0#0000000&@73
+|f+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @64
+@75
+@75
+|#+0#0000e05&| |G|l|o|b|a|l| |C|o|m@1|a|n|d| +0#0000000&@58
+> @74
+@75
+|g+0#af5f00255&|/+0#e000e06&| +0#0000000&@72
+|g+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@71
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @69
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+@75
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&| +0#0000000&@69
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@68
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @66
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@65
+@75
+|g+0#af5f00255&|/+0#e000e06&@1|p+0#af5f00255&| +0#0000000&@70
+|g+0#af5f00255&|/+0#e000e06&@1|\| +0#0000000&@70
+@57|1|6|3|,|0|-|1| @6|1|9|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_10.dump b/runtime/syntax/testdir/dumps/ed_commands_10.dump
new file mode 100644 (file)
index 0000000..bb46632
--- /dev/null
@@ -0,0 +1,20 @@
+|g+0#af5f00255#ffffff0|/+0#e000e06&@1|\| +0#0000000&@70
+|p+0#af5f00255&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&@1|l+0#af5f00255&|\+0#e000e06&| +0#0000000&@69
+|n+0#af5f00255&|\+0#e000e06&| +0#0000000&@72
+>p+0#af5f00255&| +0#0000000&@73
+|g+0#af5f00255&|/+0#e000e06&@1|\| +0#0000000&@70
+|l+0#af5f00255&|\+0#e000e06&| +0#0000000&@72
+|n+0#af5f00255&|\+0#e000e06&| +0#0000000&@72
+|p+0#af5f00255&| +0#0000000&@73
+@75
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|p+0#af5f00255&| +0#0000000&@64
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|.+0#e000002&|,+0#0000000&|++0#e000e06&|1|p+0#af5f00255&| +0#0000000&@60
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|\| +0#0000000&@64
+|.+0#e000002&|,+0#0000000&|++0#e000e06&|1|p+0#af5f00255&| +0#0000000&@69
+@75
+@75
+|#+0#0000e05&| |I|n|t|e|r|a|c|t|i|v|e| |G|l|o|b|a|l| |C|o|m@1|a|n|d| +0#0000000&@46
+@75
+@57|1|8|1|,|1| @8|2|1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_11.dump b/runtime/syntax/testdir/dumps/ed_commands_11.dump
new file mode 100644 (file)
index 0000000..c29b674
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+@75
+|G+0#af5f00255&|/+0#e000e06&| +0#0000000&@72
+|G+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@71
+|G+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @69
+>G+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+@75
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|G+0#af5f00255&|/+0#e000e06&| +0#0000000&@69
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|G+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@68
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|G+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @66
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|G+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@65
+@75
+|G+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+|d+0#af5f00255&| +0#0000000&@73
+|&+0#af5f00255&| +0#0000000&@73
+@75
+@75
+|#+0#0000e05&| |H|e|l|p| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@57|1|9@1|,|1| @8|2|3|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_12.dump b/runtime/syntax/testdir/dumps/ed_commands_12.dump
new file mode 100644 (file)
index 0000000..1214b25
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|h+0#af5f00255&| +0#0000000&@73
+@75
+|h+0#af5f00255&|l| +0#0000000&@72
+|h+0#af5f00255&|n| +0#0000000&@72
+>h+0#af5f00255&|p| +0#0000000&@72
+@75
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|h+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |H|e|l|p| |M|o|d|e| |C|o|m@1|a|n|d| +0#0000000&@55
+@75
+|H+0#af5f00255&| +0#0000000&@73
+@75
+|H+0#af5f00255&|l| +0#0000000&@72
+|H+0#af5f00255&|n| +0#0000000&@72
+@57|2|1|7|,|1| @8|2|6|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_13.dump b/runtime/syntax/testdir/dumps/ed_commands_13.dump
new file mode 100644 (file)
index 0000000..f913ce5
--- /dev/null
@@ -0,0 +1,20 @@
+|H+0#af5f00255#ffffff0|n| +0#0000000&@72
+|H+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+>H+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |I|n|s|e|r|t| |C|o|m@1|a|n|d| +0#0000000&@58
+@75
+@75
+|i+0#af5f00255&| +0#0000000&@73
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|i+0#af5f00255&| +0#0000000&@73
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|i+0#af5f00255&| +0#0000000&@73
+@57|2|3|5|,|1| @8|2|8|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_14.dump b/runtime/syntax/testdir/dumps/ed_commands_14.dump
new file mode 100644 (file)
index 0000000..fd78cc8
--- /dev/null
@@ -0,0 +1,20 @@
+|i+0#af5f00255#ffffff0| +0#0000000&@73
+|l|i|n|e| |1| @68
+|l|i|n|e| |2| @68
+|l|i|n|e| |3| @68
+|.+0#af5f00255&| +0#0000000&@73
+> @74
+|i+0#af5f00255&|n| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|i+0#af5f00255&|l| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|i+0#af5f00255&|p| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|.+0#e000002&|i+0#af5f00255&| +0#0000000&@72
+@57|2|5|3|,|0|-|1| @6|3|0|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_15.dump b/runtime/syntax/testdir/dumps/ed_commands_15.dump
new file mode 100644 (file)
index 0000000..9420246
--- /dev/null
@@ -0,0 +1,20 @@
+|.+0#e000002#ffffff0|i+0#af5f00255&| +0#0000000&@72
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+> @74
+|i+0#af5f00255&|l|n|p| +0#0000000&@70
+|l|i|n|e| |1| @68
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|#+0#0000e05&| |g|l|o|b|a|l| |s|u|b|c|o|m@1|a|n|d| +0#0000000&@55
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|i+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|.+0#af5f00255&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|i+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1| @68
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|i+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+@57|2|7|1|,|0|-|1| @6|3|2|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_16.dump b/runtime/syntax/testdir/dumps/ed_commands_16.dump
new file mode 100644 (file)
index 0000000..08fd835
--- /dev/null
@@ -0,0 +1,20 @@
+|g+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|i+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|i+0#af5f00255&|\+0#e000e06&| +0#0000000&@66
+>l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&|\+0#e000e06&| +0#0000000&@72
+|p+0#af5f00255&| +0#0000000&@73
+@75
+|g+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|i+0#af5f00255&|l|\+0#e000e06&| +0#0000000&@65
+|l|i|n|e| |1|\+0#e000e06&| +0#0000000&@67
+|.+0#e000002&| +0#0000000&@73
+@75
+@75
+|#+0#0000e05&| |J|o|i|n| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|j+0#af5f00255&| +0#0000000&@73
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|++0#e000e06&|1|j+0#af5f00255&| +0#0000000&@68
+@57|2|8|9|,|1| @8|3|5|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_17.dump b/runtime/syntax/testdir/dumps/ed_commands_17.dump
new file mode 100644 (file)
index 0000000..d5007af
--- /dev/null
@@ -0,0 +1,20 @@
+|.+0#e000002#ffffff0|,+0#0000000&|.+0#e000002&|++0#e000e06&|1|j+0#af5f00255&| +0#0000000&@68
+@75
+|j+0#af5f00255&|l| +0#0000000&@72
+|j+0#af5f00255&|n| +0#0000000&@72
+|j+0#af5f00255&|p| +0#0000000&@72
+> @74
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|j+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |M|a|r|k| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|k+0#af5f00255&|a+0#e000002&| +0#0000000&@72
+|.+0#e000002&|k+0#af5f00255&|a+0#e000002&| +0#0000000&@71
+@75
+|k+0#af5f00255&|a+0#e000002&|l+0#af5f00255&| +0#0000000&@71
+|k+0#af5f00255&|a+0#e000002&|n+0#af5f00255&| +0#0000000&@71
+@57|3|0|7|,|0|-|1| @6|3|7|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_18.dump b/runtime/syntax/testdir/dumps/ed_commands_18.dump
new file mode 100644 (file)
index 0000000..8fdcc48
--- /dev/null
@@ -0,0 +1,20 @@
+|k+0#af5f00255#ffffff0|a+0#e000002&|n+0#af5f00255&| +0#0000000&@71
+|k+0#af5f00255&|a+0#e000002&|p+0#af5f00255&| +0#0000000&@71
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+>k+0#af5f00255&|a+0#e000002&|l+0#af5f00255&|n|p| +0#0000000&@69
+@75
+@75
+|#+0#0000e05&| |L|i|s|t| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|l+0#af5f00255&| +0#0000000&@73
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|l+0#af5f00255&| +0#0000000&@70
+@75
+|l+0#af5f00255&@1| +0#0000000&@72
+|l+0#af5f00255&|n| +0#0000000&@72
+|l+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@57|3|2|5|,|1| @8|3|9|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_19.dump b/runtime/syntax/testdir/dumps/ed_commands_19.dump
new file mode 100644 (file)
index 0000000..d9ba8fe
--- /dev/null
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|l+0#af5f00255&@1|n|p| +0#0000000&@70
+@75
+@75
+>#+0#0000e05&| |M|o|v|e| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|m+0#af5f00255&|$+0#e000002&| +0#0000000&@72
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|m+0#af5f00255&|$+0#e000002&| +0#0000000&@69
+@75
+|m+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&| +0#0000000&@64
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|m+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&| +0#0000000&@61
+@75
+|m+0#af5f00255&|l| +0#0000000&@72
+|m+0#af5f00255&|n| +0#0000000&@72
+|m+0#af5f00255&|p| +0#0000000&@72
+@75
+|m+0#af5f00255&|$+0#e000002&|l+0#af5f00255&| +0#0000000&@71
+@57|3|4|3|,|1| @8|4|1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_20.dump b/runtime/syntax/testdir/dumps/ed_commands_20.dump
new file mode 100644 (file)
index 0000000..2550a64
--- /dev/null
@@ -0,0 +1,20 @@
+|m+0#af5f00255#ffffff0|$+0#e000002&|l+0#af5f00255&| +0#0000000&@71
+|m+0#af5f00255&|$+0#e000002&|n+0#af5f00255&| +0#0000000&@71
+|m+0#af5f00255&|$+0#e000002&|p+0#af5f00255&| +0#0000000&@71
+@75
+|m+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|l+0#af5f00255&| +0#0000000&@63
+>m+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|n+0#af5f00255&| +0#0000000&@63
+|m+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|p+0#af5f00255&| +0#0000000&@63
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|m+0#af5f00255&|l|n|p| +0#0000000&@70
+|m+0#af5f00255&|$+0#e000002&|l+0#af5f00255&|n|p| +0#0000000&@69
+|m+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|l+0#af5f00255&|n|p| +0#0000000&@61
+@75
+@75
+|#+0#0000e05&| |N|u|m|b|e|r| |C|o|m@1|a|n|d| +0#0000000&@58
+@75
+@75
+|n+0#af5f00255&| +0#0000000&@73
+@57|3|6|1|,|1| @8|4@1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_21.dump b/runtime/syntax/testdir/dumps/ed_commands_21.dump
new file mode 100644 (file)
index 0000000..89c2832
--- /dev/null
@@ -0,0 +1,20 @@
+|n+0#af5f00255#ffffff0| +0#0000000&@73
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|n+0#af5f00255&| +0#0000000&@70
+@75
+|n+0#af5f00255&|l| +0#0000000&@72
+|n+0#af5f00255&@1| +0#0000000&@72
+>n+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|n+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |P|r|i|n|t| |C|o|m@1|a|n|d| +0#0000000&@59
+@75
+@75
+|p+0#af5f00255&| +0#0000000&@73
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|p+0#af5f00255&| +0#0000000&@70
+@75
+|p+0#af5f00255&|l| +0#0000000&@72
+@57|3|7|9|,|1| @8|4|6|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_22.dump b/runtime/syntax/testdir/dumps/ed_commands_22.dump
new file mode 100644 (file)
index 0000000..ab36377
--- /dev/null
@@ -0,0 +1,20 @@
+|p+0#af5f00255#ffffff0|l| +0#0000000&@72
+|p+0#af5f00255&|n| +0#0000000&@72
+|p+0#af5f00255&@1| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+> @74
+|p+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |P|r|o|m|p|t| |C|o|m@1|a|n|d| +0#0000000&@58
+@75
+@75
+|P+0#af5f00255&| +0#0000000&@73
+@75
+|P+0#af5f00255&|l| +0#0000000&@72
+|P+0#af5f00255&|n| +0#0000000&@72
+|P+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@57|3|9|7|,|0|-|1| @6|4|8|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_23.dump b/runtime/syntax/testdir/dumps/ed_commands_23.dump
new file mode 100644 (file)
index 0000000..0af8cb6
--- /dev/null
@@ -0,0 +1,20 @@
+|#+0#0000e05#ffffff0| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|P+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+>#+0#0000e05&| |Q|u|i|t| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|q+0#af5f00255&| +0#0000000&@73
+@75
+@75
+|#+0#0000e05&| |Q|u|i|t| |W|i|t|h|o|u|t| |C|h|e|c|k|i|n|g| |C|o|m@1|a|n|d| +0#0000000&@43
+@75
+|Q+0#af5f00255&| +0#0000000&@73
+@75
+@75
+|#+0#0000e05&| |R|e|a|d| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+|r+0#af5f00255&| +0#0000000&@73
+@57|4|1|5|,|1| @8|5|0|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_24.dump b/runtime/syntax/testdir/dumps/ed_commands_24.dump
new file mode 100644 (file)
index 0000000..34560f6
--- /dev/null
@@ -0,0 +1,20 @@
+|r+0#af5f00255#ffffff0| +0#0000000&@73
+|r+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @64
+|$+0#e000002&|r+0#af5f00255&| +0#0000000&@72
+|$+0#e000002&|r+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @63
+@75
+>r+0#af5f00255&| +0#0000000&|!+0#af5f00255&|e+0#0000000&|c|h|o| |I|n|p|u|t| |t|e|x|t| @56
+|r+0#af5f00255&| +0#0000000&|!+0#af5f00255&|!+0#e000002&| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |S|u|b|s|t|i|t|u|t|e| |C|o|m@1|a|n|d| +0#0000000&@54
+@75
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&| +0#0000000&@64
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&| +0#0000000&@61
+@75
+|s+0#af5f00255&|/+0#e000e06&@1|b+0#0000000&|a|r| @68
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|b|a|z| @62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&| +0#0000000&@64
+@57|4|3@1|,|1| @8|5|3|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_25.dump b/runtime/syntax/testdir/dumps/ed_commands_25.dump
new file mode 100644 (file)
index 0000000..6de5a8d
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&| +0#0000000&@64
+|b|a|z| @71
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&| +0#0000000&@64
+|b|a|z|/+0#e000e06&| +0#0000000&@70
+@75
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|&+0#e000e06&|b+0#0000000&|a|z| @61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|&+0#e000e06&|\| +0#0000000&@63
+|b|a|z| @71
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|&+0#e000e06&|\| +0#0000000&@63
+|b|a|z|/+0#e000e06&| +0#0000000&@70
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%| +0#0000000&@67
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%|/| +0#0000000&@66
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|\|%| +0#0000000&@66
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|\|%|/| +0#0000000&@65
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&@1| @66
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&@1|/+0#e000e06&| +0#0000000&@65
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&|a| @66
+@57|4|5|1|,|1| @8|5@1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_26.dump b/runtime/syntax/testdir/dumps/ed_commands_26.dump
new file mode 100644 (file)
index 0000000..eb0abda
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&|a| @66
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&|a|/+0#e000e06&| +0#0000000&@65
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#0000000&|%| @66
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|a+0#0000000&|%|/+0#e000e06&| +0#0000000&@65
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&|a|%| @65
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|%+0#0000000&|a|%|/+0#e000e06&| +0#0000000&@64
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|2|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|3|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|4|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|5|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|6|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|7|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|8|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|9|b+0#0000000&|a|z|/+0#e000e06&| +0#0000000&@59
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|0+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|1+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+@57|4|6|9|,|1| @8|5|7|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_27.dump b/runtime/syntax/testdir/dumps/ed_commands_27.dump
new file mode 100644 (file)
index 0000000..3d6656c
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|1+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|2+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|3+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|4+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|5+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|6+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|7+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|8+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|\+0#e000e06&|1|9+0#0000000&|b|a|z|/+0#e000e06&| +0#0000000&@58
+@75
+@75
+|#+0#0000e05&| |f|l|a|g|s| +0#0000000&@67
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g| +0#0000000&@63
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l| +0#0000000&@63
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n| +0#0000000&@63
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p| +0#0000000&@63
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|l| +0#0000000&@62
+@57|4|8|7|,|1| @8|5|9|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_28.dump b/runtime/syntax/testdir/dumps/ed_commands_28.dump
new file mode 100644 (file)
index 0000000..55b31f8
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|l| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|n| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|p| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|g| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n| +0#0000000&@62
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|g| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|g| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n| +0#0000000&@62
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|l|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|l|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|n|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|n|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|p|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|p|n| +0#0000000&@61
+@57|5|0|5|,|1| @8|6|1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_29.dump b/runtime/syntax/testdir/dumps/ed_commands_29.dump
new file mode 100644 (file)
index 0000000..61aa012
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|p|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|g|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|g|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|g| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|p| +0#0000000&@61
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|g| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|g|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|g|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|g| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|g| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|g|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|g|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|g| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|g| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|l| +0#0000000&@61
+@57|5|2|3|,|1| @8|6|4|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_30.dump b/runtime/syntax/testdir/dumps/ed_commands_30.dump
new file mode 100644 (file)
index 0000000..b8cfdfe
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|l| +0#0000000&@61
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|l|n|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|l|p|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|n|l|p| +0#0000000&@60
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|n|p|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|p|l|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|g|p|n|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|g|n|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|g|p|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|g|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|p|g| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|g|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|n|g| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|g|l|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|g|p|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|g|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|p|g| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|g|l| +0#0000000&@60
+@57|5|4|1|,|1| @8|6@1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_31.dump b/runtime/syntax/testdir/dumps/ed_commands_31.dump
new file mode 100644 (file)
index 0000000..b481c08
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|g|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|l|g| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|g|l|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|g|n|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|g|n| +0#0000000&@60
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|n|g| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|g|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|l|g| +0#0000000&@60
+@75
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3| +0#0000000&@63
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l| +0#0000000&@63
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n| +0#0000000&@63
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p| +0#0000000&@63
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|l| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|n| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|p| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|3| +0#0000000&@62
+@57|5@1|9|,|1| @8|6|8|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_32.dump b/runtime/syntax/testdir/dumps/ed_commands_32.dump
new file mode 100644 (file)
index 0000000..1b06960
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|3| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|3| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l| +0#0000000&@62
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|3| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l| +0#0000000&@62
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n| +0#0000000&@62
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|l|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|l|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|n|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|n|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|p|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|p|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|3|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|3|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|3| +0#0000000&@61
+@57|5|7@1|,|1| @8|7|0|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_33.dump b/runtime/syntax/testdir/dumps/ed_commands_33.dump
new file mode 100644 (file)
index 0000000..9994773
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|3| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|3| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|3|l| +0#0000000&@61
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|3|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|3| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|p| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|3| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|3|l| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|3|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|3| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|n| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|3| +0#0000000&@61
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|l| +0#0000000&@61
+@75
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|l|n|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|l|p|n| +0#0000000&@60
+@57|5|9|5|,|1| @8|7|3|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_34.dump b/runtime/syntax/testdir/dumps/ed_commands_34.dump
new file mode 100644 (file)
index 0000000..ec720d6
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|l|p|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|n|l|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|n|p|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|p|l|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|3|p|n|l| +0#0000000&@60
+>s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|3|n|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|3|p|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|3|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|n|p|3| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|3|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|l|p|n|3| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|3|l|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|3|p|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|3|p| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|l|p|3| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|3|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|n|p|l|3| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|3|l|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|3|n|l| +0#0000000&@60
+@57|6|1|3|,|1| @8|7|5|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_35.dump b/runtime/syntax/testdir/dumps/ed_commands_35.dump
new file mode 100644 (file)
index 0000000..eeb50e4
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|3|n|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|3|n| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|l|n|3| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|3|l| +0#0000000&@60
+|s+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&|b+0#0000000&|a|r|/+0#e000e06&|p|n|l|3| +0#0000000&@60
+> @74
+@75
+|#+0#0000e05&| |r|e|p|e|a|t| |l|a|s|t| |s|u|b|s|t|i|t|u|t|e| +0#0000000&@50
+@75
+|s+0#af5f00255&|3+0#e000e06&| +0#0000000&@72
+|s+0#af5f00255&|g+0#e000e06&| +0#0000000&@72
+|s+0#af5f00255&|p+0#e000e06&| +0#0000000&@72
+|s+0#af5f00255&|r+0#e000e06&| +0#0000000&@72
+@75
+|s+0#af5f00255&|3+0#e000e06&|g| +0#0000000&@71
+|s+0#af5f00255&|3+0#e000e06&|p| +0#0000000&@71
+|s+0#af5f00255&|3+0#e000e06&|r| +0#0000000&@71
+|s+0#af5f00255&|g+0#e000e06&|3| +0#0000000&@71
+|s+0#af5f00255&|g+0#e000e06&|p| +0#0000000&@71
+@57|6|3|1|,|0|-|1| @6|7@1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_36.dump b/runtime/syntax/testdir/dumps/ed_commands_36.dump
new file mode 100644 (file)
index 0000000..78bfc76
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|g+0#e000e06&|p| +0#0000000&@71
+|s+0#af5f00255&|g+0#e000e06&|r| +0#0000000&@71
+|s+0#af5f00255&|p+0#e000e06&|3| +0#0000000&@71
+|s+0#af5f00255&|p+0#e000e06&|g| +0#0000000&@71
+|s+0#af5f00255&|p+0#e000e06&|r| +0#0000000&@71
+>s+0#af5f00255&|r+0#e000e06&|3| +0#0000000&@71
+|s+0#af5f00255&|r+0#e000e06&|g| +0#0000000&@71
+|s+0#af5f00255&|r+0#e000e06&|p| +0#0000000&@71
+@75
+|s+0#af5f00255&|3+0#e000e06&|g|p| +0#0000000&@70
+|s+0#af5f00255&|3+0#e000e06&|g|r| +0#0000000&@70
+|s+0#af5f00255&|3+0#e000e06&|p|g| +0#0000000&@70
+|s+0#af5f00255&|3+0#e000e06&|p|r| +0#0000000&@70
+|s+0#af5f00255&|3+0#e000e06&|r|g| +0#0000000&@70
+|s+0#af5f00255&|3+0#e000e06&|r|p| +0#0000000&@70
+|s+0#af5f00255&|g+0#e000e06&|3|p| +0#0000000&@70
+|s+0#af5f00255&|g+0#e000e06&|3|r| +0#0000000&@70
+|s+0#af5f00255&|g+0#e000e06&|p|3| +0#0000000&@70
+|s+0#af5f00255&|g+0#e000e06&|p|r| +0#0000000&@70
+@57|6|4|9|,|1| @8|7|9|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_37.dump b/runtime/syntax/testdir/dumps/ed_commands_37.dump
new file mode 100644 (file)
index 0000000..1df42b4
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|g+0#e000e06&|p|r| +0#0000000&@70
+|s+0#af5f00255&|g+0#e000e06&|r|3| +0#0000000&@70
+|s+0#af5f00255&|g+0#e000e06&|r|p| +0#0000000&@70
+|s+0#af5f00255&|p+0#e000e06&|3|g| +0#0000000&@70
+|s+0#af5f00255&|p+0#e000e06&|3|r| +0#0000000&@70
+>s+0#af5f00255&|p+0#e000e06&|g|3| +0#0000000&@70
+|s+0#af5f00255&|p+0#e000e06&|g|r| +0#0000000&@70
+|s+0#af5f00255&|p+0#e000e06&|r|3| +0#0000000&@70
+|s+0#af5f00255&|p+0#e000e06&|r|g| +0#0000000&@70
+|s+0#af5f00255&|r+0#e000e06&|3|g| +0#0000000&@70
+|s+0#af5f00255&|r+0#e000e06&|3|p| +0#0000000&@70
+|s+0#af5f00255&|r+0#e000e06&|g|3| +0#0000000&@70
+|s+0#af5f00255&|r+0#e000e06&|g|p| +0#0000000&@70
+|s+0#af5f00255&|r+0#e000e06&|p|3| +0#0000000&@70
+|s+0#af5f00255&|r+0#e000e06&|p|g| +0#0000000&@70
+@75
+|s+0#af5f00255&|3+0#e000e06&|g|p|r| +0#0000000&@69
+|s+0#af5f00255&|3+0#e000e06&|g|r|p| +0#0000000&@69
+|s+0#af5f00255&|3+0#e000e06&|p|g|r| +0#0000000&@69
+@57|6@1|7|,|1| @8|8|2|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_38.dump b/runtime/syntax/testdir/dumps/ed_commands_38.dump
new file mode 100644 (file)
index 0000000..ee3ba03
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|3+0#e000e06&|p|g|r| +0#0000000&@69
+|s+0#af5f00255&|3+0#e000e06&|p|r|g| +0#0000000&@69
+|s+0#af5f00255&|3+0#e000e06&|r|g|p| +0#0000000&@69
+|s+0#af5f00255&|3+0#e000e06&|r|p|g| +0#0000000&@69
+|s+0#af5f00255&|g+0#e000e06&|3|p|r| +0#0000000&@69
+>s+0#af5f00255&|g+0#e000e06&|3|r|p| +0#0000000&@69
+|s+0#af5f00255&|g+0#e000e06&|p|3|r| +0#0000000&@69
+|s+0#af5f00255&|g+0#e000e06&|p|r|3| +0#0000000&@69
+|s+0#af5f00255&|g+0#e000e06&|r|3|p| +0#0000000&@69
+|s+0#af5f00255&|g+0#e000e06&|r|p|3| +0#0000000&@69
+|s+0#af5f00255&|p+0#e000e06&|3|g|r| +0#0000000&@69
+|s+0#af5f00255&|p+0#e000e06&|3|r|g| +0#0000000&@69
+|s+0#af5f00255&|p+0#e000e06&|g|3|r| +0#0000000&@69
+|s+0#af5f00255&|p+0#e000e06&|g|r|3| +0#0000000&@69
+|s+0#af5f00255&|p+0#e000e06&|r|3|g| +0#0000000&@69
+|s+0#af5f00255&|p+0#e000e06&|r|g|3| +0#0000000&@69
+|s+0#af5f00255&|r+0#e000e06&|3|g|p| +0#0000000&@69
+|s+0#af5f00255&|r+0#e000e06&|3|p|g| +0#0000000&@69
+|s+0#af5f00255&|r+0#e000e06&|g|3|p| +0#0000000&@69
+@57|6|8|5|,|1| @8|8|4|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_39.dump b/runtime/syntax/testdir/dumps/ed_commands_39.dump
new file mode 100644 (file)
index 0000000..ce95391
--- /dev/null
@@ -0,0 +1,20 @@
+|s+0#af5f00255#ffffff0|r+0#e000e06&|g|3|p| +0#0000000&@69
+|s+0#af5f00255&|r+0#e000e06&|g|p|3| +0#0000000&@69
+|s+0#af5f00255&|r+0#e000e06&|p|3|g| +0#0000000&@69
+|s+0#af5f00255&|r+0#e000e06&|p|g|3| +0#0000000&@69
+@75
+>#+0#0000e05&| |r|e|p|e|a|t| |l|a|s|t| |s|u|b|s|t|i|t|u|t|e| |f|l|a|g|s| |a|s| |d|e|l|i|m|i|t|e|r|s| +0#0000000&@30
+@75
+|s+0#af5f00255&|3+0#e000e06&|.+0#0000000&@2|3+0#e000e06&|.+0#0000000&@2|3+0#e000e06&| +0#0000000&@64
+|s+0#af5f00255&|g+0#e000e06&|.+0#0000000&@2|g+0#e000e06&|.+0#0000000&@2|g+0#e000e06&| +0#0000000&@64
+|s+0#af5f00255&|p+0#e000e06&|.+0#0000000&@2|p+0#e000e06&|.+0#0000000&@2|p+0#e000e06&| +0#0000000&@64
+|s+0#af5f00255&|r+0#e000e06&|.+0#0000000&@2|r+0#e000e06&|.+0#0000000&@2|r+0#e000e06&| +0#0000000&@64
+@75
+@75
+|#+0#0000e05&| |C|o|p|y| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|t+0#af5f00255&|$+0#e000002&| +0#0000000&@72
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|t+0#af5f00255&|$+0#e000002&| +0#0000000&@69
+@75
+@57|7|0|3|,|1| @8|8|6|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_40.dump b/runtime/syntax/testdir/dumps/ed_commands_40.dump
new file mode 100644 (file)
index 0000000..505c073
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|t+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&| +0#0000000&@64
+|.+0#e000002&|,+0#0000000&|.+0#e000002&|t+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&| +0#0000000&@61
+@75
+|t+0#af5f00255&|l| +0#0000000&@72
+>t+0#af5f00255&|n| +0#0000000&@72
+|t+0#af5f00255&|p| +0#0000000&@72
+@75
+|t+0#af5f00255&|$+0#e000002&|l+0#af5f00255&| +0#0000000&@71
+|t+0#af5f00255&|$+0#e000002&|n+0#af5f00255&| +0#0000000&@71
+|t+0#af5f00255&|$+0#e000002&|p+0#af5f00255&| +0#0000000&@71
+@75
+|t+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|l+0#af5f00255&| +0#0000000&@63
+|t+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|n+0#af5f00255&| +0#0000000&@63
+|t+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|p+0#af5f00255&| +0#0000000&@63
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|t+0#af5f00255&|l|n|p| +0#0000000&@70
+@57|7|2|1|,|1| @8|8@1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_41.dump b/runtime/syntax/testdir/dumps/ed_commands_41.dump
new file mode 100644 (file)
index 0000000..5dce3cd
--- /dev/null
@@ -0,0 +1,20 @@
+|t+0#af5f00255#ffffff0|l|n|p| +0#0000000&@70
+|t+0#af5f00255&|$+0#e000002&|l+0#af5f00255&|n|p| +0#0000000&@69
+|t+0#af5f00255&|/+0#e000e06&|p+0#0000000&|a|t@1|e|r|n|/+0#e000e06&|l+0#af5f00255&|n|p| +0#0000000&@61
+@75
+@75
+>#+0#0000e05&| |U|n|d|o| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|u+0#af5f00255&| +0#0000000&@73
+@75
+|u+0#af5f00255&|l| +0#0000000&@72
+|u+0#af5f00255&|n| +0#0000000&@72
+|u+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|u+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+@57|7|3|9|,|1| @8|9|1|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_42.dump b/runtime/syntax/testdir/dumps/ed_commands_42.dump
new file mode 100644 (file)
index 0000000..d72a879
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+|#+0#0000e05&| |G|l|o|b|a|l| |N|o|n|-|M|a|t|c|h|e|d| |C|o|m@1|a|n|d| +0#0000000&@46
+@75
+@75
+|v+0#af5f00255&|/+0#e000e06&| +0#0000000&@72
+>v+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@71
+|v+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @69
+|v+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+@75
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|v+0#af5f00255&|/+0#e000e06&| +0#0000000&@69
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|v+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@68
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|v+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @66
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|v+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@65
+@75
+@75
+|#+0#0000e05&| |I|n|t|e|r|a|c|t|i|v|e| |G|l|o|b|a|l| |N|o|n|-|M|a|t|c|h|e|d| |C|o|m@1|a|n|d| +0#0000000&@34
+@75
+@75
+|V+0#af5f00255&|/+0#e000e06&| +0#0000000&@72
+@57|7|5|7|,|1| @8|9|3|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_43.dump b/runtime/syntax/testdir/dumps/ed_commands_43.dump
new file mode 100644 (file)
index 0000000..4b34f8a
--- /dev/null
@@ -0,0 +1,20 @@
+|V+0#af5f00255#ffffff0|/+0#e000e06&| +0#0000000&@72
+|V+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@71
+|V+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @69
+|V+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@68
+@75
+>1+0#e000002&|,+0#0000000&|$+0#e000002&|V+0#af5f00255&|/+0#e000e06&| +0#0000000&@69
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|V+0#af5f00255&|/+0#e000e06&@1| +0#0000000&@68
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|V+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1| @66
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|V+0#af5f00255&|/+0#e000e06&|f+0#0000000&|o@1|/+0#e000e06&| +0#0000000&@65
+@75
+@75
+|#+0#0000e05&| |W|r|i|t|e| |C|o|m@1|a|n|d| +0#0000000&@59
+@75
+@75
+|w+0#af5f00255&| +0#0000000&@73
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|w+0#af5f00255&| +0#0000000&@70
+|w+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @64
+|1+0#e000002&|,+0#0000000&|$+0#e000002&|w+0#af5f00255&| +0#0000000&|f|i|l|e|n|a|m|e| @61
+@75
+@57|7@1|5|,|1| @8|9|5|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_44.dump b/runtime/syntax/testdir/dumps/ed_commands_44.dump
new file mode 100644 (file)
index 0000000..82aeda8
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+@75
+|#+0#0000e05&| |L|i|n|e| |N|u|m|b|e|r| |C|o|m@1|a|n|d| +0#0000000&@53
+@75
+@75
+>=+0#af5f00255&| +0#0000000&@73
+|$+0#e000002&|=+0#af5f00255&| +0#0000000&@72
+@75
+|=+0#af5f00255&|l| +0#0000000&@72
+|=+0#af5f00255&|n| +0#0000000&@72
+|=+0#af5f00255&|p| +0#0000000&@72
+@75
+|#+0#0000e05&| |e|x|t|e|n|s|i|o|n|s| +0#0000000&@62
+@75
+|=+0#af5f00255&|l|n|p| +0#0000000&@70
+@75
+@75
+|#+0#0000e05&| |S|h|e|l@1| |E|s|c|a|p|e| |C|o|m@1|a|n|d| +0#0000000&@52
+@75
+@57|7|9|3|,|1| @8|9|7|%| 
diff --git a/runtime/syntax/testdir/dumps/ed_commands_45.dump b/runtime/syntax/testdir/dumps/ed_commands_45.dump
new file mode 100644 (file)
index 0000000..aca707c
--- /dev/null
@@ -0,0 +1,20 @@
+| +0&#ffffff0@74
+@75
+|!+0#af5f00255&|e+0#0000000&|c|h|o| |"|F|o@1|"| @63
+@75
+|!+0#af5f00255&|!+0#e000002&| +0#0000000&@72
+> @74
+|!+0#af5f00255&|e+0#0000000&|c|h|o| |%+0#e000e06&| +0#0000000&@67
+|!+0#af5f00255&|e+0#0000000&|c|h|o| |\+0#e000e06&|%| +0#0000000&@66
+|!+0#af5f00255&|e+0#0000000&|c|h|o| |\+0#e000e06&@1|%| +0#0000000&@65
+|!+0#af5f00255&|e+0#0000000&|c|h|o| |\+0#e000e06&@2|%| +0#0000000&@64
+|!+0#af5f00255&|e+0#0000000&|c|h|o| |\+0#e000e06&@3|%| +0#0000000&@63
+@75
+@75
+|#+0#0000e05&| |N|u|l@1| |C|o|m@1|a|n|d| +0#0000000&@60
+@75
+@75
+|.+0#e000002&|++0#e000e06&|1| +0#0000000&@71
+@75
+@75
+@57|8|1@1|,|0|-|1| @6|B|o|t| 
diff --git a/runtime/syntax/testdir/input/ed_addresses.ed b/runtime/syntax/testdir/input/ed_addresses.ed
new file mode 100644 (file)
index 0000000..c1961e3
--- /dev/null
@@ -0,0 +1,274 @@
+# ed(1)
+# VIM_TEST_SETUP hi link edAddressSeparator Todo
+
+
+# Addresses
+
+.
+$
+42
+'a
+/foo/
+/foo
+?foo?
+?foo
++
+-
++42
+-42
+
+.p
+$p
+42p
+'ap
+/foo/p
+?foo?p
++p
+-p
++42p
+-42p
+
+
+# pattern delimiters
+
+/\/foo\/bar\//
+?\?foo\?bar\??
+/\/foo\/bar\/
+?\?foo\?bar\?
+
+/foo[/]bar/
+?foo[?]bar?
+/foo[/]bar
+?foo[?]bar
+
+
+# Modifiers
+
+
+# offsets
+
+.+
+.-
+.+42
+.-42
+.+42-42
+.-42+42
+.+-42
+.-+42
+.+42-
+.-42+
+.42+-
+.42-+
+
+$+
+$-
+$+42
+$-42
+$+42-42
+$-42+42
+$+-42
+$-+42
+$+42-
+$-42+
+$42+-
+$42-+
+
+42+
+42-
+42+42
+42-42
+42+42-42
+42-42+42
+42+-42
+42-+42
+42+42-
+42-42+
+42 42+-
+42 42-+
+
+'a+
+'a-
+'a+42
+'a-42
+'a+42-42
+'a-42+42
+'a+-42
+'a-+42
+'a+42-
+'a-42+
+'a42+-
+'a42-+
+
+/foo/+
+/foo/-
+/foo/+42
+/foo/-42
+/foo/+42-42
+/foo/-42+42
+/foo/+-42
+/foo/-+42
+/foo/+42-
+/foo/-42+
+/foo/42+-
+/foo/42-+
+
+?foo?+
+?foo?-
+?foo?+42
+?foo?-42
+?foo?+42-42
+?foo?-42+42
+?foo?+-42
+?foo?-+42
+?foo?+42-
+?foo?-42+
+?foo?42+-
+?foo?42-+
+
+# counts
+
+.42
+/foo/42
+?foo?42
+
+# whitespace
+
+. - + -42 +42 42 42 - 42 + 42
+
+
+# Ranges
+
+,
+;
+
+,,
+;;
+,;
+;,
+
+,.
+,$
+,42
+,'a
+,/foo/
+,/foo
+,?foo?
+,?foo
+,+
+,-
+,+42
+,-42
+
+;.
+;$
+;42
+;'a
+;/foo/
+;/foo
+;?foo?
+;?foo
+;+
+;-
+;+42
+;-42
+
+.,
+$,
+42,
+'a,
+/foo/,
+?foo?,
++,
+-,
++42,
+-42,
+
+.;
+$;
+42;
+'a;
+/foo/;
+?foo?;
++;
+-;
++42;
+-42;
+
+.,42
+$,42
+42,42
+'a,42
+/foo/,42
+?foo?,42
++,42
+-,42
++42,42
+-42,42
+
+42,.
+42,$
+42,42
+42,'a
+42,/foo/
+42,/foo
+42,?foo?
+42,?foo
+42,+
+42,-
+42,+42
+42,-42
+
+.;42
+$;42
+42;42
+'a;42
+/foo/;42
+?foo?;42
++;42
+-;42
++42;42
+-42;42
+
+42;.
+42;$
+42;42
+42;'a
+42;/foo/
+42;/foo
+42;?foo?
+42;?foo
+42;+
+42;-
+42;+42
+42;-42
+
+
+# whitespace
+
+.     , .
+$     , $
+42    , 42
+'a    , 'a
+/foo/ , /foo/
+?foo? , ?foo?
+/foo/ , /foo
+?foo? , ?foo
++     , +
+-     , -
++42   , +42
+-42   , -42
+
+.     ; .
+$     ; $
+42    ; 42
+'a    ; 'a
+/foo/ ; /foo/
+?foo? ; ?foo?
+/foo/ ; /foo
+?foo? ; ?foo
++     ; +
+-     ; -
++42   ; +42
+-42   ; -42
+
+
diff --git a/runtime/syntax/testdir/input/ed_commands.ed b/runtime/syntax/testdir/input/ed_commands.ed
new file mode 100644 (file)
index 0000000..dabf08b
--- /dev/null
@@ -0,0 +1,824 @@
+# ed(1) commands
+
+
+# Append Command
+
+
+a
+.
+
+a
+line 1
+.
+
+a
+line 1
+line 2
+line 3
+.
+
+an
+line 1
+.
+
+al
+line 1
+.
+
+ap
+line 1
+.
+
+.a
+line 1
+.
+
+# extensions
+
+alnp
+line 1
+.
+
+# global subcommand
+
+g/foo/a\
+.
+
+g/foo/a\
+line 1
+
+g/foo/a\
+line 1\
+.
+
+g/foo/a\
+line 1\
+.\
+p
+
+g/foo/al\
+line 1\
+.
+
+# Change Command
+
+
+c
+.
+
+c
+line 1
+.
+
+c
+line 1
+line 2
+line 3
+.
+
+cn
+line 1
+.
+
+cl
+line 1
+.
+
+cp
+line 1
+.
+
+.,.c
+line 1
+.
+
+# extensions
+
+clnp
+line 1
+.
+
+# global subcommand
+
+g/foo/c\
+.
+
+g/foo/c\
+line 1
+
+g/foo/c\
+line 1\
+.
+
+g/foo/c\
+line 1\
+.\
+p
+
+g/foo/cl\
+line 1\
+.
+
+
+# Delete Command
+
+
+d
+.,.d
+
+dl
+dn
+dp
+
+# extensions
+
+dlnp
+
+
+# Edit Command
+
+
+e
+e filename
+
+e !echo Input text
+e !!
+
+
+# Edit Without Checking Command
+
+
+E
+E filename
+
+
+# Filename Command
+
+
+f
+f filename
+
+
+# Global Command
+
+
+g/
+g//
+g/foo
+g/foo/
+
+1,$g/
+1,$g//
+1,$g/foo
+1,$g/foo/
+
+g//p
+g//\
+p
+
+g//l\
+n\
+p
+g//\
+l\
+n\
+p
+
+1,$g/foo/p
+1,$g/foo/.,+1p
+1,$g/foo/\
+.,+1p
+
+
+# Interactive Global Command
+
+
+G/
+G//
+G/foo
+G/foo/
+
+1,$G/
+1,$G//
+1,$G/foo
+1,$G/foo/
+
+G/foo/
+d
+&
+
+
+# Help Command
+
+h
+
+hl
+hn
+hp
+
+
+# extensions
+
+hlnp
+
+
+# Help Mode Command
+
+H
+
+Hl
+Hn
+Hp
+
+# extensions
+
+Hlnp
+
+
+# Insert Command
+
+
+i
+.
+
+i
+line 1
+.
+
+i
+line 1
+line 2
+line 3
+.
+
+in
+line 1
+.
+
+il
+line 1
+.
+
+ip
+line 1
+.
+
+.i
+line 1
+.
+
+# extensions
+
+ilnp
+line 1
+.
+
+# global subcommand
+
+g/foo/i\
+.
+
+g/foo/i\
+line 1
+
+g/foo/i\
+line 1\
+.
+
+g/foo/i\
+line 1\
+.\
+p
+
+g/foo/il\
+line 1\
+.
+
+
+# Join Command
+
+
+j
+.,.+1j
+
+jl
+jn
+jp
+
+# extensions
+
+jlnp
+
+
+# Mark Command
+
+
+ka
+.ka
+
+kal
+kan
+kap
+
+# extensions
+
+kalnp
+
+
+# List Command
+
+
+l
+.,.l
+
+ll
+ln
+lp
+
+# extensions
+
+llnp
+
+
+# Move Command
+
+
+m$
+.,.m$
+
+m/pattern/
+.,.m/pattern/
+
+ml
+mn
+mp
+
+m$l
+m$n
+m$p
+
+m/pattern/l
+m/pattern/n
+m/pattern/p
+
+# extensions
+
+mlnp
+m$lnp
+m/pattern/lnp
+
+
+# Number Command
+
+
+n
+.,.n
+
+nl
+nn
+np
+
+# extensions
+
+nlnp
+
+
+# Print Command
+
+
+p
+.,.p
+
+pl
+pn
+pp
+
+# extensions
+
+plnp
+
+
+# Prompt Command
+
+
+P
+
+Pl
+Pn
+Pp
+
+# extensions
+
+Plnp
+
+
+# Quit Command
+
+
+q
+
+
+# Quit Without Checking Command
+
+Q
+
+
+# Read Command
+
+r
+r filename
+$r
+$r filename
+
+r !echo Input text
+r !!
+
+
+# Substitute Command
+
+
+s/foo/bar/
+.,.s/foo/bar/
+
+s//bar
+
+s/foo/barbaz
+s/foo/bar\
+baz
+s/foo/bar\
+baz/
+
+s/foo/bar&baz
+s/foo/bar&\
+baz
+s/foo/bar&\
+baz/
+
+s/foo/%
+s/foo/%/
+
+s/foo/\%
+s/foo/\%/
+s/foo/%%
+s/foo/%%/
+s/foo/%a
+s/foo/%a/
+s/foo/a%
+s/foo/a%/
+s/foo/%a%
+s/foo/%a%/
+
+s/foo/bar\1baz/
+s/foo/bar\2baz/
+s/foo/bar\3baz/
+s/foo/bar\4baz/
+s/foo/bar\5baz/
+s/foo/bar\6baz/
+s/foo/bar\7baz/
+s/foo/bar\8baz/
+s/foo/bar\9baz/
+
+s/foo/bar\10baz/
+s/foo/bar\11baz/
+s/foo/bar\12baz/
+s/foo/bar\13baz/
+s/foo/bar\14baz/
+s/foo/bar\15baz/
+s/foo/bar\16baz/
+s/foo/bar\17baz/
+s/foo/bar\18baz/
+s/foo/bar\19baz/
+
+
+# flags
+
+s/foo/bar/g
+s/foo/bar/l
+s/foo/bar/n
+s/foo/bar/p
+
+s/foo/bar/gl
+s/foo/bar/gn
+s/foo/bar/gp
+s/foo/bar/lg
+s/foo/bar/ln
+s/foo/bar/lp
+s/foo/bar/ng
+s/foo/bar/nl
+s/foo/bar/np
+s/foo/bar/pg
+s/foo/bar/pl
+s/foo/bar/pn
+
+s/foo/bar/gln
+s/foo/bar/glp
+s/foo/bar/gnl
+s/foo/bar/gnp
+s/foo/bar/gpl
+s/foo/bar/gpn
+s/foo/bar/lgn
+s/foo/bar/lgp
+s/foo/bar/lng
+s/foo/bar/lnp
+s/foo/bar/lpg
+s/foo/bar/lpn
+s/foo/bar/ngl
+s/foo/bar/ngp
+s/foo/bar/nlg
+s/foo/bar/nlp
+s/foo/bar/npg
+s/foo/bar/npl
+s/foo/bar/pgl
+s/foo/bar/pgn
+s/foo/bar/plg
+s/foo/bar/pln
+s/foo/bar/png
+s/foo/bar/pnl
+
+s/foo/bar/glnp
+s/foo/bar/glpn
+s/foo/bar/gnlp
+s/foo/bar/gnpl
+s/foo/bar/gpln
+s/foo/bar/gpnl
+s/foo/bar/lgnp
+s/foo/bar/lgpn
+s/foo/bar/lngp
+s/foo/bar/lnpg
+s/foo/bar/lpgn
+s/foo/bar/lpng
+s/foo/bar/nglp
+s/foo/bar/ngpl
+s/foo/bar/nlgp
+s/foo/bar/nlpg
+s/foo/bar/npgl
+s/foo/bar/nplg
+s/foo/bar/pgln
+s/foo/bar/pgnl
+s/foo/bar/plgn
+s/foo/bar/plng
+s/foo/bar/pngl
+s/foo/bar/pnlg
+
+
+s/foo/bar/3
+s/foo/bar/l
+s/foo/bar/n
+s/foo/bar/p
+
+s/foo/bar/3l
+s/foo/bar/3n
+s/foo/bar/3p
+s/foo/bar/l3
+s/foo/bar/ln
+s/foo/bar/lp
+s/foo/bar/n3
+s/foo/bar/nl
+s/foo/bar/np
+s/foo/bar/p3
+s/foo/bar/pl
+s/foo/bar/pn
+
+s/foo/bar/3ln
+s/foo/bar/3lp
+s/foo/bar/3nl
+s/foo/bar/3np
+s/foo/bar/3pl
+s/foo/bar/3pn
+s/foo/bar/l3n
+s/foo/bar/l3p
+s/foo/bar/ln3
+s/foo/bar/lnp
+s/foo/bar/lp3
+s/foo/bar/lpn
+s/foo/bar/n3l
+s/foo/bar/n3p
+s/foo/bar/nl3
+s/foo/bar/nlp
+s/foo/bar/np3
+s/foo/bar/npl
+s/foo/bar/p3l
+s/foo/bar/p3n
+s/foo/bar/pl3
+s/foo/bar/pln
+s/foo/bar/pn3
+s/foo/bar/pnl
+
+s/foo/bar/3lnp
+s/foo/bar/3lpn
+s/foo/bar/3nlp
+s/foo/bar/3npl
+s/foo/bar/3pln
+s/foo/bar/3pnl
+s/foo/bar/l3np
+s/foo/bar/l3pn
+s/foo/bar/ln3p
+s/foo/bar/lnp3
+s/foo/bar/lp3n
+s/foo/bar/lpn3
+s/foo/bar/n3lp
+s/foo/bar/n3pl
+s/foo/bar/nl3p
+s/foo/bar/nlp3
+s/foo/bar/np3l
+s/foo/bar/npl3
+s/foo/bar/p3ln
+s/foo/bar/p3nl
+s/foo/bar/pl3n
+s/foo/bar/pln3
+s/foo/bar/pn3l
+s/foo/bar/pnl3
+
+
+# repeat last substitute
+
+s3
+sg
+sp
+sr
+
+s3g
+s3p
+s3r
+sg3
+sgp
+sgr
+sp3
+spg
+spr
+sr3
+srg
+srp
+
+s3gp
+s3gr
+s3pg
+s3pr
+s3rg
+s3rp
+sg3p
+sg3r
+sgp3
+sgpr
+sgr3
+sgrp
+sp3g
+sp3r
+spg3
+spgr
+spr3
+sprg
+sr3g
+sr3p
+srg3
+srgp
+srp3
+srpg
+
+s3gpr
+s3grp
+s3pgr
+s3prg
+s3rgp
+s3rpg
+sg3pr
+sg3rp
+sgp3r
+sgpr3
+sgr3p
+sgrp3
+sp3gr
+sp3rg
+spg3r
+spgr3
+spr3g
+sprg3
+sr3gp
+sr3pg
+srg3p
+srgp3
+srp3g
+srpg3
+
+# repeat last substitute flags as delimiters
+
+s3...3...3
+sg...g...g
+sp...p...p
+sr...r...r
+
+
+# Copy Command
+
+
+t$
+.,.t$
+
+t/pattern/
+.,.t/pattern/
+
+tl
+tn
+tp
+
+t$l
+t$n
+t$p
+
+t/pattern/l
+t/pattern/n
+t/pattern/p
+
+# extensions
+
+tlnp
+t$lnp
+t/pattern/lnp
+
+
+# Undo Command
+
+
+u
+
+ul
+un
+up
+
+# extensions
+
+ulnp
+
+
+# Global Non-Matched Command
+
+
+v/
+v//
+v/foo
+v/foo/
+
+1,$v/
+1,$v//
+1,$v/foo
+1,$v/foo/
+
+
+# Interactive Global Non-Matched Command
+
+
+V/
+V//
+V/foo
+V/foo/
+
+1,$V/
+1,$V//
+1,$V/foo
+1,$V/foo/
+
+
+# Write Command
+
+
+w
+1,$w
+w filename
+1,$w filename
+
+
+# Line Number Command
+
+
+=
+$=
+
+=l
+=n
+=p
+
+# extensions
+
+=lnp
+
+
+# Shell Escape Command
+
+
+!echo "Foo"
+
+!!
+
+!echo %
+!echo \%
+!echo \\%
+!echo \\\%
+!echo \\\\%
+
+
+# Null Command
+
+
+.+1
+
+
index 9eff140299a1800dd78343c5b4fefb24276fc171..59020deae20b5fa365a17e2955733f18370d992c 100644 (file)
@@ -271,6 +271,7 @@ def s:GetFilenameChecks(): dict<list<string>>
     dylanlid: ['file.lid'],
     earthfile: ['Earthfile'],
     ecd: ['file.ecd'],
+    ed: ['file.ed'],
     edif: ['file.edf', 'file.edif', 'file.edo'],
     editorconfig: ['.editorconfig'],
     eelixir: ['file.eex', 'file.leex'],
@@ -1161,6 +1162,7 @@ def s:GetScriptChecks(): dict<list<list<string>>>
     dart:   [['#!/path/dart']],
     bpftrace:  [['#!/path/bpftrace']],
     vim:    [['#!/path/vim']],
+    ed:     [['#!/usr/bin/ed -f']],
   }
 enddef
 
index c69281a7adf3d69a0220c137a66d71ef44058468..d1497635b935c185359947945da6e7eb59d2668d 100644 (file)
@@ -758,6 +758,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    894,
 /**/
     893,
 /**/