Este es el comando antlr que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
antlr - OTRA herramienta para el reconocimiento de idiomas
SINTAXIS
hormiga [opciones] archivos_gramaticales
DESCRIPCIÓN
asta convierte una forma extendida de gramática libre de contexto en un conjunto de funciones C que
implementar directamente una forma eficiente de analizador sintáctico LL (k) de descenso recursivo determinista.
Las gramáticas libres de contexto pueden aumentarse con predicados para permitir que la semántica influya
análisis sintáctico esto permite una forma de análisis sensible al contexto. El retroceso selectivo también es
disponible para manejar construcciones no LL (k) e incluso no LALR (k). asta también produce un
definición de un lexer que se puede convertir automáticamente en código C para un DFA
Lexer por dlg. Por lo tanto, hormiga cumple una función muy parecida a la de yacc, sin embargo lo és
notablemente más flexible y está más integrado con un generador de lexer (hormiga directamente
genera dlg código, mientras que yacc y lex reciben descripciones independientes). diferente a yacc
que acepta LALR(1) gramáticas, hormiga acepta gramáticas LL (k) en una notación BNF extendida -
lo que elimina la necesidad de reglas de precedencia.
Como yacc gramáticas, hormiga las gramáticas pueden usar atributos de símbolo mantenidos automáticamente
valores referenciados como variables en dólares. Además, porque hormiga genera analizadores de arriba hacia abajo,
los valores arbitrarios pueden heredarse de las reglas principales (pasados como parámetros de función).
asta también tiene un mecanismo para crear y manipular árboles de sintaxis abstracta.
Hay varias otras sutilezas en hormiga, incluida la capacidad de difundir una gramática
sobre varios archivos o incluso varias gramáticas en un solo archivo, la capacidad de generar una
versión de la gramática con acciones eliminadas (para fines de documentación) y lotes
más.
OPCIONES
-ck n Utilizar hasta n símbolos de anticipación cuando se usa comprimido (aproximación lineal)
mirar hacia el futuro. Este tipo de anticipación es muy económico de calcular y se intenta antes
Lookahead LL (k) completo, que es de complejidad exponencial en el peor de los casos. En
En general, la búsqueda anticipada comprimida puede ser mucho más profunda (p. ej., -ck 10) que la completa
anticipación (que normalmente debe ser inferior a 4).
-CC Genere salida de C ++ tanto de ANTLR como de DLG.
-cr Genere una referencia cruzada para todas las reglas. Para cada regla, imprima una lista de todas las demás
reglas que lo hacen referencia.
-e1 Las ambigüedades / errores se muestran con poco detalle (predeterminado).
-e2 Las ambigüedades / errores se muestran con más detalle.
-e3 Ambigüedades / errores mostrados con un detalle insoportable.
-fe presentar
rebautizar err.c archivar.
-fh presentar
rebautizar stdpccts.h encabezado (enciende -gh) archivar.
-Florida presentar
Cambiar el nombre de la salida léxica, analizador.dlg, archivar.
-fm presentar
Cambiar el nombre del archivo con definiciones de modo léxico, modo.h, archivar.
-Fr presentar
Cambiar el nombre del archivo que reasigna los símbolos visibles globalmente, reasignar.h, archivar.
-pie presentar
rebautizar fichas.h archivar.
-Georgia Genere código compatible con ANSI (caso predeterminado). Esto no ha sido probado rigurosamente.
para ser compatible con ANSI XJ11 C, pero está cerca. La salida normal de hormiga is
actualmente compilable en K&R, ANSI C y C ++; esta opción no hace nada
because hormiga genera un montón de # ifdef's para hacer lo correcto dependiendo de la
idioma.
-gc Indica que hormiga no debe generar código C, es decir, solo realizar análisis en el
gramática.
-gd El código C se inserta en cada uno de los hormiga funciones de análisis generadas para proporcionar
manejo definido por el usuario de una traza de análisis detallada. El código insertado consta de
llamadas a las macros o funciones proporcionadas por el usuario llamadas zzTRACEÍNA y zzTRACEOUT.
El único argumento es un tanque * apuntando a una cadena de estilo C que es la gramática
regla reconocida por la función de análisis actual. Si no se da una definición para el
funciones de seguimiento, al entrar y salir de la regla, se imprimirá un mensaje indicando
que se ha entrado o salido de una regla en particular.
-ge Genere una clase de error para cada no terminal.
-gh Generar stdpccts.h para incluir archivos no generados por ANTLR. Este archivo contiene
todas las definiciones necesarias para describir el tipo de analizador generado por hormiga (por ejemplo, cuánto
se utiliza lookahead y si se construyen o no árboles) y contiene el encabezamiento
acción especificada por el usuario.
-G k Genere analizadores que retrasen las búsquedas anticipadas hasta que se necesiten. Sin esta opción,
hormiga genera analizadores que siempre tienen k tokens de anticipación disponibles.
-gl Genere información de línea sobre acciones gramaticales en el analizador C del formulario # línea "presentar"
lo que hace que los mensajes de error del compilador C / C ++ tengan más sentido, ya que
apunte al archivo de gramática, no al archivo C resultante. La depuración también es más fácil,
porque pasará por la gramática, no por el archivo C.
-gs No genere conjuntos para listas de expresiones de token; en su lugar genera un ||-apartado
secuencia de LA(1) ==número_token. El valor predeterminado es generar conjuntos.
-gt Genere código para árboles de sintaxis abstracta.
-gx No cree los archivos del analizador léxico (relacionados con dlg). Esta opción debe ser
dado cuando el usuario desea proporcionar un analizador léxico personalizado. También puede
ser utilizado en “piensen de nuevo sobre los incrementos de precio” scripts para hacer que solo se reconstruya el analizador cuando un cambio no
que afecta a la estructura léxica se hace a las gramáticas de entrada.
-k n Establezca k de LL (k) en n; es decir, establecer tokens de anticipación (predeterminado == 1).
-o dir Directorio donde deben ir los archivos de salida (predeterminado = "."). Esto es muy bueno para
mantener el directorio de origen libre de ANTLR y DLG spawn.
-p La gramática completa, recopilada de todos los archivos gramaticales de entrada y despojada de todos
comentarios y acciones incrustadas, se lista para stdout. Esto está destinado a ayudar en
ver toda la gramática como un todo y eliminar la necesidad de mantener acciones
expresado de forma concisa para que la gramática sea más fácil de leer. Por tanto, es preferible
incrustar incluso acciones complejas directamente en la gramática, en lugar de llamarlas como
subrutinas, ya que se guardará la sobrecarga de llamadas a la subrutina.
-Pensilvania Esta opción es la misma que -p excepto que la salida está anotada con la primera
conjuntos determinados a partir del análisis gramatical.
-prc on
Active el cálculo y la elevación del contexto del predicado.
-prc off
Desactive el cálculo y la elevación del contexto del predicado. Esta opción hace 1.10
comportarse como la versión 1.06 con opción -pr sobre. El cálculo de contexto está desactivado por
predeterminada.
-rl n Limite el número máximo de nodos de árbol utilizados por el análisis gramatical a n.
De vez en cuando, hormiga no puede analizar una gramática enviada por el usuario. Esta
Una situación rara solo puede ocurrir cuando la gramática es grande y la cantidad de anticipación
es mayor que uno. PCCTS utiliza un algoritmo de análisis no lineal para manejar la
caso general de análisis sintáctico LL (k). La complejidad promedio del análisis, sin embargo, es
casi lineal debido a un juego de pies elegante en la implementación que reduce la
número de llamadas al algoritmo LL (k) completo. Se mostrará un mensaje de error,
si se alcanza este límite, lo que indica la construcción gramatical que se analiza cuando
hormiga golpear una no linealidad. Utilice esta opción si hormiga parece salir a almorzar y
su disco comienza a romperse; tratar n= 10000 para empezar. Una vez que el constructo ofensivo ha
identificado, intente eliminar la ambigüedad que hormiga estaba tratando de superar con
gran análisis anticipado. La introducción de (...)? bloques de retroceso
elimina algunos de estos problemas - hormiga no analiza alternativas que comienzan
con (...)? (simplemente retrocede, si es necesario, en tiempo de ejecución).
-w1 Establezca un nivel de advertencia bajo. ¿No advertir si predicados semánticos y / o (...)? los bloques son
se supone que cubre alternativas ambiguas.
-w2 Las decisiones de análisis ambiguas producen advertencias incluso si son predicados semánticos o (...)?
se utilizan bloques. Advertir si el contexto del predicado se calcula y los predicados semánticos
desambiguar de forma incompleta las producciones alternativas.
- Lea la gramática de la entrada estándar y genere stdin.c como el archivo del analizador.
SPECIAL CONSIDERACIONES
asta funciona ... pensamos. No hay garantía implícita de nada. No nos reservamos
legal derechos sobre el software conocido como Purdue Compiler Construction Tool Set (PCCTS) -
PCCTS es de dominio público. Un individuo o empresa puede hacer lo que quiera con
código fuente distribuido con PCCTS o el código generado por PCCTS, incluido el
incorporación de PCCTS, o su salida, en software comercial. Animamos a los usuarios a
desarrollar software con PCCTS. Sin embargo, pedimos que se nos dé crédito por desarrollar
PCCTS. Por "crédito", queremos decir que si incorpora nuestro código fuente en uno de sus
programas (producto comercial, proyecto de investigación o de otro tipo) que reconoce este
hecho en algún lugar de la documentación, informe de investigación, etc ... Si te gusta PCCTS y tienes
desarrolló una buena herramienta con el resultado, por favor mencione que la desarrolló usando PCCTS.
Mientras se sigan estas pautas, esperamos continuar mejorando este sistema y
Espere poner a disposición otras herramientas a medida que se completen.
Use antlr en línea usando los servicios de onworks.net