==========================================
simple declarations
==========================================

int x;

---

(declaration (identifier) (identifier))

==========================================
simple functions
==========================================

int main() {
}

---

(function_definition
	(identifier) (direct_declarator (identifier))
	(compound_statement))

==========================================
ambiguous declarations
==========================================

int main() {
	int i;
	someTypeOrValue * pointerOrMultiplicand();
	float y;
}

---

(function_definition
	(identifier) (direct_declarator (identifier))
  (compound_statement
		(declaration (identifier) (identifier))
		(declaration (identifier) (declarator (pointer) (direct_declarator (identifier))))
		(declaration (identifier) (identifier))))
