Skip to main content
How to run lex yacc programs on win 10

In short:
For Lex steps to run:
  1. lex lex7.l
  2. gcc lex.yy.c
  3. a
  
For YACC steps to run:
  1. lex simple_compound.l
  2. yacc -d simple_compound.y
  3. gcc lex.yy.c y.tab.c
  4. a                         


A.Lex

1. download flex for windows
http://flex-windows-lex-and-yacc.software.informer.com/2.5/

2.install it
locatin:  C:\Flex Windows\

3.open cmd

4.You need to change location as follows:

 cd C:\Flex Windows\EditPlusPortable

5. Steps to run:
lex lex7.l
gcc lex.yy.c
a



Output:

Word Count : 13
Char Count : 80
Line Count : 7

codes:
lex7.l
%{
/*
*Program to count no of characters, words and lines
*/
#include<stdio.h>
#include<string.h>
int c=0,w=0,l=0;
%}

%%
[\t ]+              /* ignore whitespace */

[a-zA-z]+             {w=w+1; c=c+ yyleng;}
[\n ]                           {l=l+1;}
['{','}''(',')',.,",;]          {c=c+1;}
%%

int main()
{
    yyin= fopen("file1.txt","r");
    yylex();
    printf("\nWord Count : %d",w);
    printf("\nChar Count : %d",c);
    printf("\nLine Count : %d\n",l);
}

int yywrap()
{

}



file1.txt
public class Lex
{
    public static void main(String[] args)
    {
        System.out.println("Hello");
    }
}



B.Yacc
steps to run:
  1. lex simple_compound.l
  2. yacc -d simple_compound.y
  3. gcc lex.yy.c y.tab.c
  4. a                                           (type just a if ur using linux then use ./a.out)
simple_compound.l
%{
#include"y.tab.h"
extern yylval;
%}

%%
[\t ]+

is|am|are|were|was|be|being|been|do|does|did|will|would|should|can|could|has|have|had|go|rides|paints    return VERB;

he|she         return SUB;

poster|bike    return OBJ;

while        return CONJ;

[a-zA-z]+    printf("\n%s: Not Defined",yytext);

%%


simple_compound.y

%{
#include<stdio.h>
%}

%token SUB VERB OBJ CONJ

%%
sentence:simple|compound

simple:SUB VERB OBJ {printf("\nValid Simple Sentence");};

compound:simple CONJ simple {printf("\nValid Compound Sentence");};

%%
yywrap()
{
    return 0;
}
yyerror()
{
    printf("\nInvalid Sentence !!!\n");
}
main()
{
    printf("\nEnter Sentence  : ");
    yyparse();
    yywrap();
}




Thank you so much.............................

Comments

  1. Great job make it more useful and practical oriented for compiler students

    ReplyDelete

Post a Comment

Popular posts from this blog

Naming Convention

  Naming Convention : A naming convention is  a convention for naming things: Please find below the table for naming conventions: Naming Convention Format Example Camel Case camelCase 🐪aBcD Kebab Case kebab-case 🍢a-b-c-d Snake Case snake_case 🐍a_b_c_d Pascal Case PascalCase 🧑‍🦳AbCd Flat Case flatcase 📏abcd Upper Flat Case UPPERFLATCASE ABCD Screaming Snake Case SCREAMING_SNAKE_CASE 🐍A_B_C_D Camel Snake Case camel_Snake_Case 🐪🐍ab_Cd Pascal Snake Case Pascal_Snake_Case Ab_Cd Train Case Train-Case 🚃Ab-Cd Cobol Case COBOL-CASE 🍢AB-CD
This blog explains how to connect to the Oracle10g database in Java. (u can use netbeans as well then no need of classpath) Connect To Oracle10g database In Java There are 5 steps to create a connection with an Oracle10g database in Java. First register the driver class Create the connection Create a statement Execute queries Close the connection 1. First, register the driver class The class.forName() method of the class registers the driver class.  Syntax public static void forName(String classname) throws ClassNotFoundException Example Class.forName("oracle.jdbc. driver.OracleDriver"); 2. Create the connection object The getConnection() method of the DriverManager class establishes the connection with the Oracle database. Syntax public static Connection getConnection(String url) throws Exception public static Connection getConnetion(String name, String url, String password) Example Connection connection=DriverManager. getConnectio...
IOT Internet of things. In this we can operate things automatically . ---> Like fans, lights, TV, Doors, taps, all things which we need to go and put on or off. IMP point:   IOT allows things to work as per logic . Main Problem (The overflow of bins in society or cities has following impacts) Bacteria, insects and vermin thrive from garbage Overflowing waste causes air pollution and respiratory diseases. Garbage contaminates surface waters, which affects all ecosystems.  Direct handling of overflowing waste exposes for health risks.  Inefficient waste control is bad for municipal wellbeing. Their is no one to say that bin is fully occupied or please through this garbage and empty her. So IOT provides us a new concept which take care of overflow of garbage in cities. As we know without garbage city will be neat and clean. An because of this peoples,animals will be safe from any diseases. How to prevent waste bins from overflowing? Althou...