Skip to content

Commit

Permalink
Use builtin types in type assignment
Browse files Browse the repository at this point in the history
  • Loading branch information
danielperano committed Nov 25, 2024
1 parent 03fbb90 commit 454e863
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import chipmunk.compiler.ast.AstNode;
import chipmunk.compiler.lexer.TokenType;
import chipmunk.compiler.parser.ExpressionParser;
import chipmunk.compiler.types.BuiltinTypes;
import chipmunk.compiler.types.ObjectType;

public class LiteralParselet implements PrefixParselet {
Expand All @@ -33,10 +34,10 @@ public class LiteralParselet implements PrefixParselet {
public AstNode parse(ExpressionParser parser, Token token) {
var node = new AstNode(NodeType.LITERAL, token);
switch (token.type()){
case BINARYLITERAL, OCTLITERAL, HEXLITERAL, INTLITERAL -> node.setResultType(ObjectType.primitive("int"));
case FLOATLITERAL -> node.setResultType(ObjectType.primitive("float"));
case BOOLLITERAL -> node.setResultType(ObjectType.primitive("boolean"));
case STRINGLITERAL -> node.setResultType(ObjectType.classBased("string"));
case BINARYLITERAL, OCTLITERAL, HEXLITERAL, INTLITERAL -> node.setResultType(BuiltinTypes.INTEGER);
case FLOATLITERAL -> node.setResultType(BuiltinTypes.FLOAT);
case BOOLLITERAL -> node.setResultType(BuiltinTypes.BOOLEAN);
case STRINGLITERAL -> node.setResultType(BuiltinTypes.STRING);
}
return node;
}
Expand Down

0 comments on commit 454e863

Please sign in to comment.