GithubHelp home page GithubHelp logo

Comments (5)

dorchard avatar dorchard commented on September 26, 2024

I propose, for the moment, that we create a 'permissive mode' F77 parser (using CPP is probably easiest) which adds a production for INCLUDE to the grammar. Then we can generate two parsers:
Fortran77 and Fortran77Permissive (the later of which we can use with some of our corpus, which is F77 but has includes).

from fortran-src.

madgen avatar madgen commented on September 26, 2024

That already exists it it called Fortran77Extended. There is no way of selectively adding rules to one but not the other though. So for INCLUDE it will just be an overgenerating parser.

Keep in mind F90 already supports INCLUDE.

from fortran-src.

dorchard avatar dorchard commented on September 26, 2024

I suggested using CPP so that we can selectively add rules to one but not the other.

from fortran-src.

madgen avatar madgen commented on September 26, 2024

Ohhhh, I see. That's a good idea but it requires some thinking because every divergent production needed to be generated twice and all productions that have divergent productions on RHS also need to be generated with two names, etc. Do you mind leaving this open until Monday and we can discuss in the meeting and I can start implementing right away?

from fortran-src.

dorchard avatar dorchard commented on September 26, 2024

Sure. That'd be great. I don't follow what you are saying about generating twice / two names though. I was thinking that for INCLUDE we could get away with having an additional case for NONEXECUTABLE_STATEMENT that is wrapped in an #ifdef block. We can then generate two .y files (with some #ifdef on the module/parser names).

from fortran-src.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.