Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does C# have (direct) flex/yacc port? Or what lexer/parser people use for C#? [closed]

I might be wrong, but it looks like that there's no direct flex/bison (lex/yacc) port for C#/.NET so far.

For LALR parser, I found GPPG/GPLEX, and for LL parser, there is the famous ANTLR. But, I want to reuse my flex/bison grammar as much as possible.

  • Is there any direct port of flex/bison for C#?
  • What lexer/parser people normally use for C#? Is there any reason for that choice?
like image 778
prosseek Avatar asked Jun 04 '10 13:06

prosseek


People also ask

Can hep C be cured?

Antiviral medicines can cure more than 95% of persons with hepatitis C infection, but access to diagnosis and treatment is low. There is currently no effective vaccine against hepatitis C.

How easy is it to get hep C?

Hepatitis C is spread only through exposure to an infected person's blood. High-risk activities include: Sharing drug use equipment. Anything involved with injecting street drugs, from syringes, to needles, to tourniquets, can have small amounts of blood on it that can transmit hepatitis C.

Can you get hep C from saliva?

Hepatitis C is not spread through kissing, hugging, breastfeeding, sharing eating utensils or drinking glasses, coughing, sneezing, food, water, or casual contact.

How long can you have hep C without knowing?

Today, chronic HCV is usually curable with oral medications taken every day for two to six months. Still, about half of people with HCV don't know they're infected, mainly because they have no symptoms, which can take decades to appear.


1 Answers

I think your best bet is going to be GPLEX/GPPG, it's the closest thing to Yacc/Lex for C# that I know of, and you will need to port your actions into C# regardless.

I have also used Coco/R, ANTLR (of course), and have more recently played with Irony.net, fslex/fsyacc (F#), and fparsec (F#).

Here are some links

Fparsec

Coco/R

Irony.net

Gardens Point Parser Generator

Gardens Point Lex

I don't have a technical reason for using one versus another: I play around with these mostly for fun. I did create some DSLs for work projects a good number of years ago, but I hand rolled the scanners/parsers on those (back then I was working mostly in Pascal, and I found that TP Lex/Yacc did not suit my tastes, and the DSLs were simple enough). I have found that FParsec and Irony suit my tastes the best, as I find the other somewhat "messy" (lacking in elegance).

like image 52
Andre Artus Avatar answered Nov 03 '22 01:11

Andre Artus