c# .net parsing generator lexical-analysis

Generadores Lexer C#/. NET



.net parsing (4)

Estoy de acuerdo con @David Robbins, ANTLR es probablemente tu mejor opción. Sin embargo, el código ANTLR generado necesita una biblioteca de tiempo de ejecución separada para usar el código generado porque hay algunos análisis sintácticos de cadenas y otros elementos comunes de biblioteca en los que se basa el código generado. ANTLR genera un lexer Y un analizador.

En una nota al margen: ANTLR es genial ... Escribí una gramática de más de 400 líneas para generar un código de más de 10k o C # para analizar de manera eficiente un idioma. Esto incluyó un control de errores incorporado para cada posible cosa que podría salir mal en el análisis del lenguaje. Intenta hacer eso a mano, y nunca estarás al día con los errores.

Estoy buscando un generador de escáner léxico decente para C # /. NET, algo que sea compatible con las categorías de caracteres Unicode y que genere un código algo legible y eficiente. Alguien sabe de uno?

EDITAR: Necesito soporte para categorías Unicode , no solo caracteres Unicode. Actualmente, solo hay 1421 caracteres en la categoría Lu (Carta, Mayúscula), y debo unir muchas categorías diferentes muy específicamente, y preferiría no escribir a mano los conjuntos de caracteres necesarios para ello.

Además, el código real es obligatorio : esto excluye las cosas que generan un archivo binario que luego se usa con un controlador (es decir, GOLD)

EDITAR: ANTLR aún no admite categorías Unicode. Sin embargo, existe un problema abierto, por lo que podría adaptarse a mis necesidades algún día.


GPLEX parece ser compatible con sus requisitos.


Las dos soluciones que vienen a la mente son ANTLR y Gold . ANTLR tiene un diseñador de gramática basado en GUI, y un excelente proyecto de muestra en C # se puede encontrar aquí .