usar tutorial tokens programs program part examples example como and c# .net parsing lexer

c# - tutorial - yacc example program



¿C#tiene puerto(directo) flex/yacc? ¿O qué lexer/parser usa la gente para C#? (3)

Creo que su mejor apuesta será GPLEX / GPPG, es lo más cercano a Yacc / Lex para C # que conozco, y tendrá que trasladar sus acciones a C # independientemente.

También he usado Coco / R, ANTLR (por supuesto) y, más recientemente, he jugado con Irony.net, fslex / fsyacc (F #) y fparsec (F #).

Aquí hay algunos enlaces.

Fparsec

Coco/R

Irony.net

Generador de analizador Gardens Point

Jardines Point Lex

No tengo una razón técnica para usar uno contra otro: juego con estos principalmente por diversión. Creé algunos DSL para proyectos de trabajo hace muchos años, pero realicé los escáneres / analizadores en esos (en ese entonces estaba trabajando principalmente en Pascal, y descubrí que TP Lex / Yacc no se adaptaba a mis gustos, y los DSL eran bastante simples). Descubrí que el FParsec y la Ironía se adaptan mejor a mis gustos, ya que el otro me parece algo "desordenado" (sin elegancia).

Puede que esté equivocado, pero parece que no hay un puerto directo de flex / bison (lex / yacc) para C # / .NET hasta ahora.

Para el analizador LALR, encontré GPPG / GPLEX, y para el analizador LL, está el famoso ANTLR. Pero, quiero reutilizar mi gramática flex / bisonte tanto como sea posible.

  • ¿Hay algún puerto directo de flex / bison para C #?
  • ¿Qué personas lexer / parser usan normalmente para C #? ¿Hay alguna razón para esa elección?


ANTLR es un generador de analizador / lexer muy maduro (y asombroso). Originalmente produjo código Java, pero ahora puede apuntar a varios idiomas, incluido C # .