예제 #1
0
 public RelIndDefinition(RelInd relind, string baseTableName, ProbeClassifiedString source, string devDesc, FilePosition filePos)
     : base(relind.Name, filePos, GetExternalRefId(baseTableName, relind.Name))
 {
     _relind        = relind;
     _source        = source;
     _devDesc       = devDesc;
     _baseTableName = baseTableName;
 }
예제 #2
0
        private void CheckPrettySignature()
        {
            if (_prettySignature == null)
            {
                var pcs           = new ProbeClassifiedStringBuilder();
                var spaceRequired = false;

                if (_privacy != FunctionPrivacy.Public)
                {
                    pcs.AddKeyword(_privacy.ToString().ToLower());
                    spaceRequired = true;
                }

                if (_extern)
                {
                    if (spaceRequired)
                    {
                        pcs.AddSpace();
                    }
                    pcs.AddKeyword("extern");
                    spaceRequired = true;
                }

                if (_returnDataType != null)
                {
                    if (spaceRequired)
                    {
                        pcs.AddSpace();
                    }
                    pcs.AddClassifiedString(_returnDataType.Source);
                    spaceRequired = true;
                }

                if (spaceRequired)
                {
                    pcs.AddSpace();
                }
                pcs.AddFunction(_funcName);
                pcs.AddOperator("(");
                spaceRequired = false;

                var firstArg = true;
                foreach (var arg in _args)
                {
                    if (firstArg)
                    {
                        firstArg = false;
                    }
                    else
                    {
                        pcs.AddDelimiter(", ");
                    }

                    var argStartPos = pcs.Length;
                    var argSource   = arg.ClassifiedString;
                    pcs.AddClassifiedString(argSource);
                    arg.SignatureSpan = new Span(argStartPos, argStartPos + argSource.Length);
                }

                pcs.AddOperator(")");
                _prettySignature = pcs.ToClassifiedString();
            }
        }