On Saturday, June 29, 2019 at 8:40:06 AM UTC-4, josé mariano wrote:
> Dear all,
> 
> I'm sure that this subject has been addressed many times before on this 
> forum, but my poor knowledge of English and of computer jargon and concepts 
> results on not being able to find the answer i'm looking for when I search 
> the forum. 
> 
> So here is my problem: I have this open source project for the scientific 
> community were i want to duplicate an old MS-DOS application written in 
> Fortran. I don't have the source code. The idea is to re-write the software 
> in Python. Originally, the old application would would need to input files: 
> one config file, written with a specific format (see below) and a second one, 
> the so-called scrip file, that defines the sequence of operations to be 
> performed by the main software, also written in a specific format. 
> 
> To make the transition to the new application as painless as possible to the 
> users, because most of them have their collection of scrips (and settings) 
> developed over the years and are not willing to learn a new script language, 
> I would like to make the new app 100% compatible with the old input files.
> 
> The operation of the new software would be like this: From the shell, run 
> "my_new_software old_script_file.***". The new software would load the 
> old_script, parse it (?), set the internal variables, load the script and run 
> it.
> 
> So, to get to my questions: 
> 
> - To load and read the config file I need a parser, right? Is their a parser 
> library where we can define the syntax of the language to use? Are there 
> better (meaning easier) ways to accomplish the same result?
> 
> - For the interpretation of the script file, I don't have any clue how to 
> this... One important thing, the script language admits some simple control 
> flow statements like do-wile, again written using a specific sintax. 
> 
> Thanks a lot for the help and sorry for the long post.
> 
> Mariano
> 
>   
> 
> Example of a config (settings) file
> ========================
> .....
> CONDAD     -11
> BURAD2     4 SALT1 1.0 KNO3
> ELEC5      -2.0 mV 400 58 0. 0
> .....
> 
> 
> Example of a script
> ===================
> !Conductivity titration
> cmnd bur1 f
> set vinit 100
> set endpt 2000
> set mvinc 20
> set drftim 1
> set rdcrit cond 0.5 per_min
> set dosinc bur1 0.02 1000
> set titdir up
> titratc cond bur1

Jose,

You've had already very good advise; all I wanted to do is recommend the use of 
PyParsing (https://github.com/pyparsing/pyparsing).

It helped me a lot in creating and parsing a simple grammar I had to implement 
in a personal project. If you've ever used lex or yacc you'll appreciate 
PyParsing's simplicity. Of course, as with anything else; there is a (rather 
small) learning curve
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to