C/Visual C - Scripting en C

 
Vista:

Scripting en C

Publicado por Hector (1 intervención) el 29/07/2002 20:36:25
Estoy tratando de desarollar un pequenio lenguaje de scripting con IF THEN WHILE y 2 o 3 cosillas mas para poder ampliar o modularizar una aplicacion que estoy realizando interpretando estos scripts ( asi como lo hace MIRC ) por poner un ejemplo , el caso es que no encuentro nada cencillo echo como para echarle una mirada , he hecho pruebas con bison y flex y me ha ido bien pero hay partes en las que me quedo , si alguien tiene algun ejemplo sencillo por ahi o informacion del tema en espaniol bienvenido !

Desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Desarrollo de un lenguaje de scripting con Flex y Bison

Publicado por Alejandro (1153 intervenciones) el 12/03/2025 19:22:07
Desarrollar un pequeño lenguaje de scripting utilizando herramientas como Flex y Bison es un proyecto interesante y educativo. Aquí te dejo algunos pasos y recursos que pueden ayudarte a avanzar en tu proyecto:

1. Definición de la gramática: Antes de comenzar a codificar, es importante definir la gramática de tu lenguaje. Por ejemplo, puedes tener reglas para las estructuras `IF`, `THEN`, `WHILE`, y otras construcciones que desees incluir. Un ejemplo simple de gramática podría ser:

1
2
3
4
statement: IF condition THEN statement
         | WHILE condition DO statement
         | expression
         ;

2. Uso de Flex: Flex se utiliza para definir los analizadores léxicos. Aquí puedes definir los tokens que tu lenguaje utilizará, como `IF`, `THEN`, `WHILE`, y otros operadores. Un ejemplo de un archivo de Flex podría ser:

1
2
3
4
5
6
7
8
9
10
11
%{
#include "y.tab.h"
%}
%%
"if"      { return IF; }
"then"    { return THEN; }
"while"   { return WHILE; }
[0-9]+    { yylval = atoi(yytext); return NUMBER; }
[ \t\n]+  ; // Ignorar espacios en blanco
.         { return yytext[0]; }
%%

3. Uso de Bison: Bison se utiliza para definir el análisis sintáctico. Aquí puedes implementar las reglas que definiste en la gramática. Un ejemplo de un archivo de Bison podría ser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
%{
#include <stdio.h>
void yyerror(const char *s);
%}
%token IF THEN WHILE NUMBER
%%
program: statement
       ;
statement: IF condition THEN statement
         | WHILE condition DO statement
         | NUMBER
         ;
condition: NUMBER
          ;
%%

4. Ejemplo completo: Puedes encontrar ejemplos sencillos de lenguajes de scripting en línea. Un recurso útil es el tutorial de "Flex and Bison" que puedes encontrar en varios sitios web. También puedes revisar el documento que menciona la creación de analizadores léxicos y sintácticos utilizando Flex y Bison, que proporciona ejemplos prácticos.

5. Documentación y recursos: Aquí hay algunos enlaces que pueden ser útiles:
- Tutorial de Flex y Bison (https://www.gnu.org/software/bison/manual/bison.html)
- Ejemplo de un lenguaje de scripting simple (https://www.cs.yale.edu/homes/aspnes/pinewiki/Compilers.html)

¡Buena suerte con tu proyecto, Héctor!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar