patch 9.0.1001: classes are not documented or implemented yet

Problem:    Classes are not documented or implemented yet.
Solution:   Make the first steps at documenting Vim9 objects, classes and
            interfaces.  Make initial choices for the syntax.  Add a skeleton
            implementation.  Add "public" and "this" in the command table.
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index ed954ef..c6f85ce 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -126,7 +126,7 @@
 EXCMD(CMD_aboveleft,	"aboveleft",	ex_wrongmodifier,
 	EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM,
 	ADDR_NONE),
-EXCMD(CMD_abstract,	"abstract",	ex_ni,
+EXCMD(CMD_abstract,	"abstract",	ex_class,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_all,		"all",		ex_all,
@@ -354,7 +354,7 @@
 EXCMD(CMD_clast,	"clast",	ex_cc,
 	EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
 	ADDR_UNSIGNED),
-EXCMD(CMD_class,	"class",	ex_ni,
+EXCMD(CMD_class,	"class",	ex_class,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_EXPORT,
 	ADDR_NONE),
 EXCMD(CMD_close,	"close",	ex_close,
@@ -567,16 +567,16 @@
 EXCMD(CMD_endif,	"endif",	ex_endif,
 	EX_TRLBAR|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
-EXCMD(CMD_endinterface,	"endinterface",	ex_ni,
+EXCMD(CMD_endinterface,	"endinterface",	ex_wrongmodifier,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
-EXCMD(CMD_endclass,	"endclass",	ex_ni,
+EXCMD(CMD_endclass,	"endclass",	ex_wrongmodifier,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_enddef,	"enddef",	ex_endfunction,
 	EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
-EXCMD(CMD_endenum,	"endenum",	ex_ni,
+EXCMD(CMD_endenum,	"endenum",	ex_wrongmodifier,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_endfunction,	"endfunction",	ex_endfunction,
@@ -594,7 +594,7 @@
 EXCMD(CMD_enew,		"enew",		ex_edit,
 	EX_BANG|EX_TRLBAR,
 	ADDR_NONE),
-EXCMD(CMD_enum,		"enum",		ex_ni,
+EXCMD(CMD_enum,		"enum",		ex_enum,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_EXPORT,
 	ADDR_NONE),
 EXCMD(CMD_eval,		"eval",		ex_eval,
@@ -756,7 +756,7 @@
 EXCMD(CMD_intro,	"intro",	ex_intro,
 	EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
-EXCMD(CMD_interface,	"interface",	ex_ni,
+EXCMD(CMD_interface,	"interface",	ex_interface,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_isearch,	"isearch",	ex_findpat,
@@ -1215,6 +1215,9 @@
 EXCMD(CMD_put,		"put",		ex_put,
 	EX_RANGE|EX_WHOLEFOLD|EX_BANG|EX_REGSTR|EX_TRLBAR|EX_ZEROR|EX_CMDWIN|EX_LOCK_OK|EX_MODIFY,
 	ADDR_LINES),
+EXCMD(CMD_public,	"public",	ex_wrongmodifier,
+	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
+	ADDR_NONE),
 EXCMD(CMD_pwd,		"pwd",		ex_pwd,
 	EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
@@ -1488,7 +1491,7 @@
 EXCMD(CMD_startreplace,	"startreplace",	ex_startinsert,
 	EX_BANG|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
-EXCMD(CMD_static,	"static",	ex_ni,
+EXCMD(CMD_static,	"static",	ex_wrongmodifier,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
 EXCMD(CMD_stopinsert,	"stopinsert",	ex_stopinsert,
@@ -1614,6 +1617,9 @@
 EXCMD(CMD_throw,	"throw",	ex_throw,
 	EX_EXTRA|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
 	ADDR_NONE),
+EXCMD(CMD_this,		"this",		ex_wrongmodifier,
+	EX_EXTRA|EX_NEEDARG|EX_SBOXOK|EX_CMDWIN|EX_LOCK_OK|EX_WHOLE,
+	ADDR_NONE),
 EXCMD(CMD_tjump,	"tjump",	ex_tag,
 	EX_BANG|EX_TRLBAR|EX_WORD1,
 	ADDR_NONE),
@@ -1665,7 +1671,7 @@
 EXCMD(CMD_tunmap,	"tunmap",	ex_unmap,
 	EX_EXTRA|EX_TRLBAR|EX_NOTRLCOM|EX_CTRLV|EX_CMDWIN|EX_LOCK_OK,
 	ADDR_NONE),
-EXCMD(CMD_type,		"type",		ex_ni,
+EXCMD(CMD_type,		"type",		ex_type,
 	EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK|EX_EXPORT,
 	ADDR_NONE),
 EXCMD(CMD_undo,		"undo",		ex_undo,