Coder Social home page Coder Social logo

Invite you to try FslexFsyacc about farkle HOT 3 CLOSED

xp44mm avatar xp44mm commented on June 9, 2024
Invite you to try FslexFsyacc

from farkle.

Comments (3)

teo-tsirpanis avatar teo-tsirpanis commented on June 9, 2024 1

I think I now understand what you meant @xp44mm and I am going to close this issue.

Thanks for trying Farkle and I hope it serves you well. Don't hesitate to open an issue or discussion if you have any question.

from farkle.

teo-tsirpanis avatar teo-tsirpanis commented on June 9, 2024

Hello, and thanks for letting me know, I like other people having the same interest in parsing as I have, it makes a great opportunity to learn from each other. I am wondering though, what advantages does your project offer over Farkle? Let me address your bullet points:

  • Farkle allows custom tokenizers as well, and there is a well-commented example that implements an indentation-sensitive grammar.
  • Farkle uses standard F# and C# code to minimize your learning costs even more, provide IntelliSense, and real-time syntax error checking for free, and allow you to craft your language in any way imaginable.
  • Farkle does not generate source code. The entire logic for building the LALR and DFA tables lies within the Farkle library. It also can seamlessly generate these grammar tables ahead of time, to provide the start-up performance characteristics and early error reporting of real parser generators like yours. But that is a totally optional feature.
  • Didn't exactly understand the last one, but regexes, terminals and nonterminals in Farkle are first-class objects that can be easily composed. Moreover Farkle's tokenizers and post-processors (the objects that convert the tokens and productions to useful objects) are easily replaceable and usable on their own, if that's what you meant.

from farkle.

xp44mm avatar xp44mm commented on June 9, 2024

I've given your project a star and will find time to learn about it in the future.

My last point is that both fslex and fsyacc generate a pure function with no side effects, so they can be composed flexibly.

fslex generates the analyze function

analyze: seq<'token> -> seq<'a>

and fsyacc generates the parse function

parse: seq<'token> -> 'ast

With your introduction, our project may be somewhat similar. Not generating source code may be friendlier to the parser designer. The way the source code is generated may have a little benefit to startup performance.

from farkle.

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.