From b960c83725d7e185ac5c6e3c0d6043c7dcd2f556 Mon Sep 17 00:00:00 2001 From: Jacques-Henri Jourdan Date: Sun, 1 Nov 2015 22:32:23 +0100 Subject: Better handling of old-style K&R function declarations: - Added a Cabs.PROTO_OLD constructor to Cabs.decl_type - Refactored the Parser.vy and pre_parser.mly grammars - Rewritten the conversion of old function definitions to new-style --- cparser/Parser.vy | 146 +++++++++++++++++++++++++++++------------------------- 1 file changed, 79 insertions(+), 67 deletions(-) (limited to 'cparser/Parser.vy') diff --git a/cparser/Parser.vy b/cparser/Parser.vy index 7c0bfb55..16f6a0ef 100644 --- a/cparser/Parser.vy +++ b/cparser/Parser.vy @@ -52,6 +52,7 @@ Require Import List. %type argument_expression_list %type declaration %type declaration_specifiers +%type declaration_specifiers_typespec_opt %type init_declarator_list %type init_declarator %type storage_class_specifier @@ -65,9 +66,9 @@ Require Import List. %type enumerator_list %type enumerator %type enumeration_constant -%type type_qualifier +%type type_qualifier type_qualifier_noattr %type function_specifier -%type declarator direct_declarator +%type declarator declarator_noattrend direct_declarator %type<(decl_type -> decl_type) * cabsloc> pointer %type type_qualifier_list %type parameter_type_list @@ -95,7 +96,6 @@ Require Import List. %type gcc_attribute %type gcc_attribute_list %type gcc_attribute_word -%type old_function_declarator direct_old_function_declarator %type identifier_list %type asm_flags %type