Está en la página 1de 3

ANEXO 1

program ejer; var radio:real; var longitud, area, valorpi:real; begin radio:=4; longitud:=2+3.1416*radio; ValorPi:=3.1416*radio/radio; write ('longitud '); writeln (longitud:5:2); end.

PARTE A

%{ %} %option noyywrap %% //Completar las expresiones regulares necesarias para la gramatica del //ejemplo %% int main(int argc,char* argv[] ) { ++argv, --argc; /* se salta el nombre del programa */ if ( argc > 0 ) yyin = fopen( argv[0], "r" ); else yyin = stdin; yylex(); return (EXIT_SUCCESS); }

PARTE B

%{ #include <stdio.h> char lexema[60]; #define YYSTYPE int %} %token NUM %% s : expr {printf("%S\n",lexema);} ;

%% int yylex() { int i,c; while (1) { c=getchar(); if (c=='\n') return EOF; if (isspace(c)) continue; //completer . return c; } } void yyerror(char * m){ printf("%s\n",m); } void main(){ if (yyparse()==0) printf("\ncadena valida\n"); else printf("\ncadena invalida\n"); getchar(); }

También podría gustarte