示例#1
0
        //-----------Добавим встроенные функции------------------
        void initialize_internal_functions()
        {
            //В принципе, список функций должен браться из dll , вызываться тоже из dll.
            //Пока берем список из xml, а описаны в коде
            string        name = "", ret_type = "";
            int           num_param = 0, has_event = 0;
            int           cnt    = 0;
            XmlTextReader reader = new XmlTextReader("../../../webBrowser/internal_functions.xml");

            //reader.Read();
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    while (reader.MoveToNextAttribute())
                    {
                        switch (reader.Name)
                        {
                        case "name":
                            name = reader.Value;
                            break;

                        case "num_param":
                            num_param = Convert.ToInt32(reader.Value);
                            break;

                        case "ret_type":
                            ret_type = reader.Value;
                            break;

                        case "event":
                            has_event = Convert.ToInt32(reader.Value);
                            break;

                        default:
                            break;
                        }
                    }
                    if (name != "")
                    {
                        tableId.incCnt(name);
                        tableId.set_num_of_param(num_param);
                        switch (ret_type)
                        {
                        case "bool":
                            tableId.putTypeOfFunc(Type_of_lex._bool);
                            break;

                        case "string":
                            tableId.putTypeOfFunc(Type_of_lex._string);
                            break;

                        case "htmlelement":
                            tableId.putTypeOfFunc(Type_of_lex._htmlelement);
                            break;

                        case "htmlelementcollect":
                            tableId.putTypeOfFunc(Type_of_lex._htmlelementcollect);
                            break;

                        case "int":
                            tableId.putTypeOfFunc(Type_of_lex._int);
                            break;

                        default:
                            tableId.putTypeOfFunc(Type_of_lex._void);
                            break;
                        }
                        name = "";
                        cnt++;
                        if (has_event == 1)
                        {
                            tableId.set_has_event_func();
                        }
                    }
                }
            }
            tableId.set_inet_func_num(cnt);
        }