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;
}
}
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