It doesn't yet. Are you interested in this for parsing or for code generation?
If for code generation (i.e., LFortran parses your Fortran code, and then generates a Fortran code back in this format), then I think that will not be that difficult to implement, I think this would be useful.
Regarding parsing, for now my parser is for free form. But I think it would be useful to also have a fixed form parser --- it might need to be a separate parser, but the rest of LFortran can be reused.
> Does it have a linter that can remove linenumbers in the easy cases?
Can you give an example of what you mean?
One issue with linting is that currently the parser is not round-trippable (https://gitlab.com/lfortran/lfortran/issues/42). That means that it can generate the original code back, but it will be formatted differently (mostly white space). Most compilers are not round-trippable. The only compiler that I know about that is round-trippable is C#. Essentially one has to keep track of white space and other formatting, and I didn't want this to complicate the internal representation. I wanted to design the internal representation that is as simple as possible. And then see if one can add optional nodes for white space, similarly how C# does it. If it's possible, then I'll do it.
However, even if it is not round-trippable, the linter can simply generate a nice Fortran code back, and if people use the linter like `clang-format`, enforced by the CI, then it might not be a problem.
Here is the current implementation of ASR (Abstract Semantic Representation) to AST (Abstract Semantic Tree):
https://gitlab.com/lfortran/lfortran/blob/f5856fadf8bd0cc479...
And AST to source code:
https://gitlab.com/lfortran/lfortran/blob/f5856fadf8bd0cc479...
We will be extending it this summer to support more Fortran features.
It's mostly about priority at this point --- I want all of the above to be implemented, it's just about what I do first and what second. Feel free to vote or open new issues here:
https://gitlab.com/lfortran/lfortran/issues
See also my current roadmap/priorities at the bottom of: