Just trying parsing some c++ sources I found that the actual parser do not handle operator new/delete:
class One {
public:
char *s;
void *operator new(size_t);
void operator delete(void *);
void dcl(void);
One();
};
translation_unit [0, 0] - [11, 0])
class_specifier [0, 0] - [9, 1])
name: type_identifier [0, 6] - [0, 9])
body: field_declaration_list [0, 10] - [9, 1])
access_specifier [1, 1] - [1, 8])
field_declaration [2, 1] - [2, 9])
type: primitive_type [2, 1] - [2, 5])
declarator: pointer_declarator [2, 6] - [2, 8])
declarator: field_identifier [2, 7] - [2, 8])
field_declaration [4, 1] - [4, 15])
type: primitive_type [4, 1] - [4, 5])
declarator: pointer_declarator [4, 6] - [4, 15])
declarator: field_identifier [4, 7] - [4, 15])
MISSING ; [4, 15] - [4, 15])
declaration [4, 16] - [4, 28])
declarator: function_declarator [4, 16] - [4, 27])
declarator: identifier [4, 16] - [4, 19])
parameters: parameter_list [4, 19] - [4, 27])
parameter_declaration [4, 20] - [4, 26])
type: primitive_type [4, 20] - [4, 26])
field_declaration [5, 1] - [5, 14])
type: primitive_type [5, 1] - [5, 5])
declarator: field_identifier [5, 6] - [5, 14])
MISSING ; [5, 14] - [5, 14])
declaration [5, 15] - [5, 30])
declarator: function_declarator [5, 15] - [5, 29])
declarator: identifier [5, 15] - [5, 21])
parameters: parameter_list [5, 21] - [5, 29])
parameter_declaration [5, 22] - [5, 28])
type: primitive_type [5, 22] - [5, 26])
declarator: abstract_pointer_declarator [5, 27] - [5, 28])
field_declaration [6, 1] - [6, 16])
type: primitive_type [6, 1] - [6, 5])
declarator: function_declarator [6, 6] - [6, 15])
declarator: field_identifier [6, 6] - [6, 9])
parameters: parameter_list [6, 9] - [6, 15])
parameter_declaration [6, 10] - [6, 14])
type: primitive_type [6, 10] - [6, 14])
declaration [8, 1] - [8, 7])
declarator: function_declarator [8, 1] - [8, 6])
declarator: identifier [8, 1] - [8, 4])
parameters: parameter_list [8, 4] - [8, 6])