comando bison en Linux con ejemplos

bison comando es un reemplazo para el yacc . Es básicamente un generador de parser similar a yacc . Los archivos de entrada deben seguir la convención yacc de terminar en formato .y . Similar a yacc , los archivos generados no tienen nombres fijos, sino que usan el prefijo del archivo de entrada. Además, si necesita poner código C++ en el archivo de entrada, puede terminar su nombre con una extensión similar a C++ como .ypp o .y++ , luego bison seguirá su extensión para nombrar el archivo de salida como .cpp o .c++ .

Sintaxis:

bison [OPTION]... FILE

Modos de operación:

  • -h, –help : Muestra esta ayuda y sale.
  • -V, –version : Muestra información de la versión y sale.
  • –print-localedir: muestra el directorio que contiene datos dependientes de la configuración regional.
  • –print-datadir : muestra el directorio que contiene esqueletos y XSLT.
  • -y, –yacc : Emula POSIX Yacc.
  • -W, –warnings[=CATEGORÍA] : Reporta las advertencias que caen en CATEGORÍA.
  • -f, –feature[=FEATURE] : Activa funciones misceláneas.

Analizador:

  • -L, –language=LANGUAGE : Especifica el lenguaje de programación de salida.
  • -S, –skeleton=FILE : Especifica el esqueleto a utilizar.
  • -t, –debug : Instrumenta el analizador para rastrear igual que ‘-Dparse.trace’.
  • –ubicaciones: Habilita el soporte de ubicación.
  • -D, –define=NOMBRE[=VALOR]: Es similar a ‘%define NOMBRE “VALOR”’.
  • -F, –force-define=NOMBRE[=VALOR] : Anula ‘%define NOMBRE “VALOR”’.
  • -p, –name-prefix=PREFIX : Antepone PREFIJO a los símbolos externos obsoletos por ‘-Dapi.prefix=PREFIX’.
  • -l, –no-lines : No genera directivas ‘#line’.
  • -k, –token-table : Incluye una tabla de nombres de tokens.

Producción:

  • –defines[=FILE] : También produce un archivo de encabezado.
  • -d : Es similar pero no puede especificar ARCHIVO (para POSIX Yacc).
  • -r, –report=THINGS : También produce detalles sobre el autómata.
  • –report-file=FILE : Escribe el informe en el ARCHIVO.
  • -v, –verbose : Lo mismo que ‘–report=state’.
  • -b, –file-prefix=PREFIX : Especifica un PREFIJO para los archivos de salida.
  • -o, –output=FILE : Deja la salida en FILE.
  • -g, –graph[=FILE] : También genera un gráfico del autómata.
  • -x, –xml[=ARCHIVO]: También genera un informe XML del autómata (el esquema XML es experimental).

Ejemplo:

  • bison: Por ejemplo, el archivo de gramática bison llamado file.y . De forma predeterminada, bison creará el archivo de salida con el mismo nombre que el archivo de entrada, con .tab adjunto al nombre.
    bison file.y 

  • -y: Emula POSIX Yacc, es decir, crea el nombre del archivo de salida usando la convención típica de yacc (y.tab.c), en lugar de y.tab.cpp de bison.
    bison -y file1.ypp

  • –defines: Se utiliza para generar un archivo de encabezado junto con el archivo .c (o .cpp) .
    bison --defines file.y

  • -p: se usa para agregar un prefijo personalizado propio a los símbolos externos.
    bison -p FILE file.y

  • -r: Se utiliza para generar un archivo de informe. El nombre de archivo de informe predeterminado es file.output
    bison -r all file.y

  • -V: Muestra la información de la versión de bisonte.
    bison -V

  • –print-localedir: muestra el directorio que contiene datos dependientes de la configuración regional.
    bison --print-localedir

  • –print-datadir: muestra el directorio que contiene esqueletos y XSLT.
    bison --print-datadir

  • -x: Muestra un reporte XML del autómata (el esquema XML es experimental).
    bison -x file.y

  • -g: Muestra una gráfica de la automatización.
    bison -g file.y

Nota:

  • Para verificar la página del manual del comando bison, use el siguiente comando:
    man bison
  • Para verificar la página de ayuda del comando bison, use el siguiente comando:
    bison --help 

Publicación traducida automáticamente

Artículo escrito por Mandeep_Sheoran y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *