#include #include "pcomp.tab.h" extern int yylval_i; extern double yylval_d; extern char *yylval_s; int main() { int tok; /* Dieser (ziemlich sinnlose) Parser akzeptiert *jede* Folge von Token. */ while (tok=yylex()) { switch (tok) { case TOK_INT: printf("Eine Ganz-Zahl: %d\n", yylval_i); break; case TOK_DOUBLE: printf("Eine Fliesskomma-Zahl: %g\n", yylval_d); break; case TOK_IF: case TOK_THEN: case TOK_BEGIN: case TOK_END: case TOK_PROCEDURE: case TOK_FUNCTION: case TOK_EQUAL: case TOK_SEMICOLON: printf("Ein Schluesselwort.\n"); break; case TOK_ID: printf("Ein Bezeichner: '%s'\n", yylval_s); break; case TOK_PLUS: case TOK_MINUS: case TOK_TIMES: case TOK_DIV: printf("Ein Operator.\n"); break; default: printf("Interner Fehler: Unbekanntes Token %d!\n", tok); exit(1); } } return 0; }