GithubHelp home page GithubHelp logo

pyrser's People

Contributors

vernalhav avatar

Stargazers

 avatar

Watchers

 avatar

pyrser's Issues

Add default error recovery routines

Could be based off of important nonterminals (either specified by the user or inferred) as described in page 283 (306) of the Dragon Book.

Add customizable error recovery routines

The user can manually override parsing table entries with custom error recovery routines that would allow them to operate the parser as desired. Examples can be found in page 284 (307) of the Dragon Book.

Add operator precedence and associativity to resolve simple conflicts

The procedure used by Yacc is briedly described in Dragon Book page 293 (316). The biggest design challenge is to understand where and how the user would specify this precedence.

At the parser level:

  • The parsing table would contain Conflict entries and the parser would apply the supplied rules while parsing to disambiguate.
  • Or the parser could "manually" override the Conflict entries as a pre-processing step. This would result in lower overhead while parsing.
  • This would decouple the automata from the precedence and associativity rules.

At the table creation level:

  • The automata would have access to the given precedences and associativites to transform Conflict entries into Shift or Goto.

Add default conflict resolution

Should this be solved at the parsing table level (as in there always being exactly one Action for each transition) or at the parser level (as in having a actions.Conflict action that stores all possibilities), to be disambiguated by the parser?

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.