コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }