C compiler with embedded metalanguage.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

36 rivejä
1.0 KiB

typedef signed t;
typedef int plain;
struct tag {
unsigned t:4; // t is the name of the field
const t:5; // t is the name of the type of the unnamed 5-bit field
plain r:5;
};
struct tag2 {
int xx:8;
int :8; // a field with no name
int :8; // a field with no name
int yy:8;
};
typedef int a, (*b)(a intarg);
// ^ ^----------------------------------------|-------|
// (1) where does it say in the std that this name becomes a type name
// even before the end of the typedef declarator list that is a part of?
// (2) where in the std does is say how the scope of typedef names is
// handled (global, function-level, block-level, etc.)?
// (3) what are the exact rules about typedef scopes, and the different
// contexts in which a typedef can occur that causes it to have non-local
// or non-global scope?
// (4) printTree to show the real AST in addition to outputNode which prints
// source code.
int c(int x) { return x; }
b e = c;
unsigned x;
unsigned long int y;