From 3c9766e31576ca40ded48ea18ca41059076b7f08 Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Thu, 4 Dec 2025 11:16:39 -0600 Subject: [PATCH 1/7] Update binary spec to deduplicate externtypes --- document/core/binary/modules.rst | 6 +++--- document/core/util/macros.def | 2 +- specification/wasm-3.0/5.4-binary.modules.spectec | 7 ++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/document/core/binary/modules.rst b/document/core/binary/modules.rst index ccb7b5fe3..f9315162c 100644 --- a/document/core/binary/modules.rst +++ b/document/core/binary/modules.rst @@ -138,7 +138,7 @@ $${grammar: {Btypesec Btype}} .. index:: ! import section, import, name, function type, table type, memory type, global type, tag type pair: binary format; import pair: section; import -.. _binary-import: +.. _binary-importitem: .. _binary-imports: .. _binary-importdesc: .. _binary-importsec: @@ -149,10 +149,10 @@ Import Section The *import section* has the id 2. It decodes into the list of :ref:`imports ` of a :ref:`module `. -$${grammar: {Bimportsec Bimports Bimport}} +$${grammar: {Bimportsec Bimports Bimportitem}} .. note:: - The encoding of :ref:`imports ` containing ${:0x7F} allows multiple imports to be encoded without repeating the module name. Because ${:0x7F} is not a valid encoding for an :ref:`external type `, the encoding is unambiguous. + The encodings of :ref:`imports ` containing ${:0x7F} and ${:0x7E} allow multiple imports to be encoded without repeating the module name, and potentially also without repeating the externtype. Because ${:0x7F} and ${:0x7E} are not valid encodings for an :ref:`external type `, the encoding is unambiguous. .. index:: ! function section, function, type index, function type diff --git a/document/core/util/macros.def b/document/core/util/macros.def index 4a2ef3e41..783480c62 100644 --- a/document/core/util/macros.def +++ b/document/core/util/macros.def @@ -886,7 +886,7 @@ .. |Bmem| mathdef:: \xref{binary/modules}{binary-mem}{\B{mem}} .. |Bglobal| mathdef:: \xref{binary/modules}{binary-global}{\B{global}} .. |Btag| mathdef:: \xref{binary/modules}{binary-tag}{\B{tag}} -.. |Bimport| mathdef:: \xref{binary/modules}{binary-import}{\B{import}} +.. |Bimportitem| mathdef:: \xref{binary/modules}{binary-importitem}{\B{importitem}} .. |Bimports| mathdef:: \xref{binary/modules}{binary-imports}{\B{imports}} .. |Bexport| mathdef:: \xref{binary/modules}{binary-export}{\B{export}} .. |Belem| mathdef:: \xref{binary/modules}{binary-elem}{\B{elem}} diff --git a/specification/wasm-3.0/5.4-binary.modules.spectec b/specification/wasm-3.0/5.4-binary.modules.spectec index 8bf570f8e..63476f29a 100644 --- a/specification/wasm-3.0/5.4-binary.modules.spectec +++ b/specification/wasm-3.0/5.4-binary.modules.spectec @@ -31,12 +31,13 @@ grammar Btypesec : type* hint(desc "type section") = ;; Import section -grammar Bimport : (name, externtype) = +grammar Bimportitem : (name, externtype) = | nm_2:Bname xt:Bexterntype => (nm_2, xt) grammar Bimports : import* = - | nm_1:Bname (nm_2, xt):Bimport => IMPORT nm_1 nm_2 xt - | nm_1:Bname nm_e:Bname 0x7F (nm_2, xt)*:Blist(Bimport) => (IMPORT nm_1 nm_2 xt)* -- if nm_e = eps + | nm_1:Bname nm_2:Bname xt:Bexterntype => IMPORT nm_1 nm_2 xt + | nm_1:Bname nm_e:Bname 0x7F (nm_2, xt)*:Blist(Bimportitem) => (IMPORT nm_1 nm_2 xt)* -- if nm_e = eps + | nm_1:Bname nm_e:Bname 0x7E xt:Bexterntype nm_2*:Blist(Bname) => (IMPORT nm_1 nm_2 xt)* -- if nm_e = eps grammar Bimportsec : import* hint(desc "import section") = | im**:Bsection_(2, Blist(Bimports)) => $concat_(import, im**) From 3b50ef10e1ec73179344aff419bc027dd049b203 Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Thu, 4 Dec 2025 11:38:40 -0600 Subject: [PATCH 2/7] Update text encoding for new abbreviation --- document/core/text/modules.rst | 6 +++++- specification/wasm-3.0/6.3-text.modules.spectec | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/document/core/text/modules.rst b/document/core/text/modules.rst index f222e83f9..068ecbe35 100644 --- a/document/core/text/modules.rst +++ b/document/core/text/modules.rst @@ -359,7 +359,11 @@ Abbreviations Multiple imports with the same ${:nm_1} may be declared together: -$${grammar: Timports_/abbrev} +$${grammar: Timports_/abbrev-compact1} + +Multiple imports with the same ${:nm_1} and ${:xt} may also be declared together, in which case identifiers may be placed on individual items instead of the ${:externtype}: + +$${grammar: Timports_/abbrev-compact2} Imports may also be specified inline with :ref:`tag `, diff --git a/specification/wasm-3.0/6.3-text.modules.spectec b/specification/wasm-3.0/6.3-text.modules.spectec index 7cee6a76a..c0eafec25 100644 --- a/specification/wasm-3.0/6.3-text.modules.spectec +++ b/specification/wasm-3.0/6.3-text.modules.spectec @@ -134,9 +134,14 @@ grammar Timport_(I)/plain : (import, idctxt) = | "(" "import" nm_1:Tname nm_2:Tname (xt,I'):Texterntype_(I) ")" => (IMPORT nm_1 nm_2 xt, I') | ... -grammar Timports_(I)/abbrev : (import*, idctxt) = +grammar Timports_(I)/abbrev-compact1 : (import*, idctxt) = | "(" "import" nm_1:Tname ("(" "item" nm_2:Tname Texterntype_(I) ")")* ")" == ("(" "import" nm_1:Tname nm_2:Tname Texterntype_(I) ")")* + | ... + +grammar Timports_(I)/abbrev-compact2 : (import*, idctxt) = ... + | "(" "import" nm_1:Tname "(" "type" Texterntype_(I) ("(" "item" id?:Tid? nm_2:Tname ")")* ")" ")" == + ("(" "import" nm_1:Tname nm_2:Tname Texterntype_(I) ")")* grammar Timport_(I)/abbrev-tag : (import, idctxt) = ... | "(" "tag" Tid? "(" "import" Tname^2 ")" Ttagtype_(I) ")" == From 46ef6620fcef12a06438b4104a4fa2f1cb0ad30e Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Thu, 4 Dec 2025 11:43:15 -0600 Subject: [PATCH 3/7] Update test files --- spectec/doc/example/output/NanoWasm.pdf | Bin 245502 -> 244198 bytes spectec/test-frontend/TEST.md | 9 +++++--- spectec/test-latex/TEST.md | 7 +++--- spectec/test-middlend/TEST.md | 27 ++++++++++++++++-------- spectec/test-splice/TEST.md | 5 +++-- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/spectec/doc/example/output/NanoWasm.pdf b/spectec/doc/example/output/NanoWasm.pdf index cfd46145b73e40e8ab7cf85bf9ff11439862207b..1d1febae40b97775362427f6192b4fdfe7a326a6 100644 GIT binary patch delta 15823 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%0A_P%Li1dt%=#j5LBQw+l|n}7vwt?6 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 ty*{ty <- `ty*`} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec -grammar Bimport : (name, externtype) +grammar Bimportitem : (name, externtype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec prod{nm_2 : name, xt : externtype} {{nm_2:Bname} {xt:Bexterntype}} => (nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimports : import* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {(nm_2, xt):Bimport}} => [IMPORT_import(nm_1, nm_2, xt)] + prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => [IMPORT_import(nm_1, nm_2, xt)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimport)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimportitem)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + -- if (nm_e = `%`_name([])) + ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec + prod{nm_1 : name, nm_e : name, xt : externtype, `nm_2*` : name*} {{nm_1:Bname} {nm_e:Bname} {0x7E} {xt:Bexterntype} {nm_2*{nm_2 <- `nm_2*`}:Blist(syntax name, grammar Bname)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`} -- if (nm_e = `%`_name([])) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec diff --git a/spectec/test-latex/TEST.md b/spectec/test-latex/TEST.md index 9cab84c70..112dbdcbf 100644 --- a/spectec/test-latex/TEST.md +++ b/spectec/test-latex/TEST.md @@ -12024,9 +12024,10 @@ $$ $$ \begin{array}[t]{@{}lrrl@{}l@{}l@{}l@{}} -& {\mathtt{import}} & ::= & {\mathit{nm}}_2{:}{\mathtt{name}}~~{\mathit{xt}}{:}{\mathtt{externtype}} & \quad\Rightarrow\quad{} & ({\mathit{nm}}_2, {\mathit{xt}}) \\ -& {\mathtt{imports}} & ::= & {\mathit{nm}}_1{:}{\mathtt{name}}~~({\mathit{nm}}_2, {\mathit{xt}}){:}{\mathtt{import}} & \quad\Rightarrow\quad{} & \mathsf{import}~{\mathit{nm}}_1~{\mathit{nm}}_2~{\mathit{xt}} \\ -& & | & {\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_e{:}{\mathtt{name}}~~\mathtt{0x7F}~~{({\mathit{nm}}_2, {\mathit{xt}})^\ast}{:}{\mathtt{list}}({\mathtt{import}}) & \quad\Rightarrow\quad{} & {(\mathsf{import}~{\mathit{nm}}_1~{\mathit{nm}}_2~{\mathit{xt}})^\ast} & \quad \mbox{if}~ {\mathit{nm}}_e = \epsilon \\ +& {\mathtt{importitem}} & ::= & {\mathit{nm}}_2{:}{\mathtt{name}}~~{\mathit{xt}}{:}{\mathtt{externtype}} & \quad\Rightarrow\quad{} & ({\mathit{nm}}_2, {\mathit{xt}}) \\ +& {\mathtt{imports}} & ::= & {\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~{\mathit{xt}}{:}{\mathtt{externtype}} & \quad\Rightarrow\quad{} & \mathsf{import}~{\mathit{nm}}_1~{\mathit{nm}}_2~{\mathit{xt}} \\ +& & | & {\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_e{:}{\mathtt{name}}~~\mathtt{0x7F}~~{({\mathit{nm}}_2, {\mathit{xt}})^\ast}{:}{\mathtt{list}}({\mathtt{importitem}}) & \quad\Rightarrow\quad{} & {(\mathsf{import}~{\mathit{nm}}_1~{\mathit{nm}}_2~{\mathit{xt}})^\ast} & \quad \mbox{if}~ {\mathit{nm}}_e = \epsilon \\ +& & | & {\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_e{:}{\mathtt{name}}~~\mathtt{0x7E}~~{\mathit{xt}}{:}{\mathtt{externtype}}~~{{\mathit{nm}}_2^\ast}{:}{\mathtt{list}}({\mathtt{name}}) & \quad\Rightarrow\quad{} & {(\mathsf{import}~{\mathit{nm}}_1~{\mathit{nm}}_2~{\mathit{xt}})^\ast} & \quad \mbox{if}~ {\mathit{nm}}_e = \epsilon \\ \mbox{(import section)} & {\mathtt{importsec}} & ::= & {{{\mathit{im}}^\ast}^\ast}{:}{{\mathtt{section}}}_{2}({\mathtt{list}}({\mathtt{imports}})) & \quad\Rightarrow\quad{} & {\bigoplus}\, {{{\mathit{im}}^\ast}^\ast} \\ \end{array} $$ diff --git a/spectec/test-middlend/TEST.md b/spectec/test-middlend/TEST.md index 157523b22..89c0fbf14 100644 --- a/spectec/test-middlend/TEST.md +++ b/spectec/test-middlend/TEST.md @@ -8698,16 +8698,19 @@ grammar Btypesec : type* prod{`ty*` : type*} ty*{ty <- `ty*`}:Bsection_(1, syntax type, grammar Blist(syntax type, grammar Btype)) => ty*{ty <- `ty*`} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec -grammar Bimport : (name, externtype) +grammar Bimportitem : (name, externtype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec prod{nm_2 : name, xt : externtype} {{nm_2:Bname} {xt:Bexterntype}} => (nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimports : import* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {(nm_2, xt):Bimport}} => [IMPORT_import(nm_1, nm_2, xt)] + prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => [IMPORT_import(nm_1, nm_2, xt)] ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimport)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimportitem)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + -- if (nm_e = `%`_name([])) + ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec + prod{nm_1 : name, nm_e : name, xt : externtype, `nm_2*` : name*} {{nm_1:Bname} {nm_e:Bname} {0x7E} {xt:Bexterntype} {nm_2*{nm_2 <- `nm_2*`}:Blist(syntax name, grammar Bname)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`} -- if (nm_e = `%`_name([])) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec @@ -20050,16 +20053,19 @@ grammar Btypesec : type* prod{`ty*` : type*} ty*{ty <- `ty*`}:Bsection_(1, syntax type, grammar Blist(syntax type, grammar Btype)) => ty*{ty <- `ty*`} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec -grammar Bimport : (name, externtype) +grammar Bimportitem : (name, externtype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec prod{nm_2 : name, xt : externtype} {{nm_2:Bname} {xt:Bexterntype}} => (nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimports : import* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {(nm_2, xt):Bimport}} => [IMPORT_import(nm_1, nm_2, xt)] + prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => [IMPORT_import(nm_1, nm_2, xt)] + ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec + prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimportitem)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + -- if (nm_e = `%`_name([])) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimport)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + prod{nm_1 : name, nm_e : name, xt : externtype, `nm_2*` : name*} {{nm_1:Bname} {nm_e:Bname} {0x7E} {xt:Bexterntype} {nm_2*{nm_2 <- `nm_2*`}:Blist(syntax name, grammar Bname)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`} -- if (nm_e = `%`_name([])) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec @@ -31581,16 +31587,19 @@ grammar Btypesec : type* prod{`ty*` : type*} ty*{ty <- `ty*`}:Bsection_(1, syntax type, grammar Blist(syntax type, grammar Btype)) => ty*{ty <- `ty*`} ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec -grammar Bimport : (name, externtype) +grammar Bimportitem : (name, externtype) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec prod{nm_2 : name, xt : externtype} {{nm_2:Bname} {xt:Bexterntype}} => (nm_2, xt) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec grammar Bimports : import* ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {(nm_2, xt):Bimport}} => [IMPORT_import(nm_1, nm_2, xt)] + prod{nm_1 : name, nm_2 : name, xt : externtype} {{nm_1:Bname} {nm_2:Bname} {xt:Bexterntype}} => [IMPORT_import(nm_1, nm_2, xt)] + ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec + prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimportitem)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + -- if (nm_e = `%`_name([])) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec - prod{nm_1 : name, nm_e : name, `nm_2*` : name*, `xt*` : externtype*} {{nm_1:Bname} {nm_e:Bname} {0x7F} {(nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`}:Blist(syntax (name, externtype), grammar Bimport)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`, xt <- `xt*`} + prod{nm_1 : name, nm_e : name, xt : externtype, `nm_2*` : name*} {{nm_1:Bname} {nm_e:Bname} {0x7E} {xt:Bexterntype} {nm_2*{nm_2 <- `nm_2*`}:Blist(syntax name, grammar Bname)}} => IMPORT_import(nm_1, nm_2, xt)*{nm_2 <- `nm_2*`} -- if (nm_e = `%`_name([])) ;; ../../../../specification/wasm-3.0/5.4-binary.modules.spectec diff --git a/spectec/test-splice/TEST.md b/spectec/test-splice/TEST.md index db9142492..ac79aa143 100644 --- a/spectec/test-splice/TEST.md +++ b/spectec/test-splice/TEST.md @@ -545,7 +545,7 @@ warning: grammar `Bglobalsec` was never spliced warning: grammar `Bglobaltype` was never spliced warning: grammar `Bheaptype` was never spliced warning: grammar `BiN` was never spliced -warning: grammar `Bimport` was never spliced +warning: grammar `Bimportitem` was never spliced warning: grammar `Bimports` was never spliced warning: grammar `Bimportsec` was never spliced warning: grammar `Binstr/parametric` was never spliced @@ -769,7 +769,8 @@ warning: grammar `Timport_/abbrev-mem` was never spliced warning: grammar `Timport_/abbrev-table` was never spliced warning: grammar `Timport_/abbrev-func` was never spliced warning: grammar `Timportdots` was never spliced -warning: grammar `Timports_/abbrev` was never spliced +warning: grammar `Timports_/abbrev-compact1` was never spliced +warning: grammar `Timports_/abbrev-compact2` was never spliced warning: grammar `Tinstr_` was never spliced warning: grammar `Tinstrs_/unfolded` was never spliced warning: grammar `Tinstrs_/folded` was never spliced From 21708e5fa4b190294cae159c7b3431f6ff6703ec Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Thu, 4 Dec 2025 14:33:26 -0600 Subject: [PATCH 4/7] Actually update test files, question mark? --- spectec/doc/example/output/NanoWasm.pdf | Bin 244198 -> 244198 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/spectec/doc/example/output/NanoWasm.pdf b/spectec/doc/example/output/NanoWasm.pdf index 1d1febae40b97775362427f6192b4fdfe7a326a6..99ec11941baa26d3128142d958172924cc4fd6d3 100644 GIT binary patch delta 112 zcmaF%neW+WzJ?aY7N#xCuhz4g7#kTGPJh3iSq{S7F0_HUip|-~%*e^n)y3G!&DqS= h$k5r+$k@da$gp%YH83+YH?>o+A*5vc`EAVN%mB$NAFu!b delta 112 zcmaF%neW+WzJ?aY7N#xCuhz2~niv@wOn<+gSq{S7F0_HUip|-`+``Pw&Dhn{$;Hvo j(#+Y>+0nq!%*fox)!f|7z}Ur3!G@5M?dP{Ki!%cN$=M&! From d9e68c553077f48a1ef6a0a462664ba9b0556835 Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Thu, 4 Dec 2025 14:33:26 -0600 Subject: [PATCH 5/7] For actual real this time --- spectec/doc/example/output/NanoWasm.pdf | Bin 244198 -> 244198 bytes spectec/test-frontend/TEST.md | 88 ++++---- spectec/test-latex/TEST.md | 6 + spectec/test-middlend/TEST.md | 264 ++++++++++++------------ 4 files changed, 182 insertions(+), 176 deletions(-) diff --git a/spectec/doc/example/output/NanoWasm.pdf b/spectec/doc/example/output/NanoWasm.pdf index 99ec11941baa26d3128142d958172924cc4fd6d3..0f0d506c503f80260e4a247e76d5351a8002c891 100644 GIT binary patch delta 324 zcmaF%neW+Wz76?8^_$Q6l$A|d{e#h#;}R?X*7gac%^b4x=P6JsL_Gjm603sYB90|P@R7Xwo_Lpuct^+~pI@b>!Y zGV7i#SW{@V|Hn7I-SVmOK9dH?_b diff --git a/spectec/test-frontend/TEST.md b/spectec/test-frontend/TEST.md index 153ea496d..566ec7607 100644 --- a/spectec/test-frontend/TEST.md +++ b/spectec/test-frontend/TEST.md @@ -10977,13 +10977,13 @@ syntax decl = ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:261.1-261.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.76 def $typesd(decl*) : type* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.23 def $typesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.48 def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:280.1-280.57 def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -10991,13 +10991,13 @@ def $typesd(decl*) : type* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:262.1-262.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.78 def $importsd(decl*) : import* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:277.1-277.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.25 def $importsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.56 def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:284.1-284.61 def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11005,13 +11005,13 @@ def $importsd(decl*) : import* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:263.1-263.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.75 def $tagsd(decl*) : tag* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:281.1-281.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.22 def $tagsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.44 def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:288.1-288.55 def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11019,13 +11019,13 @@ def $tagsd(decl*) : tag* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:264.1-264.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.78 def $globalsd(decl*) : global* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:285.1-285.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.25 def $globalsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.56 def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:292.1-292.61 def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11033,13 +11033,13 @@ def $globalsd(decl*) : global* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:265.1-265.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.75 def $memsd(decl*) : mem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:289.1-289.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.22 def $memsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.44 def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:296.1-296.55 def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11047,13 +11047,13 @@ def $memsd(decl*) : mem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.77 def $tablesd(decl*) : table* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:293.1-293.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.24 def $tablesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.52 def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:300.1-300.59 def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11061,13 +11061,13 @@ def $tablesd(decl*) : table* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:272.1-272.76 def $funcsd(decl*) : func* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:297.1-297.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.23 def $funcsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.48 def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:304.1-304.57 def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11075,13 +11075,13 @@ def $funcsd(decl*) : func* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.76 def $datasd(decl*) : data* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:301.1-301.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.23 def $datasd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.48 def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:308.1-308.57 def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11089,13 +11089,13 @@ def $datasd(decl*) : data* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.76 def $elemsd(decl*) : elem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:305.1-305.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.23 def $elemsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.48 def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:312.1-312.57 def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11103,13 +11103,13 @@ def $elemsd(decl*) : elem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.77 def $startsd(decl*) : start* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:309.1-309.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.24 def $startsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.52 def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:316.1-316.59 def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11117,13 +11117,13 @@ def $startsd(decl*) : start* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:276.1-276.78 def $exportsd(decl*) : export* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:313.1-313.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:318.1-318.25 def $exportsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:319.1-319.56 def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:320.1-320.61 def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) -- otherwise } diff --git a/spectec/test-latex/TEST.md b/spectec/test-latex/TEST.md index 112dbdcbf..c7a612cbf 100644 --- a/spectec/test-latex/TEST.md +++ b/spectec/test-latex/TEST.md @@ -13590,6 +13590,12 @@ $$ {(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~{{\mathtt{externtype}}}_{I}~~\mbox{‘\texttt{{)}}’})^\ast} \\ \end{array} } \\ +& & | & \mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{type}’}~~{{\mathtt{externtype}}}_{I}~~{(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{item}’}~~{{\mathit{id}}^?}{:}{{\mathtt{id}}^?}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~\mbox{‘\texttt{{)}}’})^\ast}~~\mbox{‘\texttt{{)}}’}~~\mbox{‘\texttt{{)}}’} & \quad\equiv\quad{} & & \\ +&&& \multicolumn{4}{@{}l@{}}{\quad +\begin{array}[t]{@{}l@{}} +{(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~{{\mathtt{externtype}}}_{I}~~\mbox{‘\texttt{{)}}’})^\ast} \\ +\end{array} +} \\ & {{\mathtt{import}}}_{I} & ::= & \dots \\ & & | & \mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{tag}’}~~{{\mathtt{id}}^?}~~\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{{\mathtt{name}}^{2}}~~\mbox{‘\texttt{{)}}’}~~{{\mathtt{tagtype}}}_{I}~~\mbox{‘\texttt{{)}}’} & \quad\equiv\quad{} & & \\ &&& \multicolumn{4}{@{}l@{}}{\quad diff --git a/spectec/test-middlend/TEST.md b/spectec/test-middlend/TEST.md index 89c0fbf14..0d20910d9 100644 --- a/spectec/test-middlend/TEST.md +++ b/spectec/test-middlend/TEST.md @@ -10967,13 +10967,13 @@ syntax decl = ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:261.1-261.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.76 def $typesd(decl*) : type* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.23 def $typesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.48 def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:280.1-280.57 def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -10981,13 +10981,13 @@ def $typesd(decl*) : type* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:262.1-262.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.78 def $importsd(decl*) : import* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:277.1-277.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.25 def $importsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.56 def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:284.1-284.61 def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -10995,13 +10995,13 @@ def $importsd(decl*) : import* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:263.1-263.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.75 def $tagsd(decl*) : tag* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:281.1-281.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.22 def $tagsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.44 def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:288.1-288.55 def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11009,13 +11009,13 @@ def $tagsd(decl*) : tag* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:264.1-264.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.78 def $globalsd(decl*) : global* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:285.1-285.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.25 def $globalsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.56 def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:292.1-292.61 def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11023,13 +11023,13 @@ def $globalsd(decl*) : global* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:265.1-265.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.75 def $memsd(decl*) : mem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:289.1-289.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.22 def $memsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.44 def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:296.1-296.55 def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11037,13 +11037,13 @@ def $memsd(decl*) : mem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.77 def $tablesd(decl*) : table* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:293.1-293.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.24 def $tablesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.52 def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:300.1-300.59 def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11051,13 +11051,13 @@ def $tablesd(decl*) : table* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:272.1-272.76 def $funcsd(decl*) : func* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:297.1-297.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.23 def $funcsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.48 def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:304.1-304.57 def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11065,13 +11065,13 @@ def $funcsd(decl*) : func* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.76 def $datasd(decl*) : data* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:301.1-301.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.23 def $datasd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.48 def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:308.1-308.57 def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11079,13 +11079,13 @@ def $datasd(decl*) : data* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.76 def $elemsd(decl*) : elem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:305.1-305.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.23 def $elemsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.48 def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:312.1-312.57 def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11093,13 +11093,13 @@ def $elemsd(decl*) : elem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.77 def $startsd(decl*) : start* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:309.1-309.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.24 def $startsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.52 def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:316.1-316.59 def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -11107,13 +11107,13 @@ def $startsd(decl*) : start* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:276.1-276.78 def $exportsd(decl*) : export* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:313.1-313.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:318.1-318.25 def $exportsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:319.1-319.56 def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:320.1-320.61 def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22322,13 +22322,13 @@ syntax decl = ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:261.1-261.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.76 def $typesd(decl*) : type* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.23 def $typesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.48 def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:280.1-280.57 def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22336,13 +22336,13 @@ def $typesd(decl*) : type* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:262.1-262.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.78 def $importsd(decl*) : import* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:277.1-277.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.25 def $importsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.56 def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:284.1-284.61 def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22350,13 +22350,13 @@ def $importsd(decl*) : import* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:263.1-263.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.75 def $tagsd(decl*) : tag* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:281.1-281.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.22 def $tagsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.44 def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:288.1-288.55 def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22364,13 +22364,13 @@ def $tagsd(decl*) : tag* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:264.1-264.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.78 def $globalsd(decl*) : global* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:285.1-285.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.25 def $globalsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.56 def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:292.1-292.61 def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22378,13 +22378,13 @@ def $globalsd(decl*) : global* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:265.1-265.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.75 def $memsd(decl*) : mem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:289.1-289.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.22 def $memsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.44 def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:296.1-296.55 def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22392,13 +22392,13 @@ def $memsd(decl*) : mem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.77 def $tablesd(decl*) : table* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:293.1-293.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.24 def $tablesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.52 def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:300.1-300.59 def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22406,13 +22406,13 @@ def $tablesd(decl*) : table* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:272.1-272.76 def $funcsd(decl*) : func* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:297.1-297.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.23 def $funcsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.48 def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:304.1-304.57 def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22420,13 +22420,13 @@ def $funcsd(decl*) : func* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.76 def $datasd(decl*) : data* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:301.1-301.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.23 def $datasd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.48 def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:308.1-308.57 def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22434,13 +22434,13 @@ def $datasd(decl*) : data* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.76 def $elemsd(decl*) : elem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:305.1-305.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.23 def $elemsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.48 def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:312.1-312.57 def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22448,13 +22448,13 @@ def $elemsd(decl*) : elem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.77 def $startsd(decl*) : start* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:309.1-309.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.24 def $startsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.52 def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:316.1-316.59 def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -22462,13 +22462,13 @@ def $startsd(decl*) : start* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:276.1-276.78 def $exportsd(decl*) : export* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:313.1-313.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:318.1-318.25 def $exportsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:319.1-319.56 def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:320.1-320.61 def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33856,13 +33856,13 @@ syntax decl = ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:261.1-261.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.76 def $typesd(decl*) : type* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.23 def $typesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.48 def $typesd{type : type, `decl'*` : decl*}([(type : type <: decl)] ++ decl'*{decl' <- `decl'*`}) = [type] ++ $typesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:280.1-280.57 def $typesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $typesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33870,13 +33870,13 @@ def $typesd(decl*) : type* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:262.1-262.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.78 def $importsd(decl*) : import* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:277.1-277.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.25 def $importsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:278.1-278.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.56 def $importsd{import : import, `decl'*` : decl*}([(import : import <: decl)] ++ decl'*{decl' <- `decl'*`}) = [import] ++ $importsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:279.1-279.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:284.1-284.61 def $importsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $importsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33884,13 +33884,13 @@ def $importsd(decl*) : import* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:263.1-263.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.75 def $tagsd(decl*) : tag* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:281.1-281.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.22 def $tagsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:282.1-282.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.44 def $tagsd{tag : tag, `decl'*` : decl*}([(tag : tag <: decl)] ++ decl'*{decl' <- `decl'*`}) = [tag] ++ $tagsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:283.1-283.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:288.1-288.55 def $tagsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tagsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33898,13 +33898,13 @@ def $tagsd(decl*) : tag* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:264.1-264.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.78 def $globalsd(decl*) : global* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:285.1-285.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.25 def $globalsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:286.1-286.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.56 def $globalsd{global : global, `decl'*` : decl*}([(global : global <: decl)] ++ decl'*{decl' <- `decl'*`}) = [global] ++ $globalsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:287.1-287.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:292.1-292.61 def $globalsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $globalsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33912,13 +33912,13 @@ def $globalsd(decl*) : global* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:265.1-265.75 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.75 def $memsd(decl*) : mem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:289.1-289.22 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.22 def $memsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:290.1-290.44 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.44 def $memsd{mem : mem, `decl'*` : decl*}([(mem : mem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [mem] ++ $memsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:291.1-291.55 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:296.1-296.55 def $memsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $memsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33926,13 +33926,13 @@ def $memsd(decl*) : mem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:266.1-266.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.77 def $tablesd(decl*) : table* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:293.1-293.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.24 def $tablesd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:294.1-294.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.52 def $tablesd{table : table, `decl'*` : decl*}([(table : table <: decl)] ++ decl'*{decl' <- `decl'*`}) = [table] ++ $tablesd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:295.1-295.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:300.1-300.59 def $tablesd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $tablesd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33940,13 +33940,13 @@ def $tablesd(decl*) : table* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:267.1-267.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:272.1-272.76 def $funcsd(decl*) : func* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:297.1-297.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.23 def $funcsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:298.1-298.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.48 def $funcsd{func : func, `decl'*` : decl*}([(func : func <: decl)] ++ decl'*{decl' <- `decl'*`}) = [func] ++ $funcsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:299.1-299.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:304.1-304.57 def $funcsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $funcsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33954,13 +33954,13 @@ def $funcsd(decl*) : func* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:268.1-268.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:273.1-273.76 def $datasd(decl*) : data* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:301.1-301.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.23 def $datasd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:302.1-302.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.48 def $datasd{data : data, `decl'*` : decl*}([(data : data <: decl)] ++ decl'*{decl' <- `decl'*`}) = [data] ++ $datasd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:303.1-303.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:308.1-308.57 def $datasd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $datasd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33968,13 +33968,13 @@ def $datasd(decl*) : data* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:269.1-269.76 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:274.1-274.76 def $elemsd(decl*) : elem* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:305.1-305.23 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.23 def $elemsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:306.1-306.48 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.48 def $elemsd{elem : elem, `decl'*` : decl*}([(elem : elem <: decl)] ++ decl'*{decl' <- `decl'*`}) = [elem] ++ $elemsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:307.1-307.57 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:312.1-312.57 def $elemsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $elemsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33982,13 +33982,13 @@ def $elemsd(decl*) : elem* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:270.1-270.77 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:275.1-275.77 def $startsd(decl*) : start* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:309.1-309.24 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.24 def $startsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:310.1-310.52 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.52 def $startsd{start : start, `decl'*` : decl*}([(start : start <: decl)] ++ decl'*{decl' <- `decl'*`}) = [start] ++ $startsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:311.1-311.59 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:316.1-316.59 def $startsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $startsd(decl'*{decl' <- `decl'*`}) -- otherwise } @@ -33996,13 +33996,13 @@ def $startsd(decl*) : start* ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec rec { -;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:271.1-271.78 +;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:276.1-276.78 def $exportsd(decl*) : export* - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:313.1-313.25 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:318.1-318.25 def $exportsd([]) = [] - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:314.1-314.56 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:319.1-319.56 def $exportsd{export : export, `decl'*` : decl*}([(export : export <: decl)] ++ decl'*{decl' <- `decl'*`}) = [export] ++ $exportsd(decl'*{decl' <- `decl'*`}) - ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:315.1-315.61 + ;; ../../../../specification/wasm-3.0/6.3-text.modules.spectec:320.1-320.61 def $exportsd{decl : decl, `decl'*` : decl*}([decl] ++ decl'*{decl' <- `decl'*`}) = $exportsd(decl'*{decl' <- `decl'*`}) -- otherwise } From ae946236268315cd1701bb44d87c4511be2c5be5 Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Mon, 8 Dec 2025 10:43:48 -0600 Subject: [PATCH 6/7] Change text abbreviation for new compact encoding --- document/core/text/modules.rst | 4 ++-- specification/wasm-3.0/6.3-text.modules.spectec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/document/core/text/modules.rst b/document/core/text/modules.rst index 068ecbe35..7b392e4db 100644 --- a/document/core/text/modules.rst +++ b/document/core/text/modules.rst @@ -357,11 +357,11 @@ $${grammar: Timport_/plain} Abbreviations ............. -Multiple imports with the same ${:nm_1} may be declared together: +Multiple imports with the same :ref:`name ` ${:nm_1} may be declared together: $${grammar: Timports_/abbrev-compact1} -Multiple imports with the same ${:nm_1} and ${:xt} may also be declared together, in which case identifiers may be placed on individual items instead of the ${:externtype}: +Multiple imports with the same :ref:`name ` ${:nm_1} and :ref:`external type ` may also be declared together: $${grammar: Timports_/abbrev-compact2} diff --git a/specification/wasm-3.0/6.3-text.modules.spectec b/specification/wasm-3.0/6.3-text.modules.spectec index c0eafec25..5468664e4 100644 --- a/specification/wasm-3.0/6.3-text.modules.spectec +++ b/specification/wasm-3.0/6.3-text.modules.spectec @@ -140,7 +140,7 @@ grammar Timports_(I)/abbrev-compact1 : (import*, idctxt) = | ... grammar Timports_(I)/abbrev-compact2 : (import*, idctxt) = ... - | "(" "import" nm_1:Tname "(" "type" Texterntype_(I) ("(" "item" id?:Tid? nm_2:Tname ")")* ")" ")" == + | "(" "import" nm_1:Tname ("(" "item" nm_2:Tname ")")* Texterntype_(I) ")" == ("(" "import" nm_1:Tname nm_2:Tname Texterntype_(I) ")")* grammar Timport_(I)/abbrev-tag : (import, idctxt) = ... From 28103b46a84cc87f228a359bd31eea116b84a1f5 Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Mon, 8 Dec 2025 10:49:49 -0600 Subject: [PATCH 7/7] Update test files --- spectec/doc/example/output/NanoWasm.pdf | Bin 244198 -> 244200 bytes spectec/test-latex/TEST.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/spectec/doc/example/output/NanoWasm.pdf b/spectec/doc/example/output/NanoWasm.pdf index 0f0d506c503f80260e4a247e76d5351a8002c891..7791fea598a19d3afeaf8c5bcbe0c523a5ef46de 100644 GIT binary patch delta 1080 zcmaF%neWACz71wVjFyuVg*EF_&--Q{HsE1m{Mabp zZGUBARA;^YwDaZcr$ba)wbf`%CG+ucy}8b05{bxoHP3n3x(k+9}u&R1(Xj?~|IBUXr0;W@!NqT-hns#lC?OZTsKnSSksrD0aH6Q$OkH zBs6_Ti$c+Ubr#N|rI%OUsdKQJ%hSu&dcManEyL7pVL));MUAsBHq75%`Rwldd)aTd zo~t`&Wc>Sinze57v>DO=IxpoM+q0tWi30Pq7ppuuZ!k@J`E3%HgV>r2p%b??Ic@L? z_q@f{bwH{oW{zfwDxrXA#p zU=6QK>HGQQiEF{Zwd?95lAkwD+r}WqxLJjV+qOtHrfBv1i%ZQmvxvb#6#* z5>|KiOG;W0=V9Bz&BHC(7BrE4(lX{Z<*#ek|140py8A1uwA19^x8#Xy>pzwAo#6z+ zPH%=a69&=xl@s_66dOA~Ip?Yy+%_U34>mHP2TUW@bUy`~|HW?ZVOuKsRZ07S*z&Hw-a delta 1078 zcmaFyneW+Wz71wV(`{v{38>RIJ&GuhiVus%F^asRJ}6>C`9ICTO$7QJBG9wlt{xQ3C-ck+kY zTT%j3n?a8Pu?Tft}+3dxa z`O>?c7i&!pE#5FCAZ)V!S)aTAVkgC&b@V8)+W+I5-fsC+XCJF(OW}4)VMZWk+HNV# zykQQziJ^s|k+I?Q59^s_V4Us38tf$PiMIXk-`r7AnkcaI{!^8S z+>a&+IK4Ah

