fsprojects / FsLexYacc

Lexer and parser generators for F#
http://fsprojects.github.io/FsLexYacc/
MIT License
203 stars 68 forks source link

Invite you to try FslexFsyacc #156

Open xp44mm opened 2 years ago

xp44mm commented 2 years ago

Lex/Yacc programming enthusiasts, I am very pleased to invite you to try a new series of lex/yacc tools.

Fslex is a code generator that uses regular expression syntax as a rule to generate a function, which divides the input token sequence into groups at a higher level. The Fslex is often used to remove redundant delimiters, add omitted delimiters or other syntax components, and so on. The Fslex is also used to determine context somewhere in the stream.

Fsyacc is a code generator that use BNF productions and precedences as a rule to generate a function, which resolves the input token sequence to an abstract syntax tree.

Why use this package?

You can check it by following the link: https://github.com/xp44mm/FslexFsyacc

dsyme commented 2 years ago

Cool!

One thing - could you please choose other names besides "Fslex" and "Fsyacc"? They will be too confusing to people given the tools in this repo use these names

xp44mm commented 2 years ago

I was very excited to have a big god to see this project. You are my idol and mentor. Whatever the name of the project is, it is F#'s descendant. Without F#, there would be no it.

dsyme commented 2 years ago

@xp44mm Thank you for your kind words :)

Yes, please do choose another name. Perhaps FsLexYaccPlus or FsLexYaccAlt or just some entirely new name

xp44mm commented 2 years ago

@dsyme The rename of this package is easy to handle. It is okay to rename as you suggest. However there still is no shortage of name resources on nuget, and once the name is registered, it will always exist, so we use this name temporarily and will rename it at an appropriate time in the future.

I implemented an html parser and a json parser, both using fslexfsyacc, which is more readable than a hand-written automaton. Especially in html parsers, fslex is used multiplely to simplify the parsing process. Please take a review it in your busy schedule. It may surprise you.

xp44mm commented 2 years ago

ESTreeParser

This package is A Parser for AST Descriptor Syntax of estree. It is uploaded to nuguet.

Feature

dsyme commented 2 years ago

I implemented an html parser and a json parser, both using fslexfsyacc, which is more readable than a hand-written automaton. Especially in html parsers, fslex is used multiplely to simplify the parsing process.

I took a look - very impressive, simple and declarative.

Please do keep letting the community know about these new tools, e.g. via twitter #fsharp tag

robreno commented 1 year ago

@xp44mm Thank you for your kind words :)

Yes, please do choose another name. Perhaps FsLexYaccPlus or FsLexYaccAlt or just some entirely new name

Renamed the repo per dsyme's request to FslexFsyaccEx for purposes of studying the codebase.