Commit Graph

35 Commits (df7bc44e3387d1ba9e77f3ac22a1acb1d30f90ab)

Author SHA1 Message Date
Max Brunsfeld df7bc44e33 Allow structured binding declarators in pmore places
Refs atom/language-c#325
2019-05-08 15:51:47 +07:00
Max Brunsfeld e54a86a62e Add attribute specifiers
Fixes #33
2019-04-18 13:34:01 +07:00
Max Brunsfeld 4837c1c837 Add virtual specifier
Refs #33
2019-04-18 13:24:51 +07:00
Max Brunsfeld 95439ea4cc Add support for default member initializers
Fixes #23
2018-11-18 13:37:20 +07:00
Max Brunsfeld 1d0fdd0aad Add variadic template and function parameters
Fixes #20
2018-11-14 17:41:24 +07:00
Max Brunsfeld a2cd752b28 Fix parsing of nested classes with inheritance
Fixes #22
2018-11-14 17:08:10 +07:00
Max Brunsfeld b673eceee3 Support template value params with optional names
Fixes #9
2018-08-23 17:24:33 +07:00
Andrew Sutherland ce35ac90eb Add support for method virtual specifiers.
This expands on #6 to support override/final for functions

The relevant specs are:
https://en.cppreference.com/w/cpp/language/override
https://en.cppreference.com/w/cpp/language/final
2018-07-31 13:16:17 +07:00
Andrew Sutherland 61ec3b9008 C++11 class-virt-specifier: "class A final"
As documented at https://en.cppreference.com/w/cpp/language/final (3)
and https://en.wikipedia.org/wiki/C%2B%2B11#Explicit_overrides_and_final
in the latter part, C++11 made syntax like "struct A final {}" legal.
2018-05-31 16:11:30 +07:00
Max Brunsfeld 06e557ada7 Allow templates with optional type parameters
Co-Authored-By: Thomas Johansen <thomasjo@gmail.com>
2018-05-14 12:33:52 +07:00
Max Brunsfeld 64ac620f5d Add the constexpr type qualifier
Co-Authored-By: Thomas Johansen <thomasjo@gmail.com>
2018-05-14 12:21:08 +07:00
Max Brunsfeld 9dab393b10 Add c++17 structured binding declarations 2018-04-23 11:33:41 +07:00
Max Brunsfeld c17905d04f Differentiate template methods from template functions 2018-02-15 17:15:05 +07:00
Max Brunsfeld 63b48817a0 Add nullptr, primitive types, constants 2017-10-04 12:27:46 +07:00
Max Brunsfeld 12b2232560 Tweak identifier naming 2017-08-01 21:08:02 +07:00
Max Brunsfeld 58b68438ab Improve differentiation between types and variables 2017-07-24 19:59:00 +07:00
Max Brunsfeld a38155d4f8 Start separating variable, type, and field names 2017-07-20 15:38:40 +07:00
Max Brunsfeld 9f6f3ae509 Add r-value references 2017-06-22 22:13:15 +07:00
Max Brunsfeld 8694f5beb2 Add classes with inheritance 2017-06-22 22:10:23 +07:00
Max Brunsfeld 53a18a46ae Add explicit template instantiations 2017-06-22 21:52:26 +07:00
Max Brunsfeld 67e93f50e6 Add declarations with braced initializer lists 2017-06-22 16:37:48 +07:00
Max Brunsfeld 4892ecbbc1 Add scoped classes definitions, using namespace declarations 2017-06-21 15:19:59 +07:00
Max Brunsfeld 39e3810038 Add friend, using, alias declarations inside classes 2017-06-21 15:05:06 +07:00
Max Brunsfeld 0e2af7283f Add template class/struct declarations 2017-06-21 14:35:39 +07:00
Max Brunsfeld ef62bdcd80 Add default parameter values 2017-06-21 14:29:54 +07:00
Max Brunsfeld 9156173478 Allow constructor and destructor declarations 2017-06-21 14:22:29 +07:00
Max Brunsfeld 928a408a63 Add class declarations, inline method definitions 2017-06-21 12:39:27 +07:00
Max Brunsfeld 4813709fd9 Add alias declarations 2017-06-21 11:48:21 +07:00
Max Brunsfeld 88bc200208 Allow template calls as declarators 2017-06-20 16:24:56 +07:00
Max Brunsfeld 3f5404e421 Add basic template declarations 2017-06-20 16:22:45 +07:00
Max Brunsfeld 7cbcd845d2 Add operator overload declarations 2017-06-20 15:17:26 +07:00
Max Brunsfeld b7e43ef297 Add namespaced function definitions and constructor definitions 2017-06-20 14:47:28 +07:00
Max Brunsfeld 68358e4d57 Add reference declarations 2017-06-20 13:31:24 +07:00
Max Brunsfeld 92c7ff481f Add using declarations 2017-06-20 10:49:06 +07:00
Max Brunsfeld 03b1da6a8b Add namespace definitions 2017-06-20 10:27:44 +07:00