UYDbbpG@(Fu@=1~n3HP-owGYq|YC5@#_d1IxPI;Gw?f7|BsyYls0 zzeT0nr_Y}Gw|KMA=^3ierqwPhF-(q&a4wp_s9kb(3Coj)*(IS%VkWTXT@0P{$&oQ) zskOr`R<48fQn9QnIo_~sfB9{4*TH!r6P>sBpB4)6n(iHb?rB_r+jMt#uaaiTK#%2$ zQB#(?3d*ilxg}uTn`EWC{&2x5jit%#opl{iyQ-{m*YaJtYMyNNZb5IV<}CWLI?k&-Ii;^=`~~CQ2L={QeNA=+JTmO+2RtwEvmMYZkm6}FexM`4ba;Vw?X7Ivw=x#z<9Hr; z-(d*fX~^bwN6XB#Ld2)Ba67Z}E42eE#Y=DM%qUx3vwXL4f?Q0&>R(Ip`kr1tU|Jx2 zhiUZ#D`&lp^XBZ~5xeuMzT2c+FeBSLL2`rFp)D6CSU>2BcAl?SIzx2BkwquutyFLG zTJC#y?bGao6DvM_Sua%N+8BMlPp|T1q4WZ;6FDv1Z+JL+wkhULG*!tKUr}QH&3Sb~ z`U$@|JeHlEja7%)KA%Rr~YW8k2|LmWO0s z+WTwgr76D?!ZL6Dy|v;}&+lj3F0J`}&3`HPyZQ4q&hC8wMLYJ3&)Mpw-t%sr2%Yu) z%y(Na?s+yn_rs&Uq`dB~{PfMWD_nY$t-MG>Q~>*z-VBD`1)MLWFET|n+VSTqaNhz_ jbLZ`;oTB%C;q8CS6CI|pP2azhS&_q(OI6j?-;E0Z^dIG3 diff --git a/spectec/test-latex/TEST.md b/spectec/test-latex/TEST.md index c7a612cbf..3e90d188c 100644 --- a/spectec/test-latex/TEST.md +++ b/spectec/test-latex/TEST.md @@ -13590,7 +13590,7 @@ $$ {(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~{{\mathtt{externtype}}}_{I}~~\mbox{‘\texttt{{)}}’})^\ast} \\ \end{array} } \\ -& & | & \mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{type}’}~~{{\mathtt{externtype}}}_{I}~~{(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{item}’}~~{{\mathit{id}}^?}{:}{{\mathtt{id}}^?}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~\mbox{‘\texttt{{)}}’})^\ast}~~\mbox{‘\texttt{{)}}’}~~\mbox{‘\texttt{{)}}’} & \quad\equiv\quad{} & & \\ +& & | & \mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~{(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{item}’}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~\mbox{‘\texttt{{)}}’})^\ast}~~{{\mathtt{externtype}}}_{I}~~\mbox{‘\texttt{{)}}’} & \quad\equiv\quad{} & & \\ &&& \multicolumn{4}{@{}l@{}}{\quad \begin{array}[t]{@{}l@{}} {(\mbox{‘\texttt{{(}}’}~~\mbox{‘\texttt{import}’}~~{\mathit{nm}}_1{:}{\mathtt{name}}~~{\mathit{nm}}_2{:}{\mathtt{name}}~~{{\mathtt{externtype}}}_{I}~~\mbox{‘\texttt{{)}}’})^\ast} \\