Skip to content
Snippets Groups Projects
Commit 2f5a609d authored by Nathan PERIER's avatar Nathan PERIER
Browse files

Removed redundant casts

parent 55d556fa
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,6 @@ import fr.insarennes.nperier.minichamo.language.definition.VariableDef;
import fr.insarennes.nperier.minichamo.language.typing.BuiltinType;
import fr.insarennes.nperier.minichamo.language.typing.GenericType;
import fr.insarennes.nperier.minichamo.language.typing.Type;
import fr.insarennes.nperier.minichamo.lexing.tokens.NameToken;
import fr.insarennes.nperier.minichamo.lexing.tokens.TokenType;
import fr.insarennes.nperier.minichamo.utils.Counter;
import fr.insarennes.nperier.minichamo.errors.ParsingException;
......@@ -60,7 +59,7 @@ public class DefinitionParser {
public static FunctionDef parseRecursiveFunction(TokenPeekIterator it, Context ctx, SymbolPosition pos) {
it.expect(TokenType.NAME, "recursive function definition");
String name = ((NameToken) it.next()).getString();
String name = it.next().getString();
return parseFunctionDef(it, ctx, name, pos, true);
}
......
......@@ -16,24 +16,10 @@ import fr.insarennes.nperier.minichamo.lexing.tokens.TokenType;
import fr.insarennes.nperier.minichamo.utils.Counter;
import fr.insarennes.nperier.minichamo.utils.TokenPeekIterator;
import java.util.List;
import java.util.Optional;
public class ExpressionParser {
private static final List<TokenType> ARG_START_TYPES = List.of(
TokenType.UNIT,
TokenType.BOOL,
TokenType.INT,
TokenType.FLOAT,
TokenType.CHAR,
TokenType.STRING,
TokenType.LPAREN,
TokenType.NAME,
TokenType.CONSTRUCT_NAME,
TokenType.LBRACKET
);
public static Expression parse(TokenPeekIterator it, Context ctx) {
return parse(it, ctx, new Counter());
}
......
package fr.insarennes.nperier.minichamo.parsing;
import fr.insarennes.nperier.minichamo.language.typing.*;
import fr.insarennes.nperier.minichamo.language.typing.BuiltinType;
import fr.insarennes.nperier.minichamo.language.typing.FunctionType;
import fr.insarennes.nperier.minichamo.language.typing.GenericType;
import fr.insarennes.nperier.minichamo.language.typing.NupleType;
import fr.insarennes.nperier.minichamo.language.typing.Type;
import fr.insarennes.nperier.minichamo.language.typing.unification.UnificationMapper;
import fr.insarennes.nperier.minichamo.language.typing.visitor.TypeVisitor;
import fr.insarennes.nperier.minichamo.lexing.tokens.NameToken;
import fr.insarennes.nperier.minichamo.lexing.tokens.Token;
import fr.insarennes.nperier.minichamo.lexing.tokens.TokenType;
import fr.insarennes.nperier.minichamo.errors.ParsingException;
......@@ -105,7 +108,7 @@ public class TypeParser {
return GenericType.fromToken(token);
}
if(token.getType() == TokenType.NAME) {
String name = ((NameToken) token).getString();
String name = token.getString();
if(ctx.hasUserType(name)) {
return ctx.getUserType(name);
}
......
......@@ -4,7 +4,6 @@ import fr.insarennes.nperier.minichamo.language.definition.TypeDef;
import fr.insarennes.nperier.minichamo.language.typing.GenericType;
import fr.insarennes.nperier.minichamo.language.typing.SumType;
import fr.insarennes.nperier.minichamo.language.typing.Type;
import fr.insarennes.nperier.minichamo.lexing.tokens.NameToken;
import fr.insarennes.nperier.minichamo.lexing.tokens.Token;
import fr.insarennes.nperier.minichamo.lexing.tokens.TokenType;
import fr.insarennes.nperier.minichamo.lexing.tokens.TypeToken;
......@@ -33,7 +32,7 @@ public class TypedefParser {
if(next.getType() != TokenType.NAME) {
throw new ParsingException("Expected identifier during type definition", next);
}
String name = ((NameToken) next).getString();
String name = next.getString();
if(!it.junkIf(TokenType.EQUAL)) {
throw new ParsingException("Expected equal symbol during type definition", next);
}
......@@ -82,8 +81,7 @@ public class TypedefParser {
if(it.peek().getType() != TokenType.CONSTRUCT_NAME) {
throw new ParsingException("Expected constructor name in sum type definition", it.peek());
}
NameToken next = (NameToken) it.next();
String name = next.getString();
String name = it.next().getString();
if(it.peek().getType() == TokenType.OF) {
it.junk();
t.addConstructor(name, TypeParser.parse(it, ctx));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment