return !last_was_underscore;
}
- private string? translate_cname (string name) {
+ private string? translate_cname_to_g (string name) {
if (is_capitalized_and_underscored (name)) {
string[] segments = name.split ("_");
unowned string last_segment = segments[segments.length - 1];
return node;
}
- string? alternative = translate_cname (_name);
+ string? alternative = translate_cname_to_g (_name);
if (alternative != null) {
return nodes.get (alternative);
}
return this.tree.search_symbol_str (null, "GLib.FileStream.printf");
}
+ int dotpos = _name.index_of_char ('.');
+ if (dotpos > 0) {
+ string fst = _name.substring (0, dotpos);
+ string snd = _name.substring (dotpos + 1);
+ return nodes.get (fst + ":" + snd);
+ }
+
return null;
}
string parent_cname = get_parent_type_cname (item);
if (parent_cname != null) {
register_symbol (parent_cname+"->"+item.get_cname (), item);
- register_symbol (parent_cname+"."+item.get_cname (), item);
}
}
}
} else {
id_len += id_len2 + separator_len;
}
- } else if (this.pos.has_prefix ("->")) {
+ } else if (this.pos.has_prefix ("->") || this.pos.has_prefix (".")) {
unowned string sep_start = this.pos;
int sep_column_start = this.column;
+ int separator_len = 1;
+
+ if (this.pos.has_prefix ("->")) {
+ separator_len = 2;
+ next_char ();
+ }
next_char ();
- next_char ();
Token? func_token = function_prefix ();
if (func_token == null) {
int id_len2;
if ((id_len2 = id_prefix ()) > 0) {
- id_len += 2 + id_len2;
+ id_len += separator_len + id_len2;
} else {
this.column = sep_column_start;
this.pos = sep_start;
}
} else {
- id_len += 2 + func_token.content.length;
+ id_len += separator_len + func_token.content.length;
}
}