summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-05-10 17:54:18 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-05-10 17:54:18 +0200
commit443293aaf09eca7c3b88d621d056c4effee2c248 (patch)
treea35c7b2354295b5b73462c0806e04e2deef58171 /doc
parent4f9022f24c4591391637121c7274d9855b37bd93 (diff)
Implement option class inheritance
For now multiple, non-virtual inheritance is supported. An option class can now also be declared abstract using the class c = 0 {...}; syntax. New option, --exclude-base, controls whether base class information is present in usage and documentation.
Diffstat (limited to 'doc')
-rw-r--r--doc/cli.13
-rw-r--r--doc/cli.xhtml3
-rw-r--r--doc/language.txt12
3 files changed, 17 insertions, 1 deletions
diff --git a/doc/cli.1 b/doc/cli.1
index 3c4e64c..67c397d 100644
--- a/doc/cli.1
+++ b/doc/cli.1
@@ -105,6 +105,9 @@ Indent option descriptions \fIlen\fP characters when printing usage\. This
is useful when you have multiple options classes, potentially in separate
files, and would like their usage to have the same indentation level\.
+.IP "\fB--exclude-base\fP"
+Exclude base class information from usage and documentation\.
+
.IP "\fB--cli-namespace\fP \fIns\fP"
Generate the CLI support types in the \fIns\fP namespace (\fBcli\fP by
default)\. The namespace can be nested, for example \fBdetails::cli\fP\. If
diff --git a/doc/cli.xhtml b/doc/cli.xhtml
index 58ff1f2..fdcde80 100644
--- a/doc/cli.xhtml
+++ b/doc/cli.xhtml
@@ -128,6 +128,9 @@
is useful when you have multiple options classes, potentially in separate
files, and would like their usage to have the same indentation level.</dd>
+ <dt><code><b>--exclude-base</b></code></dt>
+ <dd>Exclude base class information from usage and documentation.</dd>
+
<dt><code><b>--cli-namespace</b></code> <i>ns</i></dt>
<dd>Generate the CLI support types in the <i>ns</i> namespace
(<code><b>cli</b></code> by default). The namespace can be nested, for
diff --git a/doc/language.txt b/doc/language.txt
index 0a5ee5f..445d743 100644
--- a/doc/language.txt
+++ b/doc/language.txt
@@ -42,7 +42,17 @@ namespace-body:
decl-seq(opt)
class-def:
- "class" identifier "{" option-def-seq(opt) "};"
+ "class" identifier inheritance-spec(opt) abstract-spec(opt) "{" option-def-seq(opt) "};"
+
+inheritance-spec:
+ ":" base-seq
+
+base-seq:
+ qualified-name
+ base-seq "," qualified-name
+
+abstract-spec:
+ "=" "0"
option-def-seq:
option-def