Exemple #1
0
            internal static DataType CreateParameter([NotNull] CallSiteParameter p, CodeModel.SymbolTable table)
            {
                if (p.IsOmitted)
                {
                    return(DataType.Omitted);
                }

                DataType type      = null;
                var      parameter = p.StorageAreaOrValue;

                if (parameter != null)
                {
                    if (parameter.IsLiteral)
                    {
                        if (parameter.NumericValue != null)
                        {
                            type = DataType.Numeric;
                        }
                        else
                        if (parameter.AlphanumericValue != null)
                        {
                            type = DataType.Alphanumeric;
                        }
                        else
                        {
                            type = DataType.Unknown;
                        }
                    }
                    else
                    {
                        if (table != null)
                        {
                            var found = table.GetVariables(parameter);
                            foreach (var item in found)
                            {
                                var data = item as Nodes.DataDescription;
                                if (data == null)
                                {
                                    type = DataType.Unknown;
                                }
                                else if (type == null)
                                {
                                    type = data.DataType;
                                }
                                else if (type != data.DataType)
                                {
                                    type = DataType.Unknown;
                                }
                            }
                        }

                        if (type == null)
                        {
                            type = DataType.Unknown;
                        }
                    }
                    return(type);
                }
                return(DataType.Unknown);
            }
Exemple #2
0
        public virtual ParameterList AsProfile(CodeModel.SymbolTable table)
        {
            //Need to be updated in a near future
            var profile = new FunctionCallParameterList
            {
                InputParameters = FunctionCallParameterList.CreateParameters(Arguments.ToList(), table),
            };

            return(profile);
        }
Exemple #3
0
            internal static IList <DataType> CreateParameters([NotNull] List <CallSiteParameter> parameters, CodeModel.SymbolTable table)
            {
                var results = new List <DataType>();

                foreach (var parameter in parameters)
                {
                    results.Add(CreateParameter(parameter, table));
                }
                return(results);
            }