public static MSymbol t = MSymbol.Of ("t");
public static MSymbol symbol = MSymbol.Of ("symbol");
public static MSymbol mtext = MSymbol.Of ("mtext");
+ public static MSymbol mstring = MSymbol.Of ("string");
public static MSymbol plist = MSymbol.Of ("plist");
public static MSymbol integer = MSymbol.Of ("integer");
Name = name;
}
+ public static implicit operator MSymbol (string name)
+ {
+ return Of (name);
+ }
+
+ public static explicit operator string (MSymbol sym)
+ {
+ return sym.Name;
+ }
+
public static MSymbol Of (string name)
{
lock (pool)
{
MSymbol sym = MSymbol.Of (name);
+ if ((flags & MProperty.Flags.BothSticky) != MProperty.Flags.None
+ && (flags & MProperty.Flags.Sensitive) != MProperty.Flags.None)
+ throw new Exception ("A property can't be both sticky and sensitve");
if (sym.flags == null)
sym.flags = flags;
else if (sym.flags != flags)
foreach (char c in Name)
{
- if (c == '\\' || c == ' ' || c == '\'' || c == '\"' || c == ':')
+ if (c == '\\' || c == ' ' || c == '\'' || c == '\"'
+ || c == '(' || c == ')')
str += "\\";
str += c;
}