@@ -817,7 +817,7 @@ Result<typename Ctx::MemTypeT> memtypeContinued(Ctx& ctx, Type indexType) {
817817 return ctx.makeMemType (indexType, *limits, shared);
818818}
819819
820- // tabletype ::= limits32 reftype
820+ // tabletype ::= ( limits32 | 'i32' limits32 | 'i64' limit64) reftype
821821template <typename Ctx> Result<typename Ctx::TableTypeT> tabletype (Ctx& ctx) {
822822 Type indexType = Type::i32 ;
823823 if (ctx.in .takeKeyword (" i64" sv)) {
@@ -828,7 +828,6 @@ template<typename Ctx> Result<typename Ctx::TableTypeT> tabletype(Ctx& ctx) {
828828 return tabletypeContinued (ctx, indexType);
829829}
830830
831- // tabletype ::= limits32 reftype
832831template <typename Ctx>
833832Result<typename Ctx::TableTypeT> tabletypeContinued (Ctx& ctx, Type indexType) {
834833 auto limits = indexType == Type::i32 ? limits32 (ctx) : limits64 (ctx);
@@ -3064,8 +3063,8 @@ template<typename Ctx> MaybeResult<> func(Ctx& ctx) {
30643063}
30653064
30663065// table ::= '(' 'table' id? ('(' 'export' name ')')*
3067- // '(' 'import' mod:name nm:name ')'? tabletype ')'
3068- // | '(' 'table' id? ('(' 'export' name ')')*
3066+ // '(' 'import' mod:name nm:name ')'? index_type? tabletype ')'
3067+ // | '(' 'table' id? ('(' 'export' name ')')* index_type?
30693068// reftype '(' 'elem' (elemexpr* | funcidx*) ')' ')'
30703069template <typename Ctx> MaybeResult<> table (Ctx& ctx) {
30713070 auto pos = ctx.in .getPos ();
@@ -3146,10 +3145,10 @@ template<typename Ctx> MaybeResult<> table(Ctx& ctx) {
31463145 return Ok{};
31473146}
31483147
3149- // mem ::= '(' 'memory' id? ('(' 'export' name ')')* index_type?
3150- // ('(' 'data' b:datastring ')' | memtype) ')'
3151- // | '(' 'memory' id? ('(' 'export' name ')')*
3152- // '(' 'import' mod:name nm:name ')' memtype ')'
3148+ // memory ::= '(' 'memory' id? ('(' 'export' name ')')* index_type?
3149+ // ('(' 'data' b:datastring ')' | memtype) ')'
3150+ // | '(' 'memory' id? ('(' 'export' name ')')*
3151+ // '(' 'import' mod:name nm:name ')' index_type? memtype ')'
31533152template <typename Ctx> MaybeResult<> memory (Ctx& ctx) {
31543153 auto pos = ctx.in .getPos ();
31553154 if (!ctx.in .takeSExprStart (" memory" sv)) {
0 commit comments