Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In most programming lanuages, the compiler caries a preprocessing step to determ

ID: 3891304 • Letter: I

Question

In most programming lanuages, the compiler caries a preprocessing step to determine if certain statements will compile. For instance it may check to see if parentheses match. Write a Java program that simulates the actions of a preprocessor, to detect if certain Java constructs are syntactically correct. Table 1 shows the types of Java statement fomats under consideration, and also example of each statement. Table 1 Example intx 3+ (10-4) *(10+ 4) public void displayint n) Format Statement data type expression Method t nameparameter) statement int att new int[n]; System.out paintin x2)% class class Name public class MyParser dt fields public static void main(Stg arg tb> Nameparameter>) display (10); method (paramete) static void displayint x) «attrib> rt method()

Explanation / Answer

CODING:

JAVA PROGRAM

import java.util.Stack;

import java.util.*;

import java.io.*;

class Preprocessor

{

     public static boolean balance_Chek(String inStr12)

    {

        Stack<Character> s_st1 = new Stack<Character>();

        for(int k1 = 0; k1 < inStr12.length(); k1++)

        {

                   char let = inStr12.charAt(k1);

                   if(let == '[' || let == '{' || let == '('||let=='/')

                   {

                        switch(let)

                        {

                    // FORSQUARE BRACKET

                                  case '[':

                                      s_st1.push(let);

                                      break;

                    // FOR CURLY BRACE

                                  case '{':

                                      s_st1.push(let);

                                      break;

                    // FOR BRACKETS

                                  case '(':

                                      s_st1.push(let);;

                                      break;

                //FOR COMMANDS

                        case '/':

                             char t=inStr12.charAt(k1+1);

                             if(t=='*')

                             s_st1.push(let);

                  

                             break;

                                  default:

                                  break;

                        }

                   }

                   else if(let == ']' || let == '}' || let == ')'||let=='*')

                   {

                        if(s_st1.empty())

                                  return false;

                        switch(let)

                        {

// FORSQUARE BRACKET

                                  case ']':

                                      if (s_st1.pop() != '[')

                                      return false;

                                      break;

// FOR CURLY BRACE

                                  case '}':

                                      if (s_st1.pop() != '{')

                                           return false;

                                      break;

                    // FOR BRACKETS

                                  case ')':

                                      if (s_st1.pop() != '(')

                                      return false;

                                      break;

                //FOR COMMANDS

                        case '*':

                             if(inStr12.charAt(k1+1)=='/')

                                      if (s_st1.pop() != '/')

                                      return false;

                                      break;

                                  default:

                                      break;

                        }

                   }

        }

        if(s_st1.empty())//CHECK STACK IS EMPTY

                   return true;

        return false;

    }//EMD METHOD

}

//TEST CLASS

public class MyPreprocessor

{

//MAIN METHOD

          public static void main (String [] args)

    {

       

//FileReader AND BuffeRedreader TO READ FROM FILE

          FileReader fk=new FileReader("tet.txt");

          BufferedReader bk=newBufferedReader(fk);

          Preprocessor p;

          String preLine;

//READING FROM FILE

          while((preLine=br.readLine())!=null)

          {

//DISPLAY THE STRING AS WELL AS CHECK ITS BALANCED DELIMITERS

              System.out.println("Line is: "+preLine +" is Balanced?"+balance_Chek(preLine));

          }

    }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote