Home      Affiliated Colleges      Course content      First Sem     Second Sem     Third Sem     Fourth Sem     Fifth Sem     Sixth Sem     Seventh Sem     Eighth Sem     Lab report 4th sem     Contact    

Monday, April 25, 2011

Compiler Design and Construction: Sixth sem lab Assignment 01:

Compiler Design and Construction
Assignment no.:01

========================================================================

Q. Take input file as:

#include<stdio.h>
#include<conio.h>
#define PI 3.14
void main()
{
     int PI;
     printf("%d",PI);
     printf("The area is %d",2*PI*3);
     printf("The value of PI is %d",PI);
}
and read value of PI ,replace it and write in output file.

Program:

package lab1;
import java.io.File;
import java.io.PrintStream;
import java.util.Scanner;

public class Main1 {

public static void main(String[] args)throws Exception
 {
        String macro = "";
        String macroValue = "";
        Scanner fin=new Scanner(new File("test.txt"));
        while(fin.hasNext())
        {
            String str = fin.nextLine();
            String str1 []  = str.split(" ");
            if(str1[0].equals("#define"))
            {
                macro = str1[1];
                macroValue = str1[2];
            }
        }
        fin.close();
        System.out.println("macro = "+macro);
        System.out.println("macro value = "+macroValue);
        Scanner fread=new Scanner(new File("test.txt"));
        PrintStream fwrite=new PrintStream(new File("test2.txt"));
        int i,j;
        while(fread.hasNext())
        {
            String str = fread.nextLine();
            int len = macro.length();
            for(i=0; i < str.length(); i++)
            {                            
                if(str.charAt(i) == ' " ' )
                {
                              do
                               {
                              fwrite.print(str.charAt(i));
                              i++;
                               }while((str.charAt(i)!= ' " '));
                        fwrite.print(str.charAt(i));                   
                 }
                 else if (str.charAt(i) == macro.charAt(0) && str.charAt(0) != '#')
                    {
                  
                    String temp = "";
                    for(j=i; j<i+len; j++)
                    {
                        temp = temp + str.charAt(j);
                    }
                    if(temp.equals(macro))
                    {
             if(Character.isLetterOrDigit(str.charAt(i+temp.length()))|| Character.isLetterOrDigit(str.charAt(i-1)))
                           fwrite.print(macro);
                       else
                        fwrite.print(macroValue);
                    }
                    i = i + len-1;
                }
                else
                {
                    fwrite.print(str.charAt(i));
                }
            }
            fwrite.println();
        }

      }

}

Input:

#include<stdio.h>
#include<conio.h>
#define PI 3.14
void main()
{
          int PI;
          printf("%d",PI);
          printf("The area is %d",2*PI*3);
          printf("The value of PI is %d",PI);
}

Output:

#include<stdio.h>
#include<conio.h>
#define PI 3.14
void main()
{
          int 3.14;
          printf("%d",3.14);
          printf("The area is %d",2*3.14*3);
          printf("The value of PI is %d",3.14);
}

No comments:

Post a Comment

^ Scroll to Top Related Posts with Thumbnails ^ Go to Top