Ejemplo n.º 1
0
        /// <summary>
        /// Преобразует код программы в его программное представление
        /// </summary>
        /// <param name="FileName">Имя файла программы</param>
        /// <param name="HasExternalIOModules">Показывает, распарсивать ли код с поддержкой внешних модулей ВВ</param>
        public static RelkonCodeModel ParseFromFile(string FileName, bool HasExternalIOModules)
        {
            RelkonCodeModel res = RelkonCodeModel.ParseFromCode(File.ReadAllText(FileName, Encoding.Default));

            res.fileName = FileName;
            return(res);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Преобразует код программы в его программное представление
        /// </summary>
        /// <param name="Code">Код программы</param>
        /// <param name="HasExternalIOModules">Показывает, распарсивать ли код с поддержкой внешних модулей ВВ</param>
        public static RelkonCodeModel ParseFromCode(string Code)
        {
            RelkonCodeModel res = new RelkonCodeModel();

            res.codeRemainder = new StringBuilder();
            RemoveComments(new StringReader(Code), res.codeRemainder);
            res.initFunction = GetInitFunction(res.codeRemainder);
            res.processes    = GetProcessesList(res.codeRemainder);
            RemoveRelkonDirectives(res.codeRemainder);
            res.defines = GetDefines(res.codeRemainder);
            StringBuilder VarsAndStructs = new StringBuilder(res.codeRemainder.ToString());

            res.structs = GetStructsDefenitions(VarsAndStructs);
            res.vars    = GetVarsList(VarsAndStructs);
            res.FillIOModulesList();
            return(res);
        }