diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-05-10 17:54:18 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-05-10 17:54:18 +0200 |
commit | 443293aaf09eca7c3b88d621d056c4effee2c248 (patch) | |
tree | a35c7b2354295b5b73462c0806e04e2deef58171 /tests/parser | |
parent | 4f9022f24c4591391637121c7274d9855b37bd93 (diff) | |
download | cli-443293aaf09eca7c3b88d621d056c4effee2c248.tar.gz cli-443293aaf09eca7c3b88d621d056c4effee2c248.tar.xz cli-443293aaf09eca7c3b88d621d056c4effee2c248.zip |
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 'tests/parser')
-rw-r--r-- | tests/parser/common.cli | 1 | ||||
-rw-r--r-- | tests/parser/makefile | 2 | ||||
-rw-r--r-- | tests/parser/test-001-base.cli (renamed from tests/parser/base.cli) | 0 | ||||
-rw-r--r-- | tests/parser/test-001-common.cli | 1 | ||||
-rw-r--r-- | tests/parser/test-001.cli | 4 | ||||
-rw-r--r-- | tests/parser/test-003.cli | 20 | ||||
-rw-r--r-- | tests/parser/test-007-base.cli | 11 | ||||
-rw-r--r-- | tests/parser/test-007.cli | 29 | ||||
-rw-r--r-- | tests/parser/test-007.std | 0 |
9 files changed, 61 insertions, 7 deletions
diff --git a/tests/parser/common.cli b/tests/parser/common.cli deleted file mode 100644 index c0c7262..0000000 --- a/tests/parser/common.cli +++ /dev/null @@ -1 +0,0 @@ -include "base.cli"; diff --git a/tests/parser/makefile b/tests/parser/makefile index eaceabd..490fbf3 100644 --- a/tests/parser/makefile +++ b/tests/parser/makefile @@ -7,7 +7,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make cxx_tun := driver.cxx -tests := 000 001 002 003 004 005 006 +tests := 000 001 002 003 004 005 006 007 # # diff --git a/tests/parser/base.cli b/tests/parser/test-001-base.cli index e69de29..e69de29 100644 --- a/tests/parser/base.cli +++ b/tests/parser/test-001-base.cli diff --git a/tests/parser/test-001-common.cli b/tests/parser/test-001-common.cli new file mode 100644 index 0000000..73fb928 --- /dev/null +++ b/tests/parser/test-001-common.cli @@ -0,0 +1 @@ +include "test-001-base.cli"; diff --git a/tests/parser/test-001.cli b/tests/parser/test-001.cli index 473a238..52f7f8e 100644 --- a/tests/parser/test-001.cli +++ b/tests/parser/test-001.cli @@ -2,5 +2,5 @@ // include <string>; include "types.hxx"; -include "common.cli"; -include "../parser/base.cli"; +include "test-001-common.cli"; +include "../parser/test-001-base.cli"; diff --git a/tests/parser/test-003.cli b/tests/parser/test-003.cli index bfd8c72..2920b16 100644 --- a/tests/parser/test-003.cli +++ b/tests/parser/test-003.cli @@ -1,9 +1,23 @@ -// class-def +// class-def, inheritance-spec, abstract-spec // class c1 { }; -class c2 +class c2 = 0 { -};
\ No newline at end of file +}; + +class c3: c1, ::c2 +{ +}; + +namespace n1 +{ + class c {}; +} + +class c4: n1::c = 0 +{ +}; + diff --git a/tests/parser/test-007-base.cli b/tests/parser/test-007-base.cli new file mode 100644 index 0000000..7c02a39 --- /dev/null +++ b/tests/parser/test-007-base.cli @@ -0,0 +1,11 @@ +class b1 {}; + +namespace n1 +{ + class b2 {}; + + namespace i1 + { + class b3 {}; + } +} diff --git a/tests/parser/test-007.cli b/tests/parser/test-007.cli new file mode 100644 index 0000000..3e5ca7f --- /dev/null +++ b/tests/parser/test-007.cli @@ -0,0 +1,29 @@ +// base class lookup +// + +include "test-007-base.cli"; + +class c1 {}; +class c2: c1 {}; +class c3: ::c1 {}; + +namespace n1 +{ + class c4 {}; + class c5: c4 {}; + class c6: n1::c4 {}; + class c7: ::n1::c4 {}; + + class c8: b2 {}; // From included. + class c9: i1::b3 {}; // From included. + + namespace i1 + { + class c10: c4 {}; // Outer scope. + class c11: b3 {}; // From included. + class c12: b2 {}; // Outer scope from included. + } +} + +class c13: n1::c4 {}; +class c14: ::n1::c4 {}; diff --git a/tests/parser/test-007.std b/tests/parser/test-007.std new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/parser/test-007.std |