Commit Graph

194 Commits

Author SHA1 Message Date
Erik Verbruggen
25d7933d7a Fixed __attribute__ parsing after struct declarations.
Task-number: QTCREATORBUG-1358
Reviewed-by: Roberto Raggi
2010-05-27 14:22:53 +02:00
Roberto Raggi
a4245c174a Improved recovering from errors inside template declarations. 2010-05-25 17:15:21 +02:00
Roberto Raggi
ec5b235fbe Disabled parsing of C++0x initializer-list. 2010-05-21 10:51:09 +02:00
Erik Verbruggen
25837759ea Fix left-overs from merging icheck code. 2010-04-23 15:25:22 +02:00
Erik Verbruggen
fcedcc510a Handle fully qualified types in the root namespace for template typenames.
For example:
    template <typename ::foo::bar>...

Done by: Roberto Raggi
Reviewed-by: erikv
2010-04-12 13:06:24 +02:00
Roberto Raggi
4d45740167 Fixed parsing of anonymous template parameters.
For example,
  template <template <typename> class X> struct foo {};

Reviewed-by: erikv
2010-04-12 12:59:02 +02:00
Roberto Raggi
c3d7928ac8 Clone the TemplateArguments before caching the result. 2010-03-30 12:35:00 +02:00
Roberto Raggi
bbdb7d9742 Fixed parsing ambiguity when parsing dependant template types. 2010-03-29 14:10:42 +02:00
Roberto Raggi
f5c9a158c1 Use the start of the template-argument as to key for template-arguments cache. 2010-03-26 11:27:22 +01:00
Roberto Raggi
fe261bc256 Parse C++ 0x argument packs. 2010-03-25 12:16:18 +01:00
Roberto Raggi
3c8d12562e Recognize C++0x sizeof... expressions. 2010-03-25 10:44:42 +01:00
Roberto Raggi
ddcc40d0fc Accepts `...' when parsing declarator-ids in C++0x. 2010-03-25 10:44:42 +01:00
Roberto Raggi
86c2367c26 In C++ 0x auto is a type specifier. 2010-03-24 17:19:54 +01:00
Roberto Raggi
cf125618af Accepts trailing return types. 2010-03-24 14:56:45 +01:00
Roberto Raggi
4e50dfe330 Require a T_EQUAL when parsing conditions. 2010-03-24 13:56:34 +01:00
Roberto Raggi
8329d7db94 Recognize C++0x lambda expressions. 2010-03-24 13:49:02 +01:00
Roberto Raggi
0eddf5c0ad Accept C++0x initializers. 2010-03-23 14:17:33 +01:00
Erik Verbruggen
989681a0e9 Added attribute parsing for elaborate-type-specifiers. 2010-03-23 14:15:45 +01:00
Roberto Raggi
189ec382ef Recognize C++0x type-id-list. 2010-03-23 14:13:23 +01:00
Roberto Raggi
b4542eff3c Renamed Parser::isCxxOxEnabled(). 2010-03-23 14:13:22 +01:00
Roberto Raggi
87d28e1814 Recognize C++0x template arguments. 2010-03-23 14:13:22 +01:00
Roberto Raggi
eebf498aae Parse C++0x type-parameters. 2010-03-23 14:13:22 +01:00
Roberto Raggi
ae71514360 Parse C++0x base-specifier-list. 2010-03-23 14:13:22 +01:00
Roberto Raggi
8b625a867c Parse C++0x mem-initializer-list. 2010-03-23 14:13:21 +01:00
Roberto Raggi
4b8d597196 Recognize C++0x rvalue references. 2010-03-23 12:12:07 +01:00
Roberto Raggi
464f797f2f Don't check the compound statement terminator when parsing.
The check should be done in the semantic phase.
2010-03-23 10:25:43 +01:00
Roberto Raggi
6f80219d3e Renamed the CompoundExpressionAST::compoundStatement. 2010-03-23 10:25:43 +01:00
Roberto Raggi
069091eece Rewind the memory pool only after parsing a toplevel expression statements. 2010-03-23 10:18:17 +01:00
Roberto Raggi
61a504c427 Ensure that the memory pool can be reused after a rewind and get rid of the segmented array. 2010-03-18 15:23:13 +01:00
Roberto Raggi
2d45bb8070 Parse and create AST nodes for the Q_MOC_RUN extensions. 2010-03-17 14:37:55 +01:00
Erik Verbruggen
b4d72a78db Added parser support for Q_INTERFACES. 2010-03-17 10:30:17 +01:00
Erik Verbruggen
61132f260c Fixed Q_ENUMS/Q_FLAGS parsing of enum names. 2010-03-17 10:30:17 +01:00
Roberto Raggi
4f03a8be53 Don't skip closing braces and Qt function specifiers. 2010-03-16 15:18:59 +01:00
Erik Verbruggen
b737fb861d Made Q_PROPERTY a valid declaration to restart parsing when recovering from an error. 2010-03-12 11:32:42 +01:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Erik Verbruggen
cefdb3da30 Fixed parsing of properties whose name is a C++ keyword.
Reviewed-by: Roberto Raggi
2010-03-03 16:46:14 +01:00
Erik Verbruggen
e609e9a701 Simplified ObjC selectors in the AST. 2010-02-23 17:43:52 +01:00
Erik Verbruggen
21fdc2d06a Replaced usages of concrete type SimpleNameAST with the abstract NameAST. 2010-02-22 09:27:44 +01:00
Erik Verbruggen
c79f25d5a6 Fixed Q_PROPERTY parsing to handle all possible cases. 2010-02-16 17:04:26 +01:00
Erik Verbruggen
618173e067 Fixed Q_ENUMS/Q_FLAGS parsing to handle namespaces. 2010-02-15 17:13:30 +01:00
Erik Verbruggen
8de6ccc775 Revert "Split Objective-C keyword parsing to handle the '@' separately."
This reverts commit 2a59d2ae0c.
2010-02-15 12:24:31 +01:00
Erik Verbruggen
a0071f1ce9 Revert "Added Objective-C @try block parsing."
This reverts commit f4163b8ba0.
2010-02-15 12:24:31 +01:00
Erik Verbruggen
f4163b8ba0 Added Objective-C @try block parsing. 2010-02-15 09:27:01 +01:00
Erik Verbruggen
2a59d2ae0c Split Objective-C keyword parsing to handle the '@' separately.
Because apparently, while designing the Objective-C language, somebody
thought it was a world-class idea to allow any white-space between the
'@' character and the subsequent keyword. With this fix, we now
correctly parse:
    @  dynamic
and:
    @
      selector
and:
    @"foo"
     "bar"
    @"mooze"
(This last one is 1 single string split over multiple lines.)
Wonderful, isn't it?

What we (and Clang) do not support, but what GCC supports is something
like:
   @"foo"@@  "bar"  @"mooze"  @@
which is equivalent to @"foobarmooze".
2010-02-15 09:27:00 +01:00
Erik Verbruggen
b1af22b3ab Fixed error recovery when failing to parse Q_PROPERTY. 2010-02-10 11:07:18 +01:00
Erik Verbruggen
1af05166d9 Removed Q_DECLARE_FLAGS parsing, leaving it to the CPP to expand it. 2010-02-08 15:41:18 +01:00
Erik Verbruggen
b58cb740e5 Changed ObjC message arguments to have SimpleName for the name part. 2010-02-08 09:34:51 +01:00
Erik Verbruggen
7b913f7fa2 Changed Q_PROPERTY parsing and AST storage. 2010-02-07 10:49:03 +01:00
Erik Verbruggen
21488e8898 Added semantic checks for Q_ENUMS. 2010-02-07 10:49:03 +01:00
Erik Verbruggen
ac6aba5ec3 Simplified Q_FLAGS and Q_DECLARE_FLAGS parsing. 2010-02-07 10:49:03 +01:00