summaryrefslogtreecommitdiff
path: root/gcc/cp/parser.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge from transactional-memory branch.Aldy Hernandez2011-11-081-0/+4
| | | | From-SVN: r181154
* parser.c: Remove ENABLE_CHECKING markers around debugging routines.Diego Novillo2011-10-181-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | * parser.c: Remove ENABLE_CHECKING markers around debugging routines. (cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN. Make static When printing CURR_TOKEN surround it in [[ ]]. Start printing at START_TOKEN. Update all users. (cp_debug_print_tree_if_set): New. (cp_debug_print_context): New. (cp_debug_print_context_stack): New. (cp_debug_print_flag): New. (cp_debug_print_unparsed_function): New. (cp_debug_print_unparsed_queues): New. (cp_debug_parser_tokens): New. (cp_debug_parser): New. (cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr. (cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL. * parser.h (cp_lexer_dump_tokens): Remove declaration. (cp_debug_parser): Declare. From-SVN: r180136
* Handle deferred parsing of NSDMIs.Jason Merrill2011-09-241-0/+4
| | | | | | | | | | | | | | | | | | * parser.h (cp_unparsed_functions_entry): Add nsdmis field. * parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New. (cp_parser_late_parse_one_default_arg): Split out from cp_parser_late_parsing_default_args. (cp_parser_late_parsing_nsdmi): New. (push_unparsed_function_queues): Set it. (cp_parser_parameter_declaration): Save the '=' token. (cp_parser_template_parameter): Likewise. (cp_parser_default_argument): Call cp_parser_initializer rather than cp_parser_initializer_clause. (cp_parser_class_specifier_1): Parse unparsed_nsdmis. (cp_parser_member_declaration): Handle nsdmis. * decl2.c (grokfield): Handle DEFAULT_ARG for a function. From-SVN: r179156
* PR c++/6709 (DR 743)Jason Merrill2011-07-201-19/+0
| | | | | | | | | | | | | | | | | | | | | | PR c++/6709 (DR 743) PR c++/42603 (DR 950) gcc/cp/ * parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New. (cp_parser_nested_name_specifier_opt): Allow decltype. (cp_parser_qualifying_entity): Likewise. (cp_parser_decltype): Replace source tokens with CPP_DECLTYPE. (cp_parser_simple_type_specifier): Handle decltype as scope. (cp_parser_base_specifier): Allow decltype. (cp_parser_base_clause): Don't crash on null base. * parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h. (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise. gcc/c-family/ * c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h. (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise. (CPP_DECLTYPE): New. * c-common.c (c_parse_error): Handle CPP_DECLTYPE. From-SVN: r176513
* Make-lang.in (CXX_PARSER_H): New.Diego Novillo2011-03-161-0/+375
* Make-lang.in (CXX_PARSER_H): New. (cp/parser.o): Add dependency on CXX_PARSER_H. Add dependency on tree-pretty-print.h (cp/cp-lang.o): Add dependency on CXX_PARSER_H. * cp-lang.c: Include parser.h. * parser.c: Include parser.h. (struct cp_token): Add bitfield purged_p. Update all users. Move to parser.h. (CPP_PURGED): Remove. Update all users. (struct cp_lexer): Change field buffer to be a VEC of cp_token. Remove field buffer_length. Update all users. Move to parser.h. (struct tree_check): Move to parser.h. (cp_token_position): Likewise. (struct cp_token_cache): Likewise. (CPP_KEYWORD): Likewise. (CPP_TEMPLATE_ID): Likewise. (CPP_NESTED_NAME_SPECIFIER): Likewise. (N_CP_TTYPES): Likewise. (enum cp_parser_status_kind): Likewise. (struct cp_parser_context): Likewise. (struct cp_default_arg_entry_d): Likewise. (struct cp_unparsed_functions_entry_d): Likewise. (struct cp_parser): Likewise. (cp_lexer_dump_tokens): New. (cp_lexer_debug_tokens): New. (cp_lexer_finished_p): New. (cp_lexer_alloc): Factor out of cp_lexer_new_main. (cp_lexer_new_main): Re-write main lexing loop to push tokens into the new VEC buffer. (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens. Do not abort if the token type is not recognized, just print its code. * parser.h: New file. * config-lang.in (gtfiles): Add cp/parser.h. From-SVN: r171075