/// <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); }
/// <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); }