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

Simple java code

  Simple java code class Main{ /*Every application in Java must contain the main method. The Java compiler starts executing the code from the main method*/      public static void main(String anyVar[]){      System.out.println("Simple java code");       } } Output: Simple java code Screenshot: Online compiler:https://www.onlinegdb.com/online_java_compiler #happyCoding💁👍