namespace Eva { public class String : Object, Term { public string value {get; construct;} public String(string v) { Object(value: v); } public string to_string() { return "\"" + value.replace("\\", "\\\\").replace("\"", "\\\"") + "\""; } protected bool do_match(Term o, Gee.Map vars, Gee.Map aliases) { if(o is Var) { return o.do_match(this, vars, aliases); } if(o is String) { return (value == (o as String).value); } else if(o is List) { return o.do_match(this, vars, aliases); } else { return false; } } public void encode(Erl.Buffer buffer) { char[]? array = string_to_array(value); if(array != null) { buffer.encode_string(array); } else { string_to_list(value).encode(buffer); } } } }