Парсер файлов конфигурации в Фортране - PullRequest
6 голосов
/ 24 февраля 2011

Я бы хотел использовать простой файл конфигурации для передачи параметров в мою программу.Этот файл конфигурации будет состоять из списка аргументов со значениями, которые могут быть разных типов (целые, вещественные, логические, список слов и т. Д.).

Вот пример конфигурации, которую я бы хотел проанализировать простым способом:

! This is a first comment
param1 = 1234;
param2 = TRUE;                    ! This is a second comment

param3 = abc def ghi jkl mno   
             pqr stu vwx yz;

! Another type of instruction, 
! i.e. to specify that var1-var3 depend on var4-var10:
var1 var2 var3 ~ var4 var5 var6
                 var7 var8 var9 var10;

Разрешены разрывы строк и могут передаваться различные типы инструкций.к программе.

Я знаю, что NAMELIST может каким-то образом позволить это сделать (за исключением последней части файла конфигурации в этом примере), однако он не выглядит достаточно гибким для моих нужд.Например, я не думаю, что это позволяет вставлять комментарии в файл конфигурации.

Я нашел много библиотек на C и C ++, предлагающих такой синтаксический анализатор файлов конфигурации, но, что удивительно, в Fortran ничего нет.Кто-нибудь знает о такой библиотеке?

Заранее спасибо за помощь!

Ответы [ 6 ]

2 голосов
/ 20 сентября 2015

Я бы всегда рекомендовал использовать стандартный формат для ваших файлов конфигурации.Это может принести дивиденды позже, если вы захотите сказать, написать сценарий вашей программы или сгенерировать или прочитать ваши файлы конфигурации на другом языке программирования.В настоящее время (в 2015 году) для Fortran доступно несколько хороших стандартных анализаторов конфигурационных файлов, поэтому нет необходимости использовать другие языки.См., Например:

Обратите внимание, что они как для современного Фортрана, так и требуют одного из более новых компиляторов (скажем, gfortran 4.9 или новее).

2 голосов
/ 15 июля 2011

у нас есть библиотека aotus, которая позволяет использовать сценарии Lua в качестве файлов конфигурации в приложениях на Fortran: AOTUS Возможно, это полезно для вас.

0 голосов
/ 27 июля 2016

Несколько лет назад, когда я начал использовать Fortran, я также был удивлен отсутствием анализаторов конфигурационных файлов.Вот почему я решил написать свой собственный парсер: fortran_config .Синтаксис намеренно оставался очень простым:

name_of_variable = value1 [value2 value3 ...] # Optional comment

Где переменные могут быть целыми числами, вещественными значениями, строками или логическими элементами.

0 голосов
/ 26 августа 2013

Я бы порекомендовал простой и понятный простой C config-parser libconfig

Вы можете легко связать модуль на базе libconfig (написанный на C) с вашим кодом на Fortranиспользуя компилятор gcc или Intel.

0 голосов
/ 05 июня 2013

Другой вариант - TTUTIL , используемый в гидрологической модели SWAP от Alterra.Я установил грубые R-привязки вокруг него.

Хотя я не уверен, как обращаться с последней частью вашего примера, используя эту библиотеку: (*

0 голосов
/ 23 апреля 2011

Может как то так?http://gbenthien.net/strings/ Первый удар в Google для парсера символов Fortran.

...