Showing posts with label technobane. Show all posts
Showing posts with label technobane. Show all posts

Monday, 13 May 2013

Flex Bison Beginning.... baby steps....

I have been trying to learn lex and yacc of late. Well the tools that I actually use are flex and bison.
Anyways, here is a small program to demonstrate the use of both in conjunction...

Grammar:
E->E+T
E->T
T->id


Here is the flex specification file: saved as clexer1.l

%{
//This lexer is for cparser1.y together they make clang1
#include<stdio.h>
#include"cparser1.tab.h"
int yylval;
%}
%%
[0-9]+ {yylval=atoi(yytext);return id;}
[+] return *yytext;
\n |
. ;
%%


Here is the bison specification file: saved as cparser1.y

%{
//this is the parser for the grammar E->E+T; E->T; T->id used in conjunction with clexer1.l
#include<stdio.h>
#include<stdlib.h>
void yyerror(char*);
int yywrap(void);
%}
%token id
%%
S:S E {$$=$2;}      //merely to augment the grammar
|       //represents epsilon
;
E:E'+'T {$$=$1+$3; printf("Ans: %d\n",$$);}
|T {$$=$1;}
;
T:id {$$=$1;}
;
%%
int main(void)
{
yyparse();
return 0;
}
void yyerror(char *msg)
{
printf("%s\n",msg);
}
int yywrap(void)
{
return 1;
}


Now all you have to do is run the following commands:



flex clexer1.l

bison -d cparser1.y

gcc -o clang1 lex.yy.c cparser1.tab.c


Now you have to run the program on your linux OS as:

./clang1

Sunday, 7 April 2013

Compiler Design Tools installation in windows....

To install compiler design tools like flex, bison and gcc in your Windows platform follow the following steps:

1. Install Flex:


a.  After you've downloaded the setup from the link above double click to     install.

b. Make sure you DO NOT install in the default folder "C:\Program Files\...." but, to some some other folder which doesn't have a space in the name: "C:\compiler\".

2. Install Bison:


a.  After you've downloaded the setup from the link above double click to install.

b. Make sure you DO NOT install in the default folder "C:\Program Files\...." but, to some some other folder which doesn't have a space in the name: "C:\compiler\".

3. Install gcc setup:


a.  After you've downloaded the setup from the link above double click to install.

b. Make sure you DO NOT install in the default folder "C:\Program Files\...." but, to some some other folder which doesn't have a space in the name: "C:\compiler\".


or you may download the entire setup package from here: Compiler Tools


4. How to set the PATH variable in Windows: 

a.  First obtain the path for each of the tool's bin directory as follows  

for XP: (indicative)



for 7: (again indicative)



do the above for each tool separately save them in a notepad file.

b.  Now open the properties of your computer, by right clicking the icon:

for XP:




for Win 7:






c.  Now add the paths you previously obtained in the PATH variable separated by semicolons ";" and then logout and login again.



This should make your tools usable as they did in my case. Now you may work from any directory and create your programs.

In case of query or problem feel free to comment... I will definitely respond...

Enjoy...!!!