Commit Graph

16 Commits

Author SHA1 Message Date
Orgad Shaneh
ea4b4bff40 C++: Split designator AST
Change-Id: I9bfed2023624c818c0f35f24476693cffeaf2bbc
Reviewed-by: Wang Hoi <wanghoi@126.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-24 16:16:58 +02:00
Wang Hoi
c56b999fff C: Parser: Support parsing of c99 designated initializers
In case:

    int a[6] = { [4] = 29, [2] = 15 };
    struct point { int x, y; };
    struct point p = { .y = 3, .x = 2 };

Grammar change when c99 language feature is enabled:
old grammar:

    braced-init-list :: '{' initializer-list '}'

new grammar:

    braced-init-list :: '{' designated-initializer-list '}'
    designated-initializer-list :: designated-initializer (',' designated-initializer )*
    designated-initializer :: designator* initializer-clause
    designator :: '.' identifier
                | '[' constant-expression ']'

Task-number: QTCREATORBUG-1902
Change-Id: Ib99d6f553f8d0f50ba3eff86f3a2e86d73372426
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-17 16:23:23 +02:00
Przemyslaw Gorszkowski
080bf4ecb8 C++: improve support for anonymous classes
Fix:
* highlighting
* find usages
* follow symbol
* code completion

Task-number: QTCREATORBUG-6497
Task-number: QTCREATORBUG-8963
Task-number: QTCREATORBUG-3610
Task-number: QTCREATORBUG-7579

Change-Id: I3dcaf1c515d0199c3e6bee72284fbb40064686ee
Reviewed-by: Petar Perisin <petar.perisin@gmail.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-04-19 12:14:56 +02:00
Nikolai Kosjar
d9571f2ecd C++: Update frontend accordingly to AST.H
$ ./cplusplus-update-frontend

Change-Id: I9015abb8d3dc053c91b0107c5a0b2e8b6e2f5f30
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2012-12-06 10:56:27 +01:00
Christian Kamm
aa645254a2 C++11: More (expression-list) or brace-init-list.
This time in the 'new' expression. Changed it to make
new C(1, abc...) and new C{1, abc}
work.

Change-Id: I7232798fd083b653ee04ef9ede386d6536133e16
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-19 12:23:18 +02:00
Christian Kamm
8711121197 C++11: Parse alias declarations.
The parser no longer fails declarations like:
using Foo = std::vector<int>::iterator;

Change-Id: Ib3a552ebbe0147fa138db6448a52cdba8f9b9207
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-19 11:56:33 +02:00
Christian Kamm
ecd54059d3 C++11: Add alignof() expression.
Change-Id: Id3fb30b9a16ea724bab0d5b05e8cbddb0064e6eb
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-19 11:53:46 +02:00
Christian Kamm
23a11e2ddb C++: Rename NewPlacementAST to ExpressionListParenAST.
It'll be reused as the initializer expression for declarators
that are followed by "( expression-list )".

Change-Id: I6c76a76641941874ef1ed21daa7b6e057c6d170f
Reviewed-by: hjk <qthjk@ovi.com>
2012-09-17 14:53:20 +02:00
Flex Ferrum
da2aa0df72 C++: Add support for C++11 range-based 'for' loops
Change-Id: I7eef048a7952a79f031ae3d0abba68e3c5ffbfb8
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-21 15:27:00 +01:00
Erik Verbruggen
3f5dc36a53 C++11: first set of changes for decltype.
Change-Id: I49d6ff7eb1805cd07bdfcb27bb37d4c6cadc9115
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-10 16:29:04 +01:00
Erik Verbruggen
1d3dc30153 C++11: add support for static_assert.
Change-Id: I82d8d60acaa9265fd25e0a3734855b19bdef9c06
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-02 13:49:22 +01:00
Erik Verbruggen
dd4299073e C++11: handle noexcept specifications.
Change-Id: I7da3affea2758b2e01124105e2521e1f2c5f6678
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2012-02-02 12:22:20 +01:00
Leandro Melo
057fad645b C++: Recognize C++11 nullptr
Change-Id: I5b7ac8f9b2137ffe9439ada4ec4aeb9cee8e249d
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-18 13:50:19 +01:00
Roberto Raggi
cae8d4169b Fix the AST code generator 2011-05-16 12:48:05 +02:00
Oswald Buddenhagen
b342ad8cf4 remove nokia copyrights from roberto's code
they are lying. nokia has no copyright on this code. and the double
license in a single file looks weird. that's why we moved it to
3rdparty/, so it is clear it is not nokia's.

Approved-by: legal
2011-05-16 11:05:30 +02:00
Oswald Buddenhagen
67704b8b41 move src/shared/cplusplus/ -> src/libs/3rdparty/cplusplus/
Approved-by: legal
2011-05-16 11:05:30 +02:00