end_element ("c:include");
}
+ void skip_element () {
+ next ();
+
+ int level = 1;
+ while (level > 0) {
+ if (current_token == MarkupTokenType.START_ELEMENT) {
+ level++;
+ } else if (current_token == MarkupTokenType.END_ELEMENT) {
+ level--;
+ } else if (current_token == MarkupTokenType.EOF) {
+ Report.error (get_current_src (), "unexpected end of file");
+ break;
+ }
+ next ();
+ }
+ }
+
Namespace? parse_namespace () {
start_element ("namespace");
}
next ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
Symbol sym = null;
if (reader.name == "alias") {
sym = parse_alias ();
string common_prefix = null;
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "member") {
var ev = parse_enumeration_member ();
en.add_value (ev);
en.access = SymbolAccessibility.PUBLIC;
next ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "member") {
en.add_value (parse_enumeration_member ());
} else {
st.access = SymbolAccessibility.PUBLIC;
next ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "field") {
st.add_field (parse_field ());
} else if (reader.name == "callback") {
var vmethods = new ArrayList<Method> ();
var fields = new ArrayList<Field> ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "implements") {
start_element ("implements");
cl.add_base_type (parse_type_from_name (reader.get_attribute ("name")));
var methods = new ArrayList<Method> ();
var vmethods = new ArrayList<Method> ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "prerequisite") {
start_element ("prerequisite");
iface.add_prerequisite (parse_type_from_name (reader.get_attribute ("name")));
next ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "field") {
st.add_field (parse_field ());
} else if (reader.name == "constructor") {
next ();
while (current_token == MarkupTokenType.START_ELEMENT) {
+ if (reader.get_attribute ("introspectable") == "0") {
+ skip_element ();
+ continue;
+ }
+
if (reader.name == "field") {
st.add_field (parse_field ());
} else if (reader.name == "constructor") {