Necesito un analizador o gramática para C# 3.0 (licencia de código abierto). ¿Cuál es la mejor opción hoy?¿El mejor analizador para C#?
Respuesta
Echa un vistazo al proyecto ANTLR. http://www.antlr.org/
Puede obtener C# gramática desde aquí: http://www.antlr.org/grammar/list
Salida Metaspec's C# parser:
El Metaspec C# analizador es totalmente compatible con ECMA-334 y estándares ECMA-335. Además, admite extensiones específicas de Microsoft. Para detalles sobre la biblioteca del analizador C#, , consulte la documentación en línea (C# edition o C++ edition).
C# 3.0 características soportadas:
algoritmo de inferenciavariables locales implícitamente mecanografiadas tipo
- nuevo C# 3.0
- inicializadores de objeto
- inicializadores de colección
- creación de objetos anónimos expresiones
- lambda expresiones
- tipos anónimos
- métodos de extensión
- consulta expresiones
- métodos parciales
C# 2.0 Características compatibles:
- genéricos
- tipos anulables
- métodos anónimos
¿Es * fuente abierta *? – skevar7
No estoy seguro, deberá ponerse en contacto con Metaspec para obtener una copia de su licencia. –
Depende de lo que está en optimzing.
Si está optimizando la capacidad de transformar C#, consulte el C# Front End para un analizador que maneja C# 1.2, 2.0 y 3.0 (incluida la sintaxis LINQ). El front-end C# se construye sobre DMS Software Reengineering Toolkit que proporciona el análisis sintáctico, construcción automática de AST, soporte para tablas de símbolos, transformación de fuente a fuente utilizando sintaxis de nivel de fuente con patrones, y AST vuelve a la impresión de texto fuente. Si está buscando transformar el código C#, esta es la herramienta para hacerlo. (DMS también se usa para analizar y transformar código en Java, C, C++, JavaScript, COBOL y muchos otros lenguajes).
Si está optimizando en código abierto, esta no es la herramienta que desea.
Recomiendo al menos mirar el proyecto LINQOverC# alojado en codeproject.com.
URL: http://www.codeplex.com/LinqOverCSharp
Hay algunos (menor de edad?) problemas conocidos, y no se ha actualizado desde enero de 2008 (que podría ser un problema bastante grande), pero el código fuente de un analizador C# 3.0 (rápido y 100% .Net) está ahí para tomar.
Mis cosas favoritas de este programa de análisis:
Se puede cargar un archivo de proyecto de Visual Studio (csproj) más o menos fuera de la caja, y analiza todo el asunto (incluyendo referencias de ensamblado).
Puede consultar, enumerar, filtrar, etc., el modelo de objetos analizados (árbol) utilizando LINQ. Lo cual hace que sea casi trivial recorrer arriba y abajo y todo lo que está analizando.
He aquí una muestra de consulta LINQ para encontrar una variable o parámetro de un método, donde el nombre de la variable = variable:
variable = (from v in method.Variables
where string.Compare(v.Name, VariableName, false) == 0
select v as LanguageElement).Union(
from p in method.FormalParameters
where string.Compare(p.Name, VariableName, false) == 0
select p as LanguageElement).FirstOrDefault();
- 1. ¿El mejor analizador JSON para Qt?
- 2. Mejor Analizador XML para PHP
- 3. Analizador para C#
- 4. Mejor analizador HTML liviano para Delphi
- 5. ¿Qué analizador HTML es el mejor?
- 6. ¿Cuál es el mejor analizador de XML para Perl?
- 7. ¿cuál es el mejor analizador html para java?
- 8. Jsoup como analizador para C++/C?
- 9. Necesita el analizador de C++
- 10. Analizador/Analizador para Erlang?
- 11. Objective-C DOM analizador XML para iPhone
- 12. Analizador de código C para .NET
- 13. Analizador/lector de CSV para C#?
- 14. ¿Hay un analizador de CSS para C#?
- 15. JSON para el analizador de Groovy
- 16. Analizador ligero XML C++ SAX
- 17. ¿Cuál es el mejor analizador de YAML en elisp?
- 18. ¿Cuál es la mejor manera de reutilizar el analizador Lua?
- 19. Diferencia entre el analizador XML SAX, el analizador de arrastre y el analizador DOM en Android
- 20. ¿Cuál es el mejor analizador de registro de Postfix?
- 21. simple C++ MIME analizador
- 22. Analizador JSON recomendado en C?
- 23. Analizador HTML para GAE
- 24. Analizador JSON para J2ME
- 25. Un simple XML C analizador
- 26. recursiva Descenso Analizador de C
- 27. Código analizador de código abierto para el marcado Mediawiki
- 28. Analizador para Wikipedia
- 29. Reconocedor Earley para el analizador Earley
- 30. C# código abierto analizador NMEA
Sólo por curiosidad .. ¿por qué quiere uno? – RCIX
Experimentando con transformaciones de código. – skevar7
Si usa Visual Studio SDK, puede obtener un modelo de objeto de documento completo del proyecto C# para realizar dichas transformaciones. VS ya lo usa para refractar e intellisense y muchos complementos también lo usan. –