Exemplo n.º 1
0
 private static void Assert(AstName uot,
                            string ns, string symbol, AstNameKind kind,
                            int partCount, string postfix = "", string prefix = "", int paramCount = 0)
 {
     uot.Should().NotBeNull();
     uot.Kind.Should().Be(kind);
     uot.Namespace.Should().Be(ns);
     uot.Symbol.Should().Be(symbol);
     uot.Parts.Count().Should().Be(partCount);
     uot.Postfix.Should().Be(postfix);
     uot.Prefix.Should().Be(prefix);
     uot.ParameterCount.Should().Be(paramCount);
 }
Exemplo n.º 2
0
        private AstName(NamePart[] parts, AstNameKind nameKind, bool unparsed = false)
        {
            Prefix  = String.Empty;
            Postfix = String.Empty;
            Kind    = nameKind;

            _parts = parts;

            if (!unparsed)
            {
                ParseParts();
            }
        }
Exemplo n.º 3
0
        /// <summary>For external names</summary>
        private AstName(string @namespace, string name, AstNameKind nameKind)
        {
            Ast.Guard(!String.IsNullOrEmpty(name), "Name cannot be empty or null.");
            Prefix  = String.Empty;
            Postfix = String.Empty;
            Kind    = nameKind;

            _parts = @namespace.Replace("`", "%")
                     .Split(Separator, StringSplitOptions.RemoveEmptyEntries)
                     .Append(name.Replace("`", "%"))
                     .Select(p => new NamePart(p))
                     .ToArray();

            ParseParts();
        }
Exemplo n.º 4
0
        /// <summary>Parse a local source code or external symbol name.</summary>
        public static AstSymbolName Parse(string symbolName, AstNameKind nameKind = AstNameKind.Local)
        {
            var native = AstName.ParseFullName(symbolName, nameKind);

            return(new AstSymbolName(native));
        }