1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
IrinaVladis [17]
3 years ago
7

In most programming languages, the compiler carries a preprocessing step to determine if certain statements will compile. For in

stance 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 formats under consideration, and also example of each statement.
Computers and Technology
1 answer:
MakcuM [25]3 years ago
6 0

Answer:

See explaination for program code

Explanation:

package com.company;

import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Paths;

import java.util.Stack;

/*

* A program which reads input from given text filename and prints

* whether it passed the pre-processing stage or not

* Sample input

* int A = (a + b);static void display(int x)

* {

* //A sample input file

* }

* */

public class MyPreprocessor {

/*

* Reads input from filename and returns a string

* containing whole text

* */

public String readInput(String filename) {

String content = "";

try {

content = new String(Files.readAllBytes(Paths.get(filename)));

} catch (IOException e) {

e.printStackTrace();

}

return content;

}

/**

* Filters input since we are only concerned with

* a subset of input = '{}[]()/*'

*/

public String filterText(String text) {

String output = "";

for(int i = 0;i<text.length();++i) {

switch (text.charAt(i)) {

case '[':

case ']':

case '{':

case '}':

case '(':

case ')':

case '*':

case '/':

output += text.charAt(i);

}

}

return output;

}

/*

* Uses stack to determine if input is valid or not

* */

public boolean parse(String input) {

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

// '$' is special symbol to represent bottom of stack

St.push('$');

for(int i = 0;i<input.length();++i) {

Character symbol = input.charAt(i);

if(St.peek().equals(getOpenSymbol(symbol)))

St.pop();

else St.push(symbol);

}

return St.peek() == '$';

}

private static Character getOpenSymbol(Character symbol) {

switch (symbol) {

case '}': return '{';

case ']': return '[';

case ')': return '(';

case '*': return '*';

case '/': return '/';

default: return ' ';

}

}

public static void main(String[] args) {

MyPreprocessor preprocessor = new MyPreprocessor();

String inputText = preprocessor.readInput("src/input.txt");

String filteredInput = preprocessor.filterText(inputText);

if(preprocessor.parse(filteredInput))

System.out.println("preprocessing passed.");

else System.out.println("preprocessing failed!");

}

}

You might be interested in
What technique is used when setup times at a workstation are sequence dependent?
grigory [225]

Answer:

johnsons rule minimizes total idle time for both machines or work centers. What technique is used when setup times at a workstation are sequence dependent? determine the total time of each job sequence permutation considering the setup time and choose the best (lowest) time.

Explanation:

please mark me as brainliest thank you

3 0
3 years ago
Imagine that you need to be late to work next Thursday because of a doctor's appointment. Compose your own e-mail appropriate fo
ratelena [41]
In form your boss a week early
8 0
3 years ago
1. Which of the following is required to create a computer simulation?
Sonbull [250]
1. Data
2. Input
3. Experimentation
4. Calculates Physics
5. You owe me.
6. Do your work next time.
7. You will never be able to enjoy a nice pipe and gin and use an app like this like a trivia game if you don't force yourself to completely understand your work.
8. I sound like your dad.
9. I am right.
6 0
3 years ago
What HTML tag would you use to indicate a line break?
DIA [1.3K]

Answer:

<br> APEX Verified

Explanation:

8 0
3 years ago
The results of the SPEC CPU2006 bzip2 benchmark running on an AMD Barcelona has an instruction count of 2.389E12, an execution t
xxTIMURxx [149]

Answer:

inside a butt whole

Explanation:

3 0
3 years ago
Other questions:
  • The management of Ventura Inc. approves the purchase of a few computers for the sales team. The management wants only the most b
    8·1 answer
  • A car with a 20-gallon gas tank averages 23.5 miles per gallon when driven in town and 28.9 miles per gallon when driven on the
    9·1 answer
  • Will upvote all answers
    7·1 answer
  • What is the reason that a modern electron microscope (TEM) can resolve biological images to the subnanometer level, as opposed t
    9·1 answer
  • Elizabeth works for a local restaurant at the end of her shift she read she’s required to write in the time that she arrived in
    9·1 answer
  • . Constructors can / cannot (circle correct choice) be called explicitly as if they were regular member functions.
    10·1 answer
  • I like the impact that the increasing number of social grants may have on the things mothers​
    14·1 answer
  • What is the output of the following code?<br> print (12 // 6)
    12·1 answer
  • Computer Graphics:
    13·1 answer
  • Besides a soho router, which of these devices is a network printer most likely to be connected to? a. router b. server c. workst
    7·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!