Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

185 rader
4.1 KiB

============================================
Struct declarations
============================================
struct s1;
struct s2 {
int x;
float y;
};
---
(translation_unit
(declaration (struct_specifier (identifier)))
(declaration (struct_specifier (identifier)
(struct_declaration (identifier) (identifier))
(struct_declaration (identifier) (identifier)))))
============================================
Union declarations
============================================
union u1;
union s2 {
int x;
float y;
};
---
(translation_unit
(declaration (union_specifier (identifier)))
(declaration (union_specifier (identifier)
(struct_declaration (identifier) (identifier))
(struct_declaration (identifier) (identifier)))))
============================================
Enum declarations
============================================
enum e1;
enum e2 {
val1,
val2 = 5,
val3
};
---
(translation_unit
(declaration (enum_specifier (identifier)))
(declaration (enum_specifier (identifier)
(identifier)
(enumerator (identifier) (number_literal))
(identifier))))
============================================
Primitive-typed variable declarations
============================================
unsigned short int a;
long int b, c = 5, d;
float d, e;
---
(translation_unit
(declaration (type_specifier (identifier)) (identifier))
(declaration
(type_specifier (identifier))
(identifier)
(init_declarator (identifier) (number_literal))
(identifier))
(declaration (identifier) (identifier) (identifier)))
============================================
Variable storage classes
============================================
int a;
extern int b, c;
auto int d;
register int e;
static int f;
---
(translation_unit
(declaration (identifier) (identifier))
(declaration (storage_class_specifier) (identifier) (identifier) (identifier))
(declaration (storage_class_specifier) (identifier) (identifier))
(declaration (storage_class_specifier) (identifier) (identifier))
(declaration (storage_class_specifier) (identifier) (identifier)))
============================================
Composite-typed variable declarations
============================================
struct b c;
union { int e; } f;
enum { g, h } i;
---
(translation_unit
(declaration (struct_specifier (identifier)) (identifier))
(declaration (union_specifier (struct_declaration (identifier) (identifier))) (identifier))
(declaration (enum_specifier (identifier) (identifier)) (identifier)))
============================================
Pointer variable declarations
============================================
char *the_string;
const char **the_strings;
---
(translation_unit
(declaration (identifier) (declarator (pointer) (identifier)))
(declaration (type_qualifier) (identifier)
(declarator (pointer) (pointer) (identifier))))
============================================
Typedefs
============================================
typedef int my_int;
typedef struct{
int x;
} *a;
---
(translation_unit
(declaration (storage_class_specifier) (identifier) (identifier))
(declaration (storage_class_specifier) (struct_specifier
(struct_declaration (identifier) (identifier)))
(declarator (pointer) (identifier))))
============================================
Function declarations
============================================
int main(int argc, const char **argv);
static foo bar();
---
(translation_unit
(declaration
(identifier)
(direct_declarator
(identifier)
(parameter_type_list
(parameter_declaration (identifier) (identifier))
(parameter_declaration (type_qualifier) (identifier) (declarator (pointer) (pointer) (identifier))))))
(declaration
(storage_class_specifier)
(identifier)
(direct_declarator (identifier))))
============================================
Function definitions
============================================
void * do_stuff(int arg1) {
return 5;
}
---
(function_definition
(identifier)
(declarator
(pointer)
(direct_declarator
(identifier)
(parameter_declaration (identifier) (identifier))))
(compound_statement (return_statement (number_literal))))