aboutsummaryrefslogtreecommitdiff
path: root/doc/language/cpsc-keyword-class.7.md
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-13 14:13:00 +0000
committer_ov4 <ov4@ov4.org>2026-10-13 14:13:00 +0000
commit3b4e89d96afe203bb0e8b5b331bb30d1193d0831 (patch)
tree273802efdf5962d82ad0d7691d286ff6b8b9edd2 /doc/language/cpsc-keyword-class.7.md
parent05cdcb6a1cc3d4de3a0b3d12d4babcd6438b4754 (diff)
Document supported pseudocode with section 7 language manuals
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'doc/language/cpsc-keyword-class.7.md')
-rw-r--r--doc/language/cpsc-keyword-class.7.md43
1 files changed, 43 insertions, 0 deletions
diff --git a/doc/language/cpsc-keyword-class.7.md b/doc/language/cpsc-keyword-class.7.md
new file mode 100644
index 0000000..7ff32ba
--- /dev/null
+++ b/doc/language/cpsc-keyword-class.7.md
@@ -0,0 +1,43 @@
+% CPSC-KEYWORD-CLASS(7)
+
+# NAME
+
+cpsc-keyword-class - define a class with public and private fields
+
+# SYNOPSIS
+
+```text
+CLASS name
+ PUBLIC field : type
+ PRIVATE field : type
+ENDCLASS
+```
+
+# DESCRIPTION
+
+Declare a class at top level with at least one field. Every field explicitly
+requires PUBLIC or PRIVATE, without DECLARE. This differs from guide
+section 10's default-public rule. ENDCLASS closes the declaration.
+
+Classes use record value semantics: zero initialization, whole-value copying,
+arrays, pointers, and ordinary function/procedure parameters. Only PUBLIC
+fields can be accessed externally. PRIVATE fields still initialize and copy
+with the whole value. Methods, constructors, destructors, NEW, INHERITS,
+and array fields are unsupported.
+
+# EXAMPLE
+
+```text
+CLASS Person
+ PUBLIC Name : STRING
+ PRIVATE Age : INTEGER
+ENDCLASS
+DECLARE PersonValue : Person
+PersonValue.Name <- "Alice"
+OUTPUT PersonValue.Name
+```
+
+# SEE ALSO
+
+[cpsc-language-overview(7)](cpsc-language-overview.7.md), [cpsc-keyword-type(7)](cpsc-keyword-type.7.md), [cpsc-keyword-declare(7)](cpsc-keyword-declare.7.md).
+