KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to make a compiler for a mini Pascal-like language. I'm using Flex and Bison for this and I came up with this error. My Flex file: %{ #include "y.tab.h" #include <stdlib.h> #include <string.h> #include <math.h> void yyerror(char *); %} %% [1-9][0-9]* { yylval.i = atoi(yytext); return INT; } program return PROGRAM; or return OR; and return AND; not return NOT; if return IF; else return ELSE ; while return WHILE; "+" return PLUS; "-" return MINUS; "*" return MUL; "/" return DIV; "[" return LSB; "]" return RSB; "{" return LCB; "}" return RCB; "(" return LEFTPAR; ")" return RIGHTPAR; ":=" return ASSIGN; "==" return ISEQUAL; "<" return LTHAN; ">" return GTHAN; "<>" return NOTEQUAL; "<=" return LESSEQUAL; ">=" return GREATEREQUAL; [a-zA-z][a-z0-9]* { yylval.s = (char*)malloc(strlen(yytext)*sizeof(char)); strcopy(yylval.s,yytext); return ID; } [ \t\n]+ /* eat up whitespace */ . yyerror("Unknown Character"); %% int yywrap(void) { return 1; } My Bison file: %{ #include <stdio.h> #include <string.h> int yylex(void); void yyerror(char *s); %} %union { int i; char *s; }; %token <i> INTEGERNUM %token PROGRAM; %token OR; %token AND; %token NOT; %token IF; %token ELSE; %token WHILE; %token PLUS; %token MINUS; %token MUL; %token DIV; %token LSB; %token RSB; %token LCB; %token RCB; %token LEFTPAR; %token RIGHTPAR; %token ID; %token INT; %token ASSIGN; %token ISEQUAL; %token LTHAN; %token GTHAN; %token NOTEQUAL; %token LESSEQUAL; %token GREATEREQUAL; %% program:
Tags (comma-separated)
Save Edits
Cancel