Open reuterbal opened 4 years ago
Digging out a very old issue, just to point out that case 1 above works now correctly:
python3 -c "
from fparser.two.parser import ParserFactory; from fparser.api import get_reader; parser = ParserFactory().create(); fcode = 'PROGRAM HOLLERITH\n901 FORMAT (2HA )\nEND PROGRAM HOLLERITH'; print(parser(get_reader(fcode)))"
PROGRAM HOLLERITH
901 FORMAT(2HA )
END PROGRAM HOLLERITH
However, case 2 is not handled in the expected way, yet:
python3 -c "
from fparser.two.parser import ParserFactory; from fparser.api import get_reader; parser = ParserFactory().create(); fcode = 'PROGRAM HOLLERITH\n901 FORMAT (2HAAA ,1X)\nEND PROGRAM HOLLERITH'; print(parser(get_reader(fcode)))"
Traceback (most recent call last):
File "/etc/ecmwf/nfs/dh1_home_a/nabr/loki/main/loki_env/lib/python3.8/site-packages/fparser/two/Fortran2003.py", line 267, in __new__
return Base.__new__(cls, string)
File "/etc/ecmwf/nfs/dh1_home_a/nabr/loki/main/loki_env/lib/python3.8/site-packages/fparser/two/utils.py", line 501, in __new__
raise NoMatchError(errmsg)
fparser.two.utils.NoMatchError: at line 2
>>>901 FORMAT (2HAAA ,1X)
Sorry, another archaic one... Matching of Hollerith constants seems to have a few issues. I noticed the following:
strip()
orrstrip()
issue?). The actual NoMatchError might be connected to 2. below.During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "", line 1, in
File "/.../src/fparser/two/Fortran2003.py", line 241, in new
raise FortranSyntaxError(string, "")
fparser.two.utils.FortranSyntaxError: at line 2