コード例 #1
0
        public static FunctionMetadataRegistry CreateRegistry()
        {
            StringReader br = new StringReader(Resource1.functionMetadata);

            FunctionDataBuilder fdb = new FunctionDataBuilder(400);

            try
            {
                while (true)
                {
                    String line = br.ReadLine();
                    if (line == null)
                    {
                        break;
                    }
                    if (line.Length < 1 || line[0] == '#')
                    {
                        continue;
                    }
                    String TrimLine = line.Trim();
                    if (TrimLine.Length < 1)
                    {
                        continue;
                    }
                    ProcessLine(fdb, line);
                }
                br.Close();
            }
            catch (IOException)
            {
                throw;
            }

            return fdb.Build();
        }
コード例 #2
0
        public static FunctionMetadataRegistry CreateRegistry()
        {
            StringReader br = new StringReader(Resource1.functionMetadata);

            FunctionDataBuilder fdb = new FunctionDataBuilder(400);

            try
            {
                while (true)
                {
                    String line = br.ReadLine();
                    if (line == null)
                    {
                        break;
                    }
                    if (line.Length < 1 || line[0] == '#')
                    {
                        continue;
                    }
                    String TrimLine = line.Trim();
                    if (TrimLine.Length < 1)
                    {
                        continue;
                    }
                    ProcessLine(fdb, line);
                }
                br.Close();
            }
            catch (IOException)
            {
                throw;
            }

            return(fdb.Build());
        }
コード例 #3
0
        private static void ProcessLine(FunctionDataBuilder fdb, String line)
        {
            Regex regex = new Regex(TAB_DELIM_PATTERN);

            String[] parts = regex.Split(line);
            if (parts.Length != 8)
            {
                throw new Exception("Bad line format '" + line + "' - expected 8 data fields");
            }
            int    functionIndex   = ParseInt(parts[0]);
            String functionName    = parts[1];
            int    minParams       = ParseInt(parts[2]);
            int    maxParams       = ParseInt(parts[3]);
            byte   returnClassCode = ParseReturnTypeCode(parts[4]);

            byte[] parameterClassCodes = ParseOperandTypeCodes(parts[5]);
            // 6 IsVolatile
            bool hasNote = parts[7].Length > 0;

            ValidateFunctionName(functionName);
            // TODO - make POI use IsVolatile
            fdb.Add(functionIndex, functionName, minParams, maxParams,
                    returnClassCode, parameterClassCodes, hasNote);
        }
コード例 #4
0
        private static void ProcessLine(FunctionDataBuilder fdb, String line)
        {
            Regex regex = new Regex(TAB_DELIM_PATTERN);
            String[] parts = regex.Split(line);
            if (parts.Length != 8)
            {
                throw new Exception("Bad line format '" + line + "' - expected 8 data fields");
            }
            int functionIndex = ParseInt(parts[0]);
            String functionName = parts[1];
            int minParams = ParseInt(parts[2]);
            int maxParams = ParseInt(parts[3]);
            byte returnClassCode = ParseReturnTypeCode(parts[4]);
            byte[] parameterClassCodes = ParseOperandTypeCodes(parts[5]);
            // 6 IsVolatile
            bool hasNote = parts[7].Length > 0;

            ValidateFunctionName(functionName);
            // TODO - make POI use IsVolatile
            fdb.Add(functionIndex, functionName, minParams, maxParams,
                    returnClassCode, parameterClassCodes, hasNote);
        }