public AttributeNode(string name, string value, MemberReferenceNode member) : base(SyntaxTreeNodeType.AttributeNode, name) { if (member != null) { Nodes.Add(member); } Value = value.StartsWith("\"") ? value.Substring(1, value.Length - 2) : value; }
public static ISyntaxTreeNode Parse(string instruction) { var syntax = @"^Attribute\s((?<Member>[a-zA-Z][a-zA-Z0-9_]*)\.)?(?<Name>VB_\w+)\s=\s(?<Value>.*)$"; var regex = new Regex(syntax); if (!regex.IsMatch(instruction)) { return null; } var match = regex.Match(instruction); var member = match.Groups["Member"].Value; var name = match.Groups["Name"].Value; var value = match.Groups["Value"].Value; MemberReferenceNode reference = null; if (!string.IsNullOrEmpty(member)) { reference = new MemberReferenceNode(member); } return new AttributeNode(name, value, reference); }