Java Code: Below is Parser.java and there are errors. Look at the errors carefully and please fix those errors and show the fixed code. Parser.java import java.text.ParseException; import java.util.LinkedList; import java.util.List; import mypack.Token.TokenType; public class Parser { private TokenHandler tokenHandler; private LinkedList tokens; public Parser(LinkedList tokens) { this.tokenHandler = new TokenHandler(tokens); this.tokens = tokens; } public boolean AcceptSeparators() { boolean foundSeparator = false; while (tokenHandler.MoreTokens()) { Token currentToken = tokenHandler.getCurrentToken(); if (currentToken.getType() == Token.TokenType.NEWLINE || currentToken.getType() == Token.TokenType.SEMICOLON) { tokenHandler.consumeMatchedToken(); foundSeparator = true; } else { break; } } return foundSeparator; } public ProgramNode Parse() throws Exception { ProgramNode program = new ProgramNode(); while (tokenHandler.MoreTokens()) { if (!parseFunction(programNode) && !parseAction(programNode)) { throw new ParseException("Unexpected token: " + tokenHandler.getCurrentToken()); } } return programNode; } private boolean ParseFunction(ProgramNode programNode) { Token functionNameToken = tokenHandler.getCurrentToken(); if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) { FunctionDefinitionNode functionNode = new FunctionDefinitionNode(functionNameToken.getType()); programNode.addNode(functionNode); if (tokenHandler.MatchAndRemove(Token.TokenType.LPAREN) != null) { if (tokenHandler.MatchAndRemove(Token.TokenType.RPAREN) != null) { AcceptSeparators(); return true; } } } return false; } private boolean parseAction(ProgramNode programNode) { Token functionNameToken = tokenHandler.getCurrentToken(); if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) { ActionNode actionNode = new ActionNode(tokenHandler.getLastMatchedToken().getType()); programNode.addNode(actionNode); AcceptSeparators(); return true; } return false; } }
Java Code: Below is Parser.java and there are errors. Look at the errors carefully and please fix those errors and show the fixed code.
Parser.java
import java.text.ParseException;
import java.util.LinkedList;
import java.util.List;
import mypack.Token.TokenType;
public class Parser {
private TokenHandler tokenHandler;
private LinkedList<Token> tokens;
public Parser(LinkedList<Token> tokens) {
this.tokenHandler = new TokenHandler(tokens);
this.tokens = tokens;
}
public boolean AcceptSeparators() {
boolean foundSeparator = false;
while (tokenHandler.MoreTokens()) {
Token currentToken = tokenHandler.getCurrentToken();
if (currentToken.getType() == Token.TokenType.NEWLINE || currentToken.getType() == Token.TokenType.SEMICOLON) {
tokenHandler.consumeMatchedToken();
foundSeparator = true;
} else {
break;
}
}
return foundSeparator;
}
public ProgramNode Parse() throws Exception {
ProgramNode program = new ProgramNode();
while (tokenHandler.MoreTokens()) {
if (!parseFunction(programNode) && !parseAction(programNode)) {
throw new ParseException("Unexpected token: " + tokenHandler.getCurrentToken());
}
}
return programNode;
}
private boolean ParseFunction(ProgramNode programNode) {
Token functionNameToken = tokenHandler.getCurrentToken();
if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) {
FunctionDefinitionNode functionNode = new FunctionDefinitionNode(functionNameToken.getType());
programNode.addNode(functionNode);
if (tokenHandler.MatchAndRemove(Token.TokenType.LPAREN) != null) {
if (tokenHandler.MatchAndRemove(Token.TokenType.RPAREN) != null) {
AcceptSeparators();
return true;
}
}
}
return false;
}
private boolean parseAction(ProgramNode programNode) {
Token functionNameToken = tokenHandler.getCurrentToken();
if (tokenHandler.MatchAndRemove(Token.TokenType.IDENTIFIER) != null) {
ActionNode actionNode = new ActionNode(tokenHandler.getLastMatchedToken().getType());
programNode.addNode(actionNode);
AcceptSeparators();
return true;
}
return false;
}
}
There are some mistakes in the sample Java code provided for Parser.java that need to be fixed. It's possible that these mistakes are keeping the code from working properly. In order to guarantee that the code functions as intended, we will thoroughly evaluate the code, identify any errors, and then make a step-by-step repair.
Please refer to the following steps for the complete solution to the problem above.
Trending now
This is a popular solution!
Step by step
Solved in 3 steps
You copied the same code that has errors. Please paste the code on eclipse and take a look at each error. There are red squiggles. I need an error free code for parser.java. Please fix